From 4053fc658fa86132431399a405bbcf4327aed40a Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Tue, 19 Aug 2025 07:48:34 +0000 Subject: [PATCH] deploy: 21b24a1b78e5c582d281d5441bd28a0f77e0d8bd --- .nojekyll | 0 animation_8cpp.html | 293 + animation_8cpp.js | 34 + animation_8cpp_source.html | 603 + animation_8cppm.html | 228 + animation_8cppm_source.html | 284 + animation_8hpp.html | 316 + animation_8hpp.js | 41 + animation_8hpp_source.html | 385 + annotated.html | 280 + annotated_dup.js | 70 + automerge_8cpp.html | 227 + automerge_8cpp.js | 4 + automerge_8cpp_source.html | 258 + autoreset_8cppm.html | 220 + autoreset_8cppm_source.html | 229 + autoreset_8hpp.html | 227 + autoreset_8hpp.js | 4 + autoreset_8hpp_source.html | 253 + bc_s.png | Bin 0 -> 660 bytes bc_sd.png | Bin 0 -> 634 bytes blink_8cpp.html | 227 + blink_8cpp.js | 4 + blink_8cpp_source.html | 259 + bold_8cpp.html | 227 + bold_8cpp.js | 4 + bold_8cpp_source.html | 259 + border__colored_8cpp.html | 239 + border__colored_8cpp.js | 4 + border__colored_8cpp_source.html | 256 + border__style_8cpp.html | 239 + border__style_8cpp.js | 4 + border__style_8cpp_source.html | 245 + box_8cpp.html | 220 + box_8cpp_source.html | 302 + box_8cppm.html | 220 + box_8cppm_source.html | 229 + box_8hpp.html | 227 + box_8hpp_source.html | 257 + box__helper_8cpp.html | 228 + box__helper_8cpp.js | 4 + box__helper_8cpp_source.html | 310 + box__helper_8hpp.html | 234 + box__helper_8hpp.js | 5 + box__helper_8hpp_source.html | 241 + button__animated_8cpp.html | 239 + button__animated_8cpp.js | 4 + button__animated_8cpp_source.html | 278 + button__in__frame_8cpp.html | 239 + button__in__frame_8cpp.js | 4 + button__in__frame_8cpp_source.html | 283 + button__style_8cpp.html | 239 + button__style_8cpp.js | 4 + button__style_8cpp_source.html | 292 + canvas_8cppm.html | 220 + canvas_8cppm_source.html | 229 + canvas_8hpp.html | 227 + canvas_8hpp_source.html | 407 + canvas__animated_8cpp.html | 239 + canvas__animated_8cpp.js | 4 + canvas__animated_8cpp_source.html | 493 + captured__mouse_8cppm.html | 220 + captured__mouse_8cppm_source.html | 229 + captured__mouse_8hpp.html | 232 + captured__mouse_8hpp.js | 5 + captured__mouse_8hpp_source.html | 243 + catch__event_8cpp.html | 230 + catch__event_8cpp.js | 5 + catch__event_8cpp_source.html | 311 + checkbox__in__frame_8cpp.html | 239 + checkbox__in__frame_8cpp.js | 4 + checkbox__in__frame_8cpp_source.html | 260 + classes.html | 262 + classftxui_1_1AnimationTask.html | 217 + classftxui_1_1AutoReset-members.html | 217 + classftxui_1_1AutoReset.html | 413 + classftxui_1_1AutoReset.js | 9 + ...xui_1_1CapturedMouseInterface-members.html | 217 + classftxui_1_1CapturedMouseInterface.html | 388 + classftxui_1_1CapturedMouseInterface.js | 9 + classftxui_1_1ConstRef-members.html | 222 + classftxui_1_1ConstRef.html | 560 + classftxui_1_1ConstRef.js | 14 + classftxui_1_1ConstStringListRef-members.html | 225 + classftxui_1_1ConstStringListRef.html | 640 + classftxui_1_1ConstStringListRef.js | 18 + ...ConstStringListRef_1_1Adapter-members.html | 219 + ...txui_1_1ConstStringListRef_1_1Adapter.html | 442 + ...sftxui_1_1ConstStringListRef_1_1Adapter.js | 11 + classftxui_1_1ConstStringRef-members.html | 226 + classftxui_1_1ConstStringRef.html | 445 + classftxui_1_1ConstStringRef.js | 10 + ...txui_1_1ConstStringRef__inherit__graph.map | 5 + ...txui_1_1ConstStringRef__inherit__graph.md5 | 1 + ...txui_1_1ConstStringRef__inherit__graph.png | Bin 0 -> 5362 bytes classftxui_1_1Image__inherit__graph.map | 7 + classftxui_1_1Image__inherit__graph.md5 | 1 + classftxui_1_1Image__inherit__graph.png | Bin 0 -> 4588 bytes classftxui_1_1NodeDecorator-members.html | 229 + classftxui_1_1NodeDecorator.html | 570 + classftxui_1_1NodeDecorator.js | 14 + ...ftxui_1_1NodeDecorator__inherit__graph.map | 5 + ...ftxui_1_1NodeDecorator__inherit__graph.md5 | 1 + ...ftxui_1_1NodeDecorator__inherit__graph.png | Bin 0 -> 3353 bytes classftxui_1_1Node__inherit__graph.map | 5 + classftxui_1_1Node__inherit__graph.md5 | 1 + classftxui_1_1Node__inherit__graph.png | Bin 0 -> 3336 bytes classftxui_1_1ReceiverImpl-members.html | 217 + classftxui_1_1ReceiverImpl.html | 411 + classftxui_1_1ReceiverImpl.js | 10 + classftxui_1_1Ref-members.html | 225 + classftxui_1_1Ref.html | 653 + classftxui_1_1Ref.js | 17 + ...1ScreenInteractive_1_1Private-members.html | 212 + ...ftxui_1_1ScreenInteractive_1_1Private.html | 258 + ...i_1_1ScreenInteractive__inherit__graph.map | 7 + ...i_1_1ScreenInteractive__inherit__graph.md5 | 1 + ...i_1_1ScreenInteractive__inherit__graph.png | Bin 0 -> 4685 bytes classftxui_1_1Screen__inherit__graph.map | 7 + classftxui_1_1Screen__inherit__graph.md5 | 1 + classftxui_1_1Screen__inherit__graph.png | Bin 0 -> 4644 bytes classftxui_1_1SenderImpl-members.html | 218 + classftxui_1_1SenderImpl.html | 436 + classftxui_1_1SenderImpl.js | 11 + classftxui_1_1StringRef-members.html | 227 + classftxui_1_1StringRef.html | 474 + classftxui_1_1StringRef.js | 11 + classftxui_1_1StringRef__inherit__graph.map | 5 + classftxui_1_1StringRef__inherit__graph.md5 | 1 + classftxui_1_1StringRef__inherit__graph.png | Bin 0 -> 4268 bytes classftxui_1_1TableSelection-members.html | 225 + classftxui_1_1TableSelection.html | 690 + classftxui_1_1TableSelection.js | 17 + ...sftxui_1_1TerminalInputParser-members.html | 214 + classftxui_1_1TerminalInputParser.html | 298 + classftxui_1_1TerminalInputParser.js | 6 + ...txui_1_1animation_1_1Animator-members.html | 214 + classftxui_1_1animation_1_1Animator.html | 325 + classftxui_1_1animation_1_1Animator.js | 6 + ...sftxui_1_1animation_1_1Params-members.html | 213 + classftxui_1_1animation_1_1Params.html | 287 + classftxui_1_1animation_1_1Params.js | 5 + classftxui_1_1task_1_1TaskRunner-members.html | 220 + classftxui_1_1task_1_1TaskRunner.html | 458 + classftxui_1_1task_1_1TaskRunner.js | 11 + clear__under_8cpp.html | 227 + clear__under_8cpp.js | 4 + clear__under_8cpp_source.html | 265 + closed.png | Bin 0 -> 132 bytes color_8cppm.html | 222 + color_8cppm_source.html | 233 + color_8hpp.html | 236 + color_8hpp.js | 4 + color_8hpp_source.html | 839 ++ color__gallery_8cpp.html | 239 + color__gallery_8cpp.js | 4 + color__gallery_8cpp_source.html | 392 + color__info_8cpp.html | 234 + color__info_8cpp.js | 6 + color__info_8cpp_source.html | 504 + color__info_8cppm.html | 220 + color__info_8cppm_source.html | 231 + color__info_8hpp.html | 235 + color__info_8hpp.js | 5 + color__info_8hpp_source.html | 259 + color__info__palette256_8cpp.html | 239 + color__info__palette256_8cpp.js | 4 + color__info__palette256_8cpp_source.html | 268 + color__info__sorted__2d_8ipp.html | 239 + color__info__sorted__2d_8ipp.js | 4 + color__info__sorted__2d_8ipp_source.html | 269 + color__truecolor__HSV_8cpp.html | 239 + color__truecolor__HSV_8cpp.js | 4 + color__truecolor__HSV_8cpp_source.html | 253 + color__truecolor__RGB_8cpp.html | 239 + color__truecolor__RGB_8cpp.js | 4 + color__truecolor__RGB_8cpp_source.html | 271 + component_2component_8cppm.html | 222 + component_2component_8cppm_source.html | 280 + component_2util_8cpp.html | 232 + component_2util_8cpp.js | 7 + component_2util_8cpp_source.html | 259 + component_8cpp.html | 223 + component_8cpp_source.html | 525 + component_8cppm.html | 211 + component_8cppm_source.html | 237 + component_8hpp.html | 394 + component_8hpp.js | 61 + component_8hpp_source.html | 406 + component__base_8cppm.html | 223 + component__base_8cppm_source.html | 243 + component__base_8hpp.html | 238 + component__base_8hpp.js | 5 + component__base_8hpp_source.html | 354 + component__examples_8md.html | 209 + component__fuzzer_8cpp.html | 243 + component__fuzzer_8cpp.js | 4 + component__fuzzer_8cpp_source.html | 500 + component__options_8cpp.html | 220 + component__options_8cpp_source.html | 657 + component__options_8cppm.html | 220 + component__options_8cppm_source.html | 259 + component__options_8hpp.html | 268 + component__options_8hpp.js | 9 + component__options_8hpp_source.html | 671 + composite__decorator_8cpp.html | 236 + composite__decorator_8cpp.js | 7 + composite__decorator_8cpp_source.html | 270 + composition_8cpp.html | 239 + composition_8cpp.js | 4 + composition_8cpp_source.html | 289 + container_8cpp.html | 244 + container_8cpp.js | 9 + container_8cpp_source.html | 700 + cookie.js | 58 + cpp20-modules.html | 299 + cpp20-modules_8md.html | 209 + custom__loop_8cpp.html | 239 + custom__loop_8cpp.js | 4 + custom__loop_8cpp_source.html | 275 + dim_8cpp.html | 227 + dim_8cpp.js | 4 + dim_8cpp_source.html | 259 + dir_000000_000005.html | 206 + dir_000000_000011.html | 206 + dir_000001_000006.html | 206 + dir_000001_000012.html | 206 + dir_000001_000015.html | 206 + dir_000002_000007.html | 206 + dir_000002_000011.html | 206 + dir_000002_000013.html | 206 + dir_000005_000011.html | 206 + dir_000006_000012.html | 206 + dir_000006_000015.html | 206 + dir_000007_000011.html | 206 + dir_000010_000002.html | 206 + dir_000010_000007.html | 206 + dir_000010_000011.html | 206 + dir_000010_000013.html | 206 + dir_000010_000016.html | 206 + dir_000013_000011.html | 206 + dir_000015_000012.html | 206 + dir_000016_000011.html | 206 + dir_1668679807285893c235fcc812b1f73d.html | 233 + dir_1668679807285893c235fcc812b1f73d.js | 6 + dir_1668679807285893c235fcc812b1f73d_dep.map | 7 + dir_1668679807285893c235fcc812b1f73d_dep.md5 | 1 + dir_1668679807285893c235fcc812b1f73d_dep.png | Bin 0 -> 2877 bytes dir_34153e0f69aea4f55932893abc931484.html | 330 + dir_34153e0f69aea4f55932893abc931484.js | 53 + dir_34153e0f69aea4f55932893abc931484_dep.map | 10 + dir_34153e0f69aea4f55932893abc931484_dep.md5 | 1 + dir_34153e0f69aea4f55932893abc931484_dep.png | Bin 0 -> 6986 bytes dir_3f4db74392b369be141833a3ebdcb6a2.html | 263 + dir_3f4db74392b369be141833a3ebdcb6a2.js | 21 + dir_3f4db74392b369be141833a3ebdcb6a2_dep.map | 7 + dir_3f4db74392b369be141833a3ebdcb6a2_dep.md5 | 1 + dir_3f4db74392b369be141833a3ebdcb6a2_dep.png | Bin 0 -> 3714 bytes dir_4cbb3a1c219643e03aadd7cd3693e7bd.html | 250 + dir_4cbb3a1c219643e03aadd7cd3693e7bd.js | 13 + dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.map | 10 + dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.md5 | 1 + dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.png | Bin 0 -> 5211 bytes dir_53f6d8d3eb5689656c3f196f1d99fcb2.html | 242 + dir_53f6d8d3eb5689656c3f196f1d99fcb2.js | 12 + dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.map | 4 + dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.md5 | 1 + dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.png | Bin 0 -> 1865 bytes dir_591e152ed8a369b957ed274cdb7355d5.html | 321 + dir_591e152ed8a369b957ed274cdb7355d5.js | 47 + dir_591e152ed8a369b957ed274cdb7355d5_dep.map | 13 + dir_591e152ed8a369b957ed274cdb7355d5_dep.md5 | 1 + dir_591e152ed8a369b957ed274cdb7355d5_dep.png | Bin 0 -> 8625 bytes dir_68267d1309a1af8e8297ef4c3efbcdba.html | 229 + dir_68267d1309a1af8e8297ef4c3efbcdba.js | 4 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map | 7 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 | 1 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png | Bin 0 -> 3500 bytes dir_6c89d1ed406002b4e6ebce07fb51a507.html | 209 + dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.html | 248 + dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.js | 7 + dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.map | 20 + dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.md5 | 1 + dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.png | Bin 0 -> 13919 bytes dir_8b052a5e35b6e4510790af7766fda6cf.html | 337 + dir_8b052a5e35b6e4510790af7766fda6cf.js | 58 + dir_8b052a5e35b6e4510790af7766fda6cf_dep.map | 7 + dir_8b052a5e35b6e4510790af7766fda6cf_dep.md5 | 1 + dir_8b052a5e35b6e4510790af7766fda6cf_dep.png | Bin 0 -> 3506 bytes dir_9acac4494befa3e78fe4cf0f88d4c1ad.html | 231 + dir_9acac4494befa3e78fe4cf0f88d4c1ad.js | 5 + dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.map | 7 + dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.md5 | 1 + dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.png | Bin 0 -> 2959 bytes dir_aca3139ef08e710186b498ba0b7d3b1a.html | 270 + dir_aca3139ef08e710186b498ba0b7d3b1a.js | 12 + dir_aca3139ef08e710186b498ba0b7d3b1a_dep.map | 29 + dir_aca3139ef08e710186b498ba0b7d3b1a_dep.md5 | 1 + dir_aca3139ef08e710186b498ba0b7d3b1a_dep.png | Bin 0 -> 20253 bytes dir_b7c1fcae8d0ae1df453f463e8938778b.html | 255 + dir_b7c1fcae8d0ae1df453f463e8938778b.js | 14 + dir_b7c1fcae8d0ae1df453f463e8938778b_dep.map | 13 + dir_b7c1fcae8d0ae1df453f463e8938778b_dep.md5 | 1 + dir_b7c1fcae8d0ae1df453f463e8938778b_dep.png | Bin 0 -> 7170 bytes dir_c6e2a03fcd381aa57f98a8fd0760f80b.html | 301 + dir_c6e2a03fcd381aa57f98a8fd0760f80b.js | 40 + dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.map | 7 + dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.md5 | 1 + dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.png | Bin 0 -> 4278 bytes dir_d28a4824dc47e487b107a5db32ef43c4.html | 236 + dir_d28a4824dc47e487b107a5db32ef43c4.js | 5 + dir_d28a4824dc47e487b107a5db32ef43c4_dep.map | 12 + dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 | 1 + dir_d28a4824dc47e487b107a5db32ef43c4_dep.png | Bin 0 -> 8807 bytes dir_d44c64559bbebec7f509842c48db8b23.html | 226 + dir_d44c64559bbebec7f509842c48db8b23.js | 4 + dir_d44c64559bbebec7f509842c48db8b23_dep.map | 4 + dir_d44c64559bbebec7f509842c48db8b23_dep.md5 | 1 + dir_d44c64559bbebec7f509842c48db8b23_dep.png | Bin 0 -> 2071 bytes dir_e68e8157741866f444e17edd764ebbae.html | 209 + direction_8cppm.html | 220 + direction_8cppm_source.html | 229 + direction_8hpp.html | 236 + direction_8hpp.js | 9 + direction_8hpp_source.html | 239 + doc.svg | 12 + docd.svg | 12 + dom_2color_8cpp.html | 253 + dom_2color_8cpp.js | 8 + dom_2color_8cpp_source.html | 361 + dom_2deprecated_8cppm.html | 220 + dom_2deprecated_8cppm_source.html | 230 + dom_2deprecated_8hpp.html | 232 + dom_2deprecated_8hpp.js | 6 + dom_2deprecated_8hpp_source.html | 232 + dom_2util_8cpp.html | 241 + dom_2util_8cpp.js | 9 + dom_2util_8cpp_source.html | 388 + dom_8cppm.html | 211 + dom_8cppm_source.html | 235 + dom__examples_8md.html | 209 + doxygen-awesome-fragment-copy-button.js | 85 + doxygen-awesome-interactive-toc.js | 91 + doxygen-awesome-paragraph-link.js | 51 + doxygen-awesome-tabs.js | 90 + doxygen-awesome.css | 2681 ++++ doxygen.css | 1841 +++ doxygen.svg | 28 + doxygen_crawl.html | 3650 +++++ dropdown__custom_8cpp.html | 239 + dropdown__custom_8cpp.js | 4 + dropdown__custom_8cpp_source.html | 322 + dynsections.js | 205 + elements_8cppm.html | 223 + elements_8cppm_source.html | 355 + elements_8hpp.html | 608 + elements_8hpp.js | 136 + elements_8hpp_source.html | 555 + event_8cpp.html | 220 + event_8cpp_source.html | 871 ++ event_8cppm.html | 220 + event_8cppm_source.html | 234 + event_8hpp.html | 227 + event_8hpp_source.html | 555 + examples/component/ftxui_example_button.js | 1 + examples/component/ftxui_example_button.wasm | Bin 0 -> 308754 bytes .../component/ftxui_example_button.worker.js | 1 + .../ftxui_example_button_animated.js | 1 + .../ftxui_example_button_animated.wasm | Bin 0 -> 297420 bytes .../ftxui_example_button_animated.worker.js | 1 + .../ftxui_example_button_in_frame.js | 1 + .../ftxui_example_button_in_frame.wasm | Bin 0 -> 300013 bytes .../ftxui_example_button_in_frame.worker.js | 1 + .../component/ftxui_example_button_style.js | 1 + .../component/ftxui_example_button_style.wasm | Bin 0 -> 313951 bytes .../ftxui_example_button_style.worker.js | 1 + .../ftxui_example_canvas_animated.js | 1 + .../ftxui_example_canvas_animated.wasm | Bin 0 -> 367415 bytes .../ftxui_example_canvas_animated.worker.js | 1 + examples/component/ftxui_example_checkbox.js | 1 + .../component/ftxui_example_checkbox.wasm | Bin 0 -> 270969 bytes .../ftxui_example_checkbox.worker.js | 1 + .../ftxui_example_checkbox_in_frame.js | 1 + .../ftxui_example_checkbox_in_frame.wasm | Bin 0 -> 279589 bytes .../ftxui_example_checkbox_in_frame.worker.js | 1 + .../component/ftxui_example_collapsible.js | 1 + .../component/ftxui_example_collapsible.wasm | Bin 0 -> 282717 bytes .../ftxui_example_collapsible.worker.js | 1 + .../component/ftxui_example_composition.js | 1 + .../component/ftxui_example_composition.wasm | Bin 0 -> 296556 bytes .../ftxui_example_composition.worker.js | 1 + .../component/ftxui_example_custom_loop.js | 1 + .../component/ftxui_example_custom_loop.wasm | Bin 0 -> 263531 bytes .../ftxui_example_custom_loop.worker.js | 1 + examples/component/ftxui_example_dropdown.js | 1 + .../component/ftxui_example_dropdown.wasm | Bin 0 -> 308714 bytes .../ftxui_example_dropdown.worker.js | 1 + .../ftxui_example_dropdown_custom.js | 1 + .../ftxui_example_dropdown_custom.wasm | Bin 0 -> 325367 bytes .../ftxui_example_dropdown_custom.worker.js | 1 + .../ftxui_example_flexbox_gallery.js | 1 + .../ftxui_example_flexbox_gallery.wasm | Bin 0 -> 349181 bytes .../ftxui_example_flexbox_gallery.worker.js | 1 + examples/component/ftxui_example_focus.js | 1 + examples/component/ftxui_example_focus.wasm | Bin 0 -> 310203 bytes .../component/ftxui_example_focus.worker.js | 1 + .../component/ftxui_example_focus_cursor.js | 1 + .../component/ftxui_example_focus_cursor.wasm | Bin 0 -> 269248 bytes .../ftxui_example_focus_cursor.worker.js | 1 + examples/component/ftxui_example_gallery.js | 1 + examples/component/ftxui_example_gallery.wasm | Bin 0 -> 405582 bytes .../component/ftxui_example_gallery.worker.js | 1 + .../component/ftxui_example_homescreen.js | 1 + .../component/ftxui_example_homescreen.wasm | Bin 0 -> 535200 bytes .../ftxui_example_homescreen.worker.js | 1 + examples/component/ftxui_example_input.js | 1 + examples/component/ftxui_example_input.wasm | Bin 0 -> 329969 bytes .../component/ftxui_example_input.worker.js | 1 + .../component/ftxui_example_input_in_frame.js | 1 + .../ftxui_example_input_in_frame.wasm | Bin 0 -> 320084 bytes .../ftxui_example_input_in_frame.worker.js | 1 + .../component/ftxui_example_input_style.js | 1 + .../component/ftxui_example_input_style.wasm | Bin 0 -> 354043 bytes .../ftxui_example_input_style.worker.js | 1 + .../ftxui_example_linear_gradient_gallery.js | 1 + ...ftxui_example_linear_gradient_gallery.wasm | Bin 0 -> 315123 bytes ..._example_linear_gradient_gallery.worker.js | 1 + examples/component/ftxui_example_maybe.js | 1 + examples/component/ftxui_example_maybe.wasm | Bin 0 -> 306923 bytes .../component/ftxui_example_maybe.worker.js | 1 + examples/component/ftxui_example_menu.js | 1 + examples/component/ftxui_example_menu.wasm | Bin 0 -> 299977 bytes .../component/ftxui_example_menu.worker.js | 1 + examples/component/ftxui_example_menu2.js | 1 + examples/component/ftxui_example_menu2.wasm | Bin 0 -> 319616 bytes .../component/ftxui_example_menu2.worker.js | 1 + .../component/ftxui_example_menu_entries.js | 1 + .../component/ftxui_example_menu_entries.wasm | Bin 0 -> 310421 bytes .../ftxui_example_menu_entries.worker.js | 1 + .../ftxui_example_menu_entries_animated.js | 1 + .../ftxui_example_menu_entries_animated.wasm | Bin 0 -> 304641 bytes ...ui_example_menu_entries_animated.worker.js | 1 + .../component/ftxui_example_menu_in_frame.js | 1 + .../ftxui_example_menu_in_frame.wasm | Bin 0 -> 311790 bytes .../ftxui_example_menu_in_frame.worker.js | 1 + .../ftxui_example_menu_in_frame_horizontal.js | 1 + ...txui_example_menu_in_frame_horizontal.wasm | Bin 0 -> 306130 bytes ...example_menu_in_frame_horizontal.worker.js | 1 + .../component/ftxui_example_menu_multiple.js | 1 + .../ftxui_example_menu_multiple.wasm | Bin 0 -> 322518 bytes .../ftxui_example_menu_multiple.worker.js | 1 + .../component/ftxui_example_menu_style.js | 1 + .../component/ftxui_example_menu_style.wasm | Bin 0 -> 348247 bytes .../ftxui_example_menu_style.worker.js | 1 + ...example_menu_underline_animated_gallery.js | 1 + ...ample_menu_underline_animated_gallery.wasm | Bin 0 -> 323530 bytes ..._menu_underline_animated_gallery.worker.js | 1 + .../component/ftxui_example_modal_dialog.js | 1 + .../component/ftxui_example_modal_dialog.wasm | Bin 0 -> 313954 bytes .../ftxui_example_modal_dialog.worker.js | 1 + .../ftxui_example_modal_dialog_custom.js | 1 + .../ftxui_example_modal_dialog_custom.wasm | Bin 0 -> 309218 bytes ...txui_example_modal_dialog_custom.worker.js | 1 + .../component/ftxui_example_nested_screen.js | 1 + .../ftxui_example_nested_screen.wasm | Bin 0 -> 298788 bytes .../ftxui_example_nested_screen.worker.js | 1 + .../ftxui_example_print_key_press.js | 1 + .../ftxui_example_print_key_press.wasm | Bin 0 -> 311233 bytes .../ftxui_example_print_key_press.worker.js | 1 + examples/component/ftxui_example_radiobox.js | 1 + .../component/ftxui_example_radiobox.wasm | Bin 0 -> 268285 bytes .../ftxui_example_radiobox.worker.js | 1 + .../ftxui_example_radiobox_in_frame.js | 1 + .../ftxui_example_radiobox_in_frame.wasm | Bin 0 -> 279632 bytes .../ftxui_example_radiobox_in_frame.worker.js | 1 + examples/component/ftxui_example_renderer.js | 1 + .../component/ftxui_example_renderer.wasm | Bin 0 -> 297825 bytes .../ftxui_example_renderer.worker.js | 1 + .../ftxui_example_resizable_split.js | 1 + .../ftxui_example_resizable_split.wasm | Bin 0 -> 290093 bytes .../ftxui_example_resizable_split.worker.js | 1 + examples/component/ftxui_example_scrollbar.js | 1 + .../component/ftxui_example_scrollbar.wasm | Bin 0 -> 319239 bytes .../ftxui_example_scrollbar.worker.js | 1 + examples/component/ftxui_example_selection.js | 1 + .../component/ftxui_example_selection.wasm | Bin 0 -> 319516 bytes .../ftxui_example_selection.worker.js | 1 + examples/component/ftxui_example_slider.js | 1 + examples/component/ftxui_example_slider.wasm | Bin 0 -> 280446 bytes .../component/ftxui_example_slider.worker.js | 1 + .../ftxui_example_slider_direction.js | 1 + .../ftxui_example_slider_direction.wasm | Bin 0 -> 282889 bytes .../ftxui_example_slider_direction.worker.js | 1 + .../component/ftxui_example_slider_rgb.js | 1 + .../component/ftxui_example_slider_rgb.wasm | Bin 0 -> 300778 bytes .../ftxui_example_slider_rgb.worker.js | 1 + .../component/ftxui_example_tab_horizontal.js | 1 + .../ftxui_example_tab_horizontal.wasm | Bin 0 -> 329809 bytes .../ftxui_example_tab_horizontal.worker.js | 1 + .../component/ftxui_example_tab_vertical.js | 1 + .../component/ftxui_example_tab_vertical.wasm | Bin 0 -> 326136 bytes .../ftxui_example_tab_vertical.worker.js | 1 + examples/component/ftxui_example_textarea.js | 1 + .../component/ftxui_example_textarea.wasm | Bin 0 -> 334251 bytes .../ftxui_example_textarea.worker.js | 1 + examples/component/ftxui_example_toggle.js | 1 + examples/component/ftxui_example_toggle.wasm | Bin 0 -> 315147 bytes .../component/ftxui_example_toggle.worker.js | 1 + examples/component/ftxui_example_window.js | 1 + examples/component/ftxui_example_window.wasm | Bin 0 -> 319776 bytes .../component/ftxui_example_window.worker.js | 1 + .../ftxui_example_with_restored_io.js | 1 + .../ftxui_example_with_restored_io.wasm | Bin 0 -> 312556 bytes .../ftxui_example_with_restored_io.worker.js | 1 + examples/dom/ftxui_example_border.js | 1 + examples/dom/ftxui_example_border.wasm | Bin 0 -> 197671 bytes examples/dom/ftxui_example_border.worker.js | 1 + examples/dom/ftxui_example_border_colored.js | 1 + .../dom/ftxui_example_border_colored.wasm | Bin 0 -> 208847 bytes .../ftxui_example_border_colored.worker.js | 1 + examples/dom/ftxui_example_border_style.js | 1 + examples/dom/ftxui_example_border_style.wasm | Bin 0 -> 197251 bytes .../dom/ftxui_example_border_style.worker.js | 1 + examples/dom/ftxui_example_canvas.js | 1 + examples/dom/ftxui_example_canvas.wasm | Bin 0 -> 210855 bytes examples/dom/ftxui_example_canvas.worker.js | 1 + examples/dom/ftxui_example_color_gallery.js | 1 + examples/dom/ftxui_example_color_gallery.wasm | Bin 0 -> 242055 bytes .../dom/ftxui_example_color_gallery.worker.js | 1 + .../ftxui_example_color_info_palette256.js | 1 + .../ftxui_example_color_info_palette256.wasm | Bin 0 -> 213664 bytes ...ui_example_color_info_palette256.worker.js | 1 + .../dom/ftxui_example_color_truecolor_HSV.js | 1 + .../ftxui_example_color_truecolor_HSV.wasm | Bin 0 -> 202479 bytes ...txui_example_color_truecolor_HSV.worker.js | 1 + .../dom/ftxui_example_color_truecolor_RGB.js | 1 + .../ftxui_example_color_truecolor_RGB.wasm | Bin 0 -> 211866 bytes ...txui_example_color_truecolor_RGB.worker.js | 1 + examples/dom/ftxui_example_dbox.js | 1 + examples/dom/ftxui_example_dbox.wasm | Bin 0 -> 199916 bytes examples/dom/ftxui_example_dbox.worker.js | 1 + examples/dom/ftxui_example_gauge.js | 1 + examples/dom/ftxui_example_gauge.wasm | Bin 0 -> 194573 bytes examples/dom/ftxui_example_gauge.worker.js | 1 + examples/dom/ftxui_example_gauge_direction.js | 1 + .../dom/ftxui_example_gauge_direction.wasm | Bin 0 -> 207716 bytes .../ftxui_example_gauge_direction.worker.js | 1 + examples/dom/ftxui_example_graph.js | 1 + examples/dom/ftxui_example_graph.wasm | Bin 0 -> 219119 bytes examples/dom/ftxui_example_graph.worker.js | 1 + examples/dom/ftxui_example_gridbox.js | 1 + examples/dom/ftxui_example_gridbox.wasm | Bin 0 -> 199648 bytes examples/dom/ftxui_example_gridbox.worker.js | 1 + examples/dom/ftxui_example_hflow.js | 1 + examples/dom/ftxui_example_hflow.wasm | Bin 0 -> 215917 bytes examples/dom/ftxui_example_hflow.worker.js | 1 + examples/dom/ftxui_example_html_like.js | 1 + examples/dom/ftxui_example_html_like.wasm | Bin 0 -> 265899 bytes .../dom/ftxui_example_html_like.worker.js | 1 + examples/dom/ftxui_example_linear_gradient.js | 1 + .../dom/ftxui_example_linear_gradient.wasm | Bin 0 -> 218633 bytes .../ftxui_example_linear_gradient.worker.js | 1 + examples/dom/ftxui_example_package_manager.js | 1 + .../dom/ftxui_example_package_manager.wasm | Bin 0 -> 223881 bytes .../ftxui_example_package_manager.worker.js | 1 + examples/dom/ftxui_example_paragraph.js | 1 + examples/dom/ftxui_example_paragraph.wasm | Bin 0 -> 216018 bytes .../dom/ftxui_example_paragraph.worker.js | 1 + examples/dom/ftxui_example_separator.js | 1 + examples/dom/ftxui_example_separator.wasm | Bin 0 -> 200740 bytes .../dom/ftxui_example_separator.worker.js | 1 + examples/dom/ftxui_example_separator_style.js | 1 + .../dom/ftxui_example_separator_style.wasm | Bin 0 -> 203072 bytes .../ftxui_example_separator_style.worker.js | 1 + examples/dom/ftxui_example_size.js | 1 + examples/dom/ftxui_example_size.wasm | Bin 0 -> 199779 bytes examples/dom/ftxui_example_size.worker.js | 1 + examples/dom/ftxui_example_spinner.js | 1 + examples/dom/ftxui_example_spinner.wasm | Bin 0 -> 239873 bytes examples/dom/ftxui_example_spinner.worker.js | 1 + examples/dom/ftxui_example_style_blink.js | 1 + examples/dom/ftxui_example_style_blink.wasm | Bin 0 -> 191061 bytes .../dom/ftxui_example_style_blink.worker.js | 1 + examples/dom/ftxui_example_style_bold.js | 1 + examples/dom/ftxui_example_style_bold.wasm | Bin 0 -> 191033 bytes .../dom/ftxui_example_style_bold.worker.js | 1 + examples/dom/ftxui_example_style_color.js | 1 + examples/dom/ftxui_example_style_color.wasm | Bin 0 -> 226781 bytes .../dom/ftxui_example_style_color.worker.js | 1 + examples/dom/ftxui_example_style_dim.js | 1 + examples/dom/ftxui_example_style_dim.wasm | Bin 0 -> 191045 bytes .../dom/ftxui_example_style_dim.worker.js | 1 + examples/dom/ftxui_example_style_gallery.js | 1 + examples/dom/ftxui_example_style_gallery.wasm | Bin 0 -> 211141 bytes .../dom/ftxui_example_style_gallery.worker.js | 1 + examples/dom/ftxui_example_style_hyperlink.js | 1 + .../dom/ftxui_example_style_hyperlink.wasm | Bin 0 -> 190713 bytes .../ftxui_example_style_hyperlink.worker.js | 1 + examples/dom/ftxui_example_style_inverted.js | 1 + .../dom/ftxui_example_style_inverted.wasm | Bin 0 -> 191054 bytes .../ftxui_example_style_inverted.worker.js | 1 + examples/dom/ftxui_example_style_italic.js | 1 + examples/dom/ftxui_example_style_italic.wasm | Bin 0 -> 191109 bytes .../dom/ftxui_example_style_italic.worker.js | 1 + .../dom/ftxui_example_style_strikethrough.js | 1 + .../ftxui_example_style_strikethrough.wasm | Bin 0 -> 191147 bytes ...txui_example_style_strikethrough.worker.js | 1 + .../dom/ftxui_example_style_underlined.js | 1 + .../dom/ftxui_example_style_underlined.wasm | Bin 0 -> 191071 bytes .../ftxui_example_style_underlined.worker.js | 1 + .../ftxui_example_style_underlined_double.js | 1 + ...ftxui_example_style_underlined_double.wasm | Bin 0 -> 191163 bytes ..._example_style_underlined_double.worker.js | 1 + examples/dom/ftxui_example_table.js | 1 + examples/dom/ftxui_example_table.wasm | Bin 0 -> 231673 bytes examples/dom/ftxui_example_table.worker.js | 1 + examples/dom/ftxui_example_vbox_hbox.js | 1 + examples/dom/ftxui_example_vbox_hbox.wasm | Bin 0 -> 190878 bytes .../dom/ftxui_example_vbox_hbox.worker.js | 1 + examples/dom/ftxui_example_vflow.js | 1 + examples/dom/ftxui_example_vflow.wasm | Bin 0 -> 213170 bytes examples/dom/ftxui_example_vflow.worker.js | 1 + examples/index.css | 107 + examples/index.html | 32 + examples/index.mjs | 97 + examples/sw.js | 25 + examples_2component_2button_8cpp.html | 260 + examples_2component_2button_8cpp.js | 5 + examples_2component_2button_8cpp_source.html | 299 + examples_2component_2checkbox_8cpp.html | 239 + examples_2component_2checkbox_8cpp.js | 4 + ...ples_2component_2checkbox_8cpp_source.html | 259 + examples_2component_2collapsible_8cpp.html | 281 + examples_2component_2collapsible_8cpp.js | 6 + ...s_2component_2collapsible_8cpp_source.html | 290 + examples_2component_2dropdown_8cpp.html | 239 + examples_2component_2dropdown_8cpp.js | 4 + ...ples_2component_2dropdown_8cpp_source.html | 260 + examples_2component_2focus_8cpp.html | 285 + examples_2component_2focus_8cpp.js | 6 + examples_2component_2focus_8cpp_source.html | 311 + examples_2component_2input_8cpp.html | 239 + examples_2component_2input_8cpp.js | 4 + examples_2component_2input_8cpp_source.html | 293 + examples_2component_2maybe_8cpp.html | 239 + examples_2component_2maybe_8cpp.js | 4 + examples_2component_2maybe_8cpp_source.html | 269 + examples_2component_2menu_8cpp.html | 239 + examples_2component_2menu_8cpp.js | 4 + examples_2component_2menu_8cpp_source.html | 251 + examples_2component_2radiobox_8cpp.html | 239 + examples_2component_2radiobox_8cpp.js | 4 + ...ples_2component_2radiobox_8cpp_source.html | 243 + examples_2component_2renderer_8cpp.html | 239 + examples_2component_2renderer_8cpp.js | 4 + ...ples_2component_2renderer_8cpp_source.html | 269 + ...les_2component_2resizable__split_8cpp.html | 239 + examples_2component_2resizable__split_8cpp.js | 4 + ...mponent_2resizable__split_8cpp_source.html | 268 + examples_2component_2selection_8cpp.html | 260 + examples_2component_2selection_8cpp.js | 5 + ...les_2component_2selection_8cpp_source.html | 334 + examples_2component_2slider_8cpp.html | 239 + examples_2component_2slider_8cpp.js | 4 + examples_2component_2slider_8cpp_source.html | 234 + examples_2component_2window_8cpp.html | 260 + examples_2component_2window_8cpp.js | 5 + examples_2component_2window_8cpp_source.html | 319 + examples_2dom_2border_8cpp.html | 239 + examples_2dom_2border_8cpp.js | 4 + examples_2dom_2border_8cpp_source.html | 255 + examples_2dom_2canvas_8cpp.html | 239 + examples_2dom_2canvas_8cpp.js | 4 + examples_2dom_2canvas_8cpp_source.html | 272 + examples_2dom_2dbox_8cpp.html | 239 + examples_2dom_2dbox_8cpp.js | 4 + examples_2dom_2dbox_8cpp_source.html | 246 + examples_2dom_2gauge_8cpp.html | 239 + examples_2dom_2gauge_8cpp.js | 4 + examples_2dom_2gauge_8cpp_source.html | 254 + examples_2dom_2graph_8cpp.html | 264 + examples_2dom_2graph_8cpp.js | 5 + examples_2dom_2graph_8cpp_source.html | 307 + examples_2dom_2gridbox_8cpp.html | 239 + examples_2dom_2gridbox_8cpp.js | 4 + examples_2dom_2gridbox_8cpp_source.html | 265 + examples_2dom_2linear__gradient_8cpp.html | 239 + examples_2dom_2linear__gradient_8cpp.js | 4 + ...es_2dom_2linear__gradient_8cpp_source.html | 244 + examples_2dom_2paragraph_8cpp.html | 239 + examples_2dom_2paragraph_8cpp.js | 4 + examples_2dom_2paragraph_8cpp_source.html | 270 + examples_2dom_2separator_8cpp.html | 239 + examples_2dom_2separator_8cpp.js | 4 + examples_2dom_2separator_8cpp_source.html | 247 + examples_2dom_2size_8cpp.html | 239 + examples_2dom_2size_8cpp.js | 4 + examples_2dom_2size_8cpp_source.html | 250 + examples_2dom_2spinner_8cpp.html | 239 + examples_2dom_2spinner_8cpp.js | 4 + examples_2dom_2spinner_8cpp_source.html | 264 + examples_2dom_2table_8cpp.html | 239 + examples_2dom_2table_8cpp.js | 4 + examples_2dom_2table_8cpp_source.html | 286 + files.html | 473 + files_dup.js | 8 + flex_8cpp.html | 274 + flex_8cpp.js | 15 + flex_8cpp_source.html | 431 + flexbox_8cpp.html | 314 + flexbox_8cpp.js | 11 + flexbox_8cpp_source.html | 542 + flexbox__config_8cpp.html | 220 + flexbox__config_8cpp_source.html | 283 + flexbox__config_8cppm.html | 220 + flexbox__config_8cppm_source.html | 229 + flexbox__config_8hpp.html | 227 + flexbox__config_8hpp_source.html | 379 + flexbox__gallery_8cpp.html | 239 + flexbox__gallery_8cpp.js | 4 + flexbox__gallery_8cpp_source.html | 459 + flexbox__helper_8cpp.html | 228 + flexbox__helper_8cpp.js | 4 + flexbox__helper_8cpp_source.html | 648 + flexbox__helper_8hpp.html | 238 + flexbox__helper_8hpp.js | 7 + flexbox__helper_8hpp_source.html | 298 + focus__cursor_8cpp.html | 264 + focus__cursor_8cpp.js | 5 + focus__cursor_8cpp_source.html | 263 + folderclosed.svg | 11 + folderclosedd.svg | 11 + folderopen.svg | 17 + folderopend.svg | 12 + frame_8cpp.html | 257 + frame_8cpp.js | 14 + frame_8cpp_source.html | 484 + ftxui.html | 267 + ftxui_8cppm.html | 211 + ftxui_8cppm_source.html | 223 + functions.html | 268 + functions_b.html | 240 + functions_c.html | 316 + functions_d.html | 305 + functions_dup.js | 30 + functions_e.html | 223 + functions_enum.html | 218 + functions_eval.html | 212 + functions_eval.js | 23 + functions_eval_b.html | 220 + functions_eval_c.html | 224 + functions_eval_d.html | 261 + functions_eval_g.html | 252 + functions_eval_h.html | 216 + functions_eval_i.html | 213 + functions_eval_k.html | 211 + functions_eval_l.html | 236 + functions_eval_m.html | 235 + functions_eval_n.html | 213 + functions_eval_o.html | 217 + functions_eval_p.html | 228 + functions_eval_r.html | 218 + functions_eval_s.html | 231 + functions_eval_t.html | 214 + functions_eval_u.html | 211 + functions_eval_v.html | 210 + functions_eval_w.html | 216 + functions_eval_y.html | 217 + functions_f.html | 246 + functions_func.html | 221 + functions_func.js | 24 + functions_func_b.html | 215 + functions_func_c.html | 234 + functions_func_d.html | 243 + functions_func_e.html | 212 + functions_func_f.html | 218 + functions_func_g.html | 216 + functions_func_h.html | 218 + functions_func_i.html | 220 + functions_func_l.html | 211 + functions_func_m.html | 212 + functions_func_n.html | 211 + functions_func_o.html | 220 + functions_func_p.html | 220 + functions_func_r.html | 224 + functions_func_s.html | 245 + functions_func_t.html | 219 + functions_func_u.html | 210 + functions_func_v.html | 211 + functions_func_w.html | 211 + functions_func_~.html | 223 + functions_g.html | 264 + functions_h.html | 236 + functions_i.html | 238 + functions_j.html | 213 + functions_k.html | 213 + functions_l.html | 248 + functions_m.html | 254 + functions_n.html | 220 + functions_o.html | 235 + functions_p.html | 251 + functions_q.html | 211 + functions_r.html | 245 + functions_rela.html | 208 + functions_s.html | 285 + functions_t.html | 233 + functions_type.html | 211 + functions_u.html | 217 + functions_v.html | 216 + functions_vars.html | 251 + functions_vars.js | 29 + functions_vars_b.html | 222 + functions_vars_c.html | 279 + functions_vars_d.html | 222 + functions_vars_e.html | 220 + functions_vars_f.html | 237 + functions_vars_g.html | 214 + functions_vars_h.html | 221 + functions_vars_i.html | 223 + functions_vars_j.html | 212 + functions_vars_k.html | 211 + functions_vars_l.html | 219 + functions_vars_m.html | 224 + functions_vars_n.html | 214 + functions_vars_o.html | 216 + functions_vars_p.html | 218 + functions_vars_q.html | 211 + functions_vars_r.html | 221 + functions_vars_s.html | 225 + functions_vars_t.html | 218 + functions_vars_u.html | 214 + functions_vars_v.html | 212 + functions_vars_w.html | 213 + functions_vars_x.html | 213 + functions_vars_y.html | 213 + functions_vars_z.html | 211 + functions_w.html | 222 + functions_x.html | 213 + functions_y.html | 221 + functions_z.html | 211 + functions_~.html | 223 + gallery_8cpp.html | 264 + gallery_8cpp.js | 5 + gallery_8cpp_source.html | 398 + gauge__direction_8cpp.html | 239 + gauge__direction_8cpp.js | 4 + gauge__direction_8cpp_source.html | 296 + getting-started.html | 268 + getting-started_8md.html | 209 + globals.html | 352 + globals_defs.html | 210 + globals_func.html | 289 + globals_vars.html | 235 + graph_legend.html | 268 + graph_legend.md5 | 1 + graph_legend.png | Bin 0 -> 23370 bytes group__component.html | 12317 ++++++++++++++++ group__component.js | 268 + ...__component_classftxui_1_1ComponentBase.js | 30 + group__component_classftxui_1_1Loop.js | 14 + ...mponent_classftxui_1_1ScreenInteractive.js | 45 + ...nent_structftxui_1_1AnimatedColorOption.js | 9 + ...__component_structftxui_1_1ButtonOption.js | 7 + ...component_structftxui_1_1CheckboxOption.js | 7 + ...component_structftxui_1_1DropdownOption.js | 7 + group__component_structftxui_1_1Event.js | 21 + ...p__component_structftxui_1_1InputOption.js | 12 + ...omponent_structftxui_1_1MenuEntryOption.js | 6 + group__component_structftxui_1_1MenuOption.js | 14 + group__component_structftxui_1_1Mouse.js | 25 + ...component_structftxui_1_1RadioboxOption.js | 8 + ...omponent_structftxui_1_1UnderlineOption.js | 16 + ...ponent_structftxui_1_1WindowRenderState.js | 12 + group__dom.html | 8299 +++++++++++ group__dom.js | 297 + group__dom_classftxui_1_1Node.js | 22 + group__dom_classftxui_1_1Selection.js | 11 + group__dom_classftxui_1_1Table.js | 15 + group__dom_structftxui_1_1Canvas.js | 57 + group__dom_structftxui_1_1FlexboxConfig.js | 51 + group__dom_structftxui_1_1LinearGradient.js | 12 + group__dom_structftxui_1_1Requirement.js | 11 + group__screen.html | 3843 +++++ group__screen.js | 386 + group__screen_classftxui_1_1Color.js | 275 + group__screen_classftxui_1_1Image.js | 17 + group__screen_classftxui_1_1Screen.js | 31 + group__screen_structftxui_1_1Box.js | 12 + group__screen_structftxui_1_1ColorInfo.js | 12 + group__screen_structftxui_1_1Dimensions.js | 5 + group__screen_structftxui_1_1Pixel.js | 17 + hbox_8cpp.html | 227 + hbox_8cpp.js | 4 + hbox_8cpp_source.html | 322 + hflow_8cpp.html | 239 + hflow_8cpp.js | 4 + hflow_8cpp_source.html | 270 + hierarchy.html | 282 + hierarchy.js | 76 + homescreen_8cpp.html | 239 + homescreen_8cpp.js | 4 + homescreen_8cpp_source.html | 830 ++ hoverable_8cpp.html | 242 + hoverable_8cpp.js | 9 + hoverable_8cpp_source.html | 457 + html__like_8cpp.html | 239 + html__like_8cpp.js | 4 + html__like_8cpp_source.html | 277 + hyperlink_8cpp.html | 247 + hyperlink_8cpp.js | 6 + hyperlink_8cpp_source.html | 298 + image_8cpp.html | 220 + image_8cpp_source.html | 296 + image_8cppm.html | 220 + image_8cppm_source.html | 229 + image_8hpp.html | 227 + image_8hpp_source.html | 279 + index.html | 291 + index.js | 6 + inherit_graph_0.map | 3 + inherit_graph_0.md5 | 1 + inherit_graph_0.png | Bin 0 -> 2476 bytes inherit_graph_1.map | 3 + inherit_graph_1.md5 | 1 + inherit_graph_1.png | Bin 0 -> 2671 bytes inherit_graph_10.map | 3 + inherit_graph_10.md5 | 1 + inherit_graph_10.png | Bin 0 -> 2143 bytes inherit_graph_11.map | 3 + inherit_graph_11.md5 | 1 + inherit_graph_11.png | Bin 0 -> 830 bytes inherit_graph_12.map | 3 + inherit_graph_12.md5 | 1 + inherit_graph_12.png | Bin 0 -> 1123 bytes inherit_graph_13.map | 3 + inherit_graph_13.md5 | 1 + inherit_graph_13.png | Bin 0 -> 2060 bytes inherit_graph_14.map | 5 + inherit_graph_14.md5 | 1 + inherit_graph_14.png | Bin 0 -> 3464 bytes inherit_graph_15.map | 3 + inherit_graph_15.md5 | 1 + inherit_graph_15.png | Bin 0 -> 2109 bytes inherit_graph_16.map | 3 + inherit_graph_16.md5 | 1 + inherit_graph_16.png | Bin 0 -> 2367 bytes inherit_graph_17.map | 3 + inherit_graph_17.md5 | 1 + inherit_graph_17.png | Bin 0 -> 3340 bytes inherit_graph_18.map | 3 + inherit_graph_18.md5 | 1 + inherit_graph_18.png | Bin 0 -> 1466 bytes inherit_graph_19.map | 3 + inherit_graph_19.md5 | 1 + inherit_graph_19.png | Bin 0 -> 1973 bytes inherit_graph_2.map | 3 + inherit_graph_2.md5 | 1 + inherit_graph_2.png | Bin 0 -> 1624 bytes inherit_graph_20.map | 3 + inherit_graph_20.md5 | 1 + inherit_graph_20.png | Bin 0 -> 1013 bytes inherit_graph_21.map | 3 + inherit_graph_21.md5 | 1 + inherit_graph_21.png | Bin 0 -> 1547 bytes inherit_graph_22.map | 3 + inherit_graph_22.md5 | 1 + inherit_graph_22.png | Bin 0 -> 1013 bytes inherit_graph_23.map | 3 + inherit_graph_23.md5 | 1 + inherit_graph_23.png | Bin 0 -> 1931 bytes inherit_graph_24.map | 3 + inherit_graph_24.md5 | 1 + inherit_graph_24.png | Bin 0 -> 1169 bytes inherit_graph_25.map | 7 + inherit_graph_25.md5 | 1 + inherit_graph_25.png | Bin 0 -> 4041 bytes inherit_graph_26.map | 3 + inherit_graph_26.md5 | 1 + inherit_graph_26.png | Bin 0 -> 1486 bytes inherit_graph_27.map | 3 + inherit_graph_27.md5 | 1 + inherit_graph_27.png | Bin 0 -> 1540 bytes inherit_graph_28.map | 3 + inherit_graph_28.md5 | 1 + inherit_graph_28.png | Bin 0 -> 689 bytes inherit_graph_29.map | 3 + inherit_graph_29.md5 | 1 + inherit_graph_29.png | Bin 0 -> 1481 bytes inherit_graph_3.map | 3 + inherit_graph_3.md5 | 1 + inherit_graph_3.png | Bin 0 -> 1382 bytes inherit_graph_30.map | 3 + inherit_graph_30.md5 | 1 + inherit_graph_30.png | Bin 0 -> 2267 bytes inherit_graph_31.map | 3 + inherit_graph_31.md5 | 1 + inherit_graph_31.png | Bin 0 -> 742 bytes inherit_graph_32.map | 3 + inherit_graph_32.md5 | 1 + inherit_graph_32.png | Bin 0 -> 2151 bytes inherit_graph_33.map | 3 + inherit_graph_33.md5 | 1 + inherit_graph_33.png | Bin 0 -> 1724 bytes inherit_graph_34.map | 3 + inherit_graph_34.md5 | 1 + inherit_graph_34.png | Bin 0 -> 1263 bytes inherit_graph_35.map | 5 + inherit_graph_35.md5 | 1 + inherit_graph_35.png | Bin 0 -> 2255 bytes inherit_graph_36.map | 3 + inherit_graph_36.md5 | 1 + inherit_graph_36.png | Bin 0 -> 1912 bytes inherit_graph_37.map | 3 + inherit_graph_37.md5 | 1 + inherit_graph_37.png | Bin 0 -> 987 bytes inherit_graph_38.map | 3 + inherit_graph_38.md5 | 1 + inherit_graph_38.png | Bin 0 -> 1825 bytes inherit_graph_39.map | 3 + inherit_graph_39.md5 | 1 + inherit_graph_39.png | Bin 0 -> 823 bytes inherit_graph_4.map | 3 + inherit_graph_4.md5 | 1 + inherit_graph_4.png | Bin 0 -> 1995 bytes inherit_graph_40.map | 3 + inherit_graph_40.md5 | 1 + inherit_graph_40.png | Bin 0 -> 2052 bytes inherit_graph_41.map | 3 + inherit_graph_41.md5 | 1 + inherit_graph_41.png | Bin 0 -> 2031 bytes inherit_graph_42.map | 3 + inherit_graph_42.md5 | 1 + inherit_graph_42.png | Bin 0 -> 1670 bytes inherit_graph_43.map | 3 + inherit_graph_43.md5 | 1 + inherit_graph_43.png | Bin 0 -> 1934 bytes inherit_graph_44.map | 3 + inherit_graph_44.md5 | 1 + inherit_graph_44.png | Bin 0 -> 1525 bytes inherit_graph_45.map | 5 + inherit_graph_45.md5 | 1 + inherit_graph_45.png | Bin 0 -> 3911 bytes inherit_graph_46.map | 3 + inherit_graph_46.md5 | 1 + inherit_graph_46.png | Bin 0 -> 1318 bytes inherit_graph_47.map | 3 + inherit_graph_47.md5 | 1 + inherit_graph_47.png | Bin 0 -> 1520 bytes inherit_graph_48.map | 3 + inherit_graph_48.md5 | 1 + inherit_graph_48.png | Bin 0 -> 2238 bytes inherit_graph_49.map | 3 + inherit_graph_49.md5 | 1 + inherit_graph_49.png | Bin 0 -> 2487 bytes inherit_graph_5.map | 3 + inherit_graph_5.md5 | 1 + inherit_graph_5.png | Bin 0 -> 1078 bytes inherit_graph_50.map | 3 + inherit_graph_50.md5 | 1 + inherit_graph_50.png | Bin 0 -> 1703 bytes inherit_graph_51.map | 3 + inherit_graph_51.md5 | 1 + inherit_graph_51.png | Bin 0 -> 2417 bytes inherit_graph_52.map | 3 + inherit_graph_52.md5 | 1 + inherit_graph_52.png | Bin 0 -> 1478 bytes inherit_graph_53.map | 3 + inherit_graph_53.md5 | 1 + inherit_graph_53.png | Bin 0 -> 1993 bytes inherit_graph_54.map | 3 + inherit_graph_54.md5 | 1 + inherit_graph_54.png | Bin 0 -> 2325 bytes inherit_graph_55.map | 3 + inherit_graph_55.md5 | 1 + inherit_graph_55.png | Bin 0 -> 876 bytes inherit_graph_56.map | 3 + inherit_graph_56.md5 | 1 + inherit_graph_56.png | Bin 0 -> 1672 bytes inherit_graph_57.map | 3 + inherit_graph_57.md5 | 1 + inherit_graph_57.png | Bin 0 -> 1511 bytes inherit_graph_58.map | 3 + inherit_graph_58.md5 | 1 + inherit_graph_58.png | Bin 0 -> 1450 bytes inherit_graph_59.map | 3 + inherit_graph_59.md5 | 1 + inherit_graph_59.png | Bin 0 -> 2009 bytes inherit_graph_6.map | 3 + inherit_graph_6.md5 | 1 + inherit_graph_6.png | Bin 0 -> 875 bytes inherit_graph_60.map | 3 + inherit_graph_60.md5 | 1 + inherit_graph_60.png | Bin 0 -> 1848 bytes inherit_graph_61.map | 3 + inherit_graph_61.md5 | 1 + inherit_graph_61.png | Bin 0 -> 2129 bytes inherit_graph_62.map | 3 + inherit_graph_62.md5 | 1 + inherit_graph_62.png | Bin 0 -> 2245 bytes inherit_graph_7.map | 3 + inherit_graph_7.md5 | 1 + inherit_graph_7.png | Bin 0 -> 1559 bytes inherit_graph_8.map | 3 + inherit_graph_8.md5 | 1 + inherit_graph_8.png | Bin 0 -> 1232 bytes inherit_graph_9.map | 3 + inherit_graph_9.md5 | 1 + inherit_graph_9.png | Bin 0 -> 2689 bytes inherits.html | 537 + input__in__frame_8cpp.html | 239 + input__in__frame_8cpp.js | 4 + input__in__frame_8cpp_source.html | 249 + input__style_8cpp.html | 239 + input__style_8cpp.js | 4 + input__style_8cpp_source.html | 321 + installation.html | 271 + installation.js | 29 + installation_8md.html | 209 + installation__arch_8md.html | 209 + installation__bazel_8md.html | 209 + installation__cmake_8md.html | 209 + installation__conan_8md.html | 209 + installation__debian_8md.html | 209 + installation__manual_8md.html | 209 + installation__nix_8md.html | 209 + installation__opensuse_8md.html | 209 + installation__vcpkg_8md.html | 209 + installation__xmake_8md.html | 209 + installation_arch.html | 228 + installation_bazel.html | 234 + installation_cmake.html | 316 + installation_conan.html | 220 + installation_debian.html | 237 + installation_manual.html | 243 + installation_nix.html | 231 + installation_opensuse.html | 225 + installation_vcpkg.html | 281 + installation_xmake.html | 242 + introduction_8md.html | 209 + inverted_8cpp.html | 227 + inverted_8cpp.js | 4 + inverted_8cpp_source.html | 260 + italic_8cpp.html | 227 + italic_8cpp.js | 4 + italic_8cpp_source.html | 258 + jquery.js | 204 + linear__gradient_8cppm.html | 220 + linear__gradient_8cppm_source.html | 229 + linear__gradient_8hpp.html | 229 + linear__gradient_8hpp.js | 4 + linear__gradient_8hpp_source.html | 283 + linear__gradient__gallery_8cpp.html | 239 + linear__gradient__gallery_8cpp.js | 4 + linear__gradient__gallery_8cpp_source.html | 277 + loop_8cpp.html | 220 + loop_8cpp_source.html | 287 + loop_8cppm.html | 220 + loop_8cppm_source.html | 236 + loop_8hpp.html | 227 + loop_8hpp_source.html | 307 + menu.js | 134 + menu2_8cpp.html | 239 + menu2_8cpp.js | 4 + menu2_8cpp_source.html | 300 + menu__entries_8cpp.html | 260 + menu__entries_8cpp.js | 5 + menu__entries_8cpp_source.html | 331 + menu__entries__animated_8cpp.html | 260 + menu__entries__animated_8cpp.js | 5 + menu__entries__animated_8cpp_source.html | 314 + menu__in__frame_8cpp.html | 239 + menu__in__frame_8cpp.js | 4 + menu__in__frame_8cpp_source.html | 258 + menu__in__frame__horizontal_8cpp.html | 239 + menu__in__frame__horizontal_8cpp.js | 4 + menu__in__frame__horizontal_8cpp_source.html | 254 + menu__multiple_8cpp.html | 264 + menu__multiple_8cpp.js | 5 + menu__multiple_8cpp_source.html | 309 + menu__style_8cpp.html | 564 + menu__style_8cpp.js | 17 + menu__style_8cpp_source.html | 558 + menu__underline__animated__gallery_8cpp.html | 281 + menu__underline__animated__gallery_8cpp.js | 6 + ...erline__animated__gallery_8cpp_source.html | 333 + menudata.js | 173 + minus.svg | 8 + minusd.svg | 8 + modal_8cpp.html | 228 + modal_8cpp.js | 5 + modal_8cpp_source.html | 290 + modal__dialog_8cpp.html | 316 + modal__dialog_8cpp.js | 7 + modal__dialog_8cpp_source.html | 324 + modal__dialog__custom_8cpp.html | 239 + modal__dialog__custom_8cpp.js | 4 + modal__dialog__custom_8cpp_source.html | 312 + module-component-examples.html | 210 + module-component.html | 627 + module-component.js | 24 + module-component_8md.html | 209 + module-dom-examples.html | 210 + module-dom.html | 866 ++ module-dom.js | 22 + module-dom_8md.html | 209 + module-screen.html | 380 + module-screen_8md.html | 209 + module_8md.html | 209 + module__ftxui.html | 236 + module__ftxui_8component.html | 257 + module__ftxui_8component_8animation.html | 221 + ...le__ftxui_8component_8captured__mouse.html | 221 + module__ftxui_8component_8component.html | 221 + ...le__ftxui_8component_8component__base.html | 221 + ..._ftxui_8component_8component__options.html | 221 + module__ftxui_8component_8event.html | 221 + module__ftxui_8component_8loop.html | 221 + module__ftxui_8component_8mouse.html | 221 + module__ftxui_8component_8receiver.html | 221 + ...ftxui_8component_8screen__interactive.html | 221 + module__ftxui_8component_8task.html | 221 + module__ftxui_8dom.html | 254 + module__ftxui_8dom_8canvas.html | 221 + module__ftxui_8dom_8deprecated.html | 221 + module__ftxui_8dom_8direction.html | 221 + module__ftxui_8dom_8elements.html | 221 + module__ftxui_8dom_8flexbox__config.html | 221 + module__ftxui_8dom_8linear__gradient.html | 221 + module__ftxui_8dom_8node.html | 221 + module__ftxui_8dom_8requirement.html | 221 + module__ftxui_8dom_8selection.html | 221 + module__ftxui_8dom_8table.html | 221 + module__ftxui_8screen.html | 251 + module__ftxui_8screen_8box.html | 221 + module__ftxui_8screen_8color.html | 221 + module__ftxui_8screen_8color__info.html | 221 + module__ftxui_8screen_8deprecated.html | 221 + module__ftxui_8screen_8image.html | 221 + module__ftxui_8screen_8pixel.html | 221 + module__ftxui_8screen_8screen.html | 221 + module__ftxui_8screen_8string.html | 221 + module__ftxui_8screen_8terminal.html | 221 + module__ftxui_8util.html | 230 + module__ftxui_8util_8autoreset.html | 221 + module__ftxui_8util_8ref.html | 221 + modules.html | 249 + modules_dup.js | 40 + mouse_8cppm.html | 220 + mouse_8cppm_source.html | 229 + mouse_8hpp.html | 227 + mouse_8hpp_source.html | 284 + namespaceeasing.html | 214 + namespaceftxui.html | 3154 ++++ namespaceftxui_1_1Container.html | 233 + namespaceftxui_1_1Dimension.html | 282 + namespaceftxui_1_1Terminal.html | 271 + namespaceftxui_1_1animation.html | 296 + namespaceftxui_1_1animation_1_1easing.html | 896 ++ namespaceftxui_1_1box__helper.html | 247 + namespaceftxui_1_1flexbox__helper.html | 247 + namespaceftxui_1_1literals.html | 240 + namespaceftxui_1_1task.html | 247 + namespaceftxui_1_1util.html | 257 + namespacemembers.html | 211 + namespacemembers_b.html | 229 + namespacemembers_c.html | 235 + namespacemembers_d.html | 217 + namespacemembers_dup.js | 26 + namespacemembers_e.html | 222 + namespacemembers_enum.html | 213 + namespacemembers_eval.html | 222 + namespacemembers_f.html | 228 + namespacemembers_func.html | 211 + namespacemembers_func.js | 26 + namespacemembers_func_b.html | 228 + namespacemembers_func_c.html | 227 + namespacemembers_func_d.html | 212 + namespacemembers_func_e.html | 217 + namespacemembers_func_f.html | 227 + namespacemembers_func_g.html | 223 + namespacemembers_func_h.html | 216 + namespacemembers_func_i.html | 216 + namespacemembers_func_l.html | 210 + namespacemembers_func_m.html | 215 + namespacemembers_func_n.html | 211 + namespacemembers_func_o.html | 212 + namespacemembers_func_p.html | 214 + namespacemembers_func_q.html | 218 + namespacemembers_func_r.html | 219 + namespacemembers_func_s.html | 237 + namespacemembers_func_t.html | 214 + namespacemembers_func_u.html | 213 + namespacemembers_func_v.html | 215 + namespacemembers_func_w.html | 213 + namespacemembers_func_x.html | 213 + namespacemembers_func_y.html | 213 + namespacemembers_g.html | 226 + namespacemembers_h.html | 218 + namespacemembers_i.html | 216 + namespacemembers_l.html | 212 + namespacemembers_m.html | 215 + namespacemembers_n.html | 211 + namespacemembers_o.html | 212 + namespacemembers_p.html | 218 + namespacemembers_q.html | 218 + namespacemembers_r.html | 221 + namespacemembers_s.html | 238 + namespacemembers_t.html | 217 + namespacemembers_type.html | 224 + namespacemembers_u.html | 213 + namespacemembers_v.html | 215 + namespacemembers_vars.html | 209 + namespacemembers_w.html | 216 + namespacemembers_x.html | 213 + namespacemembers_y.html | 213 + nav_f.png | Bin 0 -> 150 bytes nav_fd.png | Bin 0 -> 145 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes nav_hd.png | Bin 0 -> 111 bytes navtree.css | 149 + navtree.js | 483 + navtreedata.js | 102 + navtreeindex0.js | 253 + navtreeindex1.js | 253 + navtreeindex2.js | 253 + navtreeindex3.js | 253 + navtreeindex4.js | 253 + navtreeindex5.js | 253 + navtreeindex6.js | 253 + navtreeindex7.js | 253 + navtreeindex8.js | 253 + navtreeindex9.js | 66 + nested__screen_8cpp.html | 260 + nested__screen_8cpp.js | 5 + nested__screen_8cpp_source.html | 279 + node_8cpp.html | 234 + node_8cpp.js | 7 + node_8cpp_source.html | 476 + node_8cppm.html | 220 + node_8cppm_source.html | 239 + node_8hpp.html | 243 + node_8hpp.js | 8 + node_8hpp_source.html | 339 + node__decorator_8cpp.html | 220 + node__decorator_8cpp_source.html | 247 + node__decorator_8hpp.html | 226 + node__decorator_8hpp.js | 4 + node__decorator_8hpp_source.html | 246 + open.png | Bin 0 -> 123 bytes package__manager_8cpp.html | 239 + package__manager_8cpp.js | 4 + package__manager_8cpp_source.html | 368 + pages.html | 232 + pixel_8cppm.html | 220 + pixel_8cppm_source.html | 229 + pixel_8hpp.html | 227 + pixel_8hpp_source.html | 285 + plus.svg | 9 + plusd.svg | 9 + print__key__press_8cpp.html | 260 + print__key__press_8cpp.js | 5 + print__key__press_8cpp_source.html | 299 + radiobox__in__frame_8cpp.html | 239 + radiobox__in__frame_8cpp.js | 4 + radiobox__in__frame_8cpp_source.html | 258 + receiver_8cppm.html | 220 + receiver_8cppm_source.html | 242 + receiver_8hpp.html | 245 + receiver_8hpp.js | 8 + receiver_8hpp_source.html | 402 + ref_8cppm.html | 220 + ref_8cppm_source.html | 237 + ref_8hpp.html | 241 + ref_8hpp.js | 9 + ref_8hpp_source.html | 516 + reflect_8cpp.html | 226 + reflect_8cpp.js | 4 + reflect_8cpp_source.html | 275 + requirement_8cppm.html | 220 + requirement_8cppm_source.html | 229 + requirement_8hpp.html | 229 + requirement_8hpp.js | 4 + requirement_8hpp_source.html | 293 + resize.js | 147 + screen_2color_8cpp.html | 229 + screen_2color_8cpp.js | 4 + screen_2color_8cpp_source.html | 552 + screen_2deprecated_8cppm.html | 220 + screen_2deprecated_8cppm_source.html | 229 + screen_2deprecated_8hpp.html | 228 + screen_2deprecated_8hpp.js | 5 + screen_2deprecated_8hpp_source.html | 226 + screen_2screen_8cppm.html | 223 + screen_2screen_8cppm_source.html | 236 + screen_8cpp.html | 350 + screen_8cpp.js | 10 + screen_8cpp_source.html | 842 ++ screen_8cppm.html | 211 + screen_8cppm_source.html | 233 + screen_8hpp.html | 240 + screen_8hpp.js | 6 + screen_8hpp_source.html | 348 + screen__interactive_8cpp.html | 230 + screen__interactive_8cpp.js | 4 + screen__interactive_8cpp_source.html | 1476 ++ screen__interactive_8cppm.html | 220 + screen__interactive_8cppm_source.html | 241 + screen__interactive_8hpp.html | 231 + screen__interactive_8hpp.js | 4 + screen__interactive_8hpp_source.html | 439 + scroll__indicator_8cpp.html | 230 + scroll__indicator_8cpp.js | 5 + scroll__indicator_8cpp_source.html | 365 + scrollbar_8cpp.html | 260 + scrollbar_8cpp.js | 5 + scrollbar_8cpp_source.html | 359 + search/all_0.js | 4 + search/all_1.js | 79 + search/all_10.js | 64 + search/all_11.js | 14 + search/all_12.js | 75 + search/all_13.js | 185 + search/all_14.js | 62 + search/all_15.js | 28 + search/all_16.js | 30 + search/all_17.js | 29 + search/all_18.js | 14 + search/all_19.js | 21 + search/all_1a.js | 6 + search/all_1b.js | 17 + search/all_2.js | 70 + search/all_3.js | 197 + search/all_4.js | 126 + search/all_5.js | 69 + search/all_6.js | 140 + search/all_7.js | 82 + search/all_8.js | 49 + search/all_9.js | 65 + search/all_a.js | 7 + search/all_b.js | 8 + search/all_c.js | 62 + search/all_d.js | 86 + search/all_e.js | 31 + search/all_f.js | 40 + search/classes_0.js | 9 + search/classes_1.js | 6 + search/classes_10.js | 5 + search/classes_2.js | 14 + search/classes_3.js | 5 + search/classes_4.js | 6 + search/classes_5.js | 5 + search/classes_6.js | 4 + search/classes_7.js | 6 + search/classes_8.js | 6 + search/classes_9.js | 6 + search/classes_a.js | 5 + search/classes_b.js | 7 + search/classes_c.js | 12 + search/classes_d.js | 11 + search/classes_e.js | 8 + search/classes_f.js | 4 + search/close.svg | 18 + search/defines_0.js | 5 + search/defines_1.js | 4 + search/enums_0.js | 5 + search/enums_1.js | 5 + search/enums_2.js | 5 + search/enums_3.js | 4 + search/enums_4.js | 4 + search/enums_5.js | 4 + search/enums_6.js | 6 + search/enums_7.js | 4 + search/enums_8.js | 6 + search/enumvalues_0.js | 7 + search/enumvalues_1.js | 14 + search/enumvalues_10.js | 30 + search/enumvalues_11.js | 9 + search/enumvalues_12.js | 6 + search/enumvalues_13.js | 4 + search/enumvalues_14.js | 14 + search/enumvalues_15.js | 11 + search/enumvalues_16.js | 4 + search/enumvalues_2.js | 22 + search/enumvalues_3.js | 59 + search/enumvalues_4.js | 7 + search/enumvalues_5.js | 6 + search/enumvalues_6.js | 47 + search/enumvalues_7.js | 13 + search/enumvalues_8.js | 7 + search/enumvalues_9.js | 6 + search/enumvalues_a.js | 33 + search/enumvalues_b.js | 32 + search/enumvalues_c.js | 10 + search/enumvalues_d.js | 11 + search/enumvalues_e.js | 25 + search/enumvalues_f.js | 16 + search/files_0.js | 9 + search/files_1.js | 15 + search/files_10.js | 7 + search/files_11.js | 6 + search/files_12.js | 5 + search/files_2.js | 38 + search/files_3.js | 13 + search/files_4.js | 34 + search/files_5.js | 14 + search/files_6.js | 6 + search/files_7.js | 9 + search/files_8.js | 22 + search/files_9.js | 9 + search/files_a.js | 20 + search/files_b.js | 9 + search/files_c.js | 7 + search/files_d.js | 11 + search/files_e.js | 63 + search/files_f.js | 24 + search/functions_0.js | 17 + search/functions_1.js | 28 + search/functions_10.js | 66 + search/functions_11.js | 19 + search/functions_12.js | 8 + search/functions_13.js | 18 + search/functions_14.js | 10 + search/functions_15.js | 7 + search/functions_16.js | 7 + search/functions_17.js | 17 + search/functions_2.js | 51 + search/functions_3.js | 42 + search/functions_4.js | 15 + search/functions_5.js | 30 + search/functions_6.js | 24 + search/functions_7.js | 23 + search/functions_8.js | 23 + search/functions_9.js | 8 + search/functions_a.js | 17 + search/functions_b.js | 8 + search/functions_c.js | 17 + search/functions_d.js | 19 + search/functions_e.js | 12 + search/functions_f.js | 26 + search/groups_0.js | 4 + search/groups_1.js | 4 + search/groups_2.js | 6 + search/groups_3.js | 4 + search/mag.svg | 24 + search/mag_d.svg | 24 + search/mag_sel.svg | 31 + search/mag_seld.svg | 31 + search/modules_0.js | 40 + search/namespaces_0.js | 4 + search/namespaces_1.js | 14 + search/pages_0.js | 4 + search/pages_1.js | 4 + search/pages_10.js | 4 + search/pages_11.js | 4 + search/pages_2.js | 4 + search/pages_3.js | 7 + search/pages_4.js | 5 + search/pages_5.js | 4 + search/pages_6.js | 7 + search/pages_7.js | 4 + search/pages_8.js | 5 + search/pages_9.js | 5 + search/pages_a.js | 5 + search/pages_b.js | 4 + search/pages_c.js | 4 + search/pages_d.js | 5 + search/pages_e.js | 4 + search/pages_f.js | 4 + search/related_0.js | 4 + search/search.css | 291 + search/search.js | 694 + search/searchdata.js | 54 + search/typedefs_0.js | 9 + search/typedefs_1.js | 5 + search/typedefs_2.js | 6 + search/typedefs_3.js | 4 + search/typedefs_4.js | 4 + search/typedefs_5.js | 4 + search/typedefs_6.js | 4 + search/typedefs_7.js | 6 + search/typedefs_8.js | 5 + search/typedefs_9.js | 4 + search/variables_0.js | 46 + search/variables_1.js | 17 + search/variables_10.js | 5 + search/variables_11.js | 21 + search/variables_12.js | 20 + search/variables_13.js | 12 + search/variables_14.js | 8 + search/variables_15.js | 7 + search/variables_16.js | 7 + search/variables_17.js | 8 + search/variables_18.js | 8 + search/variables_19.js | 5 + search/variables_2.js | 78 + search/variables_3.js | 17 + search/variables_4.js | 14 + search/variables_5.js | 33 + search/variables_6.js | 10 + search/variables_7.js | 15 + search/variables_8.js | 17 + search/variables_9.js | 6 + search/variables_a.js | 5 + search/variables_b.js | 15 + search/variables_c.js | 18 + search/variables_d.js | 9 + search/variables_e.js | 10 + search/variables_f.js | 14 + selection_8cppm.html | 220 + selection_8cppm_source.html | 229 + selection_8hpp.html | 227 + selection_8hpp_source.html | 280 + selection__style_8cpp.html | 256 + selection__style_8cpp.js | 9 + selection__style_8cpp_source.html | 331 + separator__style_8cpp.html | 239 + separator__style_8cpp.js | 4 + separator__style_8cpp_source.html | 263 + slider__direction_8cpp.html | 239 + slider__direction_8cpp.js | 4 + slider__direction_8cpp_source.html | 281 + slider__rgb_8cpp.html | 299 + slider__rgb_8cpp.js | 6 + slider__rgb_8cpp_source.html | 303 + splitbar.png | Bin 0 -> 316 bytes splitbard.png | Bin 0 -> 281 bytes src_2ftxui_2component_2button_8cpp.html | 230 + src_2ftxui_2component_2button_8cpp.js | 5 + ...2ftxui_2component_2button_8cpp_source.html | 458 + src_2ftxui_2component_2checkbox_8cpp.html | 230 + src_2ftxui_2component_2checkbox_8cpp.js | 5 + ...txui_2component_2checkbox_8cpp_source.html | 378 + src_2ftxui_2component_2collapsible_8cpp.html | 227 + src_2ftxui_2component_2collapsible_8cpp.js | 4 + ...i_2component_2collapsible_8cpp_source.html | 286 + src_2ftxui_2component_2dropdown_8cpp.html | 230 + src_2ftxui_2component_2dropdown_8cpp.js | 5 + ...txui_2component_2dropdown_8cpp_source.html | 380 + src_2ftxui_2component_2input_8cpp.html | 233 + src_2ftxui_2component_2input_8cpp.js | 6 + src_2ftxui_2component_2input_8cpp_source.html | 918 ++ src_2ftxui_2component_2maybe_8cpp.html | 236 + src_2ftxui_2component_2maybe_8cpp.js | 7 + src_2ftxui_2component_2maybe_8cpp_source.html | 322 + src_2ftxui_2component_2menu_8cpp.html | 239 + src_2ftxui_2component_2menu_8cpp.js | 8 + src_2ftxui_2component_2menu_8cpp_source.html | 1046 ++ src_2ftxui_2component_2radiobox_8cpp.html | 230 + src_2ftxui_2component_2radiobox_8cpp.js | 5 + ...txui_2component_2radiobox_8cpp_source.html | 497 + src_2ftxui_2component_2renderer_8cpp.html | 236 + src_2ftxui_2component_2renderer_8cpp.js | 7 + ...txui_2component_2renderer_8cpp_source.html | 371 + ...xui_2component_2resizable__split_8cpp.html | 239 + ...ftxui_2component_2resizable__split_8cpp.js | 8 + ...mponent_2resizable__split_8cpp_source.html | 586 + src_2ftxui_2component_2slider_8cpp.html | 255 + src_2ftxui_2component_2slider_8cpp.js | 17 + ...2ftxui_2component_2slider_8cpp_source.html | 603 + src_2ftxui_2component_2window_8cpp.html | 331 + src_2ftxui_2component_2window_8cpp.js | 10 + ...2ftxui_2component_2window_8cpp_source.html | 573 + src_2ftxui_2dom_2border_8cpp.html | 293 + src_2ftxui_2dom_2border_8cpp.js | 17 + src_2ftxui_2dom_2border_8cpp_source.html | 779 + src_2ftxui_2dom_2canvas_8cpp.html | 233 + src_2ftxui_2dom_2canvas_8cpp.js | 6 + src_2ftxui_2dom_2canvas_8cpp_source.html | 1315 ++ src_2ftxui_2dom_2dbox_8cpp.html | 227 + src_2ftxui_2dom_2dbox_8cpp.js | 4 + src_2ftxui_2dom_2dbox_8cpp_source.html | 280 + src_2ftxui_2dom_2focus_8cpp.html | 230 + src_2ftxui_2dom_2focus_8cpp.js | 5 + src_2ftxui_2dom_2focus_8cpp_source.html | 324 + src_2ftxui_2dom_2gauge_8cpp.html | 242 + src_2ftxui_2dom_2gauge_8cpp.js | 9 + src_2ftxui_2dom_2gauge_8cpp_source.html | 538 + src_2ftxui_2dom_2graph_8cpp.html | 227 + src_2ftxui_2dom_2graph_8cpp.js | 4 + src_2ftxui_2dom_2graph_8cpp_source.html | 296 + src_2ftxui_2dom_2gridbox_8cpp.html | 276 + src_2ftxui_2dom_2gridbox_8cpp.js | 7 + src_2ftxui_2dom_2gridbox_8cpp_source.html | 399 + src_2ftxui_2dom_2linear__gradient_8cpp.html | 285 + src_2ftxui_2dom_2linear__gradient_8cpp.js | 10 + ...ui_2dom_2linear__gradient_8cpp_source.html | 549 + src_2ftxui_2dom_2paragraph_8cpp.html | 239 + src_2ftxui_2dom_2paragraph_8cpp.js | 8 + src_2ftxui_2dom_2paragraph_8cpp_source.html | 333 + src_2ftxui_2dom_2selection_8cpp.html | 220 + src_2ftxui_2dom_2selection_8cpp_source.html | 410 + src_2ftxui_2dom_2separator_8cpp.html | 290 + src_2ftxui_2dom_2separator_8cpp.js | 16 + src_2ftxui_2dom_2separator_8cpp_source.html | 840 ++ src_2ftxui_2dom_2size_8cpp.html | 227 + src_2ftxui_2dom_2size_8cpp.js | 4 + src_2ftxui_2dom_2size_8cpp_source.html | 323 + src_2ftxui_2dom_2spinner_8cpp.html | 227 + src_2ftxui_2dom_2spinner_8cpp.js | 4 + src_2ftxui_2dom_2spinner_8cpp_source.html | 519 + src_2ftxui_2dom_2table_8cpp.html | 220 + src_2ftxui_2dom_2table_8cpp_source.html | 740 + strikethrough_8cpp.html | 227 + strikethrough_8cpp.js | 4 + strikethrough_8cpp_source.html | 258 + string_8cpp.html | 262 + string_8cpp.js | 21 + string_8cpp_source.html | 1938 +++ string_8cppm.html | 220 + string_8cppm_source.html | 232 + string_8hpp.html | 239 + string_8hpp.js | 9 + string_8hpp_source.html | 248 + string__internal_8hpp.html | 291 + string__internal_8hpp.js | 35 + string__internal_8hpp_source.html | 309 + ...ftxui_1_1AnimatedColorsOption-members.html | 213 + structftxui_1_1AnimatedColorsOption.html | 261 + structftxui_1_1AnimatedColorsOption.js | 5 + structftxui_1_1EntryState-members.html | 216 + structftxui_1_1EntryState.html | 334 + structftxui_1_1EntryState.js | 8 + structftxui_1_1InputState-members.html | 215 + structftxui_1_1InputState.html | 308 + structftxui_1_1InputState.js | 7 + ...xui_1_1LinearGradient_1_1Stop-members.html | 213 + structftxui_1_1LinearGradient_1_1Stop.html | 262 + structftxui_1_1LinearGradient_1_1Stop.js | 5 + structftxui_1_1Node_1_1Status-members.html | 213 + structftxui_1_1Node_1_1Status.html | 261 + structftxui_1_1Node_1_1Status.js | 5 + ...xui_1_1Requirement_1_1Focused-members.html | 217 + structftxui_1_1Requirement_1_1Focused.html | 349 + structftxui_1_1Requirement_1_1Focused.js | 9 + ...ftxui_1_1ResizableSplitOption-members.html | 216 + structftxui_1_1ResizableSplitOption.html | 321 + structftxui_1_1ResizableSplitOption.js | 8 + structftxui_1_1Screen_1_1Cursor-members.html | 222 + structftxui_1_1Screen_1_1Cursor.html | 326 + structftxui_1_1Screen_1_1Cursor.js | 15 + structftxui_1_1SliderOption-members.html | 219 + structftxui_1_1SliderOption.html | 386 + structftxui_1_1SliderOption.js | 11 + structftxui_1_1WindowOptions-members.html | 222 + structftxui_1_1WindowOptions.html | 456 + structftxui_1_1WindowOptions.js | 14 + ...xui_1_1box__helper_1_1Element-members.html | 215 + structftxui_1_1box__helper_1_1Element.html | 297 + structftxui_1_1box__helper_1_1Element.js | 7 + ...i_1_1flexbox__helper_1_1Block-members.html | 224 + structftxui_1_1flexbox__helper_1_1Block.html | 459 + structftxui_1_1flexbox__helper_1_1Block.js | 16 + ..._1_1flexbox__helper_1_1Global-members.html | 216 + structftxui_1_1flexbox__helper_1_1Global.html | 315 + structftxui_1_1flexbox__helper_1_1Global.js | 8 + ...ui_1_1flexbox__helper_1_1Line-members.html | 216 + structftxui_1_1flexbox__helper_1_1Line.html | 315 + structftxui_1_1flexbox__helper_1_1Line.js | 8 + ...tftxui_1_1task_1_1PendingTask-members.html | 216 + structftxui_1_1task_1_1PendingTask.html | 357 + structftxui_1_1task_1_1PendingTask.js | 8 + structftxui_1_1task_1_1TaskQueue-members.html | 215 + structftxui_1_1task_1_1TaskQueue.html | 327 + structftxui_1_1task_1_1TaskQueue.js | 7 + style__blink_8cpp.html | 239 + style__blink_8cpp.js | 4 + style__blink_8cpp_source.html | 241 + style__bold_8cpp.html | 239 + style__bold_8cpp.js | 4 + style__bold_8cpp_source.html | 241 + style__color_8cpp.html | 239 + style__color_8cpp.js | 4 + style__color_8cpp_source.html | 286 + style__dim_8cpp.html | 239 + style__dim_8cpp.js | 4 + style__dim_8cpp_source.html | 241 + style__gallery_8cpp.html | 239 + style__gallery_8cpp.js | 4 + style__gallery_8cpp_source.html | 252 + style__hyperlink_8cpp.html | 239 + style__hyperlink_8cpp.js | 4 + style__hyperlink_8cpp_source.html | 241 + style__inverted_8cpp.html | 239 + style__inverted_8cpp.js | 4 + style__inverted_8cpp_source.html | 240 + style__italic_8cpp.html | 239 + style__italic_8cpp.js | 4 + style__italic_8cpp_source.html | 240 + style__strikethrough_8cpp.html | 239 + style__strikethrough_8cpp.js | 4 + style__strikethrough_8cpp_source.html | 241 + style__underlined_8cpp.html | 239 + style__underlined_8cpp.js | 4 + style__underlined_8cpp_source.html | 241 + style__underlined__double_8cpp.html | 239 + style__underlined__double_8cpp.js | 4 + style__underlined__double_8cpp_source.html | 241 + stylesheet.css | 119 + svg.min.js | 46 + sync_off.png | Bin 0 -> 845 bytes sync_on.png | Bin 0 -> 834 bytes tab__horizontal_8cpp.html | 239 + tab__horizontal_8cpp.js | 4 + tab__horizontal_8cpp_source.html | 297 + tab__vertical_8cpp.html | 239 + tab__vertical_8cpp.js | 4 + tab__vertical_8cpp_source.html | 297 + tab_a.png | Bin 0 -> 142 bytes tab_ad.png | Bin 0 -> 131 bytes tab_b.png | Bin 0 -> 178 bytes tab_bd.png | Bin 0 -> 160 bytes tab_h.png | Bin 0 -> 174 bytes tab_hd.png | Bin 0 -> 170 bytes tab_s.png | Bin 0 -> 188 bytes tab_sd.png | Bin 0 -> 175 bytes table_8cppm.html | 220 + table_8cppm_source.html | 231 + table_8hpp.html | 229 + table_8hpp.js | 4 + table_8hpp_source.html | 339 + tabs.css | 1 + task_8cpp.html | 222 + task_8cpp_source.html | 235 + task_8cppm.html | 220 + task_8cppm_source.html | 233 + task_8hpp.html | 234 + task_8hpp.js | 6 + task_8hpp_source.html | 231 + task__internal_8hpp.html | 235 + task__internal_8hpp.js | 5 + task__internal_8hpp_source.html | 261 + task__queue_8cpp.html | 222 + task__queue_8cpp_source.html | 272 + task__queue_8hpp.html | 228 + task__queue_8hpp.js | 4 + task__queue_8hpp_source.html | 256 + task__runner_8cpp.html | 222 + task__runner_8cpp_source.html | 310 + task__runner_8hpp.html | 228 + task__runner_8hpp.js | 4 + task__runner_8hpp_source.html | 273 + terminal_8cpp.html | 238 + terminal_8cpp.js | 7 + terminal_8cpp_source.html | 375 + terminal_8cppm.html | 222 + terminal_8cppm_source.html | 238 + terminal_8hpp.html | 261 + terminal_8hpp.js | 13 + terminal_8hpp_source.html | 265 + terminal__input__parser_8cpp.html | 226 + terminal__input__parser_8cpp.js | 4 + terminal__input__parser_8cpp_source.html | 696 + terminal__input__parser_8hpp.html | 226 + terminal__input__parser_8hpp.js | 4 + terminal__input__parser_8hpp_source.html | 291 + ...nal__input__parser__test__fuzzer_8cpp.html | 243 + terminal__input__parser__test__fuzzer_8cpp.js | 4 + ...put__parser__test__fuzzer_8cpp_source.html | 233 + text_8cpp.html | 236 + text_8cpp.js | 7 + text_8cpp_source.html | 460 + textarea_8cpp.html | 239 + textarea_8cpp.js | 4 + textarea_8cpp_source.html | 252 + todo.html | 215 + toggle_8cpp.html | 239 + toggle_8cpp.js | 4 + toggle_8cpp_source.html | 291 + topics.html | 215 + topics.js | 6 + underlined_8cpp.html | 227 + underlined_8cpp.js | 4 + underlined_8cpp_source.html | 259 + underlined__double_8cpp.html | 227 + underlined__double_8cpp.js | 4 + underlined__double_8cpp_source.html | 258 + util_8cppm.html | 211 + util_8cppm_source.html | 219 + util_8hpp.html | 229 + util_8hpp.js | 4 + util_8hpp_source.html | 232 + vbox_8cpp.html | 227 + vbox_8cpp.js | 4 + vbox_8cpp_source.html | 324 + vbox__hbox_8cpp.html | 239 + vbox__hbox_8cpp.js | 4 + vbox__hbox_8cpp_source.html | 257 + vflow_8cpp.html | 239 + vflow_8cpp.js | 4 + vflow_8cpp_source.html | 267 + warn__windows__macro_8hpp.html | 211 + warn__windows__macro_8hpp_source.html | 227 + with__restored__io_8cpp.html | 239 + with__restored__io_8cpp.js | 4 + with__restored__io_8cpp_source.html | 278 + 1896 files changed, 282506 insertions(+) create mode 100644 .nojekyll create mode 100644 animation_8cpp.html create mode 100644 animation_8cpp.js create mode 100644 animation_8cpp_source.html create mode 100644 animation_8cppm.html create mode 100644 animation_8cppm_source.html create mode 100644 animation_8hpp.html create mode 100644 animation_8hpp.js create mode 100644 animation_8hpp_source.html create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 automerge_8cpp.html create mode 100644 automerge_8cpp.js create mode 100644 automerge_8cpp_source.html create mode 100644 autoreset_8cppm.html create mode 100644 autoreset_8cppm_source.html create mode 100644 autoreset_8hpp.html create mode 100644 autoreset_8hpp.js create mode 100644 autoreset_8hpp_source.html create mode 100644 bc_s.png create mode 100644 bc_sd.png create mode 100644 blink_8cpp.html create mode 100644 blink_8cpp.js create mode 100644 blink_8cpp_source.html create mode 100644 bold_8cpp.html create mode 100644 bold_8cpp.js create mode 100644 bold_8cpp_source.html create mode 100644 border__colored_8cpp.html create mode 100644 border__colored_8cpp.js create mode 100644 border__colored_8cpp_source.html create mode 100644 border__style_8cpp.html create mode 100644 border__style_8cpp.js create mode 100644 border__style_8cpp_source.html create mode 100644 box_8cpp.html create mode 100644 box_8cpp_source.html create mode 100644 box_8cppm.html create mode 100644 box_8cppm_source.html create mode 100644 box_8hpp.html create mode 100644 box_8hpp_source.html create mode 100644 box__helper_8cpp.html create mode 100644 box__helper_8cpp.js create mode 100644 box__helper_8cpp_source.html create mode 100644 box__helper_8hpp.html create mode 100644 box__helper_8hpp.js create mode 100644 box__helper_8hpp_source.html create mode 100644 button__animated_8cpp.html create mode 100644 button__animated_8cpp.js create mode 100644 button__animated_8cpp_source.html create mode 100644 button__in__frame_8cpp.html create mode 100644 button__in__frame_8cpp.js create mode 100644 button__in__frame_8cpp_source.html create mode 100644 button__style_8cpp.html create mode 100644 button__style_8cpp.js create mode 100644 button__style_8cpp_source.html create mode 100644 canvas_8cppm.html create mode 100644 canvas_8cppm_source.html create mode 100644 canvas_8hpp.html create mode 100644 canvas_8hpp_source.html create mode 100644 canvas__animated_8cpp.html create mode 100644 canvas__animated_8cpp.js create mode 100644 canvas__animated_8cpp_source.html create mode 100644 captured__mouse_8cppm.html create mode 100644 captured__mouse_8cppm_source.html create mode 100644 captured__mouse_8hpp.html create mode 100644 captured__mouse_8hpp.js create mode 100644 captured__mouse_8hpp_source.html create mode 100644 catch__event_8cpp.html create mode 100644 catch__event_8cpp.js create mode 100644 catch__event_8cpp_source.html create mode 100644 checkbox__in__frame_8cpp.html create mode 100644 checkbox__in__frame_8cpp.js create mode 100644 checkbox__in__frame_8cpp_source.html create mode 100644 classes.html create mode 100644 classftxui_1_1AnimationTask.html create mode 100644 classftxui_1_1AutoReset-members.html create mode 100644 classftxui_1_1AutoReset.html create mode 100644 classftxui_1_1AutoReset.js create mode 100644 classftxui_1_1CapturedMouseInterface-members.html create mode 100644 classftxui_1_1CapturedMouseInterface.html create mode 100644 classftxui_1_1CapturedMouseInterface.js create mode 100644 classftxui_1_1ConstRef-members.html create mode 100644 classftxui_1_1ConstRef.html create mode 100644 classftxui_1_1ConstRef.js create mode 100644 classftxui_1_1ConstStringListRef-members.html create mode 100644 classftxui_1_1ConstStringListRef.html create mode 100644 classftxui_1_1ConstStringListRef.js create mode 100644 classftxui_1_1ConstStringListRef_1_1Adapter-members.html create mode 100644 classftxui_1_1ConstStringListRef_1_1Adapter.html create mode 100644 classftxui_1_1ConstStringListRef_1_1Adapter.js create mode 100644 classftxui_1_1ConstStringRef-members.html create mode 100644 classftxui_1_1ConstStringRef.html create mode 100644 classftxui_1_1ConstStringRef.js create mode 100644 classftxui_1_1ConstStringRef__inherit__graph.map create mode 100644 classftxui_1_1ConstStringRef__inherit__graph.md5 create mode 100644 classftxui_1_1ConstStringRef__inherit__graph.png create mode 100644 classftxui_1_1Image__inherit__graph.map create mode 100644 classftxui_1_1Image__inherit__graph.md5 create mode 100644 classftxui_1_1Image__inherit__graph.png create mode 100644 classftxui_1_1NodeDecorator-members.html create mode 100644 classftxui_1_1NodeDecorator.html create mode 100644 classftxui_1_1NodeDecorator.js create mode 100644 classftxui_1_1NodeDecorator__inherit__graph.map create mode 100644 classftxui_1_1NodeDecorator__inherit__graph.md5 create mode 100644 classftxui_1_1NodeDecorator__inherit__graph.png create mode 100644 classftxui_1_1Node__inherit__graph.map create mode 100644 classftxui_1_1Node__inherit__graph.md5 create mode 100644 classftxui_1_1Node__inherit__graph.png create mode 100644 classftxui_1_1ReceiverImpl-members.html create mode 100644 classftxui_1_1ReceiverImpl.html create mode 100644 classftxui_1_1ReceiverImpl.js create mode 100644 classftxui_1_1Ref-members.html create mode 100644 classftxui_1_1Ref.html create mode 100644 classftxui_1_1Ref.js create mode 100644 classftxui_1_1ScreenInteractive_1_1Private-members.html create mode 100644 classftxui_1_1ScreenInteractive_1_1Private.html create mode 100644 classftxui_1_1ScreenInteractive__inherit__graph.map create mode 100644 classftxui_1_1ScreenInteractive__inherit__graph.md5 create mode 100644 classftxui_1_1ScreenInteractive__inherit__graph.png create mode 100644 classftxui_1_1Screen__inherit__graph.map create mode 100644 classftxui_1_1Screen__inherit__graph.md5 create mode 100644 classftxui_1_1Screen__inherit__graph.png create mode 100644 classftxui_1_1SenderImpl-members.html create mode 100644 classftxui_1_1SenderImpl.html create mode 100644 classftxui_1_1SenderImpl.js create mode 100644 classftxui_1_1StringRef-members.html create mode 100644 classftxui_1_1StringRef.html create mode 100644 classftxui_1_1StringRef.js create mode 100644 classftxui_1_1StringRef__inherit__graph.map create mode 100644 classftxui_1_1StringRef__inherit__graph.md5 create mode 100644 classftxui_1_1StringRef__inherit__graph.png create mode 100644 classftxui_1_1TableSelection-members.html create mode 100644 classftxui_1_1TableSelection.html create mode 100644 classftxui_1_1TableSelection.js create mode 100644 classftxui_1_1TerminalInputParser-members.html create mode 100644 classftxui_1_1TerminalInputParser.html create mode 100644 classftxui_1_1TerminalInputParser.js create mode 100644 classftxui_1_1animation_1_1Animator-members.html create mode 100644 classftxui_1_1animation_1_1Animator.html create mode 100644 classftxui_1_1animation_1_1Animator.js create mode 100644 classftxui_1_1animation_1_1Params-members.html create mode 100644 classftxui_1_1animation_1_1Params.html create mode 100644 classftxui_1_1animation_1_1Params.js create mode 100644 classftxui_1_1task_1_1TaskRunner-members.html create mode 100644 classftxui_1_1task_1_1TaskRunner.html create mode 100644 classftxui_1_1task_1_1TaskRunner.js create mode 100644 clear__under_8cpp.html create mode 100644 clear__under_8cpp.js create mode 100644 clear__under_8cpp_source.html create mode 100644 closed.png create mode 100644 color_8cppm.html create mode 100644 color_8cppm_source.html create mode 100644 color_8hpp.html create mode 100644 color_8hpp.js create mode 100644 color_8hpp_source.html create mode 100644 color__gallery_8cpp.html create mode 100644 color__gallery_8cpp.js create mode 100644 color__gallery_8cpp_source.html create mode 100644 color__info_8cpp.html create mode 100644 color__info_8cpp.js create mode 100644 color__info_8cpp_source.html create mode 100644 color__info_8cppm.html create mode 100644 color__info_8cppm_source.html create mode 100644 color__info_8hpp.html create mode 100644 color__info_8hpp.js create mode 100644 color__info_8hpp_source.html create mode 100644 color__info__palette256_8cpp.html create mode 100644 color__info__palette256_8cpp.js create mode 100644 color__info__palette256_8cpp_source.html create mode 100644 color__info__sorted__2d_8ipp.html create mode 100644 color__info__sorted__2d_8ipp.js create mode 100644 color__info__sorted__2d_8ipp_source.html create mode 100644 color__truecolor__HSV_8cpp.html create mode 100644 color__truecolor__HSV_8cpp.js create mode 100644 color__truecolor__HSV_8cpp_source.html create mode 100644 color__truecolor__RGB_8cpp.html create mode 100644 color__truecolor__RGB_8cpp.js create mode 100644 color__truecolor__RGB_8cpp_source.html create mode 100644 component_2component_8cppm.html create mode 100644 component_2component_8cppm_source.html create mode 100644 component_2util_8cpp.html create mode 100644 component_2util_8cpp.js create mode 100644 component_2util_8cpp_source.html create mode 100644 component_8cpp.html create mode 100644 component_8cpp_source.html create mode 100644 component_8cppm.html create mode 100644 component_8cppm_source.html create mode 100644 component_8hpp.html create mode 100644 component_8hpp.js create mode 100644 component_8hpp_source.html create mode 100644 component__base_8cppm.html create mode 100644 component__base_8cppm_source.html create mode 100644 component__base_8hpp.html create mode 100644 component__base_8hpp.js create mode 100644 component__base_8hpp_source.html create mode 100644 component__examples_8md.html create mode 100644 component__fuzzer_8cpp.html create mode 100644 component__fuzzer_8cpp.js create mode 100644 component__fuzzer_8cpp_source.html create mode 100644 component__options_8cpp.html create mode 100644 component__options_8cpp_source.html create mode 100644 component__options_8cppm.html create mode 100644 component__options_8cppm_source.html create mode 100644 component__options_8hpp.html create mode 100644 component__options_8hpp.js create mode 100644 component__options_8hpp_source.html create mode 100644 composite__decorator_8cpp.html create mode 100644 composite__decorator_8cpp.js create mode 100644 composite__decorator_8cpp_source.html create mode 100644 composition_8cpp.html create mode 100644 composition_8cpp.js create mode 100644 composition_8cpp_source.html create mode 100644 container_8cpp.html create mode 100644 container_8cpp.js create mode 100644 container_8cpp_source.html create mode 100644 cookie.js create mode 100644 cpp20-modules.html create mode 100644 cpp20-modules_8md.html create mode 100644 custom__loop_8cpp.html create mode 100644 custom__loop_8cpp.js create mode 100644 custom__loop_8cpp_source.html create mode 100644 dim_8cpp.html create mode 100644 dim_8cpp.js create mode 100644 dim_8cpp_source.html create mode 100644 dir_000000_000005.html create mode 100644 dir_000000_000011.html create mode 100644 dir_000001_000006.html create mode 100644 dir_000001_000012.html create mode 100644 dir_000001_000015.html create mode 100644 dir_000002_000007.html create mode 100644 dir_000002_000011.html create mode 100644 dir_000002_000013.html create mode 100644 dir_000005_000011.html create mode 100644 dir_000006_000012.html create mode 100644 dir_000006_000015.html create mode 100644 dir_000007_000011.html create mode 100644 dir_000010_000002.html create mode 100644 dir_000010_000007.html create mode 100644 dir_000010_000011.html create mode 100644 dir_000010_000013.html create mode 100644 dir_000010_000016.html create mode 100644 dir_000013_000011.html create mode 100644 dir_000015_000012.html create mode 100644 dir_000016_000011.html create mode 100644 dir_1668679807285893c235fcc812b1f73d.html create mode 100644 dir_1668679807285893c235fcc812b1f73d.js create mode 100644 dir_1668679807285893c235fcc812b1f73d_dep.map create mode 100644 dir_1668679807285893c235fcc812b1f73d_dep.md5 create mode 100644 dir_1668679807285893c235fcc812b1f73d_dep.png create mode 100644 dir_34153e0f69aea4f55932893abc931484.html create mode 100644 dir_34153e0f69aea4f55932893abc931484.js create mode 100644 dir_34153e0f69aea4f55932893abc931484_dep.map create mode 100644 dir_34153e0f69aea4f55932893abc931484_dep.md5 create mode 100644 dir_34153e0f69aea4f55932893abc931484_dep.png create mode 100644 dir_3f4db74392b369be141833a3ebdcb6a2.html create mode 100644 dir_3f4db74392b369be141833a3ebdcb6a2.js create mode 100644 dir_3f4db74392b369be141833a3ebdcb6a2_dep.map create mode 100644 dir_3f4db74392b369be141833a3ebdcb6a2_dep.md5 create mode 100644 dir_3f4db74392b369be141833a3ebdcb6a2_dep.png create mode 100644 dir_4cbb3a1c219643e03aadd7cd3693e7bd.html create mode 100644 dir_4cbb3a1c219643e03aadd7cd3693e7bd.js create mode 100644 dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.map create mode 100644 dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.md5 create mode 100644 dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.png create mode 100644 dir_53f6d8d3eb5689656c3f196f1d99fcb2.html create mode 100644 dir_53f6d8d3eb5689656c3f196f1d99fcb2.js create mode 100644 dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.map create mode 100644 dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.md5 create mode 100644 dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.png create mode 100644 dir_591e152ed8a369b957ed274cdb7355d5.html create mode 100644 dir_591e152ed8a369b957ed274cdb7355d5.js create mode 100644 dir_591e152ed8a369b957ed274cdb7355d5_dep.map create mode 100644 dir_591e152ed8a369b957ed274cdb7355d5_dep.md5 create mode 100644 dir_591e152ed8a369b957ed274cdb7355d5_dep.png create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.js create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png create mode 100644 dir_6c89d1ed406002b4e6ebce07fb51a507.html create mode 100644 dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.html create mode 100644 dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.js create mode 100644 dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.map create mode 100644 dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.md5 create mode 100644 dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.png create mode 100644 dir_8b052a5e35b6e4510790af7766fda6cf.html create mode 100644 dir_8b052a5e35b6e4510790af7766fda6cf.js create mode 100644 dir_8b052a5e35b6e4510790af7766fda6cf_dep.map create mode 100644 dir_8b052a5e35b6e4510790af7766fda6cf_dep.md5 create mode 100644 dir_8b052a5e35b6e4510790af7766fda6cf_dep.png create mode 100644 dir_9acac4494befa3e78fe4cf0f88d4c1ad.html create mode 100644 dir_9acac4494befa3e78fe4cf0f88d4c1ad.js create mode 100644 dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.map create mode 100644 dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.md5 create mode 100644 dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.png create mode 100644 dir_aca3139ef08e710186b498ba0b7d3b1a.html create mode 100644 dir_aca3139ef08e710186b498ba0b7d3b1a.js create mode 100644 dir_aca3139ef08e710186b498ba0b7d3b1a_dep.map create mode 100644 dir_aca3139ef08e710186b498ba0b7d3b1a_dep.md5 create mode 100644 dir_aca3139ef08e710186b498ba0b7d3b1a_dep.png create mode 100644 dir_b7c1fcae8d0ae1df453f463e8938778b.html create mode 100644 dir_b7c1fcae8d0ae1df453f463e8938778b.js create mode 100644 dir_b7c1fcae8d0ae1df453f463e8938778b_dep.map create mode 100644 dir_b7c1fcae8d0ae1df453f463e8938778b_dep.md5 create mode 100644 dir_b7c1fcae8d0ae1df453f463e8938778b_dep.png create mode 100644 dir_c6e2a03fcd381aa57f98a8fd0760f80b.html create mode 100644 dir_c6e2a03fcd381aa57f98a8fd0760f80b.js create mode 100644 dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.map create mode 100644 dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.md5 create mode 100644 dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.png create mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4.html create mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4.js create mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4_dep.map create mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 create mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4_dep.png create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.js create mode 100644 dir_d44c64559bbebec7f509842c48db8b23_dep.map create mode 100644 dir_d44c64559bbebec7f509842c48db8b23_dep.md5 create mode 100644 dir_d44c64559bbebec7f509842c48db8b23_dep.png create mode 100644 dir_e68e8157741866f444e17edd764ebbae.html create mode 100644 direction_8cppm.html create mode 100644 direction_8cppm_source.html create mode 100644 direction_8hpp.html create mode 100644 direction_8hpp.js create mode 100644 direction_8hpp_source.html create mode 100644 doc.svg create mode 100644 docd.svg create mode 100644 dom_2color_8cpp.html create mode 100644 dom_2color_8cpp.js create mode 100644 dom_2color_8cpp_source.html create mode 100644 dom_2deprecated_8cppm.html create mode 100644 dom_2deprecated_8cppm_source.html create mode 100644 dom_2deprecated_8hpp.html create mode 100644 dom_2deprecated_8hpp.js create mode 100644 dom_2deprecated_8hpp_source.html create mode 100644 dom_2util_8cpp.html create mode 100644 dom_2util_8cpp.js create mode 100644 dom_2util_8cpp_source.html create mode 100644 dom_8cppm.html create mode 100644 dom_8cppm_source.html create mode 100644 dom__examples_8md.html create mode 100644 doxygen-awesome-fragment-copy-button.js create mode 100644 doxygen-awesome-interactive-toc.js create mode 100644 doxygen-awesome-paragraph-link.js create mode 100644 doxygen-awesome-tabs.js create mode 100644 doxygen-awesome.css create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 doxygen_crawl.html create mode 100644 dropdown__custom_8cpp.html create mode 100644 dropdown__custom_8cpp.js create mode 100644 dropdown__custom_8cpp_source.html create mode 100644 dynsections.js create mode 100644 elements_8cppm.html create mode 100644 elements_8cppm_source.html create mode 100644 elements_8hpp.html create mode 100644 elements_8hpp.js create mode 100644 elements_8hpp_source.html create mode 100644 event_8cpp.html create mode 100644 event_8cpp_source.html create mode 100644 event_8cppm.html create mode 100644 event_8cppm_source.html create mode 100644 event_8hpp.html create mode 100644 event_8hpp_source.html create mode 100644 examples/component/ftxui_example_button.js create mode 100755 examples/component/ftxui_example_button.wasm create mode 100644 examples/component/ftxui_example_button.worker.js create mode 100644 examples/component/ftxui_example_button_animated.js create mode 100755 examples/component/ftxui_example_button_animated.wasm create mode 100644 examples/component/ftxui_example_button_animated.worker.js create mode 100644 examples/component/ftxui_example_button_in_frame.js create mode 100755 examples/component/ftxui_example_button_in_frame.wasm create mode 100644 examples/component/ftxui_example_button_in_frame.worker.js create mode 100644 examples/component/ftxui_example_button_style.js create mode 100755 examples/component/ftxui_example_button_style.wasm create mode 100644 examples/component/ftxui_example_button_style.worker.js create mode 100644 examples/component/ftxui_example_canvas_animated.js create mode 100755 examples/component/ftxui_example_canvas_animated.wasm create mode 100644 examples/component/ftxui_example_canvas_animated.worker.js create mode 100644 examples/component/ftxui_example_checkbox.js create mode 100755 examples/component/ftxui_example_checkbox.wasm create mode 100644 examples/component/ftxui_example_checkbox.worker.js create mode 100644 examples/component/ftxui_example_checkbox_in_frame.js create mode 100755 examples/component/ftxui_example_checkbox_in_frame.wasm create mode 100644 examples/component/ftxui_example_checkbox_in_frame.worker.js create mode 100644 examples/component/ftxui_example_collapsible.js create mode 100755 examples/component/ftxui_example_collapsible.wasm create mode 100644 examples/component/ftxui_example_collapsible.worker.js create mode 100644 examples/component/ftxui_example_composition.js create mode 100755 examples/component/ftxui_example_composition.wasm create mode 100644 examples/component/ftxui_example_composition.worker.js create mode 100644 examples/component/ftxui_example_custom_loop.js create mode 100755 examples/component/ftxui_example_custom_loop.wasm create mode 100644 examples/component/ftxui_example_custom_loop.worker.js create mode 100644 examples/component/ftxui_example_dropdown.js create mode 100755 examples/component/ftxui_example_dropdown.wasm create mode 100644 examples/component/ftxui_example_dropdown.worker.js create mode 100644 examples/component/ftxui_example_dropdown_custom.js create mode 100755 examples/component/ftxui_example_dropdown_custom.wasm create mode 100644 examples/component/ftxui_example_dropdown_custom.worker.js create mode 100644 examples/component/ftxui_example_flexbox_gallery.js create mode 100755 examples/component/ftxui_example_flexbox_gallery.wasm create mode 100644 examples/component/ftxui_example_flexbox_gallery.worker.js create mode 100644 examples/component/ftxui_example_focus.js create mode 100755 examples/component/ftxui_example_focus.wasm create mode 100644 examples/component/ftxui_example_focus.worker.js create mode 100644 examples/component/ftxui_example_focus_cursor.js create mode 100755 examples/component/ftxui_example_focus_cursor.wasm create mode 100644 examples/component/ftxui_example_focus_cursor.worker.js create mode 100644 examples/component/ftxui_example_gallery.js create mode 100755 examples/component/ftxui_example_gallery.wasm create mode 100644 examples/component/ftxui_example_gallery.worker.js create mode 100644 examples/component/ftxui_example_homescreen.js create mode 100755 examples/component/ftxui_example_homescreen.wasm create mode 100644 examples/component/ftxui_example_homescreen.worker.js create mode 100644 examples/component/ftxui_example_input.js create mode 100755 examples/component/ftxui_example_input.wasm create mode 100644 examples/component/ftxui_example_input.worker.js create mode 100644 examples/component/ftxui_example_input_in_frame.js create mode 100755 examples/component/ftxui_example_input_in_frame.wasm create mode 100644 examples/component/ftxui_example_input_in_frame.worker.js create mode 100644 examples/component/ftxui_example_input_style.js create mode 100755 examples/component/ftxui_example_input_style.wasm create mode 100644 examples/component/ftxui_example_input_style.worker.js create mode 100644 examples/component/ftxui_example_linear_gradient_gallery.js create mode 100755 examples/component/ftxui_example_linear_gradient_gallery.wasm create mode 100644 examples/component/ftxui_example_linear_gradient_gallery.worker.js create mode 100644 examples/component/ftxui_example_maybe.js create mode 100755 examples/component/ftxui_example_maybe.wasm create mode 100644 examples/component/ftxui_example_maybe.worker.js create mode 100644 examples/component/ftxui_example_menu.js create mode 100755 examples/component/ftxui_example_menu.wasm create mode 100644 examples/component/ftxui_example_menu.worker.js create mode 100644 examples/component/ftxui_example_menu2.js create mode 100755 examples/component/ftxui_example_menu2.wasm create mode 100644 examples/component/ftxui_example_menu2.worker.js create mode 100644 examples/component/ftxui_example_menu_entries.js create mode 100755 examples/component/ftxui_example_menu_entries.wasm create mode 100644 examples/component/ftxui_example_menu_entries.worker.js create mode 100644 examples/component/ftxui_example_menu_entries_animated.js create mode 100755 examples/component/ftxui_example_menu_entries_animated.wasm create mode 100644 examples/component/ftxui_example_menu_entries_animated.worker.js create mode 100644 examples/component/ftxui_example_menu_in_frame.js create mode 100755 examples/component/ftxui_example_menu_in_frame.wasm create mode 100644 examples/component/ftxui_example_menu_in_frame.worker.js create mode 100644 examples/component/ftxui_example_menu_in_frame_horizontal.js create mode 100755 examples/component/ftxui_example_menu_in_frame_horizontal.wasm create mode 100644 examples/component/ftxui_example_menu_in_frame_horizontal.worker.js create mode 100644 examples/component/ftxui_example_menu_multiple.js create mode 100755 examples/component/ftxui_example_menu_multiple.wasm create mode 100644 examples/component/ftxui_example_menu_multiple.worker.js create mode 100644 examples/component/ftxui_example_menu_style.js create mode 100755 examples/component/ftxui_example_menu_style.wasm create mode 100644 examples/component/ftxui_example_menu_style.worker.js create mode 100644 examples/component/ftxui_example_menu_underline_animated_gallery.js create mode 100755 examples/component/ftxui_example_menu_underline_animated_gallery.wasm create mode 100644 examples/component/ftxui_example_menu_underline_animated_gallery.worker.js create mode 100644 examples/component/ftxui_example_modal_dialog.js create mode 100755 examples/component/ftxui_example_modal_dialog.wasm create mode 100644 examples/component/ftxui_example_modal_dialog.worker.js create mode 100644 examples/component/ftxui_example_modal_dialog_custom.js create mode 100755 examples/component/ftxui_example_modal_dialog_custom.wasm create mode 100644 examples/component/ftxui_example_modal_dialog_custom.worker.js create mode 100644 examples/component/ftxui_example_nested_screen.js create mode 100755 examples/component/ftxui_example_nested_screen.wasm create mode 100644 examples/component/ftxui_example_nested_screen.worker.js create mode 100644 examples/component/ftxui_example_print_key_press.js create mode 100755 examples/component/ftxui_example_print_key_press.wasm create mode 100644 examples/component/ftxui_example_print_key_press.worker.js create mode 100644 examples/component/ftxui_example_radiobox.js create mode 100755 examples/component/ftxui_example_radiobox.wasm create mode 100644 examples/component/ftxui_example_radiobox.worker.js create mode 100644 examples/component/ftxui_example_radiobox_in_frame.js create mode 100755 examples/component/ftxui_example_radiobox_in_frame.wasm create mode 100644 examples/component/ftxui_example_radiobox_in_frame.worker.js create mode 100644 examples/component/ftxui_example_renderer.js create mode 100755 examples/component/ftxui_example_renderer.wasm create mode 100644 examples/component/ftxui_example_renderer.worker.js create mode 100644 examples/component/ftxui_example_resizable_split.js create mode 100755 examples/component/ftxui_example_resizable_split.wasm create mode 100644 examples/component/ftxui_example_resizable_split.worker.js create mode 100644 examples/component/ftxui_example_scrollbar.js create mode 100755 examples/component/ftxui_example_scrollbar.wasm create mode 100644 examples/component/ftxui_example_scrollbar.worker.js create mode 100644 examples/component/ftxui_example_selection.js create mode 100755 examples/component/ftxui_example_selection.wasm create mode 100644 examples/component/ftxui_example_selection.worker.js create mode 100644 examples/component/ftxui_example_slider.js create mode 100755 examples/component/ftxui_example_slider.wasm create mode 100644 examples/component/ftxui_example_slider.worker.js create mode 100644 examples/component/ftxui_example_slider_direction.js create mode 100755 examples/component/ftxui_example_slider_direction.wasm create mode 100644 examples/component/ftxui_example_slider_direction.worker.js create mode 100644 examples/component/ftxui_example_slider_rgb.js create mode 100755 examples/component/ftxui_example_slider_rgb.wasm create mode 100644 examples/component/ftxui_example_slider_rgb.worker.js create mode 100644 examples/component/ftxui_example_tab_horizontal.js create mode 100755 examples/component/ftxui_example_tab_horizontal.wasm create mode 100644 examples/component/ftxui_example_tab_horizontal.worker.js create mode 100644 examples/component/ftxui_example_tab_vertical.js create mode 100755 examples/component/ftxui_example_tab_vertical.wasm create mode 100644 examples/component/ftxui_example_tab_vertical.worker.js create mode 100644 examples/component/ftxui_example_textarea.js create mode 100755 examples/component/ftxui_example_textarea.wasm create mode 100644 examples/component/ftxui_example_textarea.worker.js create mode 100644 examples/component/ftxui_example_toggle.js create mode 100755 examples/component/ftxui_example_toggle.wasm create mode 100644 examples/component/ftxui_example_toggle.worker.js create mode 100644 examples/component/ftxui_example_window.js create mode 100755 examples/component/ftxui_example_window.wasm create mode 100644 examples/component/ftxui_example_window.worker.js create mode 100644 examples/component/ftxui_example_with_restored_io.js create mode 100755 examples/component/ftxui_example_with_restored_io.wasm create mode 100644 examples/component/ftxui_example_with_restored_io.worker.js create mode 100644 examples/dom/ftxui_example_border.js create mode 100755 examples/dom/ftxui_example_border.wasm create mode 100644 examples/dom/ftxui_example_border.worker.js create mode 100644 examples/dom/ftxui_example_border_colored.js create mode 100755 examples/dom/ftxui_example_border_colored.wasm create mode 100644 examples/dom/ftxui_example_border_colored.worker.js create mode 100644 examples/dom/ftxui_example_border_style.js create mode 100755 examples/dom/ftxui_example_border_style.wasm create mode 100644 examples/dom/ftxui_example_border_style.worker.js create mode 100644 examples/dom/ftxui_example_canvas.js create mode 100755 examples/dom/ftxui_example_canvas.wasm create mode 100644 examples/dom/ftxui_example_canvas.worker.js create mode 100644 examples/dom/ftxui_example_color_gallery.js create mode 100755 examples/dom/ftxui_example_color_gallery.wasm create mode 100644 examples/dom/ftxui_example_color_gallery.worker.js create mode 100644 examples/dom/ftxui_example_color_info_palette256.js create mode 100755 examples/dom/ftxui_example_color_info_palette256.wasm create mode 100644 examples/dom/ftxui_example_color_info_palette256.worker.js create mode 100644 examples/dom/ftxui_example_color_truecolor_HSV.js create mode 100755 examples/dom/ftxui_example_color_truecolor_HSV.wasm create mode 100644 examples/dom/ftxui_example_color_truecolor_HSV.worker.js create mode 100644 examples/dom/ftxui_example_color_truecolor_RGB.js create mode 100755 examples/dom/ftxui_example_color_truecolor_RGB.wasm create mode 100644 examples/dom/ftxui_example_color_truecolor_RGB.worker.js create mode 100644 examples/dom/ftxui_example_dbox.js create mode 100755 examples/dom/ftxui_example_dbox.wasm create mode 100644 examples/dom/ftxui_example_dbox.worker.js create mode 100644 examples/dom/ftxui_example_gauge.js create mode 100755 examples/dom/ftxui_example_gauge.wasm create mode 100644 examples/dom/ftxui_example_gauge.worker.js create mode 100644 examples/dom/ftxui_example_gauge_direction.js create mode 100755 examples/dom/ftxui_example_gauge_direction.wasm create mode 100644 examples/dom/ftxui_example_gauge_direction.worker.js create mode 100644 examples/dom/ftxui_example_graph.js create mode 100755 examples/dom/ftxui_example_graph.wasm create mode 100644 examples/dom/ftxui_example_graph.worker.js create mode 100644 examples/dom/ftxui_example_gridbox.js create mode 100755 examples/dom/ftxui_example_gridbox.wasm create mode 100644 examples/dom/ftxui_example_gridbox.worker.js create mode 100644 examples/dom/ftxui_example_hflow.js create mode 100755 examples/dom/ftxui_example_hflow.wasm create mode 100644 examples/dom/ftxui_example_hflow.worker.js create mode 100644 examples/dom/ftxui_example_html_like.js create mode 100755 examples/dom/ftxui_example_html_like.wasm create mode 100644 examples/dom/ftxui_example_html_like.worker.js create mode 100644 examples/dom/ftxui_example_linear_gradient.js create mode 100755 examples/dom/ftxui_example_linear_gradient.wasm create mode 100644 examples/dom/ftxui_example_linear_gradient.worker.js create mode 100644 examples/dom/ftxui_example_package_manager.js create mode 100755 examples/dom/ftxui_example_package_manager.wasm create mode 100644 examples/dom/ftxui_example_package_manager.worker.js create mode 100644 examples/dom/ftxui_example_paragraph.js create mode 100755 examples/dom/ftxui_example_paragraph.wasm create mode 100644 examples/dom/ftxui_example_paragraph.worker.js create mode 100644 examples/dom/ftxui_example_separator.js create mode 100755 examples/dom/ftxui_example_separator.wasm create mode 100644 examples/dom/ftxui_example_separator.worker.js create mode 100644 examples/dom/ftxui_example_separator_style.js create mode 100755 examples/dom/ftxui_example_separator_style.wasm create mode 100644 examples/dom/ftxui_example_separator_style.worker.js create mode 100644 examples/dom/ftxui_example_size.js create mode 100755 examples/dom/ftxui_example_size.wasm create mode 100644 examples/dom/ftxui_example_size.worker.js create mode 100644 examples/dom/ftxui_example_spinner.js create mode 100755 examples/dom/ftxui_example_spinner.wasm create mode 100644 examples/dom/ftxui_example_spinner.worker.js create mode 100644 examples/dom/ftxui_example_style_blink.js create mode 100755 examples/dom/ftxui_example_style_blink.wasm create mode 100644 examples/dom/ftxui_example_style_blink.worker.js create mode 100644 examples/dom/ftxui_example_style_bold.js create mode 100755 examples/dom/ftxui_example_style_bold.wasm create mode 100644 examples/dom/ftxui_example_style_bold.worker.js create mode 100644 examples/dom/ftxui_example_style_color.js create mode 100755 examples/dom/ftxui_example_style_color.wasm create mode 100644 examples/dom/ftxui_example_style_color.worker.js create mode 100644 examples/dom/ftxui_example_style_dim.js create mode 100755 examples/dom/ftxui_example_style_dim.wasm create mode 100644 examples/dom/ftxui_example_style_dim.worker.js create mode 100644 examples/dom/ftxui_example_style_gallery.js create mode 100755 examples/dom/ftxui_example_style_gallery.wasm create mode 100644 examples/dom/ftxui_example_style_gallery.worker.js create mode 100644 examples/dom/ftxui_example_style_hyperlink.js create mode 100755 examples/dom/ftxui_example_style_hyperlink.wasm create mode 100644 examples/dom/ftxui_example_style_hyperlink.worker.js create mode 100644 examples/dom/ftxui_example_style_inverted.js create mode 100755 examples/dom/ftxui_example_style_inverted.wasm create mode 100644 examples/dom/ftxui_example_style_inverted.worker.js create mode 100644 examples/dom/ftxui_example_style_italic.js create mode 100755 examples/dom/ftxui_example_style_italic.wasm create mode 100644 examples/dom/ftxui_example_style_italic.worker.js create mode 100644 examples/dom/ftxui_example_style_strikethrough.js create mode 100755 examples/dom/ftxui_example_style_strikethrough.wasm create mode 100644 examples/dom/ftxui_example_style_strikethrough.worker.js create mode 100644 examples/dom/ftxui_example_style_underlined.js create mode 100755 examples/dom/ftxui_example_style_underlined.wasm create mode 100644 examples/dom/ftxui_example_style_underlined.worker.js create mode 100644 examples/dom/ftxui_example_style_underlined_double.js create mode 100755 examples/dom/ftxui_example_style_underlined_double.wasm create mode 100644 examples/dom/ftxui_example_style_underlined_double.worker.js create mode 100644 examples/dom/ftxui_example_table.js create mode 100755 examples/dom/ftxui_example_table.wasm create mode 100644 examples/dom/ftxui_example_table.worker.js create mode 100644 examples/dom/ftxui_example_vbox_hbox.js create mode 100755 examples/dom/ftxui_example_vbox_hbox.wasm create mode 100644 examples/dom/ftxui_example_vbox_hbox.worker.js create mode 100644 examples/dom/ftxui_example_vflow.js create mode 100755 examples/dom/ftxui_example_vflow.wasm create mode 100644 examples/dom/ftxui_example_vflow.worker.js create mode 100644 examples/index.css create mode 100644 examples/index.html create mode 100644 examples/index.mjs create mode 100644 examples/sw.js create mode 100644 examples_2component_2button_8cpp.html create mode 100644 examples_2component_2button_8cpp.js create mode 100644 examples_2component_2button_8cpp_source.html create mode 100644 examples_2component_2checkbox_8cpp.html create mode 100644 examples_2component_2checkbox_8cpp.js create mode 100644 examples_2component_2checkbox_8cpp_source.html create mode 100644 examples_2component_2collapsible_8cpp.html create mode 100644 examples_2component_2collapsible_8cpp.js create mode 100644 examples_2component_2collapsible_8cpp_source.html create mode 100644 examples_2component_2dropdown_8cpp.html create mode 100644 examples_2component_2dropdown_8cpp.js create mode 100644 examples_2component_2dropdown_8cpp_source.html create mode 100644 examples_2component_2focus_8cpp.html create mode 100644 examples_2component_2focus_8cpp.js create mode 100644 examples_2component_2focus_8cpp_source.html create mode 100644 examples_2component_2input_8cpp.html create mode 100644 examples_2component_2input_8cpp.js create mode 100644 examples_2component_2input_8cpp_source.html create mode 100644 examples_2component_2maybe_8cpp.html create mode 100644 examples_2component_2maybe_8cpp.js create mode 100644 examples_2component_2maybe_8cpp_source.html create mode 100644 examples_2component_2menu_8cpp.html create mode 100644 examples_2component_2menu_8cpp.js create mode 100644 examples_2component_2menu_8cpp_source.html create mode 100644 examples_2component_2radiobox_8cpp.html create mode 100644 examples_2component_2radiobox_8cpp.js create mode 100644 examples_2component_2radiobox_8cpp_source.html create mode 100644 examples_2component_2renderer_8cpp.html create mode 100644 examples_2component_2renderer_8cpp.js create mode 100644 examples_2component_2renderer_8cpp_source.html create mode 100644 examples_2component_2resizable__split_8cpp.html create mode 100644 examples_2component_2resizable__split_8cpp.js create mode 100644 examples_2component_2resizable__split_8cpp_source.html create mode 100644 examples_2component_2selection_8cpp.html create mode 100644 examples_2component_2selection_8cpp.js create mode 100644 examples_2component_2selection_8cpp_source.html create mode 100644 examples_2component_2slider_8cpp.html create mode 100644 examples_2component_2slider_8cpp.js create mode 100644 examples_2component_2slider_8cpp_source.html create mode 100644 examples_2component_2window_8cpp.html create mode 100644 examples_2component_2window_8cpp.js create mode 100644 examples_2component_2window_8cpp_source.html create mode 100644 examples_2dom_2border_8cpp.html create mode 100644 examples_2dom_2border_8cpp.js create mode 100644 examples_2dom_2border_8cpp_source.html create mode 100644 examples_2dom_2canvas_8cpp.html create mode 100644 examples_2dom_2canvas_8cpp.js create mode 100644 examples_2dom_2canvas_8cpp_source.html create mode 100644 examples_2dom_2dbox_8cpp.html create mode 100644 examples_2dom_2dbox_8cpp.js create mode 100644 examples_2dom_2dbox_8cpp_source.html create mode 100644 examples_2dom_2gauge_8cpp.html create mode 100644 examples_2dom_2gauge_8cpp.js create mode 100644 examples_2dom_2gauge_8cpp_source.html create mode 100644 examples_2dom_2graph_8cpp.html create mode 100644 examples_2dom_2graph_8cpp.js create mode 100644 examples_2dom_2graph_8cpp_source.html create mode 100644 examples_2dom_2gridbox_8cpp.html create mode 100644 examples_2dom_2gridbox_8cpp.js create mode 100644 examples_2dom_2gridbox_8cpp_source.html create mode 100644 examples_2dom_2linear__gradient_8cpp.html create mode 100644 examples_2dom_2linear__gradient_8cpp.js create mode 100644 examples_2dom_2linear__gradient_8cpp_source.html create mode 100644 examples_2dom_2paragraph_8cpp.html create mode 100644 examples_2dom_2paragraph_8cpp.js create mode 100644 examples_2dom_2paragraph_8cpp_source.html create mode 100644 examples_2dom_2separator_8cpp.html create mode 100644 examples_2dom_2separator_8cpp.js create mode 100644 examples_2dom_2separator_8cpp_source.html create mode 100644 examples_2dom_2size_8cpp.html create mode 100644 examples_2dom_2size_8cpp.js create mode 100644 examples_2dom_2size_8cpp_source.html create mode 100644 examples_2dom_2spinner_8cpp.html create mode 100644 examples_2dom_2spinner_8cpp.js create mode 100644 examples_2dom_2spinner_8cpp_source.html create mode 100644 examples_2dom_2table_8cpp.html create mode 100644 examples_2dom_2table_8cpp.js create mode 100644 examples_2dom_2table_8cpp_source.html create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 flex_8cpp.html create mode 100644 flex_8cpp.js create mode 100644 flex_8cpp_source.html create mode 100644 flexbox_8cpp.html create mode 100644 flexbox_8cpp.js create mode 100644 flexbox_8cpp_source.html create mode 100644 flexbox__config_8cpp.html create mode 100644 flexbox__config_8cpp_source.html create mode 100644 flexbox__config_8cppm.html create mode 100644 flexbox__config_8cppm_source.html create mode 100644 flexbox__config_8hpp.html create mode 100644 flexbox__config_8hpp_source.html create mode 100644 flexbox__gallery_8cpp.html create mode 100644 flexbox__gallery_8cpp.js create mode 100644 flexbox__gallery_8cpp_source.html create mode 100644 flexbox__helper_8cpp.html create mode 100644 flexbox__helper_8cpp.js create mode 100644 flexbox__helper_8cpp_source.html create mode 100644 flexbox__helper_8hpp.html create mode 100644 flexbox__helper_8hpp.js create mode 100644 flexbox__helper_8hpp_source.html create mode 100644 focus__cursor_8cpp.html create mode 100644 focus__cursor_8cpp.js create mode 100644 focus__cursor_8cpp_source.html create mode 100644 folderclosed.svg create mode 100644 folderclosedd.svg create mode 100644 folderopen.svg create mode 100644 folderopend.svg create mode 100644 frame_8cpp.html create mode 100644 frame_8cpp.js create mode 100644 frame_8cpp_source.html create mode 100644 ftxui.html create mode 100644 ftxui_8cppm.html create mode 100644 ftxui_8cppm_source.html create mode 100644 functions.html create mode 100644 functions_b.html create mode 100644 functions_c.html create mode 100644 functions_d.html create mode 100644 functions_dup.js create mode 100644 functions_e.html create mode 100644 functions_enum.html create mode 100644 functions_eval.html create mode 100644 functions_eval.js create mode 100644 functions_eval_b.html create mode 100644 functions_eval_c.html create mode 100644 functions_eval_d.html create mode 100644 functions_eval_g.html create mode 100644 functions_eval_h.html create mode 100644 functions_eval_i.html create mode 100644 functions_eval_k.html create mode 100644 functions_eval_l.html create mode 100644 functions_eval_m.html create mode 100644 functions_eval_n.html create mode 100644 functions_eval_o.html create mode 100644 functions_eval_p.html create mode 100644 functions_eval_r.html create mode 100644 functions_eval_s.html create mode 100644 functions_eval_t.html create mode 100644 functions_eval_u.html create mode 100644 functions_eval_v.html create mode 100644 functions_eval_w.html create mode 100644 functions_eval_y.html create mode 100644 functions_f.html create mode 100644 functions_func.html create mode 100644 functions_func.js create mode 100644 functions_func_b.html create mode 100644 functions_func_c.html create mode 100644 functions_func_d.html create mode 100644 functions_func_e.html create mode 100644 functions_func_f.html create mode 100644 functions_func_g.html create mode 100644 functions_func_h.html create mode 100644 functions_func_i.html create mode 100644 functions_func_l.html create mode 100644 functions_func_m.html create mode 100644 functions_func_n.html create mode 100644 functions_func_o.html create mode 100644 functions_func_p.html create mode 100644 functions_func_r.html create mode 100644 functions_func_s.html create mode 100644 functions_func_t.html create mode 100644 functions_func_u.html create mode 100644 functions_func_v.html create mode 100644 functions_func_w.html create mode 100644 functions_func_~.html create mode 100644 functions_g.html create mode 100644 functions_h.html create mode 100644 functions_i.html create mode 100644 functions_j.html create mode 100644 functions_k.html create mode 100644 functions_l.html create mode 100644 functions_m.html create mode 100644 functions_n.html create mode 100644 functions_o.html create mode 100644 functions_p.html create mode 100644 functions_q.html create mode 100644 functions_r.html create mode 100644 functions_rela.html create mode 100644 functions_s.html create mode 100644 functions_t.html create mode 100644 functions_type.html create mode 100644 functions_u.html create mode 100644 functions_v.html create mode 100644 functions_vars.html create mode 100644 functions_vars.js create mode 100644 functions_vars_b.html create mode 100644 functions_vars_c.html create mode 100644 functions_vars_d.html create mode 100644 functions_vars_e.html create mode 100644 functions_vars_f.html create mode 100644 functions_vars_g.html create mode 100644 functions_vars_h.html create mode 100644 functions_vars_i.html create mode 100644 functions_vars_j.html create mode 100644 functions_vars_k.html create mode 100644 functions_vars_l.html create mode 100644 functions_vars_m.html create mode 100644 functions_vars_n.html create mode 100644 functions_vars_o.html create mode 100644 functions_vars_p.html create mode 100644 functions_vars_q.html create mode 100644 functions_vars_r.html create mode 100644 functions_vars_s.html create mode 100644 functions_vars_t.html create mode 100644 functions_vars_u.html create mode 100644 functions_vars_v.html create mode 100644 functions_vars_w.html create mode 100644 functions_vars_x.html create mode 100644 functions_vars_y.html create mode 100644 functions_vars_z.html create mode 100644 functions_w.html create mode 100644 functions_x.html create mode 100644 functions_y.html create mode 100644 functions_z.html create mode 100644 functions_~.html create mode 100644 gallery_8cpp.html create mode 100644 gallery_8cpp.js create mode 100644 gallery_8cpp_source.html create mode 100644 gauge__direction_8cpp.html create mode 100644 gauge__direction_8cpp.js create mode 100644 gauge__direction_8cpp_source.html create mode 100644 getting-started.html create mode 100644 getting-started_8md.html create mode 100644 globals.html create mode 100644 globals_defs.html create mode 100644 globals_func.html create mode 100644 globals_vars.html create mode 100644 graph_legend.html create mode 100644 graph_legend.md5 create mode 100644 graph_legend.png create mode 100644 group__component.html create mode 100644 group__component.js create mode 100644 group__component_classftxui_1_1ComponentBase.js create mode 100644 group__component_classftxui_1_1Loop.js create mode 100644 group__component_classftxui_1_1ScreenInteractive.js create mode 100644 group__component_structftxui_1_1AnimatedColorOption.js create mode 100644 group__component_structftxui_1_1ButtonOption.js create mode 100644 group__component_structftxui_1_1CheckboxOption.js create mode 100644 group__component_structftxui_1_1DropdownOption.js create mode 100644 group__component_structftxui_1_1Event.js create mode 100644 group__component_structftxui_1_1InputOption.js create mode 100644 group__component_structftxui_1_1MenuEntryOption.js create mode 100644 group__component_structftxui_1_1MenuOption.js create mode 100644 group__component_structftxui_1_1Mouse.js create mode 100644 group__component_structftxui_1_1RadioboxOption.js create mode 100644 group__component_structftxui_1_1UnderlineOption.js create mode 100644 group__component_structftxui_1_1WindowRenderState.js create mode 100644 group__dom.html create mode 100644 group__dom.js create mode 100644 group__dom_classftxui_1_1Node.js create mode 100644 group__dom_classftxui_1_1Selection.js create mode 100644 group__dom_classftxui_1_1Table.js create mode 100644 group__dom_structftxui_1_1Canvas.js create mode 100644 group__dom_structftxui_1_1FlexboxConfig.js create mode 100644 group__dom_structftxui_1_1LinearGradient.js create mode 100644 group__dom_structftxui_1_1Requirement.js create mode 100644 group__screen.html create mode 100644 group__screen.js create mode 100644 group__screen_classftxui_1_1Color.js create mode 100644 group__screen_classftxui_1_1Image.js create mode 100644 group__screen_classftxui_1_1Screen.js create mode 100644 group__screen_structftxui_1_1Box.js create mode 100644 group__screen_structftxui_1_1ColorInfo.js create mode 100644 group__screen_structftxui_1_1Dimensions.js create mode 100644 group__screen_structftxui_1_1Pixel.js create mode 100644 hbox_8cpp.html create mode 100644 hbox_8cpp.js create mode 100644 hbox_8cpp_source.html create mode 100644 hflow_8cpp.html create mode 100644 hflow_8cpp.js create mode 100644 hflow_8cpp_source.html create mode 100644 hierarchy.html create mode 100644 hierarchy.js create mode 100644 homescreen_8cpp.html create mode 100644 homescreen_8cpp.js create mode 100644 homescreen_8cpp_source.html create mode 100644 hoverable_8cpp.html create mode 100644 hoverable_8cpp.js create mode 100644 hoverable_8cpp_source.html create mode 100644 html__like_8cpp.html create mode 100644 html__like_8cpp.js create mode 100644 html__like_8cpp_source.html create mode 100644 hyperlink_8cpp.html create mode 100644 hyperlink_8cpp.js create mode 100644 hyperlink_8cpp_source.html create mode 100644 image_8cpp.html create mode 100644 image_8cpp_source.html create mode 100644 image_8cppm.html create mode 100644 image_8cppm_source.html create mode 100644 image_8hpp.html create mode 100644 image_8hpp_source.html create mode 100644 index.html create mode 100644 index.js create mode 100644 inherit_graph_0.map create mode 100644 inherit_graph_0.md5 create mode 100644 inherit_graph_0.png create mode 100644 inherit_graph_1.map create mode 100644 inherit_graph_1.md5 create mode 100644 inherit_graph_1.png create mode 100644 inherit_graph_10.map create mode 100644 inherit_graph_10.md5 create mode 100644 inherit_graph_10.png create mode 100644 inherit_graph_11.map create mode 100644 inherit_graph_11.md5 create mode 100644 inherit_graph_11.png create mode 100644 inherit_graph_12.map create mode 100644 inherit_graph_12.md5 create mode 100644 inherit_graph_12.png create mode 100644 inherit_graph_13.map create mode 100644 inherit_graph_13.md5 create mode 100644 inherit_graph_13.png create mode 100644 inherit_graph_14.map create mode 100644 inherit_graph_14.md5 create mode 100644 inherit_graph_14.png create mode 100644 inherit_graph_15.map create mode 100644 inherit_graph_15.md5 create mode 100644 inherit_graph_15.png create mode 100644 inherit_graph_16.map create mode 100644 inherit_graph_16.md5 create mode 100644 inherit_graph_16.png create mode 100644 inherit_graph_17.map create mode 100644 inherit_graph_17.md5 create mode 100644 inherit_graph_17.png create mode 100644 inherit_graph_18.map create mode 100644 inherit_graph_18.md5 create mode 100644 inherit_graph_18.png create mode 100644 inherit_graph_19.map create mode 100644 inherit_graph_19.md5 create mode 100644 inherit_graph_19.png create mode 100644 inherit_graph_2.map create mode 100644 inherit_graph_2.md5 create mode 100644 inherit_graph_2.png create mode 100644 inherit_graph_20.map create mode 100644 inherit_graph_20.md5 create mode 100644 inherit_graph_20.png create mode 100644 inherit_graph_21.map create mode 100644 inherit_graph_21.md5 create mode 100644 inherit_graph_21.png create mode 100644 inherit_graph_22.map create mode 100644 inherit_graph_22.md5 create mode 100644 inherit_graph_22.png create mode 100644 inherit_graph_23.map create mode 100644 inherit_graph_23.md5 create mode 100644 inherit_graph_23.png create mode 100644 inherit_graph_24.map create mode 100644 inherit_graph_24.md5 create mode 100644 inherit_graph_24.png create mode 100644 inherit_graph_25.map create mode 100644 inherit_graph_25.md5 create mode 100644 inherit_graph_25.png create mode 100644 inherit_graph_26.map create mode 100644 inherit_graph_26.md5 create mode 100644 inherit_graph_26.png create mode 100644 inherit_graph_27.map create mode 100644 inherit_graph_27.md5 create mode 100644 inherit_graph_27.png create mode 100644 inherit_graph_28.map create mode 100644 inherit_graph_28.md5 create mode 100644 inherit_graph_28.png create mode 100644 inherit_graph_29.map create mode 100644 inherit_graph_29.md5 create mode 100644 inherit_graph_29.png create mode 100644 inherit_graph_3.map create mode 100644 inherit_graph_3.md5 create mode 100644 inherit_graph_3.png create mode 100644 inherit_graph_30.map create mode 100644 inherit_graph_30.md5 create mode 100644 inherit_graph_30.png create mode 100644 inherit_graph_31.map create mode 100644 inherit_graph_31.md5 create mode 100644 inherit_graph_31.png create mode 100644 inherit_graph_32.map create mode 100644 inherit_graph_32.md5 create mode 100644 inherit_graph_32.png create mode 100644 inherit_graph_33.map create mode 100644 inherit_graph_33.md5 create mode 100644 inherit_graph_33.png create mode 100644 inherit_graph_34.map create mode 100644 inherit_graph_34.md5 create mode 100644 inherit_graph_34.png create mode 100644 inherit_graph_35.map create mode 100644 inherit_graph_35.md5 create mode 100644 inherit_graph_35.png create mode 100644 inherit_graph_36.map create mode 100644 inherit_graph_36.md5 create mode 100644 inherit_graph_36.png create mode 100644 inherit_graph_37.map create mode 100644 inherit_graph_37.md5 create mode 100644 inherit_graph_37.png create mode 100644 inherit_graph_38.map create mode 100644 inherit_graph_38.md5 create mode 100644 inherit_graph_38.png create mode 100644 inherit_graph_39.map create mode 100644 inherit_graph_39.md5 create mode 100644 inherit_graph_39.png create mode 100644 inherit_graph_4.map create mode 100644 inherit_graph_4.md5 create mode 100644 inherit_graph_4.png create mode 100644 inherit_graph_40.map create mode 100644 inherit_graph_40.md5 create mode 100644 inherit_graph_40.png create mode 100644 inherit_graph_41.map create mode 100644 inherit_graph_41.md5 create mode 100644 inherit_graph_41.png create mode 100644 inherit_graph_42.map create mode 100644 inherit_graph_42.md5 create mode 100644 inherit_graph_42.png create mode 100644 inherit_graph_43.map create mode 100644 inherit_graph_43.md5 create mode 100644 inherit_graph_43.png create mode 100644 inherit_graph_44.map create mode 100644 inherit_graph_44.md5 create mode 100644 inherit_graph_44.png create mode 100644 inherit_graph_45.map create mode 100644 inherit_graph_45.md5 create mode 100644 inherit_graph_45.png create mode 100644 inherit_graph_46.map create mode 100644 inherit_graph_46.md5 create mode 100644 inherit_graph_46.png create mode 100644 inherit_graph_47.map create mode 100644 inherit_graph_47.md5 create mode 100644 inherit_graph_47.png create mode 100644 inherit_graph_48.map create mode 100644 inherit_graph_48.md5 create mode 100644 inherit_graph_48.png create mode 100644 inherit_graph_49.map create mode 100644 inherit_graph_49.md5 create mode 100644 inherit_graph_49.png create mode 100644 inherit_graph_5.map create mode 100644 inherit_graph_5.md5 create mode 100644 inherit_graph_5.png create mode 100644 inherit_graph_50.map create mode 100644 inherit_graph_50.md5 create mode 100644 inherit_graph_50.png create mode 100644 inherit_graph_51.map create mode 100644 inherit_graph_51.md5 create mode 100644 inherit_graph_51.png create mode 100644 inherit_graph_52.map create mode 100644 inherit_graph_52.md5 create mode 100644 inherit_graph_52.png create mode 100644 inherit_graph_53.map create mode 100644 inherit_graph_53.md5 create mode 100644 inherit_graph_53.png create mode 100644 inherit_graph_54.map create mode 100644 inherit_graph_54.md5 create mode 100644 inherit_graph_54.png create mode 100644 inherit_graph_55.map create mode 100644 inherit_graph_55.md5 create mode 100644 inherit_graph_55.png create mode 100644 inherit_graph_56.map create mode 100644 inherit_graph_56.md5 create mode 100644 inherit_graph_56.png create mode 100644 inherit_graph_57.map create mode 100644 inherit_graph_57.md5 create mode 100644 inherit_graph_57.png create mode 100644 inherit_graph_58.map create mode 100644 inherit_graph_58.md5 create mode 100644 inherit_graph_58.png create mode 100644 inherit_graph_59.map create mode 100644 inherit_graph_59.md5 create mode 100644 inherit_graph_59.png create mode 100644 inherit_graph_6.map create mode 100644 inherit_graph_6.md5 create mode 100644 inherit_graph_6.png create mode 100644 inherit_graph_60.map create mode 100644 inherit_graph_60.md5 create mode 100644 inherit_graph_60.png create mode 100644 inherit_graph_61.map create mode 100644 inherit_graph_61.md5 create mode 100644 inherit_graph_61.png create mode 100644 inherit_graph_62.map create mode 100644 inherit_graph_62.md5 create mode 100644 inherit_graph_62.png create mode 100644 inherit_graph_7.map create mode 100644 inherit_graph_7.md5 create mode 100644 inherit_graph_7.png create mode 100644 inherit_graph_8.map create mode 100644 inherit_graph_8.md5 create mode 100644 inherit_graph_8.png create mode 100644 inherit_graph_9.map create mode 100644 inherit_graph_9.md5 create mode 100644 inherit_graph_9.png create mode 100644 inherits.html create mode 100644 input__in__frame_8cpp.html create mode 100644 input__in__frame_8cpp.js create mode 100644 input__in__frame_8cpp_source.html create mode 100644 input__style_8cpp.html create mode 100644 input__style_8cpp.js create mode 100644 input__style_8cpp_source.html create mode 100644 installation.html create mode 100644 installation.js create mode 100644 installation_8md.html create mode 100644 installation__arch_8md.html create mode 100644 installation__bazel_8md.html create mode 100644 installation__cmake_8md.html create mode 100644 installation__conan_8md.html create mode 100644 installation__debian_8md.html create mode 100644 installation__manual_8md.html create mode 100644 installation__nix_8md.html create mode 100644 installation__opensuse_8md.html create mode 100644 installation__vcpkg_8md.html create mode 100644 installation__xmake_8md.html create mode 100644 installation_arch.html create mode 100644 installation_bazel.html create mode 100644 installation_cmake.html create mode 100644 installation_conan.html create mode 100644 installation_debian.html create mode 100644 installation_manual.html create mode 100644 installation_nix.html create mode 100644 installation_opensuse.html create mode 100644 installation_vcpkg.html create mode 100644 installation_xmake.html create mode 100644 introduction_8md.html create mode 100644 inverted_8cpp.html create mode 100644 inverted_8cpp.js create mode 100644 inverted_8cpp_source.html create mode 100644 italic_8cpp.html create mode 100644 italic_8cpp.js create mode 100644 italic_8cpp_source.html create mode 100644 jquery.js create mode 100644 linear__gradient_8cppm.html create mode 100644 linear__gradient_8cppm_source.html create mode 100644 linear__gradient_8hpp.html create mode 100644 linear__gradient_8hpp.js create mode 100644 linear__gradient_8hpp_source.html create mode 100644 linear__gradient__gallery_8cpp.html create mode 100644 linear__gradient__gallery_8cpp.js create mode 100644 linear__gradient__gallery_8cpp_source.html create mode 100644 loop_8cpp.html create mode 100644 loop_8cpp_source.html create mode 100644 loop_8cppm.html create mode 100644 loop_8cppm_source.html create mode 100644 loop_8hpp.html create mode 100644 loop_8hpp_source.html create mode 100644 menu.js create mode 100644 menu2_8cpp.html create mode 100644 menu2_8cpp.js create mode 100644 menu2_8cpp_source.html create mode 100644 menu__entries_8cpp.html create mode 100644 menu__entries_8cpp.js create mode 100644 menu__entries_8cpp_source.html create mode 100644 menu__entries__animated_8cpp.html create mode 100644 menu__entries__animated_8cpp.js create mode 100644 menu__entries__animated_8cpp_source.html create mode 100644 menu__in__frame_8cpp.html create mode 100644 menu__in__frame_8cpp.js create mode 100644 menu__in__frame_8cpp_source.html create mode 100644 menu__in__frame__horizontal_8cpp.html create mode 100644 menu__in__frame__horizontal_8cpp.js create mode 100644 menu__in__frame__horizontal_8cpp_source.html create mode 100644 menu__multiple_8cpp.html create mode 100644 menu__multiple_8cpp.js create mode 100644 menu__multiple_8cpp_source.html create mode 100644 menu__style_8cpp.html create mode 100644 menu__style_8cpp.js create mode 100644 menu__style_8cpp_source.html create mode 100644 menu__underline__animated__gallery_8cpp.html create mode 100644 menu__underline__animated__gallery_8cpp.js create mode 100644 menu__underline__animated__gallery_8cpp_source.html create mode 100644 menudata.js create mode 100644 minus.svg create mode 100644 minusd.svg create mode 100644 modal_8cpp.html create mode 100644 modal_8cpp.js create mode 100644 modal_8cpp_source.html create mode 100644 modal__dialog_8cpp.html create mode 100644 modal__dialog_8cpp.js create mode 100644 modal__dialog_8cpp_source.html create mode 100644 modal__dialog__custom_8cpp.html create mode 100644 modal__dialog__custom_8cpp.js create mode 100644 modal__dialog__custom_8cpp_source.html create mode 100644 module-component-examples.html create mode 100644 module-component.html create mode 100644 module-component.js create mode 100644 module-component_8md.html create mode 100644 module-dom-examples.html create mode 100644 module-dom.html create mode 100644 module-dom.js create mode 100644 module-dom_8md.html create mode 100644 module-screen.html create mode 100644 module-screen_8md.html create mode 100644 module_8md.html create mode 100644 module__ftxui.html create mode 100644 module__ftxui_8component.html create mode 100644 module__ftxui_8component_8animation.html create mode 100644 module__ftxui_8component_8captured__mouse.html create mode 100644 module__ftxui_8component_8component.html create mode 100644 module__ftxui_8component_8component__base.html create mode 100644 module__ftxui_8component_8component__options.html create mode 100644 module__ftxui_8component_8event.html create mode 100644 module__ftxui_8component_8loop.html create mode 100644 module__ftxui_8component_8mouse.html create mode 100644 module__ftxui_8component_8receiver.html create mode 100644 module__ftxui_8component_8screen__interactive.html create mode 100644 module__ftxui_8component_8task.html create mode 100644 module__ftxui_8dom.html create mode 100644 module__ftxui_8dom_8canvas.html create mode 100644 module__ftxui_8dom_8deprecated.html create mode 100644 module__ftxui_8dom_8direction.html create mode 100644 module__ftxui_8dom_8elements.html create mode 100644 module__ftxui_8dom_8flexbox__config.html create mode 100644 module__ftxui_8dom_8linear__gradient.html create mode 100644 module__ftxui_8dom_8node.html create mode 100644 module__ftxui_8dom_8requirement.html create mode 100644 module__ftxui_8dom_8selection.html create mode 100644 module__ftxui_8dom_8table.html create mode 100644 module__ftxui_8screen.html create mode 100644 module__ftxui_8screen_8box.html create mode 100644 module__ftxui_8screen_8color.html create mode 100644 module__ftxui_8screen_8color__info.html create mode 100644 module__ftxui_8screen_8deprecated.html create mode 100644 module__ftxui_8screen_8image.html create mode 100644 module__ftxui_8screen_8pixel.html create mode 100644 module__ftxui_8screen_8screen.html create mode 100644 module__ftxui_8screen_8string.html create mode 100644 module__ftxui_8screen_8terminal.html create mode 100644 module__ftxui_8util.html create mode 100644 module__ftxui_8util_8autoreset.html create mode 100644 module__ftxui_8util_8ref.html create mode 100644 modules.html create mode 100644 modules_dup.js create mode 100644 mouse_8cppm.html create mode 100644 mouse_8cppm_source.html create mode 100644 mouse_8hpp.html create mode 100644 mouse_8hpp_source.html create mode 100644 namespaceeasing.html create mode 100644 namespaceftxui.html create mode 100644 namespaceftxui_1_1Container.html create mode 100644 namespaceftxui_1_1Dimension.html create mode 100644 namespaceftxui_1_1Terminal.html create mode 100644 namespaceftxui_1_1animation.html create mode 100644 namespaceftxui_1_1animation_1_1easing.html create mode 100644 namespaceftxui_1_1box__helper.html create mode 100644 namespaceftxui_1_1flexbox__helper.html create mode 100644 namespaceftxui_1_1literals.html create mode 100644 namespaceftxui_1_1task.html create mode 100644 namespaceftxui_1_1util.html create mode 100644 namespacemembers.html create mode 100644 namespacemembers_b.html create mode 100644 namespacemembers_c.html create mode 100644 namespacemembers_d.html create mode 100644 namespacemembers_dup.js create mode 100644 namespacemembers_e.html create mode 100644 namespacemembers_enum.html create mode 100644 namespacemembers_eval.html create mode 100644 namespacemembers_f.html create mode 100644 namespacemembers_func.html create mode 100644 namespacemembers_func.js create mode 100644 namespacemembers_func_b.html create mode 100644 namespacemembers_func_c.html create mode 100644 namespacemembers_func_d.html create mode 100644 namespacemembers_func_e.html create mode 100644 namespacemembers_func_f.html create mode 100644 namespacemembers_func_g.html create mode 100644 namespacemembers_func_h.html create mode 100644 namespacemembers_func_i.html create mode 100644 namespacemembers_func_l.html create mode 100644 namespacemembers_func_m.html create mode 100644 namespacemembers_func_n.html create mode 100644 namespacemembers_func_o.html create mode 100644 namespacemembers_func_p.html create mode 100644 namespacemembers_func_q.html create mode 100644 namespacemembers_func_r.html create mode 100644 namespacemembers_func_s.html create mode 100644 namespacemembers_func_t.html create mode 100644 namespacemembers_func_u.html create mode 100644 namespacemembers_func_v.html create mode 100644 namespacemembers_func_w.html create mode 100644 namespacemembers_func_x.html create mode 100644 namespacemembers_func_y.html create mode 100644 namespacemembers_g.html create mode 100644 namespacemembers_h.html create mode 100644 namespacemembers_i.html create mode 100644 namespacemembers_l.html create mode 100644 namespacemembers_m.html create mode 100644 namespacemembers_n.html create mode 100644 namespacemembers_o.html create mode 100644 namespacemembers_p.html create mode 100644 namespacemembers_q.html create mode 100644 namespacemembers_r.html create mode 100644 namespacemembers_s.html create mode 100644 namespacemembers_t.html create mode 100644 namespacemembers_type.html create mode 100644 namespacemembers_u.html create mode 100644 namespacemembers_v.html create mode 100644 namespacemembers_vars.html create mode 100644 namespacemembers_w.html create mode 100644 namespacemembers_x.html create mode 100644 namespacemembers_y.html create mode 100644 nav_f.png create mode 100644 nav_fd.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 nav_hd.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 navtreeindex1.js create mode 100644 navtreeindex2.js create mode 100644 navtreeindex3.js create mode 100644 navtreeindex4.js create mode 100644 navtreeindex5.js create mode 100644 navtreeindex6.js create mode 100644 navtreeindex7.js create mode 100644 navtreeindex8.js create mode 100644 navtreeindex9.js create mode 100644 nested__screen_8cpp.html create mode 100644 nested__screen_8cpp.js create mode 100644 nested__screen_8cpp_source.html create mode 100644 node_8cpp.html create mode 100644 node_8cpp.js create mode 100644 node_8cpp_source.html create mode 100644 node_8cppm.html create mode 100644 node_8cppm_source.html create mode 100644 node_8hpp.html create mode 100644 node_8hpp.js create mode 100644 node_8hpp_source.html create mode 100644 node__decorator_8cpp.html create mode 100644 node__decorator_8cpp_source.html create mode 100644 node__decorator_8hpp.html create mode 100644 node__decorator_8hpp.js create mode 100644 node__decorator_8hpp_source.html create mode 100644 open.png create mode 100644 package__manager_8cpp.html create mode 100644 package__manager_8cpp.js create mode 100644 package__manager_8cpp_source.html create mode 100644 pages.html create mode 100644 pixel_8cppm.html create mode 100644 pixel_8cppm_source.html create mode 100644 pixel_8hpp.html create mode 100644 pixel_8hpp_source.html create mode 100644 plus.svg create mode 100644 plusd.svg create mode 100644 print__key__press_8cpp.html create mode 100644 print__key__press_8cpp.js create mode 100644 print__key__press_8cpp_source.html create mode 100644 radiobox__in__frame_8cpp.html create mode 100644 radiobox__in__frame_8cpp.js create mode 100644 radiobox__in__frame_8cpp_source.html create mode 100644 receiver_8cppm.html create mode 100644 receiver_8cppm_source.html create mode 100644 receiver_8hpp.html create mode 100644 receiver_8hpp.js create mode 100644 receiver_8hpp_source.html create mode 100644 ref_8cppm.html create mode 100644 ref_8cppm_source.html create mode 100644 ref_8hpp.html create mode 100644 ref_8hpp.js create mode 100644 ref_8hpp_source.html create mode 100644 reflect_8cpp.html create mode 100644 reflect_8cpp.js create mode 100644 reflect_8cpp_source.html create mode 100644 requirement_8cppm.html create mode 100644 requirement_8cppm_source.html create mode 100644 requirement_8hpp.html create mode 100644 requirement_8hpp.js create mode 100644 requirement_8hpp_source.html create mode 100644 resize.js create mode 100644 screen_2color_8cpp.html create mode 100644 screen_2color_8cpp.js create mode 100644 screen_2color_8cpp_source.html create mode 100644 screen_2deprecated_8cppm.html create mode 100644 screen_2deprecated_8cppm_source.html create mode 100644 screen_2deprecated_8hpp.html create mode 100644 screen_2deprecated_8hpp.js create mode 100644 screen_2deprecated_8hpp_source.html create mode 100644 screen_2screen_8cppm.html create mode 100644 screen_2screen_8cppm_source.html create mode 100644 screen_8cpp.html create mode 100644 screen_8cpp.js create mode 100644 screen_8cpp_source.html create mode 100644 screen_8cppm.html create mode 100644 screen_8cppm_source.html create mode 100644 screen_8hpp.html create mode 100644 screen_8hpp.js create mode 100644 screen_8hpp_source.html create mode 100644 screen__interactive_8cpp.html create mode 100644 screen__interactive_8cpp.js create mode 100644 screen__interactive_8cpp_source.html create mode 100644 screen__interactive_8cppm.html create mode 100644 screen__interactive_8cppm_source.html create mode 100644 screen__interactive_8hpp.html create mode 100644 screen__interactive_8hpp.js create mode 100644 screen__interactive_8hpp_source.html create mode 100644 scroll__indicator_8cpp.html create mode 100644 scroll__indicator_8cpp.js create mode 100644 scroll__indicator_8cpp_source.html create mode 100644 scrollbar_8cpp.html create mode 100644 scrollbar_8cpp.js create mode 100644 scrollbar_8cpp_source.html create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_10.js create mode 100644 search/all_11.js create mode 100644 search/all_12.js create mode 100644 search/all_13.js create mode 100644 search/all_14.js create mode 100644 search/all_15.js create mode 100644 search/all_16.js create mode 100644 search/all_17.js create mode 100644 search/all_18.js create mode 100644 search/all_19.js create mode 100644 search/all_1a.js create mode 100644 search/all_1b.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/classes_1.js create mode 100644 search/classes_10.js create mode 100644 search/classes_2.js create mode 100644 search/classes_3.js create mode 100644 search/classes_4.js create mode 100644 search/classes_5.js create mode 100644 search/classes_6.js create mode 100644 search/classes_7.js create mode 100644 search/classes_8.js create mode 100644 search/classes_9.js create mode 100644 search/classes_a.js create mode 100644 search/classes_b.js create mode 100644 search/classes_c.js create mode 100644 search/classes_d.js create mode 100644 search/classes_e.js create mode 100644 search/classes_f.js create mode 100644 search/close.svg create mode 100644 search/defines_0.js create mode 100644 search/defines_1.js create mode 100644 search/enums_0.js create mode 100644 search/enums_1.js create mode 100644 search/enums_2.js create mode 100644 search/enums_3.js create mode 100644 search/enums_4.js create mode 100644 search/enums_5.js create mode 100644 search/enums_6.js create mode 100644 search/enums_7.js create mode 100644 search/enums_8.js create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_10.js create mode 100644 search/enumvalues_11.js create mode 100644 search/enumvalues_12.js create mode 100644 search/enumvalues_13.js create mode 100644 search/enumvalues_14.js create mode 100644 search/enumvalues_15.js create mode 100644 search/enumvalues_16.js create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.js create mode 100644 search/enumvalues_4.js create mode 100644 search/enumvalues_5.js create mode 100644 search/enumvalues_6.js create mode 100644 search/enumvalues_7.js create mode 100644 search/enumvalues_8.js create mode 100644 search/enumvalues_9.js create mode 100644 search/enumvalues_a.js create mode 100644 search/enumvalues_b.js create mode 100644 search/enumvalues_c.js create mode 100644 search/enumvalues_d.js create mode 100644 search/enumvalues_e.js create mode 100644 search/enumvalues_f.js create mode 100644 search/files_0.js create mode 100644 search/files_1.js create mode 100644 search/files_10.js create mode 100644 search/files_11.js create mode 100644 search/files_12.js create mode 100644 search/files_2.js create mode 100644 search/files_3.js create mode 100644 search/files_4.js create mode 100644 search/files_5.js create mode 100644 search/files_6.js create mode 100644 search/files_7.js create mode 100644 search/files_8.js create mode 100644 search/files_9.js create mode 100644 search/files_a.js create mode 100644 search/files_b.js create mode 100644 search/files_c.js create mode 100644 search/files_d.js create mode 100644 search/files_e.js create mode 100644 search/files_f.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_10.js create mode 100644 search/functions_11.js create mode 100644 search/functions_12.js create mode 100644 search/functions_13.js create mode 100644 search/functions_14.js create mode 100644 search/functions_15.js create mode 100644 search/functions_16.js create mode 100644 search/functions_17.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/functions_5.js create mode 100644 search/functions_6.js create mode 100644 search/functions_7.js create mode 100644 search/functions_8.js create mode 100644 search/functions_9.js create mode 100644 search/functions_a.js create mode 100644 search/functions_b.js create mode 100644 search/functions_c.js create mode 100644 search/functions_d.js create mode 100644 search/functions_e.js create mode 100644 search/functions_f.js create mode 100644 search/groups_0.js create mode 100644 search/groups_1.js create mode 100644 search/groups_2.js create mode 100644 search/groups_3.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/modules_0.js create mode 100644 search/namespaces_0.js create mode 100644 search/namespaces_1.js create mode 100644 search/pages_0.js create mode 100644 search/pages_1.js create mode 100644 search/pages_10.js create mode 100644 search/pages_11.js create mode 100644 search/pages_2.js create mode 100644 search/pages_3.js create mode 100644 search/pages_4.js create mode 100644 search/pages_5.js create mode 100644 search/pages_6.js create mode 100644 search/pages_7.js create mode 100644 search/pages_8.js create mode 100644 search/pages_9.js create mode 100644 search/pages_a.js create mode 100644 search/pages_b.js create mode 100644 search/pages_c.js create mode 100644 search/pages_d.js create mode 100644 search/pages_e.js create mode 100644 search/pages_f.js create mode 100644 search/related_0.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.js create mode 100644 search/typedefs_3.js create mode 100644 search/typedefs_4.js create mode 100644 search/typedefs_5.js create mode 100644 search/typedefs_6.js create mode 100644 search/typedefs_7.js create mode 100644 search/typedefs_8.js create mode 100644 search/typedefs_9.js create mode 100644 search/variables_0.js create mode 100644 search/variables_1.js create mode 100644 search/variables_10.js create mode 100644 search/variables_11.js create mode 100644 search/variables_12.js create mode 100644 search/variables_13.js create mode 100644 search/variables_14.js create mode 100644 search/variables_15.js create mode 100644 search/variables_16.js create mode 100644 search/variables_17.js create mode 100644 search/variables_18.js create mode 100644 search/variables_19.js create mode 100644 search/variables_2.js create mode 100644 search/variables_3.js create mode 100644 search/variables_4.js create mode 100644 search/variables_5.js create mode 100644 search/variables_6.js create mode 100644 search/variables_7.js create mode 100644 search/variables_8.js create mode 100644 search/variables_9.js create mode 100644 search/variables_a.js create mode 100644 search/variables_b.js create mode 100644 search/variables_c.js create mode 100644 search/variables_d.js create mode 100644 search/variables_e.js create mode 100644 search/variables_f.js create mode 100644 selection_8cppm.html create mode 100644 selection_8cppm_source.html create mode 100644 selection_8hpp.html create mode 100644 selection_8hpp_source.html create mode 100644 selection__style_8cpp.html create mode 100644 selection__style_8cpp.js create mode 100644 selection__style_8cpp_source.html create mode 100644 separator__style_8cpp.html create mode 100644 separator__style_8cpp.js create mode 100644 separator__style_8cpp_source.html create mode 100644 slider__direction_8cpp.html create mode 100644 slider__direction_8cpp.js create mode 100644 slider__direction_8cpp_source.html create mode 100644 slider__rgb_8cpp.html create mode 100644 slider__rgb_8cpp.js create mode 100644 slider__rgb_8cpp_source.html create mode 100644 splitbar.png create mode 100644 splitbard.png create mode 100644 src_2ftxui_2component_2button_8cpp.html create mode 100644 src_2ftxui_2component_2button_8cpp.js create mode 100644 src_2ftxui_2component_2button_8cpp_source.html create mode 100644 src_2ftxui_2component_2checkbox_8cpp.html create mode 100644 src_2ftxui_2component_2checkbox_8cpp.js create mode 100644 src_2ftxui_2component_2checkbox_8cpp_source.html create mode 100644 src_2ftxui_2component_2collapsible_8cpp.html create mode 100644 src_2ftxui_2component_2collapsible_8cpp.js create mode 100644 src_2ftxui_2component_2collapsible_8cpp_source.html create mode 100644 src_2ftxui_2component_2dropdown_8cpp.html create mode 100644 src_2ftxui_2component_2dropdown_8cpp.js create mode 100644 src_2ftxui_2component_2dropdown_8cpp_source.html create mode 100644 src_2ftxui_2component_2input_8cpp.html create mode 100644 src_2ftxui_2component_2input_8cpp.js create mode 100644 src_2ftxui_2component_2input_8cpp_source.html create mode 100644 src_2ftxui_2component_2maybe_8cpp.html create mode 100644 src_2ftxui_2component_2maybe_8cpp.js create mode 100644 src_2ftxui_2component_2maybe_8cpp_source.html create mode 100644 src_2ftxui_2component_2menu_8cpp.html create mode 100644 src_2ftxui_2component_2menu_8cpp.js create mode 100644 src_2ftxui_2component_2menu_8cpp_source.html create mode 100644 src_2ftxui_2component_2radiobox_8cpp.html create mode 100644 src_2ftxui_2component_2radiobox_8cpp.js create mode 100644 src_2ftxui_2component_2radiobox_8cpp_source.html create mode 100644 src_2ftxui_2component_2renderer_8cpp.html create mode 100644 src_2ftxui_2component_2renderer_8cpp.js create mode 100644 src_2ftxui_2component_2renderer_8cpp_source.html create mode 100644 src_2ftxui_2component_2resizable__split_8cpp.html create mode 100644 src_2ftxui_2component_2resizable__split_8cpp.js create mode 100644 src_2ftxui_2component_2resizable__split_8cpp_source.html create mode 100644 src_2ftxui_2component_2slider_8cpp.html create mode 100644 src_2ftxui_2component_2slider_8cpp.js create mode 100644 src_2ftxui_2component_2slider_8cpp_source.html create mode 100644 src_2ftxui_2component_2window_8cpp.html create mode 100644 src_2ftxui_2component_2window_8cpp.js create mode 100644 src_2ftxui_2component_2window_8cpp_source.html create mode 100644 src_2ftxui_2dom_2border_8cpp.html create mode 100644 src_2ftxui_2dom_2border_8cpp.js create mode 100644 src_2ftxui_2dom_2border_8cpp_source.html create mode 100644 src_2ftxui_2dom_2canvas_8cpp.html create mode 100644 src_2ftxui_2dom_2canvas_8cpp.js create mode 100644 src_2ftxui_2dom_2canvas_8cpp_source.html create mode 100644 src_2ftxui_2dom_2dbox_8cpp.html create mode 100644 src_2ftxui_2dom_2dbox_8cpp.js create mode 100644 src_2ftxui_2dom_2dbox_8cpp_source.html create mode 100644 src_2ftxui_2dom_2focus_8cpp.html create mode 100644 src_2ftxui_2dom_2focus_8cpp.js create mode 100644 src_2ftxui_2dom_2focus_8cpp_source.html create mode 100644 src_2ftxui_2dom_2gauge_8cpp.html create mode 100644 src_2ftxui_2dom_2gauge_8cpp.js create mode 100644 src_2ftxui_2dom_2gauge_8cpp_source.html create mode 100644 src_2ftxui_2dom_2graph_8cpp.html create mode 100644 src_2ftxui_2dom_2graph_8cpp.js create mode 100644 src_2ftxui_2dom_2graph_8cpp_source.html create mode 100644 src_2ftxui_2dom_2gridbox_8cpp.html create mode 100644 src_2ftxui_2dom_2gridbox_8cpp.js create mode 100644 src_2ftxui_2dom_2gridbox_8cpp_source.html create mode 100644 src_2ftxui_2dom_2linear__gradient_8cpp.html create mode 100644 src_2ftxui_2dom_2linear__gradient_8cpp.js create mode 100644 src_2ftxui_2dom_2linear__gradient_8cpp_source.html create mode 100644 src_2ftxui_2dom_2paragraph_8cpp.html create mode 100644 src_2ftxui_2dom_2paragraph_8cpp.js create mode 100644 src_2ftxui_2dom_2paragraph_8cpp_source.html create mode 100644 src_2ftxui_2dom_2selection_8cpp.html create mode 100644 src_2ftxui_2dom_2selection_8cpp_source.html create mode 100644 src_2ftxui_2dom_2separator_8cpp.html create mode 100644 src_2ftxui_2dom_2separator_8cpp.js create mode 100644 src_2ftxui_2dom_2separator_8cpp_source.html create mode 100644 src_2ftxui_2dom_2size_8cpp.html create mode 100644 src_2ftxui_2dom_2size_8cpp.js create mode 100644 src_2ftxui_2dom_2size_8cpp_source.html create mode 100644 src_2ftxui_2dom_2spinner_8cpp.html create mode 100644 src_2ftxui_2dom_2spinner_8cpp.js create mode 100644 src_2ftxui_2dom_2spinner_8cpp_source.html create mode 100644 src_2ftxui_2dom_2table_8cpp.html create mode 100644 src_2ftxui_2dom_2table_8cpp_source.html create mode 100644 strikethrough_8cpp.html create mode 100644 strikethrough_8cpp.js create mode 100644 strikethrough_8cpp_source.html create mode 100644 string_8cpp.html create mode 100644 string_8cpp.js create mode 100644 string_8cpp_source.html create mode 100644 string_8cppm.html create mode 100644 string_8cppm_source.html create mode 100644 string_8hpp.html create mode 100644 string_8hpp.js create mode 100644 string_8hpp_source.html create mode 100644 string__internal_8hpp.html create mode 100644 string__internal_8hpp.js create mode 100644 string__internal_8hpp_source.html create mode 100644 structftxui_1_1AnimatedColorsOption-members.html create mode 100644 structftxui_1_1AnimatedColorsOption.html create mode 100644 structftxui_1_1AnimatedColorsOption.js create mode 100644 structftxui_1_1EntryState-members.html create mode 100644 structftxui_1_1EntryState.html create mode 100644 structftxui_1_1EntryState.js create mode 100644 structftxui_1_1InputState-members.html create mode 100644 structftxui_1_1InputState.html create mode 100644 structftxui_1_1InputState.js create mode 100644 structftxui_1_1LinearGradient_1_1Stop-members.html create mode 100644 structftxui_1_1LinearGradient_1_1Stop.html create mode 100644 structftxui_1_1LinearGradient_1_1Stop.js create mode 100644 structftxui_1_1Node_1_1Status-members.html create mode 100644 structftxui_1_1Node_1_1Status.html create mode 100644 structftxui_1_1Node_1_1Status.js create mode 100644 structftxui_1_1Requirement_1_1Focused-members.html create mode 100644 structftxui_1_1Requirement_1_1Focused.html create mode 100644 structftxui_1_1Requirement_1_1Focused.js create mode 100644 structftxui_1_1ResizableSplitOption-members.html create mode 100644 structftxui_1_1ResizableSplitOption.html create mode 100644 structftxui_1_1ResizableSplitOption.js create mode 100644 structftxui_1_1Screen_1_1Cursor-members.html create mode 100644 structftxui_1_1Screen_1_1Cursor.html create mode 100644 structftxui_1_1Screen_1_1Cursor.js create mode 100644 structftxui_1_1SliderOption-members.html create mode 100644 structftxui_1_1SliderOption.html create mode 100644 structftxui_1_1SliderOption.js create mode 100644 structftxui_1_1WindowOptions-members.html create mode 100644 structftxui_1_1WindowOptions.html create mode 100644 structftxui_1_1WindowOptions.js create mode 100644 structftxui_1_1box__helper_1_1Element-members.html create mode 100644 structftxui_1_1box__helper_1_1Element.html create mode 100644 structftxui_1_1box__helper_1_1Element.js create mode 100644 structftxui_1_1flexbox__helper_1_1Block-members.html create mode 100644 structftxui_1_1flexbox__helper_1_1Block.html create mode 100644 structftxui_1_1flexbox__helper_1_1Block.js create mode 100644 structftxui_1_1flexbox__helper_1_1Global-members.html create mode 100644 structftxui_1_1flexbox__helper_1_1Global.html create mode 100644 structftxui_1_1flexbox__helper_1_1Global.js create mode 100644 structftxui_1_1flexbox__helper_1_1Line-members.html create mode 100644 structftxui_1_1flexbox__helper_1_1Line.html create mode 100644 structftxui_1_1flexbox__helper_1_1Line.js create mode 100644 structftxui_1_1task_1_1PendingTask-members.html create mode 100644 structftxui_1_1task_1_1PendingTask.html create mode 100644 structftxui_1_1task_1_1PendingTask.js create mode 100644 structftxui_1_1task_1_1TaskQueue-members.html create mode 100644 structftxui_1_1task_1_1TaskQueue.html create mode 100644 structftxui_1_1task_1_1TaskQueue.js create mode 100644 style__blink_8cpp.html create mode 100644 style__blink_8cpp.js create mode 100644 style__blink_8cpp_source.html create mode 100644 style__bold_8cpp.html create mode 100644 style__bold_8cpp.js create mode 100644 style__bold_8cpp_source.html create mode 100644 style__color_8cpp.html create mode 100644 style__color_8cpp.js create mode 100644 style__color_8cpp_source.html create mode 100644 style__dim_8cpp.html create mode 100644 style__dim_8cpp.js create mode 100644 style__dim_8cpp_source.html create mode 100644 style__gallery_8cpp.html create mode 100644 style__gallery_8cpp.js create mode 100644 style__gallery_8cpp_source.html create mode 100644 style__hyperlink_8cpp.html create mode 100644 style__hyperlink_8cpp.js create mode 100644 style__hyperlink_8cpp_source.html create mode 100644 style__inverted_8cpp.html create mode 100644 style__inverted_8cpp.js create mode 100644 style__inverted_8cpp_source.html create mode 100644 style__italic_8cpp.html create mode 100644 style__italic_8cpp.js create mode 100644 style__italic_8cpp_source.html create mode 100644 style__strikethrough_8cpp.html create mode 100644 style__strikethrough_8cpp.js create mode 100644 style__strikethrough_8cpp_source.html create mode 100644 style__underlined_8cpp.html create mode 100644 style__underlined_8cpp.js create mode 100644 style__underlined_8cpp_source.html create mode 100644 style__underlined__double_8cpp.html create mode 100644 style__underlined__double_8cpp.js create mode 100644 style__underlined__double_8cpp_source.html create mode 100644 stylesheet.css create mode 100644 svg.min.js create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab__horizontal_8cpp.html create mode 100644 tab__horizontal_8cpp.js create mode 100644 tab__horizontal_8cpp_source.html create mode 100644 tab__vertical_8cpp.html create mode 100644 tab__vertical_8cpp.js create mode 100644 tab__vertical_8cpp_source.html create mode 100644 tab_a.png create mode 100644 tab_ad.png create mode 100644 tab_b.png create mode 100644 tab_bd.png create mode 100644 tab_h.png create mode 100644 tab_hd.png create mode 100644 tab_s.png create mode 100644 tab_sd.png create mode 100644 table_8cppm.html create mode 100644 table_8cppm_source.html create mode 100644 table_8hpp.html create mode 100644 table_8hpp.js create mode 100644 table_8hpp_source.html create mode 100644 tabs.css create mode 100644 task_8cpp.html create mode 100644 task_8cpp_source.html create mode 100644 task_8cppm.html create mode 100644 task_8cppm_source.html create mode 100644 task_8hpp.html create mode 100644 task_8hpp.js create mode 100644 task_8hpp_source.html create mode 100644 task__internal_8hpp.html create mode 100644 task__internal_8hpp.js create mode 100644 task__internal_8hpp_source.html create mode 100644 task__queue_8cpp.html create mode 100644 task__queue_8cpp_source.html create mode 100644 task__queue_8hpp.html create mode 100644 task__queue_8hpp.js create mode 100644 task__queue_8hpp_source.html create mode 100644 task__runner_8cpp.html create mode 100644 task__runner_8cpp_source.html create mode 100644 task__runner_8hpp.html create mode 100644 task__runner_8hpp.js create mode 100644 task__runner_8hpp_source.html create mode 100644 terminal_8cpp.html create mode 100644 terminal_8cpp.js create mode 100644 terminal_8cpp_source.html create mode 100644 terminal_8cppm.html create mode 100644 terminal_8cppm_source.html create mode 100644 terminal_8hpp.html create mode 100644 terminal_8hpp.js create mode 100644 terminal_8hpp_source.html create mode 100644 terminal__input__parser_8cpp.html create mode 100644 terminal__input__parser_8cpp.js create mode 100644 terminal__input__parser_8cpp_source.html create mode 100644 terminal__input__parser_8hpp.html create mode 100644 terminal__input__parser_8hpp.js create mode 100644 terminal__input__parser_8hpp_source.html create mode 100644 terminal__input__parser__test__fuzzer_8cpp.html create mode 100644 terminal__input__parser__test__fuzzer_8cpp.js create mode 100644 terminal__input__parser__test__fuzzer_8cpp_source.html create mode 100644 text_8cpp.html create mode 100644 text_8cpp.js create mode 100644 text_8cpp_source.html create mode 100644 textarea_8cpp.html create mode 100644 textarea_8cpp.js create mode 100644 textarea_8cpp_source.html create mode 100644 todo.html create mode 100644 toggle_8cpp.html create mode 100644 toggle_8cpp.js create mode 100644 toggle_8cpp_source.html create mode 100644 topics.html create mode 100644 topics.js create mode 100644 underlined_8cpp.html create mode 100644 underlined_8cpp.js create mode 100644 underlined_8cpp_source.html create mode 100644 underlined__double_8cpp.html create mode 100644 underlined__double_8cpp.js create mode 100644 underlined__double_8cpp_source.html create mode 100644 util_8cppm.html create mode 100644 util_8cppm_source.html create mode 100644 util_8hpp.html create mode 100644 util_8hpp.js create mode 100644 util_8hpp_source.html create mode 100644 vbox_8cpp.html create mode 100644 vbox_8cpp.js create mode 100644 vbox_8cpp_source.html create mode 100644 vbox__hbox_8cpp.html create mode 100644 vbox__hbox_8cpp.js create mode 100644 vbox__hbox_8cpp_source.html create mode 100644 vflow_8cpp.html create mode 100644 vflow_8cpp.js create mode 100644 vflow_8cpp_source.html create mode 100644 warn__windows__macro_8hpp.html create mode 100644 warn__windows__macro_8hpp_source.html create mode 100644 with__restored__io_8cpp.html create mode 100644 with__restored__io_8cpp.js create mode 100644 with__restored__io_8cpp_source.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/animation_8cpp.html b/animation_8cpp.html new file mode 100644 index 000000000..b937e473e --- /dev/null +++ b/animation_8cpp.html @@ -0,0 +1,293 @@ + + + + + + + + +FTXUI: animation.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
animation.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::animation
 The FTXUI ftxui::animation:: namespace.
 
namespace  ftxui::animation::easing
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

float Linear (float p)
 Modeled after the line y = x.
 
float QuadraticIn (float p)
 Modeled after the parabola y = x^2.
 
float QuadraticOut (float p)
 
float QuadraticInOut (float p)
 
float CubicIn (float p)
 
float CubicOut (float p)
 
float CubicInOut (float p)
 
float QuarticIn (float p)
 
float QuarticOut (float p)
 
float QuarticInOut (float p)
 
float QuinticIn (float p)
 
float QuinticOut (float p)
 
float QuinticInOut (float p)
 
float SineIn (float p)
 
float SineOut (float p)
 
float SineInOut (float p)
 
float CircularIn (float p)
 
float CircularOut (float p)
 
float CircularInOut (float p)
 
float ExponentialIn (float p)
 
float ExponentialOut (float p)
 
float ExponentialInOut (float p)
 
float ElasticIn (float p)
 
float ElasticOut (float p)
 
float ElasticInOut (float p)
 
float BackIn (float p)
 
float BackOut (float p)
 
float BackInOut (float p)
 
float BounceIn (float p)
 
float BounceOut (float p)
 
float BounceInOut (float p)
 
+
+
+ + + + + diff --git a/animation_8cpp.js b/animation_8cpp.js new file mode 100644 index 000000000..edaed4dac --- /dev/null +++ b/animation_8cpp.js @@ -0,0 +1,34 @@ +var animation_8cpp = +[ + [ "Linear", "animation_8cpp.html#a39923c8d62cdaacdc179c2ece3ee16b4", null ], + [ "QuadraticIn", "animation_8cpp.html#ab0b9303e7f956c36960e601f158e488f", null ], + [ "QuadraticOut", "animation_8cpp.html#aa1618a8f59ae7bae191d0ab36bf90e66", null ], + [ "QuadraticInOut", "animation_8cpp.html#a8155757f48a6e85e27da99c0a93f7e8d", null ], + [ "CubicIn", "animation_8cpp.html#a2288ba740a847ea0e565017cb16c24f2", null ], + [ "CubicOut", "animation_8cpp.html#acd3c619812de25f3613b36735a5cdc91", null ], + [ "CubicInOut", "animation_8cpp.html#a2aa1d45766fe10c3b16b7dd4f65db859", null ], + [ "QuarticIn", "animation_8cpp.html#af60268bac4059d32b3f7680042dba350", null ], + [ "QuarticOut", "animation_8cpp.html#a8878f359f37551ae64eb183af3ca93b8", null ], + [ "QuarticInOut", "animation_8cpp.html#a72dd2cb5c7ffddfe3a3d8b455f68d37e", null ], + [ "QuinticIn", "animation_8cpp.html#ab4eae8c5808cc6ab161037659e761a50", null ], + [ "QuinticOut", "animation_8cpp.html#aae2598b1aa6a2fc944f52edbf0453fd5", null ], + [ "QuinticInOut", "animation_8cpp.html#afcbc9e6b461fe3418a59faf4a5f9284d", null ], + [ "SineIn", "animation_8cpp.html#af48c179e363c6656e904045b33756aeb", null ], + [ "SineOut", "animation_8cpp.html#a92e397623fa5a607f64ba58d5c3dc56a", null ], + [ "SineInOut", "animation_8cpp.html#a0eddac1c5f32c9f874ed1c6687a3c830", null ], + [ "CircularIn", "animation_8cpp.html#a9af9e9dc6ba657b5ab681eb8be39ddb5", null ], + [ "CircularOut", "animation_8cpp.html#a4188d3f98b876d0e0f181f9fd707f476", null ], + [ "CircularInOut", "animation_8cpp.html#a0d1df50c1810db4a8b16416b62ac7db0", null ], + [ "ExponentialIn", "animation_8cpp.html#ab0ca381749febbe74887c9fff0522434", null ], + [ "ExponentialOut", "animation_8cpp.html#a9de59af8a36489121dace3f2a996f029", null ], + [ "ExponentialInOut", "animation_8cpp.html#a502f9e65e97d295f46c6a6435a84464d", null ], + [ "ElasticIn", "animation_8cpp.html#a0cc4cc8d40617d7b21dea78f71917bbc", null ], + [ "ElasticOut", "animation_8cpp.html#ad771aec6f0170cb9039446699d1d2295", null ], + [ "ElasticInOut", "animation_8cpp.html#a537ce88e07af5658175f95eb70369fb9", null ], + [ "BackIn", "animation_8cpp.html#ae9cca3240dd9f14a807364e322bbdf79", null ], + [ "BackOut", "animation_8cpp.html#a440085789f25b7f3ffa1391f09e154f3", null ], + [ "BackInOut", "animation_8cpp.html#a4dfa1e95971ff8e4d0f7539f2e8ae577", null ], + [ "BounceIn", "animation_8cpp.html#a3a136fc5aedb4e99e08e5bea138463cb", null ], + [ "BounceOut", "animation_8cpp.html#aba7f60496f13f39385d9a47349e97c09", null ], + [ "BounceInOut", "animation_8cpp.html#a1a048fdae839f9493331cf1745767519", null ] +]; \ No newline at end of file diff --git a/animation_8cpp_source.html b/animation_8cpp_source.html new file mode 100644 index 000000000..7ebc6b090 --- /dev/null +++ b/animation_8cpp_source.html @@ -0,0 +1,603 @@ + + + + + + + + +FTXUI: animation.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
animation.cpp
+
+
+Go to the documentation of this file.
1#include <cmath> // for sin, pow, sqrt, cos
+
2#include <utility> // for move
+
3
+ +
5
+
6// NOLINTBEGIN(*-magic-numbers)
+
7namespace ftxui::animation {
+
8
+
9namespace easing {
+
10
+
11namespace {
+
12constexpr float kPi = 3.14159265358979323846f;
+
13constexpr float kPi2 = kPi / 2.f;
+
14} // namespace
+
15
+
16// Easing function have been taken out of:
+
17// https://github.com/warrenm/AHEasing/blob/master/AHEasing/easing.c
+
18//
+
19// Corresponding license:
+
20// Copyright (c) 2011, Auerhaus Development, LLC
+
21//
+
22// This program is free software. It comes without any warranty, to
+
23// the extent permitted by applicable law. You can redistribute it
+
24// and/or modify it under the terms of the Do What The Fuck You Want
+
25// To Public License, Version 2, as published by Sam Hocevar. See
+
26// http://sam.zoy.org/wtfpl/COPYING for more details.
+
27
+
28/// @brief Modeled after the line y = x
+
+
29float Linear(float p) {
+
30 return p;
+
31}
+
+
32
+
33/// @brief Modeled after the parabola y = x^2
+
+
34float QuadraticIn(float p) {
+
35 return p * p;
+
36}
+
+
37
+
38// @brief Modeled after the parabola y = -x^2 + 2x
+
+
39float QuadraticOut(float p) {
+
40 return -(p * (p - 2.f));
+
41}
+
+
42
+
43// @brief Modeled after the piecewise quadratic
+
44// y = (1/2)((2x)^2) ; [0, 0.5)
+
45// y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1]
+
+
46float QuadraticInOut(float p) {
+
47 return p < 0.5f ? 2.f * p * p : (-2.f * p * p) + (4.f * p) - 1.f;
+
48}
+
+
49
+
50// @brief Modeled after the cubic y = x^3
+
+
51float CubicIn(float p) {
+
52 return p * p * p;
+
53}
+
+
54
+
55// @brief Modeled after the cubic y = (x - 1)^3 + 1
+
+
56float CubicOut(float p) {
+
57 const float f = (p - 1.f);
+
58 return f * f * f + 1.f;
+
59}
+
+
60
+
61// @brief Modeled after the piecewise cubic
+
62// y = (1/2)((2x)^3) ; [0, 0.5)
+
63// y = (1/2)((2x-2)^3 + 2) ; [0.5, 1]
+
+
64float CubicInOut(float p) {
+
65 if (p < 0.5f) {
+
66 return 4.f * p * p * p;
+
67 }
+
68 const float f = ((2.f * p) - 2.f);
+
69 return 0.5f * f * f * f + 1.f;
+
70}
+
+
71
+
72// @brief Modeled after the quartic x^4
+
+
73float QuarticIn(float p) {
+
74 return p * p * p * p;
+
75}
+
+
76
+
77// @brief Modeled after the quartic y = 1 - (x - 1)^4
+
+
78float QuarticOut(float p) {
+
79 const float f = (p - 1.f);
+
80 return f * f * f * (1.f - p) + 1.f;
+
81}
+
+
82
+
83// @brief Modeled after the piecewise quartic
+
84// y = (1/2)((2x)^4) ; [0, 0.5)
+
85// y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1]
+
+
86float QuarticInOut(float p) {
+
87 if (p < 0.5f) {
+
88 return 8.f * p * p * p * p;
+
89 }
+
90 const float f = (p - 1.f);
+
91 return -8.f * f * f * f * f + 1.f;
+
92}
+
+
93
+
94// @brief Modeled after the quintic y = x^5
+
+
95float QuinticIn(float p) {
+
96 return p * p * p * p * p;
+
97}
+
+
98
+
99// @brief Modeled after the quintic y = (x - 1)^5 + 1
+
+
100float QuinticOut(float p) {
+
101 const float f = (p - 1.f);
+
102 return f * f * f * f * f + 1.f;
+
103}
+
+
104
+
105// @brief Modeled after the piecewise quintic
+
106// y = (1/2)((2x)^5) ; [0, 0.5)
+
107// y = (1/2)((2x-2)^5 + 2) ; [0.5, 1]
+
+
108float QuinticInOut(float p) {
+
109 if (p < 0.5f) {
+
110 return 16.f * p * p * p * p * p;
+
111 }
+
112 const float f = ((2.f * p) - 2.f);
+
113 return 0.5f * f * f * f * f * f + 1.f;
+
114}
+
+
115
+
116// @brief Modeled after quarter-cycle of sine wave
+
+
117float SineIn(float p) {
+
118 return std::sin((p - 1.f) * kPi2) + 1.f;
+
119}
+
+
120
+
121// @brief Modeled after quarter-cycle of sine wave (different phase)
+
+
122float SineOut(float p) {
+
123 return std::sin(p * kPi2);
+
124}
+
+
125
+
126// @brief Modeled after half sine wave
+
+
127float SineInOut(float p) {
+
128 return 0.5f * (1.f - std::cos(p * kPi));
+
129}
+
+
130
+
131// @brief Modeled after shifted quadrant IV of unit circle
+
+
132float CircularIn(float p) {
+
133 return 1.f - std::sqrt(1.f - (p * p));
+
134}
+
+
135
+
136// @brief Modeled after shifted quadrant II of unit circle
+
+
137float CircularOut(float p) {
+
138 return std::sqrt((2.f - p) * p);
+
139}
+
+
140
+
141// @brief Modeled after the piecewise circular function
+
142// y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5)
+
143// y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1]
+
+
144float CircularInOut(float p) {
+
145 if (p < 0.5f) {
+
146 return 0.5f * (1.f - std::sqrt(1.f - 4.f * (p * p)));
+
147 }
+
148 return 0.5f * (std::sqrt(-((2.f * p) - 3.f) * ((2.f * p) - 1.f)) + 1.f);
+
149}
+
+
150
+
151// @brief Modeled after the exponential function y = 2^(10(x - 1))
+
+
152float ExponentialIn(float p) {
+
153 return (p == 0.f) ? p : std::pow(2.f, 10.f * (p - 1.f));
+
154}
+
+
155
+
156// @brief Modeled after the exponential function y = -2^(-10x) + 1
+
+
157float ExponentialOut(float p) {
+
158 return (p == 1.f) ? p : 1.f - std::pow(2.f, -10.f * p);
+
159}
+
+
160
+
161// @brief Modeled after the piecewise exponential
+
162// y = (1/2)2^(10(2x - 1)) ; [0,0.5)
+
163// y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1]
+
+
164float ExponentialInOut(float p) {
+
165 if (p == 0.f || p == 1.f) {
+
166 return p;
+
167 }
+
168
+
169 if (p < 0.5f) {
+
170 return 0.5f * std::pow(2.f, (20.f * p) - 10.f);
+
171 }
+
172 return -0.5f * std::pow(2.f, (-20.f * p) + 10.f) + 1.f;
+
173}
+
+
174
+
175// @brief Modeled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x -
+
176// 1))
+
+
177float ElasticIn(float p) {
+
178 return std::sin(13.f * kPi2 * p) * std::pow(2.f, 10.f * (p - 1.f));
+
179}
+
+
180
+
181// @brief Modeled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2,
+
182// -10x) +
+
183// 1
+
+
184float ElasticOut(float p) {
+
185 return std::sin(-13.f * kPi2 * (p + 1.f)) * std::pow(2.f, -10.f * p) + 1.f;
+
186}
+
+
187
+
188// @brief Modeled after the piecewise exponentially-damped sine wave:
+
189// y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5)
+
190// y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1]
+
+
191float ElasticInOut(float p) {
+
192 if (p < 0.5f) {
+
193 return 0.5f * std::sin(13.f * kPi2 * (2.f * p)) *
+
194 std::pow(2.f, 10.f * ((2.f * p) - 1.f));
+
195 }
+
196 return 0.5f * (std::sin(-13.f * kPi2 * ((2.f * p - 1.f) + 1.f)) *
+
197 std::pow(2.f, -10.f * (2.f * p - 1.f)) +
+
198 2.f);
+
199}
+
+
200
+
201// @brief Modeled after the overshooting cubic y = x^3-x*sin(x*pi)
+
+
202float BackIn(float p) {
+
203 return p * p * p - p * std::sin(p * kPi);
+
204}
+
+
205
+
206// @brief Modeled after overshooting cubic y = 1-((1-x)^3-(1-x)*sin((1-x)*pi))
+
+
207float BackOut(float p) {
+
208 const float f = (1.f - p);
+
209 return 1.f - (f * f * f - f * std::sin(f * kPi));
+
210}
+
+
211
+
212// @brief Modeled after the piecewise overshooting cubic function:
+
213// y = (1/2)*((2x)^3-(2x)*sin(2*x*pi)) ; [0, 0.5)
+
214// y = (1/2)*(1-((1-x)^3-(1-x)*sin((1-x)*pi))+1) ; [0.5, 1]
+
+
215float BackInOut(float p) {
+
216 if (p < 0.5f) {
+
217 const float f = 2.f * p;
+
218 return 0.5f * (f * f * f - f * std::sin(f * kPi));
+
219 }
+
220 const float f = (1.f - (2.f * p - 1.f));
+
221 return 0.5f * (1.f - (f * f * f - f * std::sin(f * kPi))) + 0.5f;
+
222}
+
+
223
+
+
224float BounceIn(float p) {
+
225 return 1.f - BounceOut(1.f - p);
+
226}
+
+
227
+
+
228float BounceOut(float p) {
+
229 if (p < 4.f / 11.f) {
+
230 return (121.f * p * p) / 16.f;
+
231 }
+
232
+
233 if (p < 8.f / 11.f) {
+
234 return (363.f / 40.f * p * p) - (99.f / 10.f * p) + 17.f / 5.f;
+
235 }
+
236
+
237 if (p < 9.f / 10.f) {
+
238 return (4356.f / 361.f * p * p) - (35442.f / 1805.f * p) + 16061.f / 1805.f;
+
239 }
+
240
+
241 return (54.f / 5.f * p * p) - (513 / 25.f * p) + 268 / 25.f;
+
242}
+
+
243
+
+
244float BounceInOut(float p) {
+
245 if (p < 0.5f) {
+
246 return 0.5f * BounceIn(p * 2.f);
+
247 }
+
248 return 0.5f * BounceOut(p * 2.f - 1.f) + 0.5f;
+
249}
+
+
250
+
251} // namespace easing
+
252
+
+ +
254 float to,
+
255 Duration duration,
+
256 easing::Function easing_function,
+
257 Duration delay)
+
258 : value_(from),
+
259 from_(*from),
+
260 to_(to),
+
261 duration_(duration),
+
262 easing_function_(std::move(easing_function)),
+
263 current_(-delay) {
+ +
265}
+
+
266
+
+ +
268 current_ += params.duration();
+
269
+
270 if (current_ >= duration_) {
+
271 *value_ = to_;
+
272 return;
+
273 }
+
274
+
275 if (current_ <= Duration()) {
+
276 *value_ = from_;
+
277 } else {
+
278 *value_ = from_ + (to_ - from_) * easing_function_(current_ / duration_);
+
279 }
+
280
+ +
282}
+
+
283
+
284} // namespace ftxui::animation
+
285
+
286// NOLINTEND(*-magic-numbers)
+ +
Animator(float *from, float to=0.f, Duration duration=std::chrono::milliseconds(250), easing::Function easing_function=easing::Linear, Duration delay=std::chrono::milliseconds(0))
+ + +
Duration duration() const
The duration this animation step represents.
Definition animation.hpp:38
+
void RequestAnimationFrame()
RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle...
+
The FTXUI sf::animation::easing:: namespace.
+
float ElasticIn(float p)
+
float CircularInOut(float p)
+
float SineInOut(float p)
+
float BounceInOut(float p)
+
float CubicIn(float p)
Definition animation.cpp:51
+
float CubicInOut(float p)
Definition animation.cpp:64
+
float Linear(float p)
Modeled after the line y = x.
Definition animation.cpp:29
+
float BounceIn(float p)
+
float CircularOut(float p)
+ +
float BackInOut(float p)
+
float ExponentialInOut(float p)
+
float ElasticInOut(float p)
+
float QuarticInOut(float p)
Definition animation.cpp:86
+
float QuadraticInOut(float p)
Definition animation.cpp:46
+
float QuarticOut(float p)
Definition animation.cpp:78
+ +
float CircularIn(float p)
+
float ExponentialOut(float p)
+
float QuadraticOut(float p)
Definition animation.cpp:39
+
float QuinticOut(float p)
+
float QuadraticIn(float p)
Modeled after the parabola y = x^2.
Definition animation.cpp:34
+
float ExponentialIn(float p)
+
float QuinticIn(float p)
Definition animation.cpp:95
+
float BounceOut(float p)
+
float CubicOut(float p)
Definition animation.cpp:56
+
float ElasticOut(float p)
+
std::function< float(float)> Function
Definition animation.hpp:45
+ + +
float QuarticIn(float p)
Definition animation.cpp:73
+
float QuinticInOut(float p)
+
The FTXUI ftxui::animation:: namespace.
Definition animation.hpp:10
+
std::chrono::duration< float > Duration
Definition animation.hpp:30
+
std::string value_
+
+
+ + + + + diff --git a/animation_8cppm.html b/animation_8cppm.html new file mode 100644 index 000000000..5577a815f --- /dev/null +++ b/animation_8cppm.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: animation.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
animation.cppm File Reference
+
+
+ +

Go to the source code of this file.

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

+Namespaces

namespace  ftxui::animation
 The FTXUI ftxui::animation:: namespace.
 
namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  easing
 The FTXUI sf::animation::easing:: namespace.
 
namespace  ftxui::animation::easing
 
+
+
+ + + + + diff --git a/animation_8cppm_source.html b/animation_8cppm_source.html new file mode 100644 index 000000000..69e3786e1 --- /dev/null +++ b/animation_8cppm_source.html @@ -0,0 +1,284 @@ + + + + + + + + +FTXUI: animation.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
animation.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component.animation
+
2/// @brief C++20 module interface for the Animation namespace of the Component module.
+
3///
+
4
+
5module;
+
6
+ +
8
+
9export module ftxui.component.animation;
+
10
+
11/**
+
12 * @namespace ftxui::animation
+
13 * @brief The FTXUI ftxui::animation:: namespace
+
14 */
+
15export namespace ftxui::animation {
+
16 using ftxui::animation::RequestAnimationFrame;
+
17
+ + + +
21
+ +
23
+
24 /**
+
25 * @namespace easing
+
26 * @brief The FTXUI sf::animation::easing:: namespace
+
27 */
+
28 namespace easing {
+ +
30
+
31 using ftxui::animation::easing::Linear;
+
32 using ftxui::animation::easing::QuadraticIn;
+
33 using ftxui::animation::easing::QuadraticOut;
+
34 using ftxui::animation::easing::QuadraticInOut;
+
35 using ftxui::animation::easing::CubicIn;
+
36 using ftxui::animation::easing::CubicOut;
+
37 using ftxui::animation::easing::CubicInOut;
+
38 using ftxui::animation::easing::QuarticIn;
+
39 using ftxui::animation::easing::QuarticOut;
+
40 using ftxui::animation::easing::QuarticInOut;
+
41 using ftxui::animation::easing::QuinticIn;
+
42 using ftxui::animation::easing::QuinticOut;
+
43 using ftxui::animation::easing::QuinticInOut;
+
44 using ftxui::animation::easing::SineIn;
+
45 using ftxui::animation::easing::SineOut;
+
46 using ftxui::animation::easing::SineInOut;
+
47 using ftxui::animation::easing::CircularIn;
+
48 using ftxui::animation::easing::CircularOut;
+
49 using ftxui::animation::easing::CircularInOut;
+
50 using ftxui::animation::easing::ExponentialIn;
+
51 using ftxui::animation::easing::ExponentialOut;
+
52 using ftxui::animation::easing::ExponentialInOut;
+
53 using ftxui::animation::easing::ElasticIn;
+
54 using ftxui::animation::easing::ElasticOut;
+
55 using ftxui::animation::easing::ElasticInOut;
+
56 using ftxui::animation::easing::BackIn;
+
57 using ftxui::animation::easing::BackOut;
+
58 using ftxui::animation::easing::BackInOut;
+
59 using ftxui::animation::easing::BounceIn;
+
60 using ftxui::animation::easing::BounceOut;
+
61 using ftxui::animation::easing::BounceInOut;
+
62 }
+
63
+ +
65}
+ + + +
C++20 module interface for the Animation namespace of the Component module.
+
The FTXUI sf::animation::easing:: namespace.
+
std::function< float(float)> Function
Definition animation.hpp:45
+
The FTXUI ftxui::animation:: namespace.
Definition animation.hpp:10
+
std::chrono::steady_clock Clock
Definition animation.hpp:28
+
std::chrono::duration< float > Duration
Definition animation.hpp:30
+
std::chrono::time_point< Clock > TimePoint
Definition animation.hpp:29
+
+
+ + + + + diff --git a/animation_8hpp.html b/animation_8hpp.html new file mode 100644 index 000000000..b730f2643 --- /dev/null +++ b/animation_8hpp.html @@ -0,0 +1,316 @@ + + + + + + + + +FTXUI: animation.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
animation.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Classes

class  Params
 
class  Animator
 
+ + + + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::animation
 The FTXUI ftxui::animation:: namespace.
 
namespace  ftxui::animation::easing
 
+ + + + + + + + + +

+Typedefs

using Clock = std::chrono::steady_clock
 
using TimePoint = std::chrono::time_point<Clock>
 
using Duration = std::chrono::duration<float>
 
using Function = std::function<float(float)>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void RequestAnimationFrame ()
 RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle.
 
float Linear (float p)
 Modeled after the line y = x.
 
float QuadraticIn (float p)
 Modeled after the parabola y = x^2.
 
float QuadraticOut (float p)
 
float QuadraticInOut (float p)
 
float CubicIn (float p)
 
float CubicOut (float p)
 
float CubicInOut (float p)
 
float QuarticIn (float p)
 
float QuarticOut (float p)
 
float QuarticInOut (float p)
 
float QuinticIn (float p)
 
float QuinticOut (float p)
 
float QuinticInOut (float p)
 
float SineIn (float p)
 
float SineOut (float p)
 
float SineInOut (float p)
 
float CircularIn (float p)
 
float CircularOut (float p)
 
float CircularInOut (float p)
 
float ExponentialIn (float p)
 
float ExponentialOut (float p)
 
float ExponentialInOut (float p)
 
float ElasticIn (float p)
 
float ElasticOut (float p)
 
float ElasticInOut (float p)
 
float BackIn (float p)
 
float BackOut (float p)
 
float BackInOut (float p)
 
float BounceIn (float p)
 
float BounceOut (float p)
 
float BounceInOut (float p)
 
+
+
+ + + + + diff --git a/animation_8hpp.js b/animation_8hpp.js new file mode 100644 index 000000000..e68bcb6c7 --- /dev/null +++ b/animation_8hpp.js @@ -0,0 +1,41 @@ +var animation_8hpp = +[ + [ "Params", "classftxui_1_1animation_1_1Params.html", "classftxui_1_1animation_1_1Params" ], + [ "Animator", "classftxui_1_1animation_1_1Animator.html", "classftxui_1_1animation_1_1Animator" ], + [ "Clock", "animation_8hpp.html#a19bfb27380067c74ae297dd7dad5fb37", null ], + [ "TimePoint", "animation_8hpp.html#a97ee0a9619acebafade22a9b7b0de667", null ], + [ "Duration", "animation_8hpp.html#a3c06579c86b609bce4a9a097b23cd739", null ], + [ "Function", "animation_8hpp.html#ad820848234fca6290b7399cc5e07af3a", null ], + [ "RequestAnimationFrame", "animation_8hpp.html#gad94d3d42aba3359550759aae5bcffbe9", null ], + [ "Linear", "animation_8hpp.html#a39923c8d62cdaacdc179c2ece3ee16b4", null ], + [ "QuadraticIn", "animation_8hpp.html#ab0b9303e7f956c36960e601f158e488f", null ], + [ "QuadraticOut", "animation_8hpp.html#aa1618a8f59ae7bae191d0ab36bf90e66", null ], + [ "QuadraticInOut", "animation_8hpp.html#a8155757f48a6e85e27da99c0a93f7e8d", null ], + [ "CubicIn", "animation_8hpp.html#a2288ba740a847ea0e565017cb16c24f2", null ], + [ "CubicOut", "animation_8hpp.html#acd3c619812de25f3613b36735a5cdc91", null ], + [ "CubicInOut", "animation_8hpp.html#a2aa1d45766fe10c3b16b7dd4f65db859", null ], + [ "QuarticIn", "animation_8hpp.html#af60268bac4059d32b3f7680042dba350", null ], + [ "QuarticOut", "animation_8hpp.html#a8878f359f37551ae64eb183af3ca93b8", null ], + [ "QuarticInOut", "animation_8hpp.html#a72dd2cb5c7ffddfe3a3d8b455f68d37e", null ], + [ "QuinticIn", "animation_8hpp.html#ab4eae8c5808cc6ab161037659e761a50", null ], + [ "QuinticOut", "animation_8hpp.html#aae2598b1aa6a2fc944f52edbf0453fd5", null ], + [ "QuinticInOut", "animation_8hpp.html#afcbc9e6b461fe3418a59faf4a5f9284d", null ], + [ "SineIn", "animation_8hpp.html#af48c179e363c6656e904045b33756aeb", null ], + [ "SineOut", "animation_8hpp.html#a92e397623fa5a607f64ba58d5c3dc56a", null ], + [ "SineInOut", "animation_8hpp.html#a0eddac1c5f32c9f874ed1c6687a3c830", null ], + [ "CircularIn", "animation_8hpp.html#a9af9e9dc6ba657b5ab681eb8be39ddb5", null ], + [ "CircularOut", "animation_8hpp.html#a4188d3f98b876d0e0f181f9fd707f476", null ], + [ "CircularInOut", "animation_8hpp.html#a0d1df50c1810db4a8b16416b62ac7db0", null ], + [ "ExponentialIn", "animation_8hpp.html#ab0ca381749febbe74887c9fff0522434", null ], + [ "ExponentialOut", "animation_8hpp.html#a9de59af8a36489121dace3f2a996f029", null ], + [ "ExponentialInOut", "animation_8hpp.html#a502f9e65e97d295f46c6a6435a84464d", null ], + [ "ElasticIn", "animation_8hpp.html#a0cc4cc8d40617d7b21dea78f71917bbc", null ], + [ "ElasticOut", "animation_8hpp.html#ad771aec6f0170cb9039446699d1d2295", null ], + [ "ElasticInOut", "animation_8hpp.html#a537ce88e07af5658175f95eb70369fb9", null ], + [ "BackIn", "animation_8hpp.html#ae9cca3240dd9f14a807364e322bbdf79", null ], + [ "BackOut", "animation_8hpp.html#a440085789f25b7f3ffa1391f09e154f3", null ], + [ "BackInOut", "animation_8hpp.html#a4dfa1e95971ff8e4d0f7539f2e8ae577", null ], + [ "BounceIn", "animation_8hpp.html#a3a136fc5aedb4e99e08e5bea138463cb", null ], + [ "BounceOut", "animation_8hpp.html#aba7f60496f13f39385d9a47349e97c09", null ], + [ "BounceInOut", "animation_8hpp.html#a1a048fdae839f9493331cf1745767519", null ] +]; \ No newline at end of file diff --git a/animation_8hpp_source.html b/animation_8hpp_source.html new file mode 100644 index 000000000..bb24eda02 --- /dev/null +++ b/animation_8hpp_source.html @@ -0,0 +1,385 @@ + + + + + + + + +FTXUI: animation.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
animation.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2022 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_ANIMATION_HPP
+
5#define FTXUI_ANIMATION_HPP
+
6
+
7#include <chrono> // for milliseconds, duration, steady_clock, time_point
+
8#include <functional> // for function
+
9
+
+ +
11/// @brief RequestAnimationFrame is a function that requests a new frame to be
+
12/// drawn in the next animation cycle.
+
13///
+
14/// @note This function is typically called by components that need to
+
15/// update their state or appearance over time, such as animations or
+
16/// transitions. This is useful when the change doesn't depend depend on the
+
17/// events seen by the terminal, but rather on the passage of time.
+
18///
+
19/// Components who haven't completed their animation can call this function to
+
20/// request a new frame to be drawn later.
+
21///
+
22/// When there is no new events and no animations to complete, no new frame is
+
23/// drawn.
+
24///
+
25/// @ingroup component
+ +
27
+
28using Clock = std::chrono::steady_clock;
+
29using TimePoint = std::chrono::time_point<Clock>;
+
30using Duration = std::chrono::duration<float>;
+
31
+
32// Parameter of Component::OnAnimation(param).
+
+
33class Params {
+
34 public:
+
35 explicit Params(Duration duration) : duration_(duration) {}
+
36
+
37 /// The duration this animation step represents.
+
38 Duration duration() const { return duration_; }
+
39
+
40 private:
+
41 Duration duration_;
+
42};
+
+
43
+
+
44namespace easing {
+
45using Function = std::function<float(float)>;
+
46// Linear interpolation (no easing)
+
47float Linear(float p);
+
48
+
49// Quadratic easing; p^2
+
50float QuadraticIn(float p);
+
51float QuadraticOut(float p);
+
52float QuadraticInOut(float p);
+
53
+
54// Cubic easing; p^3
+
55float CubicIn(float p);
+
56float CubicOut(float p);
+
57float CubicInOut(float p);
+
58
+
59// Quartic easing; p^4
+
60float QuarticIn(float p);
+
61float QuarticOut(float p);
+
62float QuarticInOut(float p);
+
63
+
64// Quintic easing; p^5
+
65float QuinticIn(float p);
+
66float QuinticOut(float p);
+
67float QuinticInOut(float p);
+
68
+
69// Sine wave easing; sin(p * PI/2)
+
70float SineIn(float p);
+
71float SineOut(float p);
+
72float SineInOut(float p);
+
73
+
74// Circular easing; sqrt(1 - p^2)
+
75float CircularIn(float p);
+
76float CircularOut(float p);
+
77float CircularInOut(float p);
+
78
+
79// Exponential easing, base 2
+
80float ExponentialIn(float p);
+
81float ExponentialOut(float p);
+
82float ExponentialInOut(float p);
+
83
+
84// Exponentially-damped sine wave easing
+
85float ElasticIn(float p);
+
86float ElasticOut(float p);
+
87float ElasticInOut(float p);
+
88
+
89// Overshooting cubic easing;
+
90float BackIn(float p);
+
91float BackOut(float p);
+
92float BackInOut(float p);
+
93
+
94// Exponentially-decaying bounce easing
+
95float BounceIn(float p);
+
96float BounceOut(float p);
+
97float BounceInOut(float p);
+
98} // namespace easing
+
+
99
+
+
100class Animator {
+
101 public:
+
102 explicit Animator(float* from,
+
103 float to = 0.f,
+
104 Duration duration = std::chrono::milliseconds(250),
+
105 easing::Function easing_function = easing::Linear,
+
106 Duration delay = std::chrono::milliseconds(0));
+
107
+
108 void OnAnimation(Params&);
+
109
+
110 float to() const { return to_; }
+
111
+
112 private:
+
113 float* value_;
+
114 float from_;
+
115 float to_;
+
116 Duration duration_;
+
117 easing::Function easing_function_;
+
118 Duration current_;
+
119};
+
+
120
+
121} // namespace ftxui::animation
+
+
122
+
123#endif /* end of include guard: FTXUI_ANIMATION_HPP */
+ +
Animator(float *from, float to=0.f, Duration duration=std::chrono::milliseconds(250), easing::Function easing_function=easing::Linear, Duration delay=std::chrono::milliseconds(0))
+ + + +
Params(Duration duration)
Definition animation.hpp:35
+
Duration duration() const
The duration this animation step represents.
Definition animation.hpp:38
+
void RequestAnimationFrame()
RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle...
+
The FTXUI sf::animation::easing:: namespace.
+
float ElasticIn(float p)
+
float CircularInOut(float p)
+
float SineInOut(float p)
+
float BounceInOut(float p)
+
float CubicIn(float p)
Definition animation.cpp:51
+
float CubicInOut(float p)
Definition animation.cpp:64
+
float Linear(float p)
Modeled after the line y = x.
Definition animation.cpp:29
+
float BounceIn(float p)
+
float CircularOut(float p)
+ +
float BackInOut(float p)
+
float ExponentialInOut(float p)
+
float ElasticInOut(float p)
+
float QuarticInOut(float p)
Definition animation.cpp:86
+
float QuadraticInOut(float p)
Definition animation.cpp:46
+
float QuarticOut(float p)
Definition animation.cpp:78
+ +
float CircularIn(float p)
+
float ExponentialOut(float p)
+
float QuadraticOut(float p)
Definition animation.cpp:39
+
float QuinticOut(float p)
+
float QuadraticIn(float p)
Modeled after the parabola y = x^2.
Definition animation.cpp:34
+
float ExponentialIn(float p)
+
float QuinticIn(float p)
Definition animation.cpp:95
+
float BounceOut(float p)
+
float CubicOut(float p)
Definition animation.cpp:56
+
float ElasticOut(float p)
+
std::function< float(float)> Function
Definition animation.hpp:45
+ + +
float QuarticIn(float p)
Definition animation.cpp:73
+
float QuinticInOut(float p)
+
The FTXUI ftxui::animation:: namespace.
Definition animation.hpp:10
+
std::chrono::steady_clock Clock
Definition animation.hpp:28
+
std::chrono::duration< float > Duration
Definition animation.hpp:30
+
std::chrono::time_point< Clock > TimePoint
Definition animation.hpp:29
+
+
+ + + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 000000000..e2a2f28b6 --- /dev/null +++ b/annotated.html @@ -0,0 +1,280 @@ + + + + + + + + +FTXUI: Class List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NftxuiThe FTXUI ftxui:: namespace
 NanimationThe FTXUI ftxui::animation:: namespace
 CAnimator
 CParams
 Nbox_helper
 CElement
 Nflexbox_helper
 CBlock
 CGlobal
 CLine
 Ntask
 CPendingTask
 CTaskQueue
 CTaskRunner
 CAnimatedColorOptionOption about a potentially animated color
 CAnimatedColorsOption
 CAnimationTask
 CAutoResetAssign a value to a variable, reset its old value when going out of scope
 CBoxBox is a structure that represents a rectangular area in a 2D space
 CButtonOptionOption for the AnimatedButton component
 CCanvasCanvas is a drawable buffer associated with drawing operations
 CCapturedMouseInterface
 CCheckboxOptionOption for the Checkbox component
 CColorColor is a class that represents a color in the terminal user interface
 CColorInfoColorInfo is a structure that contains information about the terminal color palette
 CComponentBaseIt implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event
 CConstRefAn adapter. Own or reference an immutable object
 CConstStringListRefAn adapter. Reference a list of strings
 CAdapter
 CConstStringRefAn adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation
 CDimensionsDimensions is a structure that represents the size of the terminal
 CDropdownOptionOption for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox
 CEntryStateArguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|
 CEventRepresent an event. It can be key press event, a terminal resize, or more ..
 CFlexboxConfigFlexboxConfig is a configuration structure that defines the layout properties for a flexbox container
 CImageA rectangular grid of Pixel
 CInputOptionOption for the Input component
 CInputStateUsed to define style for the Input component
 CLinearGradientA class representing the settings for linear-gradient color effect
 CStop
 CLoopLoop is a class that manages the event loop for a component
 CMenuEntryOptionOption for the MenuEntry component
 CMenuOptionOption for the Menu component
 CMouseA mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta)
 CNodeNode is the base class for all elements in the DOM tree
 CStatus
 CNodeDecorator
 CPixelA Unicode character and its associated style
 CRadioboxOptionOption for the Radiobox component
 CReceiverImpl
 CRefAn adapter. Own or reference an mutable object
 CRequirementRequirement is a structure that defines the layout requirements for a Node in the terminal user interface
 CFocused
 CResizableSplitOption
 CScreenA rectangular grid of Pixel
 CCursor
 CScreenInteractiveScreenInteractive is a Screen that can handle events, run a main loop, and manage components
 CPrivate
 CSelectionRepresents a selection in a terminal user interface
 CSenderImpl
 CSliderOption
 CStringRefAn adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation
 CTableTable is a utility to draw tables
 CTableSelection
 CTerminalInputParser
 CUnderlineOptionOption for the underline effect
 CWindowOptions
 CWindowRenderStateState passed to the Window component's render function
+
+
+
+ + + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 000000000..15bf298c3 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,70 @@ +var annotated_dup = +[ + [ "ftxui", "namespaceftxui.html", [ + [ "animation", "namespaceftxui_1_1animation.html", [ + [ "Animator", "classftxui_1_1animation_1_1Animator.html", "classftxui_1_1animation_1_1Animator" ], + [ "Params", "classftxui_1_1animation_1_1Params.html", "classftxui_1_1animation_1_1Params" ] + ] ], + [ "box_helper", "namespaceftxui_1_1box__helper.html", [ + [ "Element", "structftxui_1_1box__helper_1_1Element.html", "structftxui_1_1box__helper_1_1Element" ] + ] ], + [ "flexbox_helper", "namespaceftxui_1_1flexbox__helper.html", [ + [ "Block", "structftxui_1_1flexbox__helper_1_1Block.html", "structftxui_1_1flexbox__helper_1_1Block" ], + [ "Global", "structftxui_1_1flexbox__helper_1_1Global.html", "structftxui_1_1flexbox__helper_1_1Global" ], + [ "Line", "structftxui_1_1flexbox__helper_1_1Line.html", "structftxui_1_1flexbox__helper_1_1Line" ] + ] ], + [ "task", "namespaceftxui_1_1task.html", [ + [ "PendingTask", "structftxui_1_1task_1_1PendingTask.html", "structftxui_1_1task_1_1PendingTask" ], + [ "TaskQueue", "structftxui_1_1task_1_1TaskQueue.html", "structftxui_1_1task_1_1TaskQueue" ], + [ "TaskRunner", "classftxui_1_1task_1_1TaskRunner.html", "classftxui_1_1task_1_1TaskRunner" ] + ] ], + [ "AnimatedColorOption", "group__component.html#structftxui_1_1AnimatedColorOption", "group__component_structftxui_1_1AnimatedColorOption" ], + [ "AnimatedColorsOption", "structftxui_1_1AnimatedColorsOption.html", "structftxui_1_1AnimatedColorsOption" ], + [ "AnimationTask", "classftxui_1_1AnimationTask.html", null ], + [ "AutoReset", "classftxui_1_1AutoReset.html", "classftxui_1_1AutoReset" ], + [ "Box", "group__screen.html#structftxui_1_1Box", "group__screen_structftxui_1_1Box" ], + [ "ButtonOption", "group__component.html#structftxui_1_1ButtonOption", "group__component_structftxui_1_1ButtonOption" ], + [ "Canvas", "group__dom.html#structftxui_1_1Canvas", "group__dom_structftxui_1_1Canvas" ], + [ "CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html", "classftxui_1_1CapturedMouseInterface" ], + [ "CheckboxOption", "group__component.html#structftxui_1_1CheckboxOption", "group__component_structftxui_1_1CheckboxOption" ], + [ "Color", "group__screen.html#classftxui_1_1Color", "group__screen_classftxui_1_1Color" ], + [ "ColorInfo", "group__screen.html#structftxui_1_1ColorInfo", "group__screen_structftxui_1_1ColorInfo" ], + [ "ComponentBase", "group__component.html#classftxui_1_1ComponentBase", "group__component_classftxui_1_1ComponentBase" ], + [ "ConstRef", "classftxui_1_1ConstRef.html", "classftxui_1_1ConstRef" ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html", "classftxui_1_1ConstStringListRef" ], + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html", "classftxui_1_1ConstStringRef" ], + [ "Dimensions", "group__screen.html#structftxui_1_1Dimensions", "group__screen_structftxui_1_1Dimensions" ], + [ "DropdownOption", "group__component.html#structftxui_1_1DropdownOption", "group__component_structftxui_1_1DropdownOption" ], + [ "EntryState", "structftxui_1_1EntryState.html", "structftxui_1_1EntryState" ], + [ "Event", "group__component.html#structftxui_1_1Event", "group__component_structftxui_1_1Event" ], + [ "FlexboxConfig", "group__dom.html#structftxui_1_1FlexboxConfig", "group__dom_structftxui_1_1FlexboxConfig" ], + [ "Image", "group__screen.html#classftxui_1_1Image", "group__screen_classftxui_1_1Image" ], + [ "InputOption", "group__component.html#structftxui_1_1InputOption", "group__component_structftxui_1_1InputOption" ], + [ "InputState", "structftxui_1_1InputState.html", "structftxui_1_1InputState" ], + [ "LinearGradient", "group__dom.html#structftxui_1_1LinearGradient", "group__dom_structftxui_1_1LinearGradient" ], + [ "Loop", "group__component.html#classftxui_1_1Loop", "group__component_classftxui_1_1Loop" ], + [ "MenuEntryOption", "group__component.html#structftxui_1_1MenuEntryOption", "group__component_structftxui_1_1MenuEntryOption" ], + [ "MenuOption", "group__component.html#structftxui_1_1MenuOption", "group__component_structftxui_1_1MenuOption" ], + [ "Mouse", "group__component.html#structftxui_1_1Mouse", "group__component_structftxui_1_1Mouse" ], + [ "Node", "group__dom.html#classftxui_1_1Node", "group__dom_classftxui_1_1Node" ], + [ "NodeDecorator", "classftxui_1_1NodeDecorator.html", "classftxui_1_1NodeDecorator" ], + [ "Pixel", "group__screen.html#structftxui_1_1Pixel", "group__screen_structftxui_1_1Pixel" ], + [ "RadioboxOption", "group__component.html#structftxui_1_1RadioboxOption", "group__component_structftxui_1_1RadioboxOption" ], + [ "ReceiverImpl", "classftxui_1_1ReceiverImpl.html", "classftxui_1_1ReceiverImpl" ], + [ "Ref", "classftxui_1_1Ref.html", "classftxui_1_1Ref" ], + [ "Requirement", "group__dom.html#structftxui_1_1Requirement", "group__dom_structftxui_1_1Requirement" ], + [ "ResizableSplitOption", "structftxui_1_1ResizableSplitOption.html", "structftxui_1_1ResizableSplitOption" ], + [ "Screen", "group__screen.html#classftxui_1_1Screen", "group__screen_classftxui_1_1Screen" ], + [ "ScreenInteractive", "group__component.html#classftxui_1_1ScreenInteractive", "group__component_classftxui_1_1ScreenInteractive" ], + [ "Selection", "group__dom.html#classftxui_1_1Selection", "group__dom_classftxui_1_1Selection" ], + [ "SenderImpl", "classftxui_1_1SenderImpl.html", "classftxui_1_1SenderImpl" ], + [ "SliderOption", "structftxui_1_1SliderOption.html", "structftxui_1_1SliderOption" ], + [ "StringRef", "classftxui_1_1StringRef.html", "classftxui_1_1StringRef" ], + [ "Table", "group__dom.html#classftxui_1_1Table", "group__dom_classftxui_1_1Table" ], + [ "TableSelection", "classftxui_1_1TableSelection.html", "classftxui_1_1TableSelection" ], + [ "TerminalInputParser", "classftxui_1_1TerminalInputParser.html", "classftxui_1_1TerminalInputParser" ], + [ "UnderlineOption", "group__component.html#structftxui_1_1UnderlineOption", "group__component_structftxui_1_1UnderlineOption" ], + [ "WindowOptions", "structftxui_1_1WindowOptions.html", "structftxui_1_1WindowOptions" ], + [ "WindowRenderState", "group__component.html#structftxui_1_1WindowRenderState", "group__component_structftxui_1_1WindowRenderState" ] + ] ] +]; \ No newline at end of file diff --git a/automerge_8cpp.html b/automerge_8cpp.html new file mode 100644 index 000000000..030818a8f --- /dev/null +++ b/automerge_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: automerge.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
automerge.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + +

+Functions

Element automerge (Element child)
 Enable character to be automatically merged with others nearby.
 
+
+
+ + + + + diff --git a/automerge_8cpp.js b/automerge_8cpp.js new file mode 100644 index 000000000..9886abf62 --- /dev/null +++ b/automerge_8cpp.js @@ -0,0 +1,4 @@ +var automerge_8cpp = +[ + [ "automerge", "automerge_8cpp.html#gaca42bd6c44d8d366d5c1014330402086", null ] +]; \ No newline at end of file diff --git a/automerge_8cpp_source.html b/automerge_8cpp_source.html new file mode 100644 index 000000000..7b5c456d0 --- /dev/null +++ b/automerge_8cpp_source.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: automerge.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
automerge.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for make_shared
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, automerge
+
8#include "ftxui/dom/node.hpp" // for Node
+
9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
+
10#include "ftxui/screen/box.hpp" // for Box
+
11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
+
12
+
13namespace ftxui {
+
14
+
15/// @brief Enable character to be automatically merged with others nearby.
+
16/// @ingroup dom
+
+ +
18 class Impl : public NodeDecorator {
+
19 public:
+
20 using NodeDecorator::NodeDecorator;
+
21
+
22 void Render(Screen& screen) override {
+
23 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
24 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
25 screen.PixelAt(x, y).automerge = true;
+
26 }
+
27 }
+
28 Node::Render(screen);
+
29 }
+
30 };
+
31
+
32 return std::make_shared<Impl>(std::move(child));
+
33}
+
+
34
+
35} // namespace ftxui
+ + + +
Element automerge(Element child)
Enable character to be automatically merged with others nearby.
Definition automerge.cpp:17
+
Pixel & PixelAt(int x, int y)
Access a cell (Pixel) at a given position.
Definition image.cpp:43
+
bool automerge
Definition pixel.hpp:36
+
A rectangular grid of Pixel.
Definition screen.hpp:26
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ + + +
+
+ + + + + diff --git a/autoreset_8cppm.html b/autoreset_8cppm.html new file mode 100644 index 000000000..d57078a46 --- /dev/null +++ b/autoreset_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: autoreset.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
autoreset.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/autoreset_8cppm_source.html b/autoreset_8cppm_source.html new file mode 100644 index 000000000..090a2c3e6 --- /dev/null +++ b/autoreset_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: autoreset.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
autoreset.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.util.autoreset
+
2/// @brief Module file for the AutoReset class of the Util module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.util.autoreset;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::AutoReset;
+
16}
+ +
Assign a value to a variable, reset its old value when going out of scope.
Definition autoreset.hpp:13
+
Module file for the AutoReset class of the Util module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/autoreset_8hpp.html b/autoreset_8hpp.html new file mode 100644 index 000000000..c75c433ab --- /dev/null +++ b/autoreset_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: autoreset.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
autoreset.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  AutoReset< T >
 Assign a value to a variable, reset its old value when going out of scope. More...
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/autoreset_8hpp.js b/autoreset_8hpp.js new file mode 100644 index 000000000..5103931c4 --- /dev/null +++ b/autoreset_8hpp.js @@ -0,0 +1,4 @@ +var autoreset_8hpp = +[ + [ "AutoReset< T >", "classftxui_1_1AutoReset.html", "classftxui_1_1AutoReset" ] +]; \ No newline at end of file diff --git a/autoreset_8hpp_source.html b/autoreset_8hpp_source.html new file mode 100644 index 000000000..ef61924b6 --- /dev/null +++ b/autoreset_8hpp_source.html @@ -0,0 +1,253 @@ + + + + + + + + +FTXUI: autoreset.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
autoreset.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_UTIL_AUTORESET_HPP
+
5#define FTXUI_UTIL_AUTORESET_HPP
+
6
+
7#include <utility>
+
8
+
9namespace ftxui {
+
10
+
11/// Assign a value to a variable, reset its old value when going out of scope.
+
12template <typename T>
+
+
13class AutoReset {
+
14 public:
+
+
15 AutoReset(T* variable, T new_value)
+
16 : variable_(variable), previous_value_(std::move(*variable)) {
+
17 *variable_ = std::move(new_value);
+
18 }
+
+
19 AutoReset(const AutoReset&) = delete;
+
20 AutoReset(AutoReset&&) = delete;
+
21 AutoReset& operator=(const AutoReset&) = delete;
+ +
23 ~AutoReset() { *variable_ = std::move(previous_value_); }
+
24
+
25 private:
+
26 T* variable_;
+
27 T previous_value_;
+
28};
+
+
29
+
30} // namespace ftxui
+
31
+
32#endif /* end of include guard: FTXUI_UTIL_AUTORESET_HPP */
+
Assign a value to a variable, reset its old value when going out of scope.
Definition autoreset.hpp:13
+
AutoReset(const AutoReset &)=delete
+
AutoReset & operator=(AutoReset &&)=delete
+
AutoReset & operator=(const AutoReset &)=delete
+
AutoReset(AutoReset &&)=delete
+ +
AutoReset(T *variable, T new_value)
Definition autoreset.hpp:15
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..07ac55c0440dd4901892fb85641f5a2414826612 GIT binary patch literal 660 zcmV;F0&D$=P)9Kj-5gpj6%p}r`B=qDLP5cD!I zEZ^3vUIo!~k(yF-8{6#Hv|o$BH|f0;_S|b5KF)vPa1Q4@_kK9{-1B_@01Vto&u-tK z17?nwlX4mWILD*6(*4yHqQ_WB1{u%?0Gy-0FWpp-hfiwllETha!Abcq2OPQaL(RkW zPMuM&!`@(c{^?Rc_@D1j|NPVAFbk(y%>n4Uu62+I!sjNpj#2{Np@NBt!Z!fmTu%wk z)H@`?ez^g6p3ebPyJOvAH{^ zL$SK{2IrziaND^Y;7qxR1}v*+VkDuoVB^^@0Koa%%{Hk}C*sN1arrscb#g#+kscqf zUnkCw#FfQOZt38Fepk7$(U4CbjV6`b8nCHtCiBunDJE;HM74I0CKOG;=sA@Iy38i( zX9LE@l8Qg82UqKKrjFHAN_tU1|5#EEW*$;gU6-176y%YX)dn*6W=iSdG-*4bbr@iB za~J8!Lk8UCfXcvhDZ8~~jZIR|w(%+D7YA66r@Gm2J|@=i#Cs(G0Gy-cSSsPMig_YM u-^2$c1OS|?GrVKh`aAql-UQldLfp90od_JeKhDg@+&ROUxqGRl_aZ_A*WurO z3S5ssi|uiNK+j~=D&DI`hv%b#o=JFNf$aJFTs5;=$KWFXx9rjafQGR^=3Ji6r&@gI z7gzjA`}6#7Z-O{qN-bN$Y9xEbE-gNDCHOOE#W~KvFYBELzk*AL?ebz%!j3cIREe@` zx3^@!eCd`140U0zyOed&`9apFgK@OITY@F3{uGXB(@3SWqY zweKI(S}Z?K`kjAQ__iHyZn{9s>G2_(NqSmb!;G$@09^J~HWQ{2%1lzi5;L}r0C3p^ zm~w%tlo*#snUNR<;4(w>qgXq+ z4FP})#`vth`B0ABCroSK55Q$XIhZPo%0Da5Q&8LTUZ%~ynRmh6*B*-)YHPm>YWlso z>*^=+iz0?%^)@p|pRMIi)O$LyEK0nK*PAvCMeR-%Cud}|KknBm!P4{(Vz8( zm=cIPyhe`07*qoM6N<$f&yzR!vFvP literal 0 HcmV?d00001 diff --git a/blink_8cpp.html b/blink_8cpp.html new file mode 100644 index 000000000..9c815d26b --- /dev/null +++ b/blink_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: blink.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
blink.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + +

+Functions

Element blink (Element child)
 The text drawn alternates in between visible and hidden.
 
+
+
+ + + + + diff --git a/blink_8cpp.js b/blink_8cpp.js new file mode 100644 index 000000000..77235739a --- /dev/null +++ b/blink_8cpp.js @@ -0,0 +1,4 @@ +var blink_8cpp = +[ + [ "blink", "blink_8cpp.html#gad57613de5895e774218d91dea48d074b", null ] +]; \ No newline at end of file diff --git a/blink_8cpp_source.html b/blink_8cpp_source.html new file mode 100644 index 000000000..e02c8edae --- /dev/null +++ b/blink_8cpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: blink.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
blink.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for make_shared
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, blink
+
8#include "ftxui/dom/node.hpp" // for Node
+
9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
+
10#include "ftxui/screen/box.hpp" // for Box
+
11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
+
12
+
13namespace ftxui {
+
14
+
15namespace {
+
16class Blink : public NodeDecorator {
+
17 public:
+ +
19
+
20 void Render(Screen& screen) override {
+
21 Node::Render(screen);
+
22 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
23 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
24 screen.PixelAt(x, y).blink = true;
+
25 }
+
26 }
+
27 }
+
28};
+
29} // namespace
+
30
+
31/// @brief The text drawn alternates in between visible and hidden.
+
32/// @ingroup dom
+
+ +
34 return std::make_shared<Blink>(std::move(child));
+
35}
+
+
36
+
37} // namespace ftxui
+ +
NodeDecorator(Element child)
+ +
friend void Render(Screen &screen, Node *node, Selection &selection)
Definition node.cpp:96
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
Element blink(Element)
The text drawn alternates in between visible and hidden.
Definition blink.cpp:33
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ + + +
+
+ + + + + diff --git a/bold_8cpp.html b/bold_8cpp.html new file mode 100644 index 000000000..8a10af198 --- /dev/null +++ b/bold_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: bold.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
bold.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + +

+Functions

Element bold (Element child)
 Use a bold font, for elements with more emphasis.
 
+
+
+ + + + + diff --git a/bold_8cpp.js b/bold_8cpp.js new file mode 100644 index 000000000..c4c830271 --- /dev/null +++ b/bold_8cpp.js @@ -0,0 +1,4 @@ +var bold_8cpp = +[ + [ "bold", "bold_8cpp.html#ga353c769068e25303eb41fa2da565c604", null ] +]; \ No newline at end of file diff --git a/bold_8cpp_source.html b/bold_8cpp_source.html new file mode 100644 index 000000000..207a7408a --- /dev/null +++ b/bold_8cpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: bold.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
bold.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for make_shared
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, bold
+
8#include "ftxui/dom/node.hpp" // for Node
+
9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
+
10#include "ftxui/screen/box.hpp" // for Box
+
11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
+
12
+
13namespace ftxui {
+
14
+
15namespace {
+
16class Bold : public NodeDecorator {
+
17 public:
+ +
19
+
20 void Render(Screen& screen) override {
+
21 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
22 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
23 screen.PixelAt(x, y).bold = true;
+
24 }
+
25 }
+
26 Node::Render(screen);
+
27 }
+
28};
+
29} // namespace
+
30
+
31/// @brief Use a bold font, for elements with more emphasis.
+
32/// @ingroup dom
+
+ +
34 return std::make_shared<Bold>(std::move(child));
+
35}
+
+
36
+
37} // namespace ftxui
+ +
NodeDecorator(Element child)
+ +
friend void Render(Screen &screen, Node *node, Selection &selection)
Definition node.cpp:96
+
Element bold(Element)
Use a bold font, for elements with more emphasis.
Definition bold.cpp:33
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ + + +
+
+ + + + + diff --git a/border__colored_8cpp.html b/border__colored_8cpp.html new file mode 100644 index 000000000..2e1589d1c --- /dev/null +++ b/border__colored_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: border_colored.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
border_colored.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 12 of file border_colored.cpp.

+ +
+
+
+
+ + + + + diff --git a/border__colored_8cpp.js b/border__colored_8cpp.js new file mode 100644 index 000000000..c6418b2eb --- /dev/null +++ b/border__colored_8cpp.js @@ -0,0 +1,4 @@ +var border__colored_8cpp = +[ + [ "main", "border__colored_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/border__colored_8cpp_source.html b/border__colored_8cpp_source.html new file mode 100644 index 000000000..2c96c538b --- /dev/null +++ b/border__colored_8cpp_source.html @@ -0,0 +1,256 @@ + + + + + + + + +FTXUI: border_colored.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
border_colored.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <ftxui/dom/elements.hpp> // for operator|, text, Element, Fit, borderDouble, borderHeavy, borderLight, borderRounded, vbox
+
5#include <ftxui/screen/screen.hpp> // for Screen
+
6#include <iostream> // for endl, cout, ostream
+
7#include <memory> // for allocator
+
8
+
9#include "ftxui/dom/node.hpp" // for Render
+
10#include "ftxui/screen/color.hpp" // for ftxui
+
11
+
+
12int main() {
+
13 using namespace ftxui;
+
14
+
15 auto make_boxed = [] {
+
16 return vbox({
+
17 text("borderLight") | borderStyled(LIGHT, Color::Red),
+
18 text("borderDashed") | borderStyled(DASHED, Color::Green),
+
19 text("borderHeavy") | borderStyled(HEAVY, Color::Blue),
+
20 text("borderDouble") | borderStyled(DOUBLE, Color::Yellow),
+
21 text("borderRounded") | borderStyled(ROUNDED, Color::Cyan),
+
22 });
+
23 };
+
24
+
25 auto document = hbox({
+
26 make_boxed(),
+
27 separator() | color(Color::Red),
+
28 make_boxed(),
+
29 separator() | color(Color::Red),
+
30 make_boxed(),
+
31 }) |
+
32 borderStyled(ROUNDED, Color::Red);
+
33
+
34 auto screen =
+
35 Screen::Create(Dimension::Fit(document), Dimension::Fit(document));
+
36 Render(screen, document);
+
37 screen.Print();
+
38 std::cout << std::endl;
+
39}
+
+
int main()
+ + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ + +
+
+ + + + + diff --git a/border__style_8cpp.html b/border__style_8cpp.html new file mode 100644 index 000000000..42e461e36 --- /dev/null +++ b/border__style_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: border_style.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
border_style.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 12 of file border_style.cpp.

+ +
+
+
+
+ + + + + diff --git a/border__style_8cpp.js b/border__style_8cpp.js new file mode 100644 index 000000000..7919084c5 --- /dev/null +++ b/border__style_8cpp.js @@ -0,0 +1,4 @@ +var border__style_8cpp = +[ + [ "main", "border__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/border__style_8cpp_source.html b/border__style_8cpp_source.html new file mode 100644 index 000000000..1d456d69b --- /dev/null +++ b/border__style_8cpp_source.html @@ -0,0 +1,245 @@ + + + + + + + + +FTXUI: border_style.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
border_style.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <ftxui/dom/elements.hpp> // for operator|, text, Element, Fit, borderDouble, borderHeavy, borderLight, borderRounded, vbox
+
5#include <ftxui/screen/screen.hpp> // for Screen
+
6#include <iostream> // for endl, cout, ostream
+
7#include <memory> // for allocator
+
8
+
9#include "ftxui/dom/node.hpp" // for Render
+
10#include "ftxui/screen/color.hpp" // for ftxui
+
11
+
+
12int main() {
+
13 using namespace ftxui;
+
14
+
15 auto document = vbox({
+
16 text("borderLight") | borderLight,
+
17 text("borderDashed") | borderDashed,
+
18 text("borderHeavy") | borderHeavy,
+
19 text("borderDouble") | borderDouble,
+
20 text("borderRounded") | borderRounded,
+
21 });
+
22
+
23 auto screen =
+
24 Screen::Create(Dimension::Fit(document), Dimension::Fit(document));
+
25 Render(screen, document);
+
26 screen.Print();
+
27 std::cout << std::endl;
+
28}
+
+
int main()
+ + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ + +
+
+ + + + + diff --git a/box_8cpp.html b/box_8cpp.html new file mode 100644 index 000000000..70fb5c708 --- /dev/null +++ b/box_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: box.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
box.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/box_8cpp_source.html b/box_8cpp_source.html new file mode 100644 index 000000000..f7f7c20e3 --- /dev/null +++ b/box_8cpp_source.html @@ -0,0 +1,302 @@ + + + + + + + + +FTXUI: box.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
box.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+ +
5
+
6#include <algorithm>
+
7
+
8namespace ftxui {
+
9/// @return the biggest Box contained in both |a| and |b|.
+
10// static
+
+ +
12 return Box{
+
13 std::max(a.x_min, b.x_min),
+
14 std::min(a.x_max, b.x_max),
+
15 std::max(a.y_min, b.y_min),
+
16 std::min(a.y_max, b.y_max),
+
17 };
+
18}
+
+
19
+
20/// @return the smallest Box containing both |a| and |b|.
+
21// static
+
+ +
23 return Box{
+
24 std::min(a.x_min, b.x_min),
+
25 std::max(a.x_max, b.x_max),
+
26 std::min(a.y_min, b.y_min),
+
27 std::max(a.y_max, b.y_max),
+
28 };
+
29}
+
+
30
+
31/// Shift the box by (x,y).
+
32/// @param x horizontal shift.
+
33/// @param y vertical shift.
+
+
34void Box::Shift(int x, int y) {
+
35 x_min += x;
+
36 x_max += x;
+
37 y_min += y;
+
38 y_max += y;
+
39}
+
+
40
+
41/// @return whether (x,y) is contained inside the box.
+
+
42bool Box::Contain(int x, int y) const {
+
43 return x_min <= x && //
+
44 x_max >= x && //
+
45 y_min <= y && //
+
46 y_max >= y;
+
47}
+
+
48
+
49/// @return whether the box is empty.
+
+
50bool Box::IsEmpty() const {
+
51 return x_min > x_max || y_min > y_max;
+
52}
+
+
53
+
54/// @return whether |other| is the same as |this|
+
+
55bool Box::operator==(const Box& other) const {
+
56 return (x_min == other.x_min) && (x_max == other.x_max) &&
+
57 (y_min == other.y_min) && (y_max == other.y_max);
+
58}
+
+
59
+
60/// @return whether |other| and |this| are different.
+
+
61bool Box::operator!=(const Box& other) const {
+
62 return !operator==(other);
+
63}
+
+
64
+
65} // namespace ftxui
+ +
bool operator!=(const Box &other) const
Definition box.cpp:61
+
bool Contain(int x, int y) const
Definition box.cpp:42
+
void Shift(int x, int y)
Definition box.cpp:34
+
int x_max
Definition box.hpp:18
+
int y_min
Definition box.hpp:19
+
static auto Intersection(Box a, Box b) -> Box
Definition box.cpp:11
+
bool IsEmpty() const
Definition box.cpp:50
+
int y_max
Definition box.hpp:20
+
bool operator==(const Box &other) const
Definition box.cpp:55
+
static auto Union(Box a, Box b) -> Box
Definition box.cpp:22
+
int x_min
Definition box.hpp:17
+
Box is a structure that represents a rectangular area in a 2D space.
Definition box.hpp:16
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/box_8cppm.html b/box_8cppm.html new file mode 100644 index 000000000..644d80c23 --- /dev/null +++ b/box_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: box.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
box.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/box_8cppm_source.html b/box_8cppm_source.html new file mode 100644 index 000000000..9f4b6bc15 --- /dev/null +++ b/box_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: box.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
box.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.screen.box
+
2/// @brief Module file for the Box struct of the Screen module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.screen.box;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::Box;
+
16}
+ +
Box is a structure that represents a rectangular area in a 2D space.
Definition box.hpp:16
+
Module file for the Box struct of the Screen module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/box_8hpp.html b/box_8hpp.html new file mode 100644 index 000000000..302817e4c --- /dev/null +++ b/box_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: box.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
box.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

struct  Box
 Box is a structure that represents a rectangular area in a 2D space. More...
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/box_8hpp_source.html b/box_8hpp_source.html new file mode 100644 index 000000000..953e47a78 --- /dev/null +++ b/box_8hpp_source.html @@ -0,0 +1,257 @@ + + + + + + + + +FTXUI: box.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
box.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_SCREEN_BOX_HPP
+
5#define FTXUI_SCREEN_BOX_HPP
+
6
+
7namespace ftxui {
+
8
+
9/// @brief Box is a structure that represents a rectangular area in a 2D space.
+
10///
+
11/// It is defined by its minimum and maximum coordinates along the x and y axes.
+
12/// Note that the coordinates are inclusive, meaning that the box includes both
+
13/// the minimum and maximum values.
+
14///
+
15/// @ingroup screen
+
+
16struct Box {
+
17 int x_min = 0;
+
18 int x_max = 0;
+
19 int y_min = 0;
+
20 int y_max = 0;
+
21
+
22 static auto Intersection(Box a, Box b) -> Box;
+
23 static auto Union(Box a, Box b) -> Box;
+
24 void Shift(int x, int y);
+
25 bool Contain(int x, int y) const;
+
26 bool IsEmpty() const;
+
27 bool operator==(const Box& other) const;
+
28 bool operator!=(const Box& other) const;
+
29};
+
+
30
+
31} // namespace ftxui
+
32
+
33#endif // FTXUI_SCREEN_BOX_HPP
+
bool operator!=(const Box &other) const
Definition box.cpp:61
+
bool Contain(int x, int y) const
Definition box.cpp:42
+
void Shift(int x, int y)
Definition box.cpp:34
+
int x_max
Definition box.hpp:18
+
int y_min
Definition box.hpp:19
+
static auto Intersection(Box a, Box b) -> Box
Definition box.cpp:11
+
bool IsEmpty() const
Definition box.cpp:50
+
int y_max
Definition box.hpp:20
+
bool operator==(const Box &other) const
Definition box.cpp:55
+
static auto Union(Box a, Box b) -> Box
Definition box.cpp:22
+
int x_min
Definition box.hpp:17
+
Box is a structure that represents a rectangular area in a 2D space.
Definition box.hpp:16
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/box__helper_8cpp.html b/box__helper_8cpp.html new file mode 100644 index 000000000..7baf7ce63 --- /dev/null +++ b/box__helper_8cpp.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: box_helper.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
box_helper.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::box_helper
 
+ + + +

+Functions

void Compute (std::vector< Element > *elements, int target_size)
 
+
+
+ + + + + diff --git a/box__helper_8cpp.js b/box__helper_8cpp.js new file mode 100644 index 000000000..3da01e37d --- /dev/null +++ b/box__helper_8cpp.js @@ -0,0 +1,4 @@ +var box__helper_8cpp = +[ + [ "Compute", "box__helper_8cpp.html#aede4ed6e71fbe0689a500ff8db06f3a3", null ] +]; \ No newline at end of file diff --git a/box__helper_8cpp_source.html b/box__helper_8cpp_source.html new file mode 100644 index 000000000..5e277dd01 --- /dev/null +++ b/box__helper_8cpp_source.html @@ -0,0 +1,310 @@ + + + + + + + + +FTXUI: box_helper.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
box_helper.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+ +
5
+
6#include <algorithm> // for max
+
7#include <vector> // for vector
+
8
+
+ +
10
+
11namespace {
+
12// Called when the size allowed is greater than the requested size. This
+
13// distributes the extra spaces toward the flexible elements, in relative
+
14// proportions.
+
15void ComputeGrow(std::vector<Element>* elements,
+
16 int extra_space,
+
17 int flex_grow_sum) {
+
18 for (Element& element : *elements) {
+
19 const int added_space =
+
20 extra_space * element.flex_grow / std::max(flex_grow_sum, 1);
+
21 extra_space -= added_space;
+
22 flex_grow_sum -= element.flex_grow;
+
23 element.size = element.min_size + added_space;
+
24 }
+
25}
+
26
+
27// Called when the size allowed is lower than the requested size, and the
+
28// shrinkable element can absorbe the (negative) extra_space. This distribute
+
29// the extra_space toward those.
+
30void ComputeShrinkEasy(std::vector<Element>* elements,
+
31 int extra_space,
+
32 int flex_shrink_sum) {
+
33 for (Element& element : *elements) {
+
34 const int added_space = extra_space * element.min_size *
+
35 element.flex_shrink / std::max(flex_shrink_sum, 1);
+
36 extra_space -= added_space;
+
37 flex_shrink_sum -= element.flex_shrink * element.min_size;
+
38 element.size = element.min_size + added_space;
+
39 }
+
40}
+
41
+
42// Called when the size allowed is lower than the requested size, and the
+
43// shrinkable element can not absorbe the (negative) extra_space. This assign
+
44// zero to shrinkable elements and distribute the remaining (negative)
+
45// extra_space toward the other non shrinkable elements.
+
46void ComputeShrinkHard(std::vector<Element>* elements,
+
47 int extra_space,
+
48 int size) {
+
49 for (Element& element : *elements) {
+
50 if (element.flex_shrink != 0) {
+
51 element.size = 0;
+
52 continue;
+
53 }
+
54
+
55 const int added_space = extra_space * element.min_size / std::max(1, size);
+
56 extra_space -= added_space;
+
57 size -= element.min_size;
+
58
+
59 element.size = element.min_size + added_space;
+
60 }
+
61}
+
62
+
63} // namespace
+
64
+
+
65void Compute(std::vector<Element>* elements, int target_size) {
+
66 int size = 0;
+
67 int flex_grow_sum = 0;
+
68 int flex_shrink_sum = 0;
+
69 int flex_shrink_size = 0;
+
70
+
71 for (auto& element : *elements) {
+
72 flex_grow_sum += element.flex_grow;
+
73 flex_shrink_sum += element.min_size * element.flex_shrink;
+
74 if (element.flex_shrink != 0) {
+
75 flex_shrink_size += element.min_size;
+
76 }
+
77 size += element.min_size;
+
78 }
+
79
+
80 const int extra_space = target_size - size;
+
81 if (extra_space >= 0) {
+
82 ComputeGrow(elements, extra_space, flex_grow_sum);
+
83 } else if (flex_shrink_size + extra_space >= 0) {
+
84 ComputeShrinkEasy(elements, extra_space, flex_shrink_sum);
+
85
+
86 } else {
+
87 ComputeShrinkHard(elements, extra_space + flex_shrink_size,
+
88 size - flex_shrink_size);
+
89 }
+
90}
+
+
91
+
92} // namespace ftxui::box_helper
+
+ +
Decorator size(WidthOrHeight, Constraint, int value)
Apply a constraint on the size of an element.
+ +
void Compute(std::vector< Element > *elements, int target_size)
+ +
+
+ + + + + diff --git a/box__helper_8hpp.html b/box__helper_8hpp.html new file mode 100644 index 000000000..96c16d97f --- /dev/null +++ b/box__helper_8hpp.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: box_helper.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
box_helper.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Classes

struct  Element
 
+ + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::box_helper
 
+ + + +

+Functions

void Compute (std::vector< Element > *elements, int target_size)
 
+
+
+ + + + + diff --git a/box__helper_8hpp.js b/box__helper_8hpp.js new file mode 100644 index 000000000..264ab37d5 --- /dev/null +++ b/box__helper_8hpp.js @@ -0,0 +1,5 @@ +var box__helper_8hpp = +[ + [ "Element", "structftxui_1_1box__helper_1_1Element.html", "structftxui_1_1box__helper_1_1Element" ], + [ "Compute", "box__helper_8hpp.html#aede4ed6e71fbe0689a500ff8db06f3a3", null ] +]; \ No newline at end of file diff --git a/box__helper_8hpp_source.html b/box__helper_8hpp_source.html new file mode 100644 index 000000000..8a0ab1b67 --- /dev/null +++ b/box__helper_8hpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: box_helper.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
box_helper.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.line.
+
4#ifndef FTXUI_DOM_BOX_HELPER_HPP
+
5#define FTXUI_DOM_BOX_HELPER_HPP
+
6
+
7#include <vector>
+ +
9
+
10namespace ftxui::box_helper {
+
11
+
+
12struct Element {
+
13 // Input:
+
14 int min_size = 0;
+
15 int flex_grow = 0;
+
16 int flex_shrink = 0;
+
17
+
18 // Output;
+
19 int size = 0;
+
20};
+
+
21
+
22void Compute(std::vector<Element>* elements, int target_size);
+
23} // namespace ftxui::box_helper
+
24
+
25#endif /* end of include guard: FTXUI_DOM_BOX_HELPER_HPP */
+ +
void Compute(std::vector< Element > *elements, int target_size)
+ + + +
+
+ + + + + diff --git a/button__animated_8cpp.html b/button__animated_8cpp.html new file mode 100644 index 000000000..28405a5bc --- /dev/null +++ b/button__animated_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: button_animated.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
button_animated.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 17 of file button_animated.cpp.

+ +
+
+
+
+ + + + + diff --git a/button__animated_8cpp.js b/button__animated_8cpp.js new file mode 100644 index 000000000..85f8d8e62 --- /dev/null +++ b/button__animated_8cpp.js @@ -0,0 +1,4 @@ +var button__animated_8cpp = +[ + [ "main", "button__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/button__animated_8cpp_source.html b/button__animated_8cpp_source.html new file mode 100644 index 000000000..45de094d1 --- /dev/null +++ b/button__animated_8cpp_source.html @@ -0,0 +1,278 @@ + + + + + + + + +FTXUI: button_animated.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
button_animated.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for shared_ptr, __shared_ptr_access
+
5#include <string> // for operator+, to_string
+
6
+
7#include "ftxui/component/captured_mouse.hpp" // for ftxui
+
8#include "ftxui/component/component.hpp" // for Button, Horizontal, Renderer
+
9#include "ftxui/component/component_base.hpp" // for ComponentBase
+
10#include "ftxui/component/component_options.hpp" // for ButtonOption
+
11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
12#include "ftxui/dom/elements.hpp" // for gauge, separator, text, vbox, operator|, Element, border
+
13#include "ftxui/screen/color.hpp" // for Color, Color::Blue, Color::Green, Color::Red
+
14
+
15using namespace ftxui;
+
16
+
+
17int main() {
+
18 int value = 50;
+
19
+
20 // The tree of components. This defines how to navigate using the keyboard.
+
21 auto buttons = Container::Horizontal({
+
22 Button(
+
23 "Decrease", [&] { value--; }, ButtonOption::Animated(Color::Red)),
+
24 Button(
+
25 "Reset", [&] { value = 50; }, ButtonOption::Animated(Color::Green)),
+
26 Button(
+
27 "Increase", [&] { value++; }, ButtonOption::Animated(Color::Blue)),
+
28 });
+
29
+
30 // Modify the way to render them on screen:
+
31 auto component = Renderer(buttons, [&] {
+
32 return vbox({
+
33 vbox({
+
34 text("value = " + std::to_string(value)),
+
35 separator(),
+
36 gauge(value * 0.01f),
+
37 }) | border,
+
38 buttons->Render(),
+
39 });
+
40 });
+
41
+
42 auto screen = ScreenInteractive::FitComponent();
+
43 screen.Loop(component);
+
44 return 0;
+
45}
+
+
int main()
+ + + + + + +
static ButtonOption Animated()
Create a ButtonOption, using animated colors.
+
static ScreenInteractive FitComponent()
+
Component Horizontal(Components children)
A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
virtual void Render(Screen &screen)
Display an element on a ftxui::Screen.
Definition node.cpp:59
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element separator()
Draw a vertical or horizontal separation in between two other elements.
+
Element gauge(float progress)
Draw a high definition progress bar.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+ + + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
+
+ + + + + diff --git a/button__in__frame_8cpp.html b/button__in__frame_8cpp.html new file mode 100644 index 000000000..b95db64be --- /dev/null +++ b/button__in__frame_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: button_in_frame.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
button_in_frame.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 17 of file button_in_frame.cpp.

+ +
+
+
+
+ + + + + diff --git a/button__in__frame_8cpp.js b/button__in__frame_8cpp.js new file mode 100644 index 000000000..f1699abcc --- /dev/null +++ b/button__in__frame_8cpp.js @@ -0,0 +1,4 @@ +var button__in__frame_8cpp = +[ + [ "main", "button__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/button__in__frame_8cpp_source.html b/button__in__frame_8cpp_source.html new file mode 100644 index 000000000..776ea863d --- /dev/null +++ b/button__in__frame_8cpp_source.html @@ -0,0 +1,283 @@ + + + + + + + + +FTXUI: button_in_frame.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
button_in_frame.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2022 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for allocator, __shared_ptr_access, shared_ptr
+
5#include <string> // for to_string, operator+
+
6
+
7#include "ftxui/component/captured_mouse.hpp" // for ftxui
+
8#include "ftxui/component/component.hpp" // for Button, Renderer, Vertical
+
9#include "ftxui/component/component_base.hpp" // for ComponentBase
+
10#include "ftxui/component/component_options.hpp" // for ButtonOption
+
11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
12#include "ftxui/dom/elements.hpp" // for operator|, text, Element, hbox, separator, size, vbox, border, frame, vscroll_indicator, HEIGHT, LESS_THAN
+
13#include "ftxui/screen/color.hpp" // for Color, Color::Default, Color::GrayDark, Color::White
+
14
+
15using namespace ftxui;
+
16
+
+
17int main() {
+
18 int counter = 0;
+
19 auto on_click = [&] { counter++; };
+
20
+ + +
23
+
24 auto container = Container::Vertical({});
+
25 for (int i = 0; i < 30; ++i) {
+
26 auto button = Button("Button " + std::to_string(i), on_click, style);
+
27 container->Add(button);
+
28 }
+
29
+
30 auto renderer = Renderer(container, [&] {
+
31 return vbox({
+
32 hbox({
+
33 text("Counter:"),
+
34 text(std::to_string(counter)),
+
35 }),
+
36 separator(),
+
37 container->Render() | vscroll_indicator | frame |
+
38 size(HEIGHT, LESS_THAN, 20),
+
39 }) |
+
40 border;
+
41 });
+
42
+
43 auto screen = ScreenInteractive::FitComponent();
+
44 screen.Loop(renderer);
+
45
+
46 return 0;
+
47}
+
+
int main()
+ + + + + + +
static ButtonOption Animated()
Create a ButtonOption, using animated colors.
+
static ScreenInteractive FitComponent()
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
Component Vertical(Components children)
A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
+
virtual void Render(Screen &screen)
Display an element on a ftxui::Screen.
Definition node.cpp:59
+
Decorator size(WidthOrHeight, Constraint, int value)
Apply a constraint on the size of an element.
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element separator()
Draw a vertical or horizontal separation in between two other elements.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+ + + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+
@ LESS_THAN
Definition elements.hpp:162
+ +
+
+ + + + + diff --git a/button__style_8cpp.html b/button__style_8cpp.html new file mode 100644 index 000000000..d651e1def --- /dev/null +++ b/button__style_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: button_style.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
button_style.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 16 of file button_style.cpp.

+ +
+
+
+
+ + + + + diff --git a/button__style_8cpp.js b/button__style_8cpp.js new file mode 100644 index 000000000..60f4b3dab --- /dev/null +++ b/button__style_8cpp.js @@ -0,0 +1,4 @@ +var button__style_8cpp = +[ + [ "main", "button__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/button__style_8cpp_source.html b/button__style_8cpp_source.html new file mode 100644 index 000000000..658491ac2 --- /dev/null +++ b/button__style_8cpp_source.html @@ -0,0 +1,292 @@ + + + + + + + + +FTXUI: button_style.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
button_style.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <string> // for operator+, to_string
+
5
+
6#include "ftxui/component/captured_mouse.hpp" // for ftxui
+
7#include "ftxui/component/component.hpp" // for Button, Vertical, Renderer, Horizontal, operator|
+
8#include "ftxui/component/component_base.hpp" // for Component
+
9#include "ftxui/component/component_options.hpp" // for ButtonOption
+
10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
11#include "ftxui/dom/elements.hpp" // for Element, separator, text, border
+
12#include "ftxui/screen/color.hpp" // for Color, Color::Blue, Color::Green, Color::Red
+
13
+
14using namespace ftxui;
+
15
+
+
16int main() {
+
17 int value = 0;
+
18 auto action = [&] { value++; };
+
19 auto action_renderer =
+
20 Renderer([&] { return text("count = " + std::to_string(value)); });
+
21
+
22 auto buttons =
+ +
24 action_renderer,
+
25 Renderer([] { return separator(); }),
+
26 Container::Horizontal({
+ +
28 Button("Ascii 1", action, ButtonOption::Ascii()),
+
29 Button("Ascii 2", action, ButtonOption::Ascii()),
+
30 Button("Ascii 3", action, ButtonOption::Ascii()),
+
31 }),
+
32 Renderer([] { return separator(); }),
+
33 Container::Vertical({
+
34 Button("Simple 1", action, ButtonOption::Simple()),
+
35 Button("Simple 2", action, ButtonOption::Simple()),
+
36 Button("Simple 3", action, ButtonOption::Simple()),
+
37 }),
+
38 Renderer([] { return separator(); }),
+
39 Container::Vertical({
+
40 Button("Animated 1", action, ButtonOption::Animated()),
+
41 Button("Animated 2", action, ButtonOption::Animated()),
+
42 Button("Animated 3", action, ButtonOption::Animated()),
+
43 }),
+
44 Renderer([] { return separator(); }),
+
45 Container::Vertical({
+
46 Button("Animated 4", action,
+ +
48 Button("Animated 5", action,
+ +
50 Button("Animated 6", action,
+ +
52 }),
+
53 }),
+
54 }) |
+
55 border;
+
56
+
57 auto screen = ScreenInteractive::FitComponent();
+
58 screen.Loop(buttons);
+
59 return 0;
+
60}
+
+
int main()
+ + + + + + +
static ButtonOption Animated()
Create a ButtonOption, using animated colors.
+
static ScreenInteractive FitComponent()
+
static ButtonOption Simple()
Create a ButtonOption, inverted when focused.
+
static ButtonOption Ascii()
Create a ButtonOption, highlighted using [] characters.
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
Component Vertical(Components children)
A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element separator()
Draw a vertical or horizontal separation in between two other elements.
+ + + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
+
+ + + + + diff --git a/canvas_8cppm.html b/canvas_8cppm.html new file mode 100644 index 000000000..cc2216ae1 --- /dev/null +++ b/canvas_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: canvas.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
canvas.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/canvas_8cppm_source.html b/canvas_8cppm_source.html new file mode 100644 index 000000000..4665c293c --- /dev/null +++ b/canvas_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: canvas.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
canvas.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.dom.canvas
+
2/// @brief Module file for the Canvas struct of the Dom module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.dom.canvas;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::Canvas;
+
16}
+ +
Canvas is a drawable buffer associated with drawing operations.
Definition canvas.hpp:38
+
Module file for the Canvas struct of the Dom module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/canvas_8hpp.html b/canvas_8hpp.html new file mode 100644 index 000000000..50efc1565 --- /dev/null +++ b/canvas_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: canvas.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
canvas.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

struct  Canvas
 Canvas is a drawable buffer associated with drawing operations. More...
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/canvas_8hpp_source.html b/canvas_8hpp_source.html new file mode 100644 index 000000000..c8275becd --- /dev/null +++ b/canvas_8hpp_source.html @@ -0,0 +1,407 @@ + + + + + + + + +FTXUI: canvas.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
canvas.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_DOM_CANVAS_HPP
+
5#define FTXUI_DOM_CANVAS_HPP
+
6
+
7#include <cstddef> // for size_t
+
8#include <functional> // for function
+
9#include <string> // for string
+
10#include <unordered_map> // for unordered_map
+
11
+
12#include "ftxui/screen/color.hpp" // for Color
+
13#include "ftxui/screen/image.hpp" // for Pixel, Image
+
14
+
15#ifdef DrawText
+
16// Workaround for WinUsr.h (via Windows.h) defining macros that break things.
+
17// https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-drawtext
+
18#undef DrawText
+
19#endif
+
20
+
21namespace ftxui {
+
22
+
23/// @brief Canvas is a drawable buffer associated with drawing operations.
+
24///
+
25/// Canvas is a drawable area that can be used to create complex graphics. It
+
26/// supports drawing points, lines, circles, ellipses, text, and images using
+
27/// braille, block, or normal characters.
+
28///
+
29/// Note: A terminal contains cells. A cells is a unit of:
+
30/// - 2x4 braille characters (1x1 pixel)
+
31/// - 2x2 block characters (2x2 pixels)
+
32/// - 2x4 normal characters (2x4 pixels)
+
33///
+
34/// You need to multiply the x coordinate by 2 and the y coordinate by 4 to
+
35/// get the correct position in the terminal.
+
36///
+
37/// @ingroup dom
+
+
38struct Canvas {
+
39 public:
+
40 Canvas() = default;
+
41 Canvas(int width, int height);
+
42
+
43 // Getters:
+
44 int width() const { return width_; }
+
45 int height() const { return height_; }
+
46 Pixel GetPixel(int x, int y) const;
+
47
+
48 using Stylizer = std::function<void(Pixel&)>;
+
49
+
50 // Draws using braille characters --------------------------------------------
+
51 void DrawPointOn(int x, int y);
+
52 void DrawPointOff(int x, int y);
+
53 void DrawPointToggle(int x, int y);
+
54 void DrawPoint(int x, int y, bool value);
+
55 void DrawPoint(int x, int y, bool value, const Stylizer& s);
+
56 void DrawPoint(int x, int y, bool value, const Color& color);
+
57 void DrawPointLine(int x1, int y1, int x2, int y2);
+
58 void DrawPointLine(int x1, int y1, int x2, int y2, const Stylizer& s);
+
59 void DrawPointLine(int x1, int y1, int x2, int y2, const Color& color);
+
60 void DrawPointCircle(int x, int y, int radius);
+
61 void DrawPointCircle(int x, int y, int radius, const Stylizer& s);
+
62 void DrawPointCircle(int x, int y, int radius, const Color& color);
+
63 void DrawPointCircleFilled(int x, int y, int radius);
+
64 void DrawPointCircleFilled(int x, int y, int radius, const Stylizer& s);
+
65 void DrawPointCircleFilled(int x, int y, int radius, const Color& color);
+
66 void DrawPointEllipse(int x, int y, int r1, int r2);
+
67 void DrawPointEllipse(int x, int y, int r1, int r2, const Color& color);
+
68 void DrawPointEllipse(int x, int y, int r1, int r2, const Stylizer& s);
+
69 void DrawPointEllipseFilled(int x, int y, int r1, int r2);
+
70 void DrawPointEllipseFilled(int x, int y, int r1, int r2, const Color& color);
+
71 void DrawPointEllipseFilled(int x, int y, int r1, int r2, const Stylizer& s);
+
72
+
73 // Draw using box characters -------------------------------------------------
+
74 // Block are of size 1x2. y is considered to be a multiple of 2.
+
75 void DrawBlockOn(int x, int y);
+
76 void DrawBlockOff(int x, int y);
+
77 void DrawBlockToggle(int x, int y);
+
78 void DrawBlock(int x, int y, bool value);
+
79 void DrawBlock(int x, int y, bool value, const Stylizer& s);
+
80 void DrawBlock(int x, int y, bool value, const Color& color);
+
81 void DrawBlockLine(int x1, int y1, int x2, int y2);
+
82 void DrawBlockLine(int x1, int y1, int x2, int y2, const Stylizer& s);
+
83 void DrawBlockLine(int x1, int y1, int x2, int y2, const Color& color);
+
84 void DrawBlockCircle(int x1, int y1, int radius);
+
85 void DrawBlockCircle(int x1, int y1, int radius, const Stylizer& s);
+
86 void DrawBlockCircle(int x1, int y1, int radius, const Color& color);
+
87 void DrawBlockCircleFilled(int x1, int y1, int radius);
+
88 void DrawBlockCircleFilled(int x1, int y1, int radius, const Stylizer& s);
+
89 void DrawBlockCircleFilled(int x1, int y1, int radius, const Color& color);
+
90 void DrawBlockEllipse(int x1, int y1, int r1, int r2);
+
91 void DrawBlockEllipse(int x1, int y1, int r1, int r2, const Stylizer& s);
+
92 void DrawBlockEllipse(int x1, int y1, int r1, int r2, const Color& color);
+
93 void DrawBlockEllipseFilled(int x1, int y1, int r1, int r2);
+
94 void DrawBlockEllipseFilled(int x1,
+
95 int y1,
+
96 int r1,
+
97 int r2,
+
98 const Stylizer& s);
+
99 void DrawBlockEllipseFilled(int x1,
+
100 int y1,
+
101 int r1,
+
102 int r2,
+
103 const Color& color);
+
104
+
105 // Draw using normal characters ----------------------------------------------
+
106 // Draw using character of size 2x4 at position (x,y)
+
107 // x is considered to be a multiple of 2.
+
108 // y is considered to be a multiple of 4.
+
109 void DrawText(int x, int y, const std::string& value);
+
110 void DrawText(int x, int y, const std::string& value, const Color& color);
+
111 void DrawText(int x, int y, const std::string& value, const Stylizer& style);
+
112
+
113 // Draw using directly pixels or images --------------------------------------
+
114 // x is considered to be a multiple of 2.
+
115 // y is considered to be a multiple of 4.
+
116 void DrawPixel(int x, int y, const Pixel&);
+
117 void DrawImage(int x, int y, const Image&);
+
118
+
119 // Decorator:
+
120 // x is considered to be a multiple of 2.
+
121 // y is considered to be a multiple of 4.
+
122 void Style(int x, int y, const Stylizer& style);
+
123
+
124 private:
+
125 bool IsIn(int x, int y) const {
+
126 return x >= 0 && x < width_ && y >= 0 && y < height_;
+
127 }
+
128
+
129 enum CellType {
+
130 kCell, // Units of size 2x4
+
131 kBlock, // Units of size 2x2
+
132 kBraille, // Units of size 1x1
+
133 };
+
134
+
135 struct Cell {
+
136 CellType type = kCell;
+
137 Pixel content;
+
138 };
+
139
+
140 struct XY {
+
141 int x;
+
142 int y;
+
143 bool operator==(const XY& other) const {
+
144 return x == other.x && y == other.y;
+
145 }
+
146 };
+
147
+
148 struct XYHash {
+
149 size_t operator()(const XY& xy) const {
+
150 constexpr size_t shift = 1024;
+
151 return size_t(xy.x) * shift + size_t(xy.y);
+
152 }
+
153 };
+
154
+
155 int width_ = 0;
+
156 int height_ = 0;
+
157 std::unordered_map<XY, Cell, XYHash> storage_;
+
158};
+
+
159
+
160} // namespace ftxui
+
161
+
162#endif // FTXUI_DOM_CANVAS_HPP
+ +
ButtonOption Style()
+
void DrawImage(int x, int y, const Image &)
Draw a predefined image, with top-left corner at the given coordinate You can supply negative coordin...
+
void DrawBlockLine(int x1, int y1, int x2, int y2)
Draw a line made of block characters.
+
void DrawPointEllipseFilled(int x, int y, int r1, int r2)
Draw a filled ellipse made of braille dots.
+
void DrawPointLine(int x1, int y1, int x2, int y2)
Draw a line made of braille dots.
+
void DrawText(int x, int y, const std::string &value)
Draw a piece of text.
+
Canvas()=default
+
std::function< void(Pixel &)> Stylizer
Definition canvas.hpp:48
+
void DrawBlockOn(int x, int y)
Draw a block.
+
void DrawPointCircleFilled(int x, int y, int radius)
Draw a filled circle made of braille dots.
+
void DrawPointOn(int x, int y)
Draw a braille dot.
+
void DrawPointOff(int x, int y)
Erase a braille dot.
+
Pixel GetPixel(int x, int y) const
Get the content of a cell.
+
void DrawBlockEllipseFilled(int x1, int y1, int r1, int r2)
Draw a filled ellipse made of block characters.
+
void DrawPointEllipse(int x, int y, int r1, int r2)
Draw an ellipse made of braille dots.
+
void DrawPoint(int x, int y, bool value)
Draw a braille dot.
+
void DrawBlockEllipse(int x1, int y1, int r1, int r2)
Draw an ellipse made of block characters.
+
void DrawBlockToggle(int x, int y)
Toggle a block. If it is filled, it will be erased. If it is empty, it will be filled.
+
void DrawBlockCircle(int x1, int y1, int radius)
Draw a circle made of block characters.
+
void DrawBlockCircleFilled(int x1, int y1, int radius)
Draw a filled circle made of block characters.
+
void DrawPointCircle(int x, int y, int radius)
Draw a circle made of braille dots.
+
int height() const
Definition canvas.hpp:45
+
void DrawBlockOff(int x, int y)
Erase a block.
+
int width() const
Definition canvas.hpp:44
+
void DrawBlock(int x, int y, bool value)
Draw a block.
+
void DrawPointToggle(int x, int y)
Toggle a braille dot. A filled one will be erased, and the other will be drawn.
+
void DrawPixel(int x, int y, const Pixel &)
Directly draw a predefined pixel at the given coordinate.
+
Canvas is a drawable buffer associated with drawing operations.
Definition canvas.hpp:38
+
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
A rectangular grid of Pixel.
Definition image.hpp:17
+
A Unicode character and its associated style.
Definition pixel.hpp:15
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/canvas__animated_8cpp.html b/canvas__animated_8cpp.html new file mode 100644 index 000000000..fddaa6dd2 --- /dev/null +++ b/canvas__animated_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: canvas_animated.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
canvas_animated.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 20 of file canvas_animated.cpp.

+ +
+
+
+
+ + + + + diff --git a/canvas__animated_8cpp.js b/canvas__animated_8cpp.js new file mode 100644 index 000000000..e6883829c --- /dev/null +++ b/canvas__animated_8cpp.js @@ -0,0 +1,4 @@ +var canvas__animated_8cpp = +[ + [ "main", "canvas__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/canvas__animated_8cpp_source.html b/canvas__animated_8cpp_source.html new file mode 100644 index 000000000..a268c257c --- /dev/null +++ b/canvas__animated_8cpp_source.html @@ -0,0 +1,493 @@ + + + + + + + + +FTXUI: canvas_animated.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
canvas_animated.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSED file.
+
4#include <cmath> // for sin, cos
+
5#include <ftxui/dom/elements.hpp> // for canvas, Element, separator, hbox, operator|, border
+
6#include <ftxui/screen/screen.hpp> // for Pixel
+
7#include <memory> // for allocator, shared_ptr, __shared_ptr_access
+
8#include <string> // for string, basic_string
+
9#include <utility> // for move
+
10#include <vector> // for vector, __alloc_traits<>::value_type
+
11
+
12#include "ftxui/component/component.hpp" // for Renderer, CatchEvent, Horizontal, Menu, Tab
+
13#include "ftxui/component/component_base.hpp" // for ComponentBase
+
14#include "ftxui/component/event.hpp" // for Event
+
15#include "ftxui/component/mouse.hpp" // for Mouse
+
16#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
17#include "ftxui/dom/canvas.hpp" // for Canvas
+
18#include "ftxui/screen/color.hpp" // for Color, Color::Red, Color::Blue, Color::Green, ftxui
+
19
+
+
20int main() {
+
21 using namespace ftxui;
+
22
+
23 int mouse_x = 0;
+
24 int mouse_y = 0;
+
25
+
26 // A triangle following the mouse, using braille characters.
+
27 auto renderer_line_braille = Renderer([&] {
+
28 auto c = Canvas(100, 100);
+
29 c.DrawText(0, 0, "Several lines (braille)");
+
30 c.DrawPointLine(mouse_x, mouse_y, 80, 10, Color::Red);
+
31 c.DrawPointLine(80, 10, 80, 40, Color::Blue);
+
32 c.DrawPointLine(80, 40, mouse_x, mouse_y, Color::Green);
+
33 return canvas(std::move(c));
+
34 });
+
35
+
36 // A triangle following the mouse, using block characters.
+
37 auto renderer_line_block = Renderer([&] {
+
38 auto c = Canvas(100, 100);
+
39 c.DrawText(0, 0, "Several lines (block)");
+
40 c.DrawBlockLine(mouse_x, mouse_y, 80, 10, Color::Red);
+
41 c.DrawBlockLine(80, 10, 80, 40, Color::Blue);
+
42 c.DrawBlockLine(80, 40, mouse_x, mouse_y, Color::Green);
+
43 return canvas(std::move(c));
+
44 });
+
45
+
46 // A circle following the mouse, using braille characters.
+
47 auto renderer_circle_braille = Renderer([&] {
+
48 auto c = Canvas(100, 100);
+
49 c.DrawText(0, 0, "A circle (braille)");
+
50 c.DrawPointCircle(mouse_x, mouse_y, 30);
+
51 return canvas(std::move(c));
+
52 });
+
53
+
54 // A circle following the mouse, using block characters.
+
55 auto renderer_circle_block = Renderer([&] {
+
56 auto c = Canvas(100, 100);
+
57 c.DrawText(0, 0, "A circle (block)");
+
58 c.DrawBlockCircle(mouse_x, mouse_y, 30);
+
59 return canvas(std::move(c));
+
60 });
+
61
+
62 // A filled circle following the mouse, using braille characters.
+
63 auto renderer_circle_filled_braille = Renderer([&] {
+
64 auto c = Canvas(100, 100);
+
65 c.DrawText(0, 0, "A circle filled (braille)");
+
66 c.DrawPointCircleFilled(mouse_x, mouse_y, 30);
+
67 return canvas(std::move(c));
+
68 });
+
69
+
70 // A filled circle following the mouse, using block characters.
+
71 auto renderer_circle_filled_block = Renderer([&] {
+
72 auto c = Canvas(100, 100);
+
73 c.DrawText(0, 0, "A circle filled (block)");
+
74 c.DrawBlockCircleFilled(mouse_x, mouse_y, 30);
+
75 return canvas(std::move(c));
+
76 });
+
77
+
78 // An ellipse following the mouse, using braille characters.
+
79 auto renderer_ellipse_braille = Renderer([&] {
+
80 auto c = Canvas(100, 100);
+
81 c.DrawText(0, 0, "An ellipse (braille)");
+
82 c.DrawPointEllipse(mouse_x / 2, mouse_y / 2, mouse_x / 2, mouse_y / 2);
+
83 return canvas(std::move(c));
+
84 });
+
85
+
86 // An ellipse following the mouse, using block characters.
+
87 auto renderer_ellipse_block = Renderer([&] {
+
88 auto c = Canvas(100, 100);
+
89 c.DrawText(0, 0, "An ellipse (block)");
+
90 c.DrawBlockEllipse(mouse_x / 2, mouse_y / 2, mouse_x / 2, mouse_y / 2);
+
91 return canvas(std::move(c));
+
92 });
+
93
+
94 // An ellipse following the mouse filled, using braille characters.
+
95 auto renderer_ellipse_filled_braille = Renderer([&] {
+
96 auto c = Canvas(100, 100);
+
97 c.DrawText(0, 0, "A filled ellipse (braille)");
+
98 c.DrawPointEllipseFilled(mouse_x / 2, mouse_y / 2, mouse_x / 2,
+
99 mouse_y / 2);
+
100 return canvas(std::move(c));
+
101 });
+
102
+
103 // An ellipse following the mouse filled, using block characters.
+
104 auto renderer_ellipse_filled_block = Renderer([&] {
+
105 auto c = Canvas(100, 100);
+
106 c.DrawText(0, 0, "A filled ellipse (block)");
+
107 c.DrawBlockEllipseFilled(mouse_x / 2, mouse_y / 2, mouse_x / 2,
+
108 mouse_y / 2);
+
109 c.DrawBlockEllipse(mouse_x / 2, mouse_y / 2, mouse_x / 2, mouse_y / 2);
+
110 return canvas(std::move(c));
+
111 });
+
112
+
113 // A text following the mouse
+
114 auto renderer_text = Renderer([&] {
+
115 auto c = Canvas(100, 100);
+
116 c.DrawText(0, 0, "A piece of text");
+
117 c.DrawText(mouse_x, mouse_y, "This is a piece of text with effects",
+
118 [](Pixel& p) {
+
119 p.foreground_color = Color::Red;
+
120 p.underlined = true;
+
121 p.bold = true;
+
122 });
+
123 return canvas(std::move(c));
+
124 });
+
125
+
126 auto renderer_plot_1 = Renderer([&] {
+
127 auto c = Canvas(100, 100);
+
128 c.DrawText(0, 0, "A graph");
+
129
+
130 std::vector<int> ys(100);
+
131 for (int x = 0; x < 100; x++) {
+
132 float dx = float(x - mouse_x);
+
133 float dy = 50.f;
+
134 ys[x] = int(dy + 20 * cos(dx * 0.14) + 10 * sin(dx * 0.42));
+
135 }
+
136 for (int x = 1; x < 99; x++) {
+
137 c.DrawPointLine(x, ys[x], x + 1, ys[x + 1]);
+
138 }
+
139
+
140 return canvas(std::move(c));
+
141 });
+
142
+
143 auto renderer_plot_2 = Renderer([&] {
+
144 auto c = Canvas(100, 100);
+
145 c.DrawText(0, 0, "A symmetrical graph filled");
+
146 std::vector<int> ys(100);
+
147 for (int x = 0; x < 100; x++) {
+
148 ys[x] = int(30 + //
+
149 10 * cos(x * 0.2 - mouse_x * 0.05) + //
+
150 5 * sin(x * 0.4) + //
+
151 5 * sin(x * 0.3 - mouse_y * 0.05)); //
+
152 }
+
153 for (int x = 0; x < 100; x++) {
+
154 c.DrawPointLine(x, 50 + ys[x], x, 50 - ys[x], Color::Red);
+
155 }
+
156
+
157 return canvas(std::move(c));
+
158 });
+
159
+
160 auto renderer_plot_3 = Renderer([&] {
+
161 auto c = Canvas(100, 100);
+
162 c.DrawText(0, 0, "A 2D gaussian plot");
+
163 int size = 15;
+
164
+
165 // mouse_x = 5mx + 3*my
+
166 // mouse_y = 0mx + -5my + 90
+
167 float my = (mouse_y - 90) / -5.f;
+
168 float mx = (mouse_x - 3 * my) / 5.f;
+
169 std::vector<std::vector<float>> ys(size, std::vector<float>(size));
+
170 for (int y = 0; y < size; y++) {
+
171 for (int x = 0; x < size; x++) {
+
172 float dx = x - mx;
+
173 float dy = y - my;
+
174 ys[y][x] = -1.5 + 3.0 * std::exp(-0.2f * (dx * dx + dy * dy));
+
175 }
+
176 }
+
177 for (int y = 0; y < size; y++) {
+
178 for (int x = 0; x < size; x++) {
+
179 if (x != 0) {
+
180 c.DrawPointLine(
+
181 5 * (x - 1) + 3 * (y - 0), 90 - 5 * (y - 0) - 5 * ys[y][x - 1],
+
182 5 * (x - 0) + 3 * (y - 0), 90 - 5 * (y - 0) - 5 * ys[y][x]);
+
183 }
+
184 if (y != 0) {
+
185 c.DrawPointLine(
+
186 5 * (x - 0) + 3 * (y - 1), 90 - 5 * (y - 1) - 5 * ys[y - 1][x],
+
187 5 * (x - 0) + 3 * (y - 0), 90 - 5 * (y - 0) - 5 * ys[y][x]);
+
188 }
+
189 }
+
190 }
+
191
+
192 return canvas(std::move(c));
+
193 });
+
194
+
195 int selected_tab = 12;
+
196 auto tab = Container::Tab(
+
197 {
+
198 renderer_line_braille,
+
199 renderer_line_block,
+
200 renderer_circle_braille,
+
201 renderer_circle_block,
+
202 renderer_circle_filled_braille,
+
203 renderer_circle_filled_block,
+
204 renderer_ellipse_braille,
+
205 renderer_ellipse_block,
+
206 renderer_ellipse_filled_braille,
+
207 renderer_ellipse_filled_block,
+
208
+
209 renderer_plot_1,
+
210 renderer_plot_2,
+
211 renderer_plot_3,
+
212
+
213 renderer_text,
+
214 },
+
215 &selected_tab);
+
216
+
217 // This capture the last mouse position.
+
218 auto tab_with_mouse = CatchEvent(tab, [&](Event e) {
+
219 if (e.is_mouse()) {
+
220 mouse_x = (e.mouse().x - 1) * 2;
+
221 mouse_y = (e.mouse().y - 1) * 4;
+
222 }
+
223 return false;
+
224 });
+
225
+
226 std::vector<std::string> tab_titles = {
+
227 "line (braille)",
+
228 "line (block)",
+
229 "circle (braille)",
+
230 "circle (block)",
+
231 "circle filled (braille)",
+
232 "circle filled (block)",
+
233 "ellipse (braille)",
+
234 "ellipse (block)",
+
235 "ellipse filled (braille)",
+
236 "ellipse filled (block)",
+
237 "plot_1 simple",
+
238 "plot_2 filled",
+
239 "plot_3 3D",
+
240 "text",
+
241 };
+
242 auto tab_toggle = Menu(&tab_titles, &selected_tab);
+
243
+
244 auto component = Container::Horizontal({
+
245 tab_with_mouse,
+
246 tab_toggle,
+
247 });
+
248
+
249 // Add some separator to decorate the whole component:
+
250 auto component_renderer = Renderer(component, [&] {
+
251 return hbox({
+
252 tab_with_mouse->Render(),
+
253 separator(),
+
254 tab_toggle->Render(),
+
255 }) |
+
256 border;
+
257 });
+
258
+
259 auto screen = ScreenInteractive::FitComponent();
+
260 screen.Loop(component_renderer);
+
261
+
262 return 0;
+
263}
+
+ +
int main()
+ + + + + +
bool is_mouse() const
Definition event.hpp:109
+
struct Mouse mouse
Definition event.hpp:144
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Canvas is a drawable buffer associated with drawing operations.
Definition canvas.hpp:38
+
Color foreground_color
Definition pixel.hpp:49
+
bool bold
Definition pixel.hpp:29
+
bool underlined
Definition pixel.hpp:33
+
A Unicode character and its associated style.
Definition pixel.hpp:15
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ + +
+
+ + + + + diff --git a/captured__mouse_8cppm.html b/captured__mouse_8cppm.html new file mode 100644 index 000000000..d8a1fffa7 --- /dev/null +++ b/captured__mouse_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: captured_mouse.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
captured_mouse.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/captured__mouse_8cppm_source.html b/captured__mouse_8cppm_source.html new file mode 100644 index 000000000..2503db9bf --- /dev/null +++ b/captured__mouse_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: captured_mouse.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
captured_mouse.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component.captured_mouse
+
2/// @brief Module file for the CapturedMouseInterface class of the Component module
+
3
+
4module;
+
5
+ +
7
+ +
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+ +
16}
+ + +
Module file for the CapturedMouseInterface class of the Component module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/captured__mouse_8hpp.html b/captured__mouse_8hpp.html new file mode 100644 index 000000000..882ef28a3 --- /dev/null +++ b/captured__mouse_8hpp.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: captured_mouse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
captured_mouse.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Classes

class  CapturedMouseInterface
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + +

+Typedefs

using CapturedMouse = std::unique_ptr<CapturedMouseInterface>
 
+
+
+ + + + + diff --git a/captured__mouse_8hpp.js b/captured__mouse_8hpp.js new file mode 100644 index 000000000..c631dfebb --- /dev/null +++ b/captured__mouse_8hpp.js @@ -0,0 +1,5 @@ +var captured__mouse_8hpp = +[ + [ "CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html", "classftxui_1_1CapturedMouseInterface" ], + [ "CapturedMouse", "captured__mouse_8hpp.html#a24b663cb6b0b262055c94d3a03bdd274", null ] +]; \ No newline at end of file diff --git a/captured__mouse_8hpp_source.html b/captured__mouse_8hpp_source.html new file mode 100644 index 000000000..89dc759e2 --- /dev/null +++ b/captured__mouse_8hpp_source.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: captured_mouse.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
captured_mouse.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_CAPTURED_MOUSE_HPP
+
5#define FTXUI_CAPTURED_MOUSE_HPP
+
6
+
7#include <memory>
+
8
+
9namespace ftxui {
+
10
+ +
20using CapturedMouse = std::unique_ptr<CapturedMouseInterface>;
+
21} // namespace ftxui
+
22
+
23#endif /* end of include guard: FTXUI_CAPTURED_MOUSE_HPP */
+ +
CapturedMouseInterface(CapturedMouseInterface &&)=delete
+
CapturedMouseInterface(const CapturedMouseInterface &)=default
+ +
CapturedMouseInterface & operator=(CapturedMouseInterface &&)=delete
+
CapturedMouseInterface & operator=(const CapturedMouseInterface &)=default
+
virtual ~CapturedMouseInterface()=default
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::unique_ptr< CapturedMouseInterface > CapturedMouse
+
+
+ + + + + diff --git a/catch__event_8cpp.html b/catch__event_8cpp.html new file mode 100644 index 000000000..95a1e6cac --- /dev/null +++ b/catch__event_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: catch_event.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
catch_event.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + + + +

+Functions

Component CatchEvent (Component child, std::function< bool(Event event)> on_event)
 Return a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
 
ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
 Decorate a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
 
+
+
+ + + + + diff --git a/catch__event_8cpp.js b/catch__event_8cpp.js new file mode 100644 index 000000000..b451bc1a1 --- /dev/null +++ b/catch__event_8cpp.js @@ -0,0 +1,5 @@ +var catch__event_8cpp = +[ + [ "CatchEvent", "catch__event_8cpp.html#ga0bfd67a2815807dc6fc9bc0f79bce29e", null ], + [ "CatchEvent", "catch__event_8cpp.html#gad2948235799c010c76c6de861c050c59", null ] +]; \ No newline at end of file diff --git a/catch__event_8cpp_source.html b/catch__event_8cpp_source.html new file mode 100644 index 000000000..04fd251ef --- /dev/null +++ b/catch__event_8cpp_source.html @@ -0,0 +1,311 @@ + + + + + + + + +FTXUI: catch_event.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
catch_event.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <functional> // for function
+
5#include <utility> // for move
+
6
+
7#include "ftxui/component/component.hpp" // for Make, CatchEvent, ComponentDecorator
+
8#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
+
9#include "ftxui/component/event.hpp" // for Event
+
10
+
11namespace ftxui {
+
12
+
13class CatchEventBase : public ComponentBase {
+
14 public:
+
15 // Constructor.
+
16 explicit CatchEventBase(std::function<bool(Event)> on_event)
+
17 : on_event_(std::move(on_event)) {}
+
18
+
19 // Component implementation.
+
20 bool OnEvent(Event event) override {
+
21 if (on_event_(event)) {
+
22 return true;
+
23 } else {
+
24 return ComponentBase::OnEvent(event);
+
25 }
+
26 }
+
27
+
28 protected:
+
29 std::function<bool(Event)> on_event_;
+
30};
+
31
+
32/// @brief Return a component, using |on_event| to catch events. This function
+
33/// must returns true when the event has been handled, false otherwise.
+
34/// @param child The wrapped component.
+
35/// @param on_event The function drawing the interface.
+
36/// @ingroup component
+
37///
+
38/// ### Example
+
39///
+
40/// ```cpp
+
41/// auto screen = ScreenInteractive::TerminalOutput();
+
42/// auto renderer = Renderer([] {
+
43/// return text("My interface");
+
44/// });
+
45/// auto component = CatchEvent(renderer, [&](Event event) {
+
46/// if (event == Event::Character('q')) {
+
47/// screen.ExitLoopClosure()();
+
48/// return true;
+
49/// }
+
50/// return false;
+
51/// });
+
52/// screen.Loop(component);
+
53/// ```
+
+ +
55 std::function<bool(Event event)> on_event) {
+
56 auto out = Make<CatchEventBase>(std::move(on_event));
+
57 out->Add(std::move(child));
+
58 return out;
+
59}
+
+
60
+
61/// @brief Decorate a component, using |on_event| to catch events. This function
+
62/// must returns true when the event has been handled, false otherwise.
+
63/// @param on_event The function drawing the interface.
+
64/// @ingroup component
+
65///
+
66/// ### Example
+
67///
+
68/// ```cpp
+
69/// auto screen = ScreenInteractive::TerminalOutput();
+
70/// auto renderer = Renderer([] { return text("Hello world"); });
+
71/// renderer |= CatchEvent([&](Event event) {
+
72/// if (event == Event::Character('q')) {
+
73/// screen.ExitLoopClosure()();
+
74/// return true;
+
75/// }
+
76/// return false;
+
77/// });
+
78/// screen.Loop(renderer);
+
79/// ```
+
+
80ComponentDecorator CatchEvent(std::function<bool(Event)> on_event) {
+
81 return [on_event = std::move(on_event)](Component child) {
+
82 return CatchEvent(std::move(child), [on_event = on_event](Event event) {
+
83 return on_event(std::move(event));
+
84 });
+
85 };
+
86}
+
+
87
+
88} // namespace ftxui
+ + + +
virtual bool OnEvent(Event)
Called in response to an event.
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< T > Make(Args &&... args)
Definition component.hpp:27
+
std::function< Component(Component)> ComponentDecorator
Definition component.hpp:32
+
std::shared_ptr< ComponentBase > Component
+
Component CatchEvent(Component child, std::function< bool(Event)>)
+
+
+ + + + + diff --git a/checkbox__in__frame_8cpp.html b/checkbox__in__frame_8cpp.html new file mode 100644 index 000000000..c95f58a29 --- /dev/null +++ b/checkbox__in__frame_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: checkbox_in_frame.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
checkbox_in_frame.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 16 of file checkbox_in_frame.cpp.

+ +
+
+
+
+ + + + + diff --git a/checkbox__in__frame_8cpp.js b/checkbox__in__frame_8cpp.js new file mode 100644 index 000000000..1a4884807 --- /dev/null +++ b/checkbox__in__frame_8cpp.js @@ -0,0 +1,4 @@ +var checkbox__in__frame_8cpp = +[ + [ "main", "checkbox__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/checkbox__in__frame_8cpp_source.html b/checkbox__in__frame_8cpp_source.html new file mode 100644 index 000000000..dc4962110 --- /dev/null +++ b/checkbox__in__frame_8cpp_source.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: checkbox_in_frame.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
checkbox_in_frame.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <array> // for array
+
5#include <memory> // for shared_ptr, __shared_ptr_access
+
6#include <string> // for operator+, to_string
+
7
+
8#include "ftxui/component/captured_mouse.hpp" // for ftxui
+
9#include "ftxui/component/component.hpp" // for Checkbox, Renderer, Vertical
+
10#include "ftxui/component/component_base.hpp" // for ComponentBase
+
11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
12#include "ftxui/dom/elements.hpp" // for operator|, Element, size, border, frame, vscroll_indicator, HEIGHT, LESS_THAN
+
13
+
14using namespace ftxui;
+
15
+
+
16int main() {
+
17 std::array<bool, 30> states;
+
18
+
19 auto container = Container::Vertical({});
+
20 for (int i = 0; i < 30; ++i) {
+
21 states[i] = false;
+
22 container->Add(Checkbox("Checkbox" + std::to_string(i), &states[i]));
+
23 }
+
24
+
25 auto renderer = Renderer(container, [&] {
+
26 return container->Render() | vscroll_indicator | frame |
+ +
28 });
+
29
+
30 auto screen = ScreenInteractive::FitComponent();
+
31 screen.Loop(renderer);
+
32
+
33 return 0;
+
34}
+
+ +
int main()
+ + + +
static ScreenInteractive FitComponent()
+
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
Component Vertical(Components children)
A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
+
Component Checkbox(CheckboxOption options)
Draw checkable element.
+
Decorator size(WidthOrHeight, Constraint, int value)
Apply a constraint on the size of an element.
+
Element border(Element)
Draw a border around the element.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
@ LESS_THAN
Definition elements.hpp:162
+ +
+
+ + + + + diff --git a/classes.html b/classes.html new file mode 100644 index 000000000..7313820dc --- /dev/null +++ b/classes.html @@ -0,0 +1,262 @@ + + + + + + + + +FTXUI: Class Index + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
A | B | C | D | E | F | G | I | L | M | N | P | R | S | T | U | W
+ +
+
+ + + + + diff --git a/classftxui_1_1AnimationTask.html b/classftxui_1_1AnimationTask.html new file mode 100644 index 000000000..a1b1af463 --- /dev/null +++ b/classftxui_1_1AnimationTask.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: AnimationTask Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
AnimationTask Class Reference
+
+
+ +

#include <task.hpp>

+

Detailed Description

+
+

Definition at line 12 of file task.hpp.

+

The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1AutoReset-members.html b/classftxui_1_1AutoReset-members.html new file mode 100644 index 000000000..9b1731d25 --- /dev/null +++ b/classftxui_1_1AutoReset-members.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
AutoReset< T > Member List
+
+
+ +

This is the complete list of members for AutoReset< T >, including all inherited members.

+ + + + + + + +
AutoReset(T *variable, T new_value)AutoReset< T >inline
AutoReset(const AutoReset &)=deleteAutoReset< T >
AutoReset(AutoReset &&)=deleteAutoReset< T >
operator=(const AutoReset &)=deleteAutoReset< T >
operator=(AutoReset &&)=deleteAutoReset< T >
~AutoReset()AutoReset< T >inline
+
+ + + + + diff --git a/classftxui_1_1AutoReset.html b/classftxui_1_1AutoReset.html new file mode 100644 index 000000000..dad91853f --- /dev/null +++ b/classftxui_1_1AutoReset.html @@ -0,0 +1,413 @@ + + + + + + + + +FTXUI: AutoReset< T > Class Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
AutoReset< T > Class Template Reference
+
+
+ +

Assign a value to a variable, reset its old value when going out of scope. + More...

+ +

#include <autoreset.hpp>

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

+Public Member Functions

 AutoReset (T *variable, T new_value)
 
 AutoReset (const AutoReset &)=delete
 
 AutoReset (AutoReset &&)=delete
 
AutoResetoperator= (const AutoReset &)=delete
 
AutoResetoperator= (AutoReset &&)=delete
 
 ~AutoReset ()
 
+

Detailed Description

+
template<typename T>
+class ftxui::AutoReset< T >

Assign a value to a variable, reset its old value when going out of scope.

+ +

Definition at line 13 of file autoreset.hpp.

+

Constructor & Destructor Documentation

+ +

◆ AutoReset() [1/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + +
AutoReset (T * variable,
T new_value )
+
+inline
+
+ +

Definition at line 15 of file autoreset.hpp.

+ +
+
+ +

◆ AutoReset() [2/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
AutoReset (const AutoReset< T > & )
+
+delete
+
+ +
+
+ +

◆ AutoReset() [3/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
AutoReset (AutoReset< T > && )
+
+delete
+
+ +
+
+ +

◆ ~AutoReset()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
~AutoReset ()
+
+inline
+
+ +

Definition at line 23 of file autoreset.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
AutoReset & operator= (const AutoReset< T > & )
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
AutoReset & operator= (AutoReset< T > && )
+
+delete
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1AutoReset.js b/classftxui_1_1AutoReset.js new file mode 100644 index 000000000..7f9fccfdb --- /dev/null +++ b/classftxui_1_1AutoReset.js @@ -0,0 +1,9 @@ +var classftxui_1_1AutoReset = +[ + [ "AutoReset", "classftxui_1_1AutoReset.html#ae393855d753027bcb3d4d1e1514e6ad4", null ], + [ "AutoReset", "classftxui_1_1AutoReset.html#a5280cdbbbecce1de0ae69bfdca10d7ed", null ], + [ "AutoReset", "classftxui_1_1AutoReset.html#aaef5fed3c034c065dfc218244e112a4e", null ], + [ "~AutoReset", "classftxui_1_1AutoReset.html#ad7e022164fb38a279cca7c6cf478f379", null ], + [ "operator=", "classftxui_1_1AutoReset.html#a72b3c7613f9ecfb66005b1c30a5189d4", null ], + [ "operator=", "classftxui_1_1AutoReset.html#a63fb3bea42919c7f183d4fb315451f6a", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1CapturedMouseInterface-members.html b/classftxui_1_1CapturedMouseInterface-members.html new file mode 100644 index 000000000..fa7430179 --- /dev/null +++ b/classftxui_1_1CapturedMouseInterface-members.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
CapturedMouseInterface Member List
+
+
+ +

This is the complete list of members for CapturedMouseInterface, including all inherited members.

+ + + + + + + +
CapturedMouseInterface()=defaultCapturedMouseInterface
CapturedMouseInterface(const CapturedMouseInterface &)=defaultCapturedMouseInterface
CapturedMouseInterface(CapturedMouseInterface &&)=deleteCapturedMouseInterface
operator=(const CapturedMouseInterface &)=defaultCapturedMouseInterface
operator=(CapturedMouseInterface &&)=deleteCapturedMouseInterface
~CapturedMouseInterface()=defaultCapturedMouseInterfacevirtual
+
+ + + + + diff --git a/classftxui_1_1CapturedMouseInterface.html b/classftxui_1_1CapturedMouseInterface.html new file mode 100644 index 000000000..dbfffd944 --- /dev/null +++ b/classftxui_1_1CapturedMouseInterface.html @@ -0,0 +1,388 @@ + + + + + + + + +FTXUI: CapturedMouseInterface Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
CapturedMouseInterface Class Reference
+
+
+ +

#include <captured_mouse.hpp>

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

+Public Member Functions

 CapturedMouseInterface ()=default
 
 CapturedMouseInterface (const CapturedMouseInterface &)=default
 
 CapturedMouseInterface (CapturedMouseInterface &&)=delete
 
CapturedMouseInterfaceoperator= (const CapturedMouseInterface &)=default
 
CapturedMouseInterfaceoperator= (CapturedMouseInterface &&)=delete
 
virtual ~CapturedMouseInterface ()=default
 
+

Detailed Description

+
+

Definition at line 11 of file captured_mouse.hpp.

+

Constructor & Destructor Documentation

+ +

◆ CapturedMouseInterface() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
CapturedMouseInterface ()
+
+default
+
+ +
+
+ +

◆ CapturedMouseInterface() [2/3]

+ +
+
+ + + + + +
+ + + + + + + +
CapturedMouseInterface (const CapturedMouseInterface & )
+
+default
+
+ +
+
+ +

◆ CapturedMouseInterface() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
CapturedMouseInterface (CapturedMouseInterface && )
+
+delete
+
+ +
+
+ +

◆ ~CapturedMouseInterface()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ~CapturedMouseInterface ()
+
+virtualdefault
+
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
CapturedMouseInterface & operator= (const CapturedMouseInterface & )
+
+default
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
CapturedMouseInterface & operator= (CapturedMouseInterface && )
+
+delete
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1CapturedMouseInterface.js b/classftxui_1_1CapturedMouseInterface.js new file mode 100644 index 000000000..ffe40f011 --- /dev/null +++ b/classftxui_1_1CapturedMouseInterface.js @@ -0,0 +1,9 @@ +var classftxui_1_1CapturedMouseInterface = +[ + [ "CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html#abc72c038150d1866199c28dffe7ace7b", null ], + [ "CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html#abb21b580f6362d9f5f4d25c6b8ca54cb", null ], + [ "CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html#a2f92bdd8e2c098ade383916b8e47b7e0", null ], + [ "~CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html#af35148d7f798953f8d7e8c1a0e2b2ef0", null ], + [ "operator=", "classftxui_1_1CapturedMouseInterface.html#adfa362c249253f9570e5c1cf42fc16c3", null ], + [ "operator=", "classftxui_1_1CapturedMouseInterface.html#ac349c4e493dbe8aa7c47052d91e0f411", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1ConstRef-members.html b/classftxui_1_1ConstRef-members.html new file mode 100644 index 000000000..6b0bd820a --- /dev/null +++ b/classftxui_1_1ConstRef-members.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ConstRef< T > Member List
+
+
+ +

This is the complete list of members for ConstRef< T >, including all inherited members.

+ + + + + + + + + + + + +
ConstRef()=defaultConstRef< T >
ConstRef(T t)ConstRef< T >inline
ConstRef(const T *t)ConstRef< T >inline
ConstRef(const ConstRef< T > &)=defaultConstRef< T >
ConstRef(ConstRef< T > &&) noexcept=defaultConstRef< T >
operator()() constConstRef< T >inline
operator*() constConstRef< T >inline
operator->() constConstRef< T >inline
operator=(ConstRef &&) noexcept=defaultConstRef< T >
operator=(const ConstRef< T > &)=defaultConstRef< T >
~ConstRef()=defaultConstRef< T >
+
+ + + + + diff --git a/classftxui_1_1ConstRef.html b/classftxui_1_1ConstRef.html new file mode 100644 index 000000000..c4705d8b8 --- /dev/null +++ b/classftxui_1_1ConstRef.html @@ -0,0 +1,560 @@ + + + + + + + + +FTXUI: ConstRef< T > Class Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ConstRef< T > Class Template Reference
+
+
+ +

An adapter. Own or reference an immutable object. + More...

+ +

#include <ref.hpp>

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

+Public Member Functions

 ConstRef ()=default
 
 ConstRef (T t)
 
 ConstRef (const T *t)
 
ConstRefoperator= (ConstRef &&) noexcept=default
 
 ConstRef (const ConstRef< T > &)=default
 
 ConstRef (ConstRef< T > &&) noexcept=default
 
 ~ConstRef ()=default
 
ConstRef< T > & operator= (const ConstRef< T > &)=default
 
const T & operator() () const
 
const T & operator* () const
 
const T * operator-> () const
 
+

Detailed Description

+
template<typename T>
+class ftxui::ConstRef< T >

An adapter. Own or reference an immutable object.

+ +

Definition at line 17 of file ref.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ConstRef() [1/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef ()
+
+default
+
+ +
+
+ +

◆ ConstRef() [2/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef (T t)
+
+inline
+
+ +

Definition at line 20 of file ref.hpp.

+ +
+
+ +

◆ ConstRef() [3/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef (const T * t)
+
+inline
+
+ +

Definition at line 21 of file ref.hpp.

+ +
+
+ +

◆ ConstRef() [4/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef (const ConstRef< T > & )
+
+default
+
+ +
+
+ +

◆ ConstRef() [5/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef (ConstRef< T > && )
+
+defaultnoexcept
+
+ +
+
+ +

◆ ~ConstRef()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
~ConstRef ()
+
+default
+
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef & operator= (ConstRef< T > && )
+
+defaultnoexcept
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ConstRef< T > & operator= (const ConstRef< T > & )
+
+default
+
+ +
+
+ +

◆ operator()()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T & operator() () const
+
+inline
+
+ +

Definition at line 31 of file ref.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T & operator* () const
+
+inline
+
+ +

Definition at line 32 of file ref.hpp.

+ +
+
+ +

◆ operator->()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T * operator-> () const
+
+inline
+
+ +

Definition at line 33 of file ref.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1ConstRef.js b/classftxui_1_1ConstRef.js new file mode 100644 index 000000000..da7059d79 --- /dev/null +++ b/classftxui_1_1ConstRef.js @@ -0,0 +1,14 @@ +var classftxui_1_1ConstRef = +[ + [ "ConstRef", "classftxui_1_1ConstRef.html#a2949426897a0bd427771597c7cc34f08", null ], + [ "ConstRef", "classftxui_1_1ConstRef.html#aa33f2e3c9020518540c2850c7ad2669f", null ], + [ "ConstRef", "classftxui_1_1ConstRef.html#a7dde5cd8bdbcd4c83a7b3bbddfc31bd9", null ], + [ "ConstRef", "classftxui_1_1ConstRef.html#a184e14dab2e9bca47f7d172ca7126c60", null ], + [ "ConstRef", "classftxui_1_1ConstRef.html#aa89dd79143a428e57480cda1cc7b675e", null ], + [ "~ConstRef", "classftxui_1_1ConstRef.html#a4ab7aed14f1e68d9be361d5ccfcd4e0f", null ], + [ "operator=", "classftxui_1_1ConstRef.html#ad144149e6f6f0d59610da4b28e22aef1", null ], + [ "operator=", "classftxui_1_1ConstRef.html#a834cee3b2f409135c37c188c583bce91", null ], + [ "operator()", "classftxui_1_1ConstRef.html#afdc36f6a5716b29a5d81a2dd93376d82", null ], + [ "operator*", "classftxui_1_1ConstRef.html#a241c04e3ce86e1fd5a946eb2aa8b1f22", null ], + [ "operator->", "classftxui_1_1ConstRef.html#abaade5c780b539b94de660e314cb0c90", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1ConstStringListRef-members.html b/classftxui_1_1ConstStringListRef-members.html new file mode 100644 index 000000000..7b6baf576 --- /dev/null +++ b/classftxui_1_1ConstStringListRef-members.html @@ -0,0 +1,225 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ConstStringListRef Member List
+
+
+ +

This is the complete list of members for ConstStringListRef, including all inherited members.

+ + + + + + + + + + + + + + + +
ConstStringListRef()=defaultConstStringListRef
ConstStringListRef(ConstStringListRef &&)=defaultConstStringListRef
ConstStringListRef(const ConstStringListRef &)=defaultConstStringListRef
ConstStringListRef(std::vector< std::string > value)ConstStringListRefinline
ConstStringListRef(const std::vector< std::string > *value)ConstStringListRefinline
ConstStringListRef(const std::vector< std::wstring > *value)ConstStringListRefinline
ConstStringListRef(Adapter *adapter)ConstStringListRefinline
ConstStringListRef(std::unique_ptr< AdapterType > adapter)ConstStringListRefinline
operator=(const ConstStringListRef &)=defaultConstStringListRef
operator=(ConstStringListRef &&)=defaultConstStringListRef
operator[](size_t i) constConstStringListRefinline
size() constConstStringListRefinline
Variant typedefConstStringListRef
~ConstStringListRef()=defaultConstStringListRef
+
+ + + + + diff --git a/classftxui_1_1ConstStringListRef.html b/classftxui_1_1ConstStringListRef.html new file mode 100644 index 000000000..18202933a --- /dev/null +++ b/classftxui_1_1ConstStringListRef.html @@ -0,0 +1,640 @@ + + + + + + + + +FTXUI: ConstStringListRef Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ConstStringListRef Class Reference
+
+
+ +

An adapter. Reference a list of strings. + More...

+ +

#include <ref.hpp>

+ + + + +

+Classes

class  Adapter
 
+ + + +

+Public Types

using Variant
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ConstStringListRef ()=default
 
 ~ConstStringListRef ()=default
 
ConstStringListRefoperator= (const ConstStringListRef &)=default
 
ConstStringListRefoperator= (ConstStringListRef &&)=default
 
 ConstStringListRef (ConstStringListRef &&)=default
 
 ConstStringListRef (const ConstStringListRef &)=default
 
 ConstStringListRef (std::vector< std::string > value)
 
 ConstStringListRef (const std::vector< std::string > *value)
 
 ConstStringListRef (const std::vector< std::wstring > *value)
 
 ConstStringListRef (Adapter *adapter)
 
template<typename AdapterType >
 ConstStringListRef (std::unique_ptr< AdapterType > adapter)
 
size_t size () const
 
std::string operator[] (size_t i) const
 
+

Detailed Description

+

An adapter. Reference a list of strings.

+

Supported input:

    +
  • std::vector<std::string>
  • +
  • std::vector<std::string>*
  • +
  • std::vector<std::wstring>*
  • +
  • Adapter*
  • +
  • std::unique_ptr<Adapter>
  • +
+ +

Definition at line 116 of file ref.hpp.

+

Member Typedef Documentation

+ +

◆ Variant

+ +
+
+ + + + +
using Variant
+
+Initial value:
std::variant<const std::vector<std::string>,
+
const std::vector<std::string>*,
+
const std::vector<std::wstring>*,
+
Adapter*,
+
std::unique_ptr<Adapter>
+
>
+
+

Definition at line 130 of file ref.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ ConstStringListRef() [1/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef ()
+
+default
+
+ +
+
+ +

◆ ~ConstStringListRef()

+ +
+
+ + + + + +
+ + + + + + + +
~ConstStringListRef ()
+
+default
+
+ +
+
+ +

◆ ConstStringListRef() [2/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef (ConstStringListRef && )
+
+default
+
+ +
+
+ +

◆ ConstStringListRef() [3/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef (const ConstStringListRef & )
+
+default
+
+ +
+
+ +

◆ ConstStringListRef() [4/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef (std::vector< std::string > value)
+
+inline
+
+ +

Definition at line 144 of file ref.hpp.

+ +
+
+ +

◆ ConstStringListRef() [5/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef (const std::vector< std::string > * value)
+
+inline
+
+ +

Definition at line 148 of file ref.hpp.

+ +
+
+ +

◆ ConstStringListRef() [6/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef (const std::vector< std::wstring > * value)
+
+inline
+
+ +

Definition at line 152 of file ref.hpp.

+ +
+
+ +

◆ ConstStringListRef() [7/8]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef (Adapter * adapter)
+
+inline
+
+ +

Definition at line 156 of file ref.hpp.

+ +
+
+ +

◆ ConstStringListRef() [8/8]

+ +
+
+
+template<typename AdapterType >
+ + + + + +
+ + + + + + + +
ConstStringListRef (std::unique_ptr< AdapterType > adapter)
+
+inline
+
+ +

Definition at line 161 of file ref.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef & operator= (const ConstStringListRef & )
+
+default
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringListRef & operator= (ConstStringListRef && )
+
+default
+
+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
size_t size () const
+
+inline
+
+ +

Definition at line 167 of file ref.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+ + + + + +
+ + + + + + + +
std::string operator[] (size_t i) const
+
+inline
+
+ +

Definition at line 171 of file ref.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1ConstStringListRef.js b/classftxui_1_1ConstStringListRef.js new file mode 100644 index 000000000..9bf3b9ca4 --- /dev/null +++ b/classftxui_1_1ConstStringListRef.js @@ -0,0 +1,18 @@ +var classftxui_1_1ConstStringListRef = +[ + [ "Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html", "classftxui_1_1ConstStringListRef_1_1Adapter" ], + [ "Variant", "classftxui_1_1ConstStringListRef.html#a5385a19678ef154eb13e9c8428e4d19c", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a425bc6a013bf3a539794b7a874fc722f", null ], + [ "~ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a517a6924cc5fa2fff3e6c08bc504f0fa", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a4d5f9a6302f997c4ef51b36370b84042", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#abfb65b9a4a2648e7b9f110cecefa57a4", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a143d850d76c8d8f8b4f8750c94ce1a52", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a1dea39816b5515bb126f980ed0839d63", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a8f2ca283f552f4cdd835401e3b177b4a", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#ae1af1937e833f81fe7013261ec0ee1ef", null ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html#a79bb658d6bae69e91da078978d5ded33", null ], + [ "operator=", "classftxui_1_1ConstStringListRef.html#a616528ee5b9a372e16ae2125e8dee3b7", null ], + [ "operator=", "classftxui_1_1ConstStringListRef.html#a51744ac3bfa14639955248e51313ba1f", null ], + [ "size", "classftxui_1_1ConstStringListRef.html#a259cb5a711406a8c3e5d937eb9350cca", null ], + [ "operator[]", "classftxui_1_1ConstStringListRef.html#afa13214cc014e69f7dc95b1df7c90d4e", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1ConstStringListRef_1_1Adapter-members.html b/classftxui_1_1ConstStringListRef_1_1Adapter-members.html new file mode 100644 index 000000000..2bf2ca6a7 --- /dev/null +++ b/classftxui_1_1ConstStringListRef_1_1Adapter-members.html @@ -0,0 +1,219 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ConstStringListRef::Adapter Member List
+
+
+ +

This is the complete list of members for ConstStringListRef::Adapter, including all inherited members.

+ + + + + + + + + +
Adapter()=defaultConstStringListRef::Adapter
Adapter(const Adapter &)=defaultConstStringListRef::Adapter
Adapter(Adapter &&)=defaultConstStringListRef::Adapter
operator=(const Adapter &)=defaultConstStringListRef::Adapter
operator=(Adapter &&)=defaultConstStringListRef::Adapter
operator[](size_t i) const =0ConstStringListRef::Adapterpure virtual
size() const =0ConstStringListRef::Adapterpure virtual
~Adapter()=defaultConstStringListRef::Adaptervirtual
+
+ + + + + diff --git a/classftxui_1_1ConstStringListRef_1_1Adapter.html b/classftxui_1_1ConstStringListRef_1_1Adapter.html new file mode 100644 index 000000000..18a854cc3 --- /dev/null +++ b/classftxui_1_1ConstStringListRef_1_1Adapter.html @@ -0,0 +1,442 @@ + + + + + + + + +FTXUI: ConstStringListRef::Adapter Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ConstStringListRef::Adapter Class Referenceabstract
+
+
+ +

#include <ref.hpp>

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

+Public Member Functions

 Adapter ()=default
 
 Adapter (const Adapter &)=default
 
Adapteroperator= (const Adapter &)=default
 
 Adapter (Adapter &&)=default
 
Adapteroperator= (Adapter &&)=default
 
virtual ~Adapter ()=default
 
virtual size_t size () const =0
 
virtual std::string operator[] (size_t i) const =0
 
+

Detailed Description

+
+

Definition at line 119 of file ref.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Adapter() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
Adapter ()
+
+default
+
+ +
+
+ +

◆ Adapter() [2/3]

+ +
+
+ + + + + +
+ + + + + + + +
Adapter (const Adapter & )
+
+default
+
+ +
+
+ +

◆ Adapter() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
Adapter (Adapter && )
+
+default
+
+ +
+
+ +

◆ ~Adapter()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ~Adapter ()
+
+virtualdefault
+
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
Adapter & operator= (const Adapter & )
+
+default
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
Adapter & operator= (Adapter && )
+
+default
+
+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t size () const
+
+pure virtual
+
+ +
+
+ +

◆ operator[]()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::string operator[] (size_t i) const
+
+pure virtual
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1ConstStringListRef_1_1Adapter.js b/classftxui_1_1ConstStringListRef_1_1Adapter.js new file mode 100644 index 000000000..8cc3e2d7d --- /dev/null +++ b/classftxui_1_1ConstStringListRef_1_1Adapter.js @@ -0,0 +1,11 @@ +var classftxui_1_1ConstStringListRef_1_1Adapter = +[ + [ "Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html#aeeff28a487da7a74856b51e966773246", null ], + [ "Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html#afaf35b0fc91e998543942da0b2b9a3ee", null ], + [ "Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html#a5bcc41e3dec29c90da901ab45c95774a", null ], + [ "~Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html#acc343e0991b39fbf9b66f2faf7cb7f11", null ], + [ "operator=", "classftxui_1_1ConstStringListRef_1_1Adapter.html#a99e89ddbd26ca55a6696a12a819c8dac", null ], + [ "operator=", "classftxui_1_1ConstStringListRef_1_1Adapter.html#a159afff9273b4ba2315d0fe5c0dc3629", null ], + [ "size", "classftxui_1_1ConstStringListRef_1_1Adapter.html#aa983ddaeded5756189f46428be79c631", null ], + [ "operator[]", "classftxui_1_1ConstStringListRef_1_1Adapter.html#aaec2cde2cf71a044ba3305632c7a867c", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1ConstStringRef-members.html b/classftxui_1_1ConstStringRef-members.html new file mode 100644 index 000000000..8f0e6279e --- /dev/null +++ b/classftxui_1_1ConstStringRef-members.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ConstStringRef Member List
+
+
+ +

This is the complete list of members for ConstStringRef, including all inherited members.

+ + + + + + + + + + + + + + + + +
ConstRef()=defaultConstRef< std::string >
ConstRef(std::string t)ConstRef< std::string >inline
ConstRef(const std::string *t)ConstRef< std::string >inline
ConstRef(const ConstRef< std::string > &)=defaultConstRef< std::string >
ConstRef(ConstRef< std::string > &&) noexcept=defaultConstRef< std::string >
ConstStringRef(const std::wstring *ref)ConstStringRefinline
ConstStringRef(const std::wstring ref)ConstStringRefinline
ConstStringRef(const wchar_t *ref)ConstStringRefinline
ConstStringRef(const char *ref)ConstStringRefinline
operator()() constConstRef< std::string >inline
operator*() constConstRef< std::string >inline
operator->() constConstRef< std::string >inline
operator=(ConstRef &&) noexcept=defaultConstRef< std::string >
operator=(const ConstRef< std::string > &)=defaultConstRef< std::string >
~ConstRef()=defaultConstRef< std::string >
+
+ + + + + diff --git a/classftxui_1_1ConstStringRef.html b/classftxui_1_1ConstStringRef.html new file mode 100644 index 000000000..989d1a84a --- /dev/null +++ b/classftxui_1_1ConstStringRef.html @@ -0,0 +1,445 @@ + + + + + + + + +FTXUI: ConstStringRef Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ConstStringRef Class Reference
+
+
+ +

An adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation. + More...

+ +

#include <ref.hpp>

+
+ + Inheritance diagram for ConstStringRef:
+
+
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 ConstStringRef (const std::wstring *ref)
 
 ConstStringRef (const std::wstring ref)
 
 ConstStringRef (const wchar_t *ref)
 
 ConstStringRef (const char *ref)
 
const std::string & operator() () const
 
const std::string & operator* () const
 
const std::string * operator-> () const
 
+

Detailed Description

+

An adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation.

+ +

Definition at line 94 of file ref.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ConstStringRef() [1/4]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringRef (const std::wstring * ref)
+
+inline
+
+ +

Definition at line 98 of file ref.hpp.

+ +
+
+ +

◆ ConstStringRef() [2/4]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringRef (const std::wstring ref)
+
+inline
+
+ +

Definition at line 100 of file ref.hpp.

+ +
+
+ +

◆ ConstStringRef() [3/4]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringRef (const wchar_t * ref)
+
+inline
+
+ +

Definition at line 102 of file ref.hpp.

+ +
+
+ +

◆ ConstStringRef() [4/4]

+ +
+
+ + + + + +
+ + + + + + + +
ConstStringRef (const char * ref)
+
+inline
+
+ +

Definition at line 104 of file ref.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string & operator() () const
+
+inlineinherited
+
+ +

Definition at line 31 of file ref.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string & operator* () const
+
+inlineinherited
+
+ +

Definition at line 32 of file ref.hpp.

+ +
+
+ +

◆ operator->()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string * operator-> () const
+
+inlineinherited
+
+ +

Definition at line 33 of file ref.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1ConstStringRef.js b/classftxui_1_1ConstStringRef.js new file mode 100644 index 000000000..4aab17e4c --- /dev/null +++ b/classftxui_1_1ConstStringRef.js @@ -0,0 +1,10 @@ +var classftxui_1_1ConstStringRef = +[ + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html#a9a4560dc18026ec3753e87d569fa5103", null ], + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html#a1e8c54776eada9969ebbadb21d8e689a", null ], + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html#ad8b24bac5669d8787ac2109068094938", null ], + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html#a013cd384d028ab8f67fa4cf8e9c521cd", null ], + [ "operator()", "classftxui_1_1ConstStringRef.html#afdc36f6a5716b29a5d81a2dd93376d82", null ], + [ "operator*", "classftxui_1_1ConstStringRef.html#a241c04e3ce86e1fd5a946eb2aa8b1f22", null ], + [ "operator->", "classftxui_1_1ConstStringRef.html#abaade5c780b539b94de660e314cb0c90", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1ConstStringRef__inherit__graph.map b/classftxui_1_1ConstStringRef__inherit__graph.map new file mode 100644 index 000000000..95f84b7ee --- /dev/null +++ b/classftxui_1_1ConstStringRef__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classftxui_1_1ConstStringRef__inherit__graph.md5 b/classftxui_1_1ConstStringRef__inherit__graph.md5 new file mode 100644 index 000000000..00f92296a --- /dev/null +++ b/classftxui_1_1ConstStringRef__inherit__graph.md5 @@ -0,0 +1 @@ +df39b357358903d3e24bbccb1f9d9676 \ No newline at end of file diff --git a/classftxui_1_1ConstStringRef__inherit__graph.png b/classftxui_1_1ConstStringRef__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..646721b2ac464cf1add71ad6c5d50a8e8cb58d18 GIT binary patch literal 5362 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 + + + + + + diff --git a/classftxui_1_1Image__inherit__graph.md5 b/classftxui_1_1Image__inherit__graph.md5 new file mode 100644 index 000000000..8f24b4f3d --- /dev/null +++ b/classftxui_1_1Image__inherit__graph.md5 @@ -0,0 +1 @@ +88682c826ce02ec7a9ae980ea208abae \ No newline at end of file diff --git a/classftxui_1_1Image__inherit__graph.png b/classftxui_1_1Image__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7ec920b78c0e51a5c371117c8057b074a58468 GIT binary patch literal 4588 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 literal 0 HcmV?d00001 diff --git a/classftxui_1_1NodeDecorator-members.html b/classftxui_1_1NodeDecorator-members.html new file mode 100644 index 000000000..7f0f21fba --- /dev/null +++ b/classftxui_1_1NodeDecorator-members.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
NodeDecorator Member List
+
+
+ +

This is the complete list of members for NodeDecorator, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
box_Nodeprotected
Check(Status *status)Nodevirtual
children_Nodeprotected
ComputeRequirement() overrideNodeDecoratorvirtual
GetSelectedContent(Selection &selection)Nodevirtual
Node()Node
Node(Elements children)Nodeexplicit
Node(const Node &)=deleteNode
Node(const Node &&)=deleteNode
NodeDecorator(Element child)NodeDecoratorinlineexplicit
operator=(const Node &)=deleteNode
operator=(const Node &&)=deleteNode
Render(Screen &screen)Nodevirtual
requirement()Nodeinline
requirement_Nodeprotected
Select(Selection &selection)Nodevirtual
SetBox(Box box) overrideNodeDecoratorvirtual
~Node()Nodevirtual
+
+ + + + + diff --git a/classftxui_1_1NodeDecorator.html b/classftxui_1_1NodeDecorator.html new file mode 100644 index 000000000..376e6a255 --- /dev/null +++ b/classftxui_1_1NodeDecorator.html @@ -0,0 +1,570 @@ + + + + + + + + +FTXUI: NodeDecorator Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
NodeDecorator Class Reference
+
+
+ +

#include <node_decorator.hpp>

+
+ + Inheritance diagram for NodeDecorator:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NodeDecorator (Element child)
 
void ComputeRequirement () override
 Compute how much space an element needs.
 
void SetBox (Box box) override
 Assign a position and a dimension to an element for drawing.
 
Requirement requirement ()
 
virtual void Select (Selection &selection)
 Compute the selection of an element.
 
virtual void Render (Screen &screen)
 Display an element on a ftxui::Screen.
 
virtual std::string GetSelectedContent (Selection &selection)
 
virtual void Check (Status *status)
 
+ + + + + + + +

+Protected Attributes

Elements children_
 
Requirement requirement_
 
Box box_
 
+

Detailed Description

+
+

Definition at line 16 of file node_decorator.hpp.

+

Constructor & Destructor Documentation

+ +

◆ NodeDecorator()

+ +
+
+ + + + + +
+ + + + + + + +
NodeDecorator (Element child)
+
+inlineexplicit
+
+ +

Definition at line 18 of file node_decorator.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ ComputeRequirement()

+ +
+
+ + + + + +
+ + + + + + + +
void ComputeRequirement ()
+
+overridevirtual
+
+ +

Compute how much space an element needs.

+ +

Reimplemented from Node.

+ +

Definition at line 12 of file node_decorator.cpp.

+ +
+
+ +

◆ SetBox()

+ +
+
+ + + + + +
+ + + + + + + +
void SetBox (Box box)
+
+overridevirtual
+
+ +

Assign a position and a dimension to an element for drawing.

+ +

Reimplemented from Node.

+ +

Definition at line 17 of file node_decorator.cpp.

+ +
+
+ +

◆ requirement()

+ +
+
+ + + + + +
+ + + + + + + +
Requirement requirement ()
+
+inlineinherited
+
+ +

Definition at line 52 of file node.hpp.

+ +
+
+ +

◆ Select()

+ +
+
+ + + + + +
+ + + + + + + +
void Select (Selection & selection)
+
+virtualinherited
+
+ +

Compute the selection of an element.

+ +

Definition at line 46 of file node.cpp.

+ +
+
+ +

◆ Render()

+ +
+
+ + + + + +
+ + + + + + + +
void Render (Screen & screen)
+
+virtualinherited
+
+ +

Display an element on a ftxui::Screen.

+ +

Definition at line 59 of file node.cpp.

+ +
+
+ +

◆ GetSelectedContent()

+ +
+
+ + + + + +
+ + + + + + + +
std::string GetSelectedContent (Selection & selection)
+
+virtualinherited
+
+ +

Definition at line 72 of file node.cpp.

+ +
+
+ +

◆ Check()

+ +
+
+ + + + + +
+ + + + + + + +
void Check (Status * status)
+
+virtualinherited
+
+ +

Definition at line 65 of file node.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ children_

+ +
+
+ + + + + +
+ + + + +
Elements children_
+
+protectedinherited
+
+ +

Definition at line 79 of file node.hpp.

+ +
+
+ +

◆ requirement_

+ +
+
+ + + + + +
+ + + + +
Requirement requirement_
+
+protectedinherited
+
+ +

Definition at line 80 of file node.hpp.

+ +
+
+ +

◆ box_

+ +
+
+ + + + + +
+ + + + +
Box box_
+
+protectedinherited
+
+ +

Definition at line 81 of file node.hpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + + diff --git a/classftxui_1_1NodeDecorator.js b/classftxui_1_1NodeDecorator.js new file mode 100644 index 000000000..909b1c847 --- /dev/null +++ b/classftxui_1_1NodeDecorator.js @@ -0,0 +1,14 @@ +var classftxui_1_1NodeDecorator = +[ + [ "NodeDecorator", "classftxui_1_1NodeDecorator.html#a7e9d74ba5d480d87e8bfcaf2df66fbbe", null ], + [ "ComputeRequirement", "classftxui_1_1NodeDecorator.html#ac68a91492bfe8a6dd7ea2b3f7f295720", null ], + [ "SetBox", "classftxui_1_1NodeDecorator.html#aafcc9bd6538ccb37babf4d56c4c1c238", null ], + [ "requirement", "classftxui_1_1NodeDecorator.html#a39a263e8c8786dc62fcb4d734aad7fe6", null ], + [ "Select", "classftxui_1_1NodeDecorator.html#a05352f5a353f1e86630a978060e77305", null ], + [ "Render", "classftxui_1_1NodeDecorator.html#a7e286fe14880614686ceeec84a9a9702", null ], + [ "GetSelectedContent", "classftxui_1_1NodeDecorator.html#a2c5cebe05557529299e649867b499680", null ], + [ "Check", "classftxui_1_1NodeDecorator.html#a5b71d891a102197f2856f53702425581", null ], + [ "children_", "classftxui_1_1NodeDecorator.html#a2aeb117dade3254694355ab90e9fc566", null ], + [ "requirement_", "classftxui_1_1NodeDecorator.html#a3530d99687053ce0d0006b9dee9a1ca7", null ], + [ "box_", "classftxui_1_1NodeDecorator.html#aa7e7d30102945911407723a5cbcdfabc", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1NodeDecorator__inherit__graph.map b/classftxui_1_1NodeDecorator__inherit__graph.map new file mode 100644 index 000000000..f3e6afcc8 --- /dev/null +++ b/classftxui_1_1NodeDecorator__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classftxui_1_1NodeDecorator__inherit__graph.md5 b/classftxui_1_1NodeDecorator__inherit__graph.md5 new file mode 100644 index 000000000..ebf65f9ab --- /dev/null +++ b/classftxui_1_1NodeDecorator__inherit__graph.md5 @@ -0,0 +1 @@ +4992816a7a0349a99d3dec8c40c8c80b \ No newline at end of file diff --git a/classftxui_1_1NodeDecorator__inherit__graph.png b/classftxui_1_1NodeDecorator__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..ff86307224db8f2989b7d34bede34746a3d860c8 GIT binary patch literal 3353 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 + + + + diff --git a/classftxui_1_1Node__inherit__graph.md5 b/classftxui_1_1Node__inherit__graph.md5 new file mode 100644 index 000000000..5dd4fb017 --- /dev/null +++ b/classftxui_1_1Node__inherit__graph.md5 @@ -0,0 +1 @@ +f9f15f9ccc74258a638840b395639bea \ No newline at end of file diff --git a/classftxui_1_1Node__inherit__graph.png b/classftxui_1_1Node__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..11eae96c1cf533d1d6f6af3e84939211f90bfef3 GIT binary patch literal 3336 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 + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ReceiverImpl< T > Member List
+
+
+ +

This is the complete list of members for ReceiverImpl< T >, including all inherited members.

+ + + + + + + +
HasPending()ReceiverImpl< T >inline
HasQuitted()ReceiverImpl< T >inline
MakeSender()ReceiverImpl< T >inline
Receive(T *t)ReceiverImpl< T >inline
ReceiveNonBlocking(T *t)ReceiverImpl< T >inline
ReceiverImpl()=defaultReceiverImpl< T >
+
+ + + + + diff --git a/classftxui_1_1ReceiverImpl.html b/classftxui_1_1ReceiverImpl.html new file mode 100644 index 000000000..6955111d1 --- /dev/null +++ b/classftxui_1_1ReceiverImpl.html @@ -0,0 +1,411 @@ + + + + + + + + +FTXUI: ReceiverImpl< T > Class Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ReceiverImpl< T > Class Template Reference
+
+
+ +

#include <receiver.hpp>

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

+Public Member Functions

Sender< T > MakeSender ()
 
 ReceiverImpl ()=default
 
bool Receive (T *t)
 
bool ReceiveNonBlocking (T *t)
 
bool HasPending ()
 
bool HasQuitted ()
 
+

Detailed Description

+
template<class T>
+class ftxui::ReceiverImpl< T >
+

Definition at line 81 of file receiver.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ReceiverImpl()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
ReceiverImpl ()
+
+default
+
+ +
+
+

Member Function Documentation

+ +

◆ MakeSender()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
Sender< T > MakeSender ()
+
+inline
+
+ +

Definition at line 83 of file receiver.hpp.

+ +
+
+ +

◆ Receive()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
bool Receive (T * t)
+
+inline
+
+ +

Definition at line 90 of file receiver.hpp.

+ +
+
+ +

◆ ReceiveNonBlocking()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
bool ReceiveNonBlocking (T * t)
+
+inline
+
+ +

Definition at line 106 of file receiver.hpp.

+ +
+
+ +

◆ HasPending()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
bool HasPending ()
+
+inline
+
+ +

Definition at line 116 of file receiver.hpp.

+ +
+
+ +

◆ HasQuitted()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
bool HasQuitted ()
+
+inline
+
+ +

Definition at line 121 of file receiver.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1ReceiverImpl.js b/classftxui_1_1ReceiverImpl.js new file mode 100644 index 000000000..bce5496af --- /dev/null +++ b/classftxui_1_1ReceiverImpl.js @@ -0,0 +1,10 @@ +var classftxui_1_1ReceiverImpl = +[ + [ "ReceiverImpl", "classftxui_1_1ReceiverImpl.html#a06cce9969ba99f4e42c24dbce9662a3a", null ], + [ "MakeSender", "classftxui_1_1ReceiverImpl.html#aee8560dccb6ab3df27f0a0fc6a1f8442", null ], + [ "Receive", "classftxui_1_1ReceiverImpl.html#a2d2bc6945a964ecb739002cc58291bee", null ], + [ "ReceiveNonBlocking", "classftxui_1_1ReceiverImpl.html#a3afe67ce4b9296787d4133866e0b2b00", null ], + [ "HasPending", "classftxui_1_1ReceiverImpl.html#a49f2a9285b485f25694f48732b0c2554", null ], + [ "HasQuitted", "classftxui_1_1ReceiverImpl.html#a0f10869cb1cad212e8885deac6960a41", null ], + [ "SenderImpl< T >", "classftxui_1_1ReceiverImpl.html#ab0e3e6a7bfedc2416a0990b09c46d8bb", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1Ref-members.html b/classftxui_1_1Ref-members.html new file mode 100644 index 000000000..8acb85191 --- /dev/null +++ b/classftxui_1_1Ref-members.html @@ -0,0 +1,225 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Ref< T > Member List
+
+
+ +

This is the complete list of members for Ref< T >, including all inherited members.

+ + + + + + + + + + + + + + + +
operator()()Ref< T >inline
operator()() constRef< T >inline
operator*()Ref< T >inline
operator*() constRef< T >inline
operator->()Ref< T >inline
operator->() constRef< T >inline
operator=(Ref &&) noexcept=defaultRef< T >
operator=(const Ref< T > &)=defaultRef< T >
Ref()=defaultRef< T >
Ref(T t)Ref< T >inline
Ref(T *t)Ref< T >inline
Ref(const Ref< T > &)=defaultRef< T >
Ref(Ref< T > &&) noexcept=defaultRef< T >
~Ref()=defaultRef< T >
+
+ + + + + diff --git a/classftxui_1_1Ref.html b/classftxui_1_1Ref.html new file mode 100644 index 000000000..ef07c809b --- /dev/null +++ b/classftxui_1_1Ref.html @@ -0,0 +1,653 @@ + + + + + + + + +FTXUI: Ref< T > Class Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Ref< T > Class Template Reference
+
+
+ +

An adapter. Own or reference an mutable object. + More...

+ +

#include <ref.hpp>

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

+Public Member Functions

 Ref ()=default
 
 Ref (T t)
 
 Ref (T *t)
 
 ~Ref ()=default
 
Refoperator= (Ref &&) noexcept=default
 
 Ref (const Ref< T > &)=default
 
 Ref (Ref< T > &&) noexcept=default
 
Ref< T > & operator= (const Ref< T > &)=default
 
T & operator() ()
 
T & operator* ()
 
T * operator-> ()
 
const T & operator() () const
 
const T & operator* () const
 
const T * operator-> () const
 
+

Detailed Description

+
template<typename T>
+class ftxui::Ref< T >

An adapter. Own or reference an mutable object.

+ +

Definition at line 46 of file ref.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Ref() [1/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref ()
+
+default
+
+ +
+
+ +

◆ Ref() [2/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref (T t)
+
+inline
+
+ +

Definition at line 49 of file ref.hpp.

+ +
+
+ +

◆ Ref() [3/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref (T * t)
+
+inline
+
+ +

Definition at line 50 of file ref.hpp.

+ +
+
+ +

◆ ~Ref()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
~Ref ()
+
+default
+
+ +
+
+ +

◆ Ref() [4/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref (const Ref< T > & )
+
+default
+
+ +
+
+ +

◆ Ref() [5/5]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref (Ref< T > && )
+
+defaultnoexcept
+
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref & operator= (Ref< T > && )
+
+defaultnoexcept
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Ref< T > & operator= (const Ref< T > & )
+
+default
+
+ +
+
+ +

◆ operator()() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T & operator() ()
+
+inline
+
+ +

Definition at line 60 of file ref.hpp.

+ +
+
+ +

◆ operator*() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T & operator* ()
+
+inline
+
+ +

Definition at line 61 of file ref.hpp.

+ +
+
+ +

◆ operator->() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T * operator-> ()
+
+inline
+
+ +

Definition at line 62 of file ref.hpp.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T & operator() () const
+
+inline
+
+ +

Definition at line 63 of file ref.hpp.

+ +
+
+ +

◆ operator*() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T & operator* () const
+
+inline
+
+ +

Definition at line 64 of file ref.hpp.

+ +
+
+ +

◆ operator->() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T * operator-> () const
+
+inline
+
+ +

Definition at line 65 of file ref.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1Ref.js b/classftxui_1_1Ref.js new file mode 100644 index 000000000..510e4ebc9 --- /dev/null +++ b/classftxui_1_1Ref.js @@ -0,0 +1,17 @@ +var classftxui_1_1Ref = +[ + [ "Ref", "classftxui_1_1Ref.html#a6170df9accd9f47736e97385233017b3", null ], + [ "Ref", "classftxui_1_1Ref.html#ab19bb3d5a2b0867c790f00f339915c56", null ], + [ "Ref", "classftxui_1_1Ref.html#ae16b183b63cb1d7ef3d11ff47c158a8b", null ], + [ "~Ref", "classftxui_1_1Ref.html#a3950a05eee649724ae206d5dd33355f5", null ], + [ "Ref", "classftxui_1_1Ref.html#aec110a549f4e384fb89896bd013cc8fe", null ], + [ "Ref", "classftxui_1_1Ref.html#af37c209213693451d05f4b089402ee07", null ], + [ "operator=", "classftxui_1_1Ref.html#abd99a8175d3ef482e70c239aef26322a", null ], + [ "operator=", "classftxui_1_1Ref.html#a2219840465715bbca4b1467132c686a5", null ], + [ "operator()", "classftxui_1_1Ref.html#a625855a4f62948f4f1ad06354be9ca09", null ], + [ "operator*", "classftxui_1_1Ref.html#a3f534efce0b043d603eb8f5653268e7d", null ], + [ "operator->", "classftxui_1_1Ref.html#a4442b1b9eab40e7939e1e01cdedcb7ae", null ], + [ "operator()", "classftxui_1_1Ref.html#afdc36f6a5716b29a5d81a2dd93376d82", null ], + [ "operator*", "classftxui_1_1Ref.html#a241c04e3ce86e1fd5a946eb2aa8b1f22", null ], + [ "operator->", "classftxui_1_1Ref.html#abaade5c780b539b94de660e314cb0c90", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1ScreenInteractive_1_1Private-members.html b/classftxui_1_1ScreenInteractive_1_1Private-members.html new file mode 100644 index 000000000..b7d84af0e --- /dev/null +++ b/classftxui_1_1ScreenInteractive_1_1Private-members.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ScreenInteractive::Private Member List
+
+
+ +

This is the complete list of members for ScreenInteractive::Private, including all inherited members.

+ + +
Signal(ScreenInteractive &s, int signal)ScreenInteractive::Privateinlinestatic
+
+ + + + + diff --git a/classftxui_1_1ScreenInteractive_1_1Private.html b/classftxui_1_1ScreenInteractive_1_1Private.html new file mode 100644 index 000000000..0486b1663 --- /dev/null +++ b/classftxui_1_1ScreenInteractive_1_1Private.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: ScreenInteractive::Private Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ScreenInteractive::Private Class Reference
+
+
+ +

#include <screen_interactive.hpp>

+ + + + +

+Static Public Member Functions

static void Signal (ScreenInteractive &s, int signal)
 
+

Detailed Description

+
+

Definition at line 172 of file screen_interactive.hpp.

+

Member Function Documentation

+ +

◆ Signal()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
static void Signal (ScreenInteractive & s,
int signal )
+
+inlinestatic
+
+ +

Definition at line 174 of file screen_interactive.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1ScreenInteractive__inherit__graph.map b/classftxui_1_1ScreenInteractive__inherit__graph.map new file mode 100644 index 000000000..1c7abfd70 --- /dev/null +++ b/classftxui_1_1ScreenInteractive__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/classftxui_1_1ScreenInteractive__inherit__graph.md5 b/classftxui_1_1ScreenInteractive__inherit__graph.md5 new file mode 100644 index 000000000..6027dfca0 --- /dev/null +++ b/classftxui_1_1ScreenInteractive__inherit__graph.md5 @@ -0,0 +1 @@ +31d882d5dc2362a690930697d5896f5e \ No newline at end of file diff --git a/classftxui_1_1ScreenInteractive__inherit__graph.png b/classftxui_1_1ScreenInteractive__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..70f3ca0d9a3766e13102c2563bbfab097345cfbb GIT binary patch literal 4685 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 Ib?fK<1$xs>(f|Me literal 0 HcmV?d00001 diff --git a/classftxui_1_1Screen__inherit__graph.map b/classftxui_1_1Screen__inherit__graph.map new file mode 100644 index 000000000..4ddc326da --- /dev/null +++ b/classftxui_1_1Screen__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/classftxui_1_1Screen__inherit__graph.md5 b/classftxui_1_1Screen__inherit__graph.md5 new file mode 100644 index 000000000..40e826743 --- /dev/null +++ b/classftxui_1_1Screen__inherit__graph.md5 @@ -0,0 +1 @@ +31d924148d9a13b84df370a104e60f0f \ No newline at end of file diff --git a/classftxui_1_1Screen__inherit__graph.png b/classftxui_1_1Screen__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..566fd877c59696d2e593a720cd466680a2434cf9 GIT binary patch literal 4644 zcmcIoXH-*7w?1^~L{Vz!{Y6RyL8^3ufQW#E-lZ2M5b3=ML0TXn9Yj!y(mM!(7y;>G zA>a!lpfm-f-{Jdl*H_l}@7|T}F_7VhUu>=X zBcLV1&`hx#5*E(Nk!@}Mi}r5hs7D@uRyzxoFCu?kT3L>jo#mf0>t1YvhWgph>4v&slQ*d z+_9k@+b}FvPF6P(P3VtVKuFuS=7MGVDe|&g>`8!3f&T)_-r48@R9G1yH$z4c~zIJUiA5i9~@ zV@oX7i04yL;bM`r>8F+Ki0BIC?pW2(Ou%9(A#v+A=B%tNT?2#H+~G%&Wn}`dzm*Uk zrlt~iX73h`_4(erSE3xe%LE(y(jG_+!4>@9Ai5l0)2tG^Rfk^cYihm}&&bYZfhz}1 zep4tdDf#|TvWthWq_*oIDI_H1>60e|h=R;aO^rA@UcQod@ASvlc1%zxH#TB-xGEc6 zT>M9DObmHaYHDHi?~NWV>#qfsa}gwD;uXru%46N(;kx6|Gi`!M^;9lp-;FtC0zxO1 zOG{guGASv^4uSXGSv6&5W`>{|>-M<$c{|re3&Qro!h-yRZ2^c!QISI^gIc?E3}It! zosuW#Q&Lq$BOxK-)mE+d-PpNG5?lR?K3@S%Gf{DKaCPb#jDv%gg@vW#aJ~I$RTU}Z zzcB}Qc6LswnW#$uo7dTx>wFQkv+A^tmVlq^GPxuB za_^j9+8_L0X$e17IXXUuadBaXGKBj^M@JDVm`%Hmy}95VDSJ|FEN7xxG-WT5NHk_v zRaJFza^jJYV2GxqSJ%}&7smjnxqJ6+`PIr{^oS}9qGIIgpYM$(fxNxF<%52U1nvHC zV=I*N;VJ;ZY0u1dg({Mgl0r~t(9Wx=XLq*NYP+Knq&z=JflAk?m_Xrf8W?Cm5e>8HhcK~y%Ax*sHjN$@8G?4Eq{NRvz;gguJb4>!ymFpdN(9%m-hBVlAW%& z_=|Mp1(Po=EuH1n+?q8;$G>N{Tr-vxg`TE{s7+>{ex2=jv@| zZyM@3-}AQ;;&5X7RjlsSM>ywOZM=XiM_f~o$hb&-_>=>g!=OG9_!5tN6{4k%hOC7C za-uIFvGWRiLb8D0KOE|NYo0ym{4y$HndHs%fWY;?`Rpwebyk^L^bN#E1a3Z+LXkdK zsn8@(pTcx?-ba&LJrM#ZL@^tb20`a1)02@%Vn!F-5q%B}BuH@^Ka;#txfU^UNX>l8 zlwBDaOI0Zsq5EMgR}l8CDU@%zQe5eJy{$^mhVlz4;+6kJ*|>iN-T&XOe&2o207-~~ zNaN=vyls0VJ8+7Xac?b0Kw-++I9${170xF4qrKtQ*4E;?qXlo{p8jFm{B>JKT}>^r zq}hitUNQsJp<}A@6Mwqb=orM7^o0xm7V^LX_ptJFfMX%2$9wPBcBJx#!8;)(Ma$Q> zZhTCk)6n!uR1~R`i;DvQ?#-PY3g~Emxv=Hll3wZ3JC`eAr^kV=GVFx=<}bzh<>XjS zPEMro`YrdD8A3usi^p8;uIAmcvZ8CWpzpL{M5gCfkAB2VpmCX**K23`UcWAfyObWI zs}NZ@+^eA>>d?d8Myqd2OR;a>=o0opC-L#~lYMDJlfjDb)Y|Ck>RvZ6pr5X`j88~7 zxA^VbD*}NQiA1)9>?4}IK2b6D zI5ILKA}ZSZ_4Pv-GxOy7uZd{|Q+!lZ)ca~nx#zasT=w?%Qmk}fr?GlF^Y81*%E$pd zV^+$unYg$Z=GEBT-QC64-mmzZw+CDnK&rdBiC*=YO9r4%$A%z>>h3Qa0#+rvffIK_ zcN751ny#^?g+6o!%k6FuM?n+R)YM>>^8Ydn4W^tz{~_y89EkdQ5@ zQ9EOqMBZ~x+!TePh5-1y{P6_9Fgf5wKnGw71Oa4?z94KEkzfI@mGk~APgv>cx$flb z-1t*dr0jMUHS{|(GJiI>lGKej?T_o zw{Au9>tF%Eae$MKwW!txV_Rc7-1g&TNGQT_5DQMOb(UWSVpR!|XW&*zrsue7_qoLn z2nrwowEX;}(=#$G;T!JY$l@5ev4h;YI+o{_4AO-Djon*uo{rNhStw}6yqQ-BWr z(dgLj?r_Bsy+gl0a)S?of(9tb$wlB=e#@hUf#8=dg6Kaq*T3~r9Kk7G%!{#{-~SxL zX&GQz!R_sB=Jrt3GIqQ7!n~iX^$R+9tVTAn+&KR#ULW+y+gMfwX`|g$?vQ4)cJ8I_ zJEAP)MwKSbnH|T|^1rXlW9`NQ{R;$Q&hw({ZyltLKj38JzS3y7z`HF>%?t66NQ&kU zj``s&c%~e<1SXZ`qZhV_<4`RBH5rN9Hv~GMsNLH8vM%)B#Bv9F{qUaVn20D6nGWG` zWPf`b&KK|bD54c|&$If`JP*Z+rB(3HBTyOwBp8yqA74+}IAz7YTIXK|NNjUL;z;t_ z`zntb6}4owje(Mn*=Cu!+RG_xtIh&BZTrV5FCll?UCQkUZs_q?~os*8cg%+gB=P+PAN(X*wNmZrlCxfnpKjOb@@2++u9AaYB2g6nI<2g{ zeAqn*Reuwk;oMpaWPNe*k=hZX30YtO#IG|TmfsKi+#bldzrSxb=ov<5@8IB&N8td! zV`hdM{!g^NO?5Tsw`*BN#b59~bzS_ud-tRq2k5@<1Yv@LfP(qDIF!L>_C=^5WE+AoZT>NOUIP7LNCb zEHB)rBbDyqlO8@y%g&CUoHY5pGC{SzzMiA>0MT{4Ye_)tZ4l4Y;nC62{K`rqup}lX zCJ>~Z%o^D|7eosh+&3_A5DQl{0{8*|;m^TA2~fBRiHW@_9CG4o9$q2+2{6pz&t_@A zubLPP#%{hRQXaEeH0goBm&4+-^WUSj=cA82T9>Uo;MM@2o|k# z8D=+%mQ<~iz1f72`8@3Pxdq0{%bU{ltf&ZbZ)A^+jSXe5UIS z3RUtA3snqEO-+Y!_^V#*Kyi-)OS7{6rMt@(K}D6(+$;wKbP}*D2??$P z$!tzC?4qiwg>T=!6_J(AQdd`h<9YRyEEgxIK4o;|NP+T=ix)38fS7;_5Fj96FfARO z+j@FQg0>!nRL*PZO`fyku6aL(z%EvS)*OqaWf75*der1Y^qx^d5tv{wH8(dmO-&OE z3q3#rc_(~7hu{0QKi~iJcj`*(azVXEfyG}JU}HaK>sO}k*b0_V zg)eq>b!Dcd*$27=H<$?V4(h9@sC;Pg0I1U;C8`o%&5)lFA z&B(FR;U*|3C~#=KbaG^Rk=Zl9)00rUwucLuWn zP+Q;zL%w1BmAfN$#|JwpP3`3m+;e-`!Jb%bLtup=+tdLYb1AX3rzfi&yE)A|5*ewf zjOpp=o4r)rJUl!QSP+!khnLQ@LI%0y(3>}Jdg|=^nBZ{w@bK`*s^MH0g!JoLM!*#`$mKJj^q_SsR*zv(aAERpj=hpkc zr$z!GK?SJoSmX+OusuhCKE`sZG5}|n%r09sW^OrZSuZ#EdT?+QC$RF&Anz)5E6H># z5H7rzFVh!>pFF5v-~4aX+8^^`zt#|iLjA-?qnVmchN)eP^}%ku&c~fSRsqjea-dU2 Yozc0$k4AMO;IR*c)H2kpQMZfwA5*KXdjJ3c literal 0 HcmV?d00001 diff --git a/classftxui_1_1SenderImpl-members.html b/classftxui_1_1SenderImpl-members.html new file mode 100644 index 000000000..41de490f7 --- /dev/null +++ b/classftxui_1_1SenderImpl-members.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
SenderImpl< T > Member List
+
+
+ +

This is the complete list of members for SenderImpl< T >, including all inherited members.

+ + + + + + + + +
Clone()SenderImpl< T >inline
operator=(const SenderImpl &)=deleteSenderImpl< T >
operator=(SenderImpl &&)=deleteSenderImpl< T >
Send(T t)SenderImpl< T >inline
SenderImpl(const SenderImpl &)=deleteSenderImpl< T >
SenderImpl(SenderImpl &&)=deleteSenderImpl< T >
~SenderImpl()SenderImpl< T >inline
+
+ + + + + diff --git a/classftxui_1_1SenderImpl.html b/classftxui_1_1SenderImpl.html new file mode 100644 index 000000000..9fbe3f983 --- /dev/null +++ b/classftxui_1_1SenderImpl.html @@ -0,0 +1,436 @@ + + + + + + + + +FTXUI: SenderImpl< T > Class Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
SenderImpl< T > Class Template Reference
+
+
+ +

#include <receiver.hpp>

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

+Public Member Functions

 SenderImpl (const SenderImpl &)=delete
 
 SenderImpl (SenderImpl &&)=delete
 
SenderImploperator= (const SenderImpl &)=delete
 
SenderImploperator= (SenderImpl &&)=delete
 
void Send (T t)
 
 ~SenderImpl ()
 
Sender< T > Clone ()
 
+

Detailed Description

+
template<class T>
+class ftxui::SenderImpl< T >
+

Definition at line 63 of file receiver.hpp.

+

Constructor & Destructor Documentation

+ +

◆ SenderImpl() [1/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
SenderImpl (const SenderImpl< T > & )
+
+delete
+
+ +
+
+ +

◆ SenderImpl() [2/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
SenderImpl (SenderImpl< T > && )
+
+delete
+
+ +
+
+ +

◆ ~SenderImpl()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
~SenderImpl ()
+
+inline
+
+ +

Definition at line 70 of file receiver.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
SenderImpl & operator= (const SenderImpl< T > & )
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
SenderImpl & operator= (SenderImpl< T > && )
+
+delete
+
+ +
+
+ +

◆ Send()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
void Send (T t)
+
+inline
+
+ +

Definition at line 69 of file receiver.hpp.

+ +
+
+ +

◆ Clone()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
Sender< T > Clone ()
+
+inline
+
+ +

Definition at line 72 of file receiver.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1SenderImpl.js b/classftxui_1_1SenderImpl.js new file mode 100644 index 000000000..01e69f443 --- /dev/null +++ b/classftxui_1_1SenderImpl.js @@ -0,0 +1,11 @@ +var classftxui_1_1SenderImpl = +[ + [ "SenderImpl", "classftxui_1_1SenderImpl.html#a7770521e8bff392402a1539bf4eb8ff4", null ], + [ "SenderImpl", "classftxui_1_1SenderImpl.html#a61b3d68c26b829848661ca875b0cdb13", null ], + [ "~SenderImpl", "classftxui_1_1SenderImpl.html#ac23f2c8d2bf8c021dcce059afd2c3405", null ], + [ "operator=", "classftxui_1_1SenderImpl.html#a571b0715efdefbfbc80bebc4ba3f16c3", null ], + [ "operator=", "classftxui_1_1SenderImpl.html#aec884eaa70eed221721d0ae963974927", null ], + [ "Send", "classftxui_1_1SenderImpl.html#af3a961fb9b4025671b6122a392a5bc3f", null ], + [ "Clone", "classftxui_1_1SenderImpl.html#a575817a7bf1afd8bc9af4973e4f38481", null ], + [ "ReceiverImpl< T >", "classftxui_1_1SenderImpl.html#a45b555ffa5b4f56dc978ab2c0e8e42ca", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1StringRef-members.html b/classftxui_1_1StringRef-members.html new file mode 100644 index 000000000..2e19992b5 --- /dev/null +++ b/classftxui_1_1StringRef-members.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
StringRef Member List
+
+
+ +

This is the complete list of members for StringRef, including all inherited members.

+ + + + + + + + + + + + + + + + + +
operator()()Ref< std::string >inline
operator()() constRef< std::string >inline
operator*()Ref< std::string >inline
operator*() constRef< std::string >inline
operator->()Ref< std::string >inline
operator->() constRef< std::string >inline
operator=(Ref &&) noexcept=defaultRef< std::string >
operator=(const Ref< std::string > &)=defaultRef< std::string >
Ref()=defaultRef< std::string >
Ref(std::string t)Ref< std::string >inline
Ref(std::string *t)Ref< std::string >inline
Ref(const Ref< std::string > &)=defaultRef< std::string >
Ref(Ref< std::string > &&) noexcept=defaultRef< std::string >
StringRef(const wchar_t *ref)StringRefinline
StringRef(const char *ref)StringRefinline
~Ref()=defaultRef< std::string >
+
+ + + + + diff --git a/classftxui_1_1StringRef.html b/classftxui_1_1StringRef.html new file mode 100644 index 000000000..1fe02228b --- /dev/null +++ b/classftxui_1_1StringRef.html @@ -0,0 +1,474 @@ + + + + + + + + +FTXUI: StringRef Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
StringRef Class Reference
+
+
+ +

An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation. + More...

+ +

#include <ref.hpp>

+
+ + Inheritance diagram for StringRef:
+
+
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 StringRef (const wchar_t *ref)
 
 StringRef (const char *ref)
 
std::string & operator() ()
 
const std::string & operator() () const
 
std::string & operator* ()
 
const std::string & operator* () const
 
std::string * operator-> ()
 
const std::string * operator-> () const
 
+

Detailed Description

+

An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation.

+ +

Definition at line 82 of file ref.hpp.

+

Constructor & Destructor Documentation

+ +

◆ StringRef() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
StringRef (const wchar_t * ref)
+
+inline
+
+ +

Definition at line 86 of file ref.hpp.

+ +
+
+ +

◆ StringRef() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
StringRef (const char * ref)
+
+inline
+
+ +

Definition at line 88 of file ref.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator()() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
std::string & operator() ()
+
+inlineinherited
+
+ +

Definition at line 60 of file ref.hpp.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const std::string & operator() () const
+
+inlineinherited
+
+ +

Definition at line 63 of file ref.hpp.

+ +
+
+ +

◆ operator*() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
std::string & operator* ()
+
+inlineinherited
+
+ +

Definition at line 61 of file ref.hpp.

+ +
+
+ +

◆ operator*() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const std::string & operator* () const
+
+inlineinherited
+
+ +

Definition at line 64 of file ref.hpp.

+ +
+
+ +

◆ operator->() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
std::string * operator-> ()
+
+inlineinherited
+
+ +

Definition at line 62 of file ref.hpp.

+ +
+
+ +

◆ operator->() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const std::string * operator-> () const
+
+inlineinherited
+
+ +

Definition at line 65 of file ref.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1StringRef.js b/classftxui_1_1StringRef.js new file mode 100644 index 000000000..dc7131ad8 --- /dev/null +++ b/classftxui_1_1StringRef.js @@ -0,0 +1,11 @@ +var classftxui_1_1StringRef = +[ + [ "StringRef", "classftxui_1_1StringRef.html#ad3cfa31525e075cbd5f50c2476e665ce", null ], + [ "StringRef", "classftxui_1_1StringRef.html#a9133717e5c00b480a4a4a120ba7fb886", null ], + [ "operator()", "classftxui_1_1StringRef.html#a625855a4f62948f4f1ad06354be9ca09", null ], + [ "operator()", "classftxui_1_1StringRef.html#afdc36f6a5716b29a5d81a2dd93376d82", null ], + [ "operator*", "classftxui_1_1StringRef.html#a3f534efce0b043d603eb8f5653268e7d", null ], + [ "operator*", "classftxui_1_1StringRef.html#a241c04e3ce86e1fd5a946eb2aa8b1f22", null ], + [ "operator->", "classftxui_1_1StringRef.html#a4442b1b9eab40e7939e1e01cdedcb7ae", null ], + [ "operator->", "classftxui_1_1StringRef.html#abaade5c780b539b94de660e314cb0c90", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1StringRef__inherit__graph.map b/classftxui_1_1StringRef__inherit__graph.map new file mode 100644 index 000000000..3e05f2ca6 --- /dev/null +++ b/classftxui_1_1StringRef__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classftxui_1_1StringRef__inherit__graph.md5 b/classftxui_1_1StringRef__inherit__graph.md5 new file mode 100644 index 000000000..b2d25cd78 --- /dev/null +++ b/classftxui_1_1StringRef__inherit__graph.md5 @@ -0,0 +1 @@ +b72244c33e11b7dd47b30ee05bf16c9f \ No newline at end of file diff --git a/classftxui_1_1StringRef__inherit__graph.png b/classftxui_1_1StringRef__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..6f426145a286842b8cdb954c966c2defa04db4c9 GIT binary patch literal 4268 zcmcJThd10^x5q~aqJ-##5jBVsEjrPAA4KnM1ku}wBqUmp@B~rf5z%`eH9-(T)Y03h zBU+fKqrAsm_g(A$19weZv*!F}_SyTp_xE!q)<934oP>!40)dcgYN!~2*AL*~NlXZy ziyS#*zzd;+wz>-B>iYI?TVV@<;5iqfM0?6NAtYAmW-?i%9$GA`!0)sByf zI4;fb*1P`g4GKr!e@a;x3XZmfTynyXE=3Tst~ux>Jk4ZIaNpcBf_lXyBpe#itTB4f za7;rJ)UdcX+6T8~rzV!sdU2m+^LTzX>YAlG_3LntsV(Ib%|dUPe4u?`Di*4k>}gr; zaP#BGk4beNWd`woDefzC73;mxGP15ELH$OR-lCvz{rL~?gy8E;32!PYs?MF+#&YYp z!D64>g>fTeO6ovXZFZ z*+C2F;ap{iq@?6PjXvwJ-hQQA-hc*45BV?nYd7V^75a4{LoNKWS++O zi95AVO+AtJ#|(3di*uXkMcmiR`ZhR79@+7&%)AyExWg1lM6v$!!-GTUN>9RFNg0{R z(!KeXAoE%m^1F|o2A743ii+~`@C28I-}P(9!zUDj7bPbrPgU9D=jZ1qJR&MW791QL zuyb-o8Rn@~2kuzJ#l>l8Yu93GL$EG3A#1cfi7fr2`PzepsZD+xH9jk94PNtF8XClX zeSJx9ZOzU5er3zV#>I7Zbwz&p!Z|lL2QRxXCzs7@TtG=j*K>Y~1()51kkaul%{BRP za&vv`NK_8I!bUY0wF6UCAGdoOH0ddUi00`FEli?eCx59nHims z&D-c`A|D^0^MigNVm3H}g4HaKe>{m*LC@Jazk3D~Ng=g+@kgJ~~&n)E|b$*V(GDlOey3EwMWBjFE2GTp~Jtkvf zVjg&n{OlbyXmDu|MIxIyCa*LgxyCu5eP)OLWI1zxq1DC z#?>bz61hKCs83HW?C_m^6K4y}HUNe}>_}9sz-qgoTB@|M=0}OOz== zsT36#PcKBm78SfxKdFL1w00vwgm+%VBqq`^GBO@kY)n-^7Z+}_pQpW zUL$mrl=px#`OgM2C5FzWB_t-TjGsSmA9fR4{<}H0zOyx1*;v#h$ep6OJ=>@s_4@U# z$NbjKbv8H?^L9j2Onf|UF6a<)sDTs`^&12ycY&QW5>qEvaz$jGA*}2S!jdE(xv>k@d?T7 ze!OENAR-d=nnN<-augz<*?Q`r3Im>aczAT-t!-`lM@JP$0m>VtqhBMgq;Y>SBVFeK zvkjhj51A5HH#YLdHu(kL5Rx;&HiAud=bE~L7Q@xGv`98LH+8Zkt9v*il#A&~O2ldB zB2sXFH@i;uR~R2XWe9D9su~9GwH*&{`qSa$P9hOgV0~B{Sl!d<8XNJnw6t2s-rGh-MpNzKGMAT^*LoAM zY#7I}7t1p_>!QjnC2YbEP1c8UC?10j-9(krN8e^~zzpX`MMY84(0t!t=^fcR3`pEq zU+)34N<&}&J_iTBkdTmrqoaA1onrk(60=mNzQRRRTbtbT=g+_Q_5yh^Vlyiyx0*t* z1x*o2P&v$aF?D~c0RA^8k^O1c9P_v4vr28b*y3DJ(cqAf{nL${$tTz@FiZPd_S&_t zE-$3~*2%(-w(Wn97ncx{Fzr(x9xq1ZaHuC%c}xm!Z*NZ_eK>mr}r^#%ga`bI}%LXzKGa&_3=h?G|-d`^oPXFGarG4FD zcaMiBCMt?xduQkLcWLFx$x71Ze2avRqL9CIc2QYb*(44d zgsL-$SdC(#r`7n zs1bH!d07c$DYWg=+?%aGXlS93p}Tixl# zK^qZG>PlQuQxrN?N&s^HTD=E+*Qx0DJ8BJ{;oTv}(5BCn z&hv2@3XCPq=`lBcULu?;d2|r&k;4|XU)J^Bl+X!zQd+3mGygG*ArKT4lyz+@xn696 z#4vJ+Ny<$X@W6OpVKR>1I~Bq6(_>7(Ez=p`2}CKaezEQxu?P?k5`l@QpS3-sBS8~y zvrh92!*!!9bNMsxDVyNub2*lhkB8rQozB#7vDIgQQlX4gI*g#Mu#2`^UA?0A%tZ2C zFHG1}AeLA%ClJ3XPP!q$7o59UQo|wwLp^j4xplKe`gv@=Awfz;5oad5vI#j`a1(T% zhUSgVh31p12)C4{V|Cd|I`h0emMym}?)X%qWTOpOHy)^VgE&;Y_bnuq#5}% z14RD+7nnxGnOa%R1*;mi*9Wo$+zGdNe0o7S_p3gTx1LJrDUe!dUxv6?W?@^<=4kf} z*Z6Ky-V&UmVzBX7XQ$HcLYv2qNQQoqm9=%b^{c^_fUVSeZOCed7M$QZ_>93#{WEP< z)tez9A;fIK%dz*%to0%ZzA51~fx!%( zJkfA==7K_@b#D8UjlQP`&cK-?l3MI^LJO?NqEkv*w{dKcX$8!@Zo)0nmX{ek&zJ|tqXao*5?<};DeG0)c8|D z7Z%hUZU$f;5HRAm=UeDs0Fuzs)&>Z8@4*AoY`y5l#>P`j{@CV^p`l(B>H{!m z^Q=qgwy}Z1i}-lba?8es^sm4w!DV2B%B7~|$l!f;efd+)z`*02Yd7l!_B6O6U{OaL z5fRZGu;l_(ChkbME5XCd+tJm9ABMx}zv%DpUjgu(uEPzc*|UIv?!m!w!^NQNmJ$1oV^;EH^($jQ}ptijU~@a1%k zGpVAYBEij@cvS#Y=jP{|5T_y_#j9&;cc9Q;F?Tp1KYspnI6YVcv;$cDO;QpC02RbR z-+f6bDLEsL-b9uWH?g_)@Y%W4oSY$m%>bl2Iy&(3Mt;<}k6p7J@Gy26nY(NR3g>_D zU%q@P0@Ll7o@TVQwFS(^DB?t%Efdt!+Z&xKV0q(V=wCPBvW7dGdjRLPXJICTgafY$ce{z1Ox>Cq81{MIAeV|RUmti}7Y9xOSuj)WNCb`$h(8@f;5=jigGGJjIX}k^(cyx_!W>0D{w^Cd zow6$8rp8RQC4v|D>iK0QKG&5B`aA6MGAl%c%T%nSt(# z2A=k#$T06@IbMhX#NatohX!T*lAkXeafyh}`&Xd0Y4JizMh3eOwwH^7YXTG!5J&(D z5Cyi5{dx(Gd!X66Dy&;Hbaik3>$mYM3BmAtXUB8j{j4jTMl~07>3ZIe)xMNl#KcQW z9g(0ZM17W3AlRcs7MalsYngZ{!rROmdkbw+;b&qHG#agw{_v%CnqYO%o(&-L;FSc4 zftS8PL51PCqmnk;iQ%VSqgX7qHjp=fPe`aya;G3azZ#r@=madBx=Sv7(VaKF=9{^^ zM{Bu22d%EI4wsq|OMuRlqjsM3)#4}%?y(XnE17o_hd24*849W)%?k#;z vGgDTVE`t;9Vj1`o6^j3J#@9T|Xr`X;oEM literal 0 HcmV?d00001 diff --git a/classftxui_1_1TableSelection-members.html b/classftxui_1_1TableSelection-members.html new file mode 100644 index 000000000..9ea4d9eef --- /dev/null +++ b/classftxui_1_1TableSelection-members.html @@ -0,0 +1,225 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
TableSelection Member List
+
+
+ +

This is the complete list of members for TableSelection, including all inherited members.

+ + + + + + + + + + + + + + + +
Border(BorderStyle border=LIGHT)TableSelection
BorderBottom(BorderStyle border=LIGHT)TableSelection
BorderLeft(BorderStyle border=LIGHT)TableSelection
BorderRight(BorderStyle border=LIGHT)TableSelection
BorderTop(BorderStyle border=LIGHT)TableSelection
Decorate(Decorator)TableSelection
DecorateAlternateColumn(Decorator, int modulo=2, int shift=0)TableSelection
DecorateAlternateRow(Decorator, int modulo=2, int shift=0)TableSelection
DecorateCells(Decorator)TableSelection
DecorateCellsAlternateColumn(Decorator, int modulo=2, int shift=0)TableSelection
DecorateCellsAlternateRow(Decorator, int modulo=2, int shift=0)TableSelection
Separator(BorderStyle border=LIGHT)TableSelection
SeparatorHorizontal(BorderStyle border=LIGHT)TableSelection
SeparatorVertical(BorderStyle border=LIGHT)TableSelection
+
+ + + + + diff --git a/classftxui_1_1TableSelection.html b/classftxui_1_1TableSelection.html new file mode 100644 index 000000000..814f976a3 --- /dev/null +++ b/classftxui_1_1TableSelection.html @@ -0,0 +1,690 @@ + + + + + + + + +FTXUI: TableSelection Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TableSelection Class Reference
+
+
+ +

#include <table.hpp>

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

+Public Member Functions

void Decorate (Decorator)
 Apply the decorator to the selection. This decorate both the cells, the lines and the corners.
 
void DecorateAlternateRow (Decorator, int modulo=2, int shift=0)
 Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shift.
 
void DecorateAlternateColumn (Decorator, int modulo=2, int shift=0)
 Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shift.
 
void DecorateCells (Decorator)
 Apply the decorator to the selection.
 
void DecorateCellsAlternateColumn (Decorator, int modulo=2, int shift=0)
 Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of shift.
 
void DecorateCellsAlternateRow (Decorator, int modulo=2, int shift=0)
 Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of shift.
 
void Border (BorderStyle border=LIGHT)
 Apply a border around the selection.
 
void BorderLeft (BorderStyle border=LIGHT)
 Draw some separator lines to the left side of the selection.
 
void BorderRight (BorderStyle border=LIGHT)
 Draw some separator lines to the right side of the selection.
 
void BorderTop (BorderStyle border=LIGHT)
 Draw some separator lines to the top side of the selection.
 
void BorderBottom (BorderStyle border=LIGHT)
 Draw some separator lines to the bottom side of the selection.
 
void Separator (BorderStyle border=LIGHT)
 Draw some separator lines in the selection.
 
void SeparatorVertical (BorderStyle border=LIGHT)
 Draw some vertical separator lines in the selection.
 
void SeparatorHorizontal (BorderStyle border=LIGHT)
 Draw some horizontal separator lines in the selection.
 
+

Detailed Description

+
+

Definition at line 64 of file table.hpp.

+

Member Function Documentation

+ +

◆ Decorate()

+ +
+
+ + + + + + + +
void Decorate (Decorator decorator)
+
+ +

Apply the decorator to the selection. This decorate both the cells, the lines and the corners.

+
Parameters
+ + +
decoratorThe decorator to apply.
+
+
+ +

Definition at line 242 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ DecorateAlternateRow()

+ +
+
+ + + + + + + + + + + + + + + + +
void DecorateAlternateRow (Decorator decorator,
int modulo = 2,
int shift = 0 )
+
+ +

Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shift.

+
Parameters
+ + + + +
decoratorThe decorator to apply.
moduloThe modulo of the lines to decorate.
shiftThe shift of the lines to decorate.
+
+
+ +

Definition at line 291 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ DecorateAlternateColumn()

+ +
+
+ + + + + + + + + + + + + + + + +
void DecorateAlternateColumn (Decorator decorator,
int modulo = 2,
int shift = 0 )
+
+ +

Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shift.

+
Parameters
+ + + + +
decoratorThe decorator to apply.
moduloThe modulo of the lines to decorate.
shiftThe shift of the lines to decorate.
+
+
+ +

Definition at line 272 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ DecorateCells()

+ +
+
+ + + + + + + +
void DecorateCells (Decorator decorator)
+
+ +

Apply the decorator to the selection.

+
Parameters
+ + +
decoratorThe decorator to apply. This decorate only the cells.
+
+
+ +

Definition at line 255 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ DecorateCellsAlternateColumn()

+ +
+
+ + + + + + + + + + + + + + + + +
void DecorateCellsAlternateColumn (Decorator decorator,
int modulo = 2,
int shift = 0 )
+
+ +

Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of shift.

+
Parameters
+ + + + +
decoratorThe decorator to apply.
moduloThe modulo of the corners to decorate.
shiftThe shift of the corners to decorate.
+
+
+ +

Definition at line 310 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ DecorateCellsAlternateRow()

+ +
+
+ + + + + + + + + + + + + + + + +
void DecorateCellsAlternateRow (Decorator decorator,
int modulo = 2,
int shift = 0 )
+
+ +

Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of shift.

+
Parameters
+ + + + +
decoratorThe decorator to apply.
moduloThe modulo of the corners to decorate.
shiftThe shift of the corners to decorate.
+
+
+ +

Definition at line 329 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ Border()

+ +
+
+ + + + + + + +
void Border (BorderStyle border = LIGHT)
+
+ +

Apply a border around the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 344 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ BorderLeft()

+ +
+
+ + + + + + + +
void BorderLeft (BorderStyle border = LIGHT)
+
+ +

Draw some separator lines to the left side of the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 403 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ BorderRight()

+ +
+
+ + + + + + + +
void BorderRight (BorderStyle border = LIGHT)
+
+ +

Draw some separator lines to the right side of the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 412 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ BorderTop()

+ +
+
+ + + + + + + +
void BorderTop (BorderStyle border = LIGHT)
+
+ +

Draw some separator lines to the top side of the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 421 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ BorderBottom()

+ +
+
+ + + + + + + +
void BorderBottom (BorderStyle border = LIGHT)
+
+ +

Draw some separator lines to the bottom side of the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 430 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ Separator()

+ +
+
+ + + + + + + +
void Separator (BorderStyle border = LIGHT)
+
+ +

Draw some separator lines in the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 362 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ SeparatorVertical()

+ +
+
+ + + + + + + +
void SeparatorVertical (BorderStyle border = LIGHT)
+
+ +

Draw some vertical separator lines in the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 377 of file src/ftxui/dom/table.cpp.

+ +
+
+ +

◆ SeparatorHorizontal()

+ +
+
+ + + + + + + +
void SeparatorHorizontal (BorderStyle border = LIGHT)
+
+ +

Draw some horizontal separator lines in the selection.

+
Parameters
+ + +
borderThe border style to apply.
+
+
+ +

Definition at line 390 of file src/ftxui/dom/table.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + + diff --git a/classftxui_1_1TableSelection.js b/classftxui_1_1TableSelection.js new file mode 100644 index 000000000..376091f61 --- /dev/null +++ b/classftxui_1_1TableSelection.js @@ -0,0 +1,17 @@ +var classftxui_1_1TableSelection = +[ + [ "Decorate", "classftxui_1_1TableSelection.html#a8e7e9329ee7f557eef6d037fef8003e0", null ], + [ "DecorateAlternateRow", "classftxui_1_1TableSelection.html#a9cadee0ff95e66e2ca90e15648ad592d", null ], + [ "DecorateAlternateColumn", "classftxui_1_1TableSelection.html#a00b7d84571ed47043e55cd879ed851a3", null ], + [ "DecorateCells", "classftxui_1_1TableSelection.html#a335808a6c8beb4744bfe91b359ebf0bb", null ], + [ "DecorateCellsAlternateColumn", "classftxui_1_1TableSelection.html#a751593eb3bc2e704eb6667ed518f614e", null ], + [ "DecorateCellsAlternateRow", "classftxui_1_1TableSelection.html#ac2810f38a5f722916f364f354c204cb7", null ], + [ "Border", "classftxui_1_1TableSelection.html#af47b05e5a3f01cafc419ce94388cae51", null ], + [ "BorderLeft", "classftxui_1_1TableSelection.html#a5b822ad80ff44922a9d6551743f64259", null ], + [ "BorderRight", "classftxui_1_1TableSelection.html#af36f1d9893a26293f24da431c5a344cc", null ], + [ "BorderTop", "classftxui_1_1TableSelection.html#aa9002be87d1fc0c5c6416b8006a902e4", null ], + [ "BorderBottom", "classftxui_1_1TableSelection.html#ab3efbe517730170703eba50cf23b150d", null ], + [ "Separator", "classftxui_1_1TableSelection.html#ab1c6e11d86131eddb095c8211b824b18", null ], + [ "SeparatorVertical", "classftxui_1_1TableSelection.html#a2334aed76610138905c96dc298b7e9df", null ], + [ "SeparatorHorizontal", "classftxui_1_1TableSelection.html#affd2ab7143cb388fdedad3bd51995802", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1TerminalInputParser-members.html b/classftxui_1_1TerminalInputParser-members.html new file mode 100644 index 000000000..a3f8bff08 --- /dev/null +++ b/classftxui_1_1TerminalInputParser-members.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
TerminalInputParser Member List
+
+
+ +

This is the complete list of members for TerminalInputParser, including all inherited members.

+ + + + +
Add(char c)TerminalInputParser
TerminalInputParser(std::function< void(Event)> out)TerminalInputParserexplicit
Timeout(int time)TerminalInputParser
+
+ + + + + diff --git a/classftxui_1_1TerminalInputParser.html b/classftxui_1_1TerminalInputParser.html new file mode 100644 index 000000000..aa3590922 --- /dev/null +++ b/classftxui_1_1TerminalInputParser.html @@ -0,0 +1,298 @@ + + + + + + + + +FTXUI: TerminalInputParser Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TerminalInputParser Class Reference
+
+
+ +

#include <terminal_input_parser.hpp>

+ + + + + + + + +

+Public Member Functions

 TerminalInputParser (std::function< void(Event)> out)
 
void Timeout (int time)
 
void Add (char c)
 
+

Detailed Description

+
+

Definition at line 17 of file terminal_input_parser.hpp.

+

Constructor & Destructor Documentation

+ +

◆ TerminalInputParser()

+ +
+
+ + + + + +
+ + + + + + + +
TerminalInputParser (std::function< void(Event)> out)
+
+explicit
+
+ +

Definition at line 93 of file terminal_input_parser.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ Timeout()

+ +
+
+ + + + + + + +
void Timeout (int time)
+
+ +

Definition at line 96 of file terminal_input_parser.cpp.

+ +
+
+ +

◆ Add()

+ +
+
+ + + + + + + +
void Add (char c)
+
+ +

Definition at line 108 of file terminal_input_parser.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + + diff --git a/classftxui_1_1TerminalInputParser.js b/classftxui_1_1TerminalInputParser.js new file mode 100644 index 000000000..9ddbd86a2 --- /dev/null +++ b/classftxui_1_1TerminalInputParser.js @@ -0,0 +1,6 @@ +var classftxui_1_1TerminalInputParser = +[ + [ "TerminalInputParser", "classftxui_1_1TerminalInputParser.html#acbc8ed784fd28db571aece82b20c9855", null ], + [ "Timeout", "classftxui_1_1TerminalInputParser.html#a9e4aeeff8f55e0b1c7a8f9c282a77823", null ], + [ "Add", "classftxui_1_1TerminalInputParser.html#a4b2f1e271dd6ebbf5bad2418d960832a", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1animation_1_1Animator-members.html b/classftxui_1_1animation_1_1Animator-members.html new file mode 100644 index 000000000..962dbd624 --- /dev/null +++ b/classftxui_1_1animation_1_1Animator-members.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Animator Member List
+
+
+ +

This is the complete list of members for Animator, including all inherited members.

+ + + + +
Animator(float *from, float to=0.f, Duration duration=std::chrono::milliseconds(250), easing::Function easing_function=easing::Linear, Duration delay=std::chrono::milliseconds(0))Animatorexplicit
OnAnimation(Params &)Animator
to() constAnimatorinline
+
+ + + + + diff --git a/classftxui_1_1animation_1_1Animator.html b/classftxui_1_1animation_1_1Animator.html new file mode 100644 index 000000000..111f00b38 --- /dev/null +++ b/classftxui_1_1animation_1_1Animator.html @@ -0,0 +1,325 @@ + + + + + + + + +FTXUI: Animator Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Animator Class Reference
+
+
+ +

#include <animation.hpp>

+ + + + + + + + +

+Public Member Functions

 Animator (float *from, float to=0.f, Duration duration=std::chrono::milliseconds(250), easing::Function easing_function=easing::Linear, Duration delay=std::chrono::milliseconds(0))
 
void OnAnimation (Params &)
 
float to () const
 
+

Detailed Description

+
+

Definition at line 100 of file animation.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Animator()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Animator (float * from,
float to = 0.f,
Duration duration = std::chrono::milliseconds(250),
easing::Function easing_function = easing::Linear,
Duration delay = std::chrono::milliseconds(0) )
+
+explicit
+
+ +

Definition at line 253 of file animation.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ OnAnimation()

+ +
+
+ + + + + + + +
void OnAnimation (Params & params)
+
+ +

Definition at line 267 of file animation.cpp.

+ +
+
+ +

◆ to()

+ +
+
+ + + + + +
+ + + + + + + +
float to () const
+
+inline
+
+ +

Definition at line 110 of file animation.hpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + + diff --git a/classftxui_1_1animation_1_1Animator.js b/classftxui_1_1animation_1_1Animator.js new file mode 100644 index 000000000..526b8fa2d --- /dev/null +++ b/classftxui_1_1animation_1_1Animator.js @@ -0,0 +1,6 @@ +var classftxui_1_1animation_1_1Animator = +[ + [ "Animator", "classftxui_1_1animation_1_1Animator.html#a03909a0243b559e18e21996ccacdc8b6", null ], + [ "OnAnimation", "classftxui_1_1animation_1_1Animator.html#ac956aa7c105ad418392f69219711117d", null ], + [ "to", "classftxui_1_1animation_1_1Animator.html#a5d3b8db14f3f21f9169cfbebf247d854", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1animation_1_1Params-members.html b/classftxui_1_1animation_1_1Params-members.html new file mode 100644 index 000000000..fc365f2c0 --- /dev/null +++ b/classftxui_1_1animation_1_1Params-members.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Params Member List
+
+
+ +

This is the complete list of members for Params, including all inherited members.

+ + + +
duration() constParamsinline
Params(Duration duration)Paramsinlineexplicit
+
+ + + + + diff --git a/classftxui_1_1animation_1_1Params.html b/classftxui_1_1animation_1_1Params.html new file mode 100644 index 000000000..55d6277d7 --- /dev/null +++ b/classftxui_1_1animation_1_1Params.html @@ -0,0 +1,287 @@ + + + + + + + + +FTXUI: Params Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Params Class Reference
+
+
+ +

#include <animation.hpp>

+ + + + + + + +

+Public Member Functions

 Params (Duration duration)
 
Duration duration () const
 The duration this animation step represents.
 
+

Detailed Description

+
+

Definition at line 33 of file animation.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Params()

+ +
+
+ + + + + +
+ + + + + + + +
Params (Duration duration)
+
+inlineexplicit
+
+ +

Definition at line 35 of file animation.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ duration()

+ +
+
+ + + + + +
+ + + + + + + +
Duration duration () const
+
+inline
+
+ +

The duration this animation step represents.

+ +

Definition at line 38 of file animation.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + diff --git a/classftxui_1_1animation_1_1Params.js b/classftxui_1_1animation_1_1Params.js new file mode 100644 index 000000000..a2a7a3199 --- /dev/null +++ b/classftxui_1_1animation_1_1Params.js @@ -0,0 +1,5 @@ +var classftxui_1_1animation_1_1Params = +[ + [ "Params", "classftxui_1_1animation_1_1Params.html#a27854a0925475df9b926b03808cc8d8c", null ], + [ "duration", "classftxui_1_1animation_1_1Params.html#a2cf2e0a4288915aee8f100d2f0ee3e50", null ] +]; \ No newline at end of file diff --git a/classftxui_1_1task_1_1TaskRunner-members.html b/classftxui_1_1task_1_1TaskRunner-members.html new file mode 100644 index 000000000..e0f8a240b --- /dev/null +++ b/classftxui_1_1task_1_1TaskRunner-members.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
TaskRunner Member List
+
+
+ +

This is the complete list of members for TaskRunner, including all inherited members.

+ + + + + + + + + + +
Current() -> TaskRunner *TaskRunnerstatic
ExecutedTasks() constTaskRunnerinline
HasImmediateTasks() constTaskRunnerinline
PostDelayedTask(Task task, std::chrono::steady_clock::duration duration) -> voidTaskRunner
PostTask(Task task) -> voidTaskRunner
Run() -> voidTaskRunner
RunUntilIdle() -> std::optional< std::chrono::steady_clock::duration >TaskRunner
TaskRunner()TaskRunner
~TaskRunner()TaskRunner
+
+ + + + + diff --git a/classftxui_1_1task_1_1TaskRunner.html b/classftxui_1_1task_1_1TaskRunner.html new file mode 100644 index 000000000..de3e8ae97 --- /dev/null +++ b/classftxui_1_1task_1_1TaskRunner.html @@ -0,0 +1,458 @@ + + + + + + + + +FTXUI: TaskRunner Class Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

#include <task_runner.hpp>

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

+Public Member Functions

 TaskRunner ()
 
 ~TaskRunner ()
 
auto PostTask (Task task) -> void
 Schedules a task to be executed immediately.
 
auto PostDelayedTask (Task task, std::chrono::steady_clock::duration duration) -> void
 Schedules a task to be executed after a certain duration.
 
auto RunUntilIdle () -> std::optional< std::chrono::steady_clock::duration >
 Runs the tasks in the queue.
 
auto Run () -> void
 
bool HasImmediateTasks () const
 
size_t ExecutedTasks () const
 
+ + + +

+Static Public Member Functions

static auto Current () -> TaskRunner *
 
+

Detailed Description

+
+

Definition at line 12 of file task_runner.hpp.

+

Constructor & Destructor Documentation

+ +

◆ TaskRunner()

+ +
+
+ + + + + + + +
TaskRunner ()
+
+ +

Definition at line 13 of file task_runner.cpp.

+ +
+
+ +

◆ ~TaskRunner()

+ +
+
+ + + + + + + +
~TaskRunner ()
+
+ +

Definition at line 19 of file task_runner.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ Current()

+ +
+
+ + + + + +
+ + + + + + + +
auto Current () -> TaskRunner*
+
+static
+
+ +

Definition at line 24 of file task_runner.cpp.

+ +
+
+ +

◆ PostTask()

+ +
+
+ + + + + + + +
auto PostTask (Task task) -> void
+
+ +

Schedules a task to be executed immediately.

+ +

Definition at line 29 of file task_runner.cpp.

+ +
+
+ +

◆ PostDelayedTask()

+ +
+
+ + + + + + + + + + + +
auto PostDelayedTask (Task task,
std::chrono::steady_clock::duration duration ) -> void
+
+ +

Schedules a task to be executed after a certain duration.

+ +

Definition at line 33 of file task_runner.cpp.

+ +
+
+ +

◆ RunUntilIdle()

+ +
+
+ + + + + + + +
auto RunUntilIdle () -> std::optional<std::chrono::steady_clock::duration>
+
+ +

Runs the tasks in the queue.

+

Runs the tasks in the queue, return the delay until the next delayed task can be executed.

+ +

Definition at line 40 of file task_runner.cpp.

+ +
+
+ +

◆ Run()

+ +
+
+ + + + + + + +
auto Run () -> void
+
+ +

Definition at line 62 of file task_runner.cpp.

+ +
+
+ +

◆ HasImmediateTasks()

+ +
+
+ + + + + +
+ + + + + + + +
bool HasImmediateTasks () const
+
+inline
+
+ +

Definition at line 34 of file task_runner.hpp.

+ +
+
+ +

◆ ExecutedTasks()

+ +
+
+ + + + + +
+ + + + + + + +
size_t ExecutedTasks () const
+
+inline
+
+ +

Definition at line 36 of file task_runner.hpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + + diff --git a/classftxui_1_1task_1_1TaskRunner.js b/classftxui_1_1task_1_1TaskRunner.js new file mode 100644 index 000000000..63adef148 --- /dev/null +++ b/classftxui_1_1task_1_1TaskRunner.js @@ -0,0 +1,11 @@ +var classftxui_1_1task_1_1TaskRunner = +[ + [ "TaskRunner", "classftxui_1_1task_1_1TaskRunner.html#aa2a63894916e321a8a93add257aad2c7", null ], + [ "~TaskRunner", "classftxui_1_1task_1_1TaskRunner.html#afab0128a700661663463c90c9a33d71d", null ], + [ "PostTask", "classftxui_1_1task_1_1TaskRunner.html#a6265a2d99ef09d491365c21a4a703c71", null ], + [ "PostDelayedTask", "classftxui_1_1task_1_1TaskRunner.html#a9ed72fa10b2d44bb1af7bd8af64dd28b", null ], + [ "RunUntilIdle", "classftxui_1_1task_1_1TaskRunner.html#a7865ea610276e71d61633de0aab71753", null ], + [ "Run", "classftxui_1_1task_1_1TaskRunner.html#a58f2f0e6ed3d38c3e6a081f7c99a544f", null ], + [ "HasImmediateTasks", "classftxui_1_1task_1_1TaskRunner.html#a257afcb3d4b649b1a39a697cea2843ce", null ], + [ "ExecutedTasks", "classftxui_1_1task_1_1TaskRunner.html#aab6716a5f504f5985e73fb6d2b0dd677", null ] +]; \ No newline at end of file diff --git a/clear__under_8cpp.html b/clear__under_8cpp.html new file mode 100644 index 000000000..592b7db6d --- /dev/null +++ b/clear__under_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: clear_under.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
clear_under.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + +

+Functions

Element clear_under (Element element)
 Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
 
+
+
+ + + + + diff --git a/clear__under_8cpp.js b/clear__under_8cpp.js new file mode 100644 index 000000000..58f5ba5fb --- /dev/null +++ b/clear__under_8cpp.js @@ -0,0 +1,4 @@ +var clear__under_8cpp = +[ + [ "clear_under", "clear__under_8cpp.html#ga17a89519e6b87e12b1e5811a702f7847", null ] +]; \ No newline at end of file diff --git a/clear__under_8cpp_source.html b/clear__under_8cpp_source.html new file mode 100644 index 000000000..13cd8cd78 --- /dev/null +++ b/clear__under_8cpp_source.html @@ -0,0 +1,265 @@ + + + + + + + + +FTXUI: clear_under.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
clear_under.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for make_shared
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, clear_under
+
8#include "ftxui/dom/node.hpp" // for Node
+
9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
+
10#include "ftxui/screen/box.hpp" // for Box
+
11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
+
12
+
13namespace ftxui {
+
14
+
15namespace {
+
16using ftxui::Screen;
+
17
+
18class ClearUnder : public NodeDecorator {
+
19 public:
+ +
21
+
22 void Render(Screen& screen) override {
+
23 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
24 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
25 screen.PixelAt(x, y) = Pixel();
+
26 screen.PixelAt(x, y).character = " "; // Consider the pixel written.
+
27 }
+
28 }
+
29 Node::Render(screen);
+
30 }
+
31};
+
32} // namespace
+
33
+
34/// @brief Before drawing |child|, clear the pixels below. This is useful in
+
35/// combination with dbox.
+
36/// @see ftxui::dbox
+
37/// @ingroup dom
+
+ +
39 return std::make_shared<ClearUnder>(std::move(element));
+
40}
+
+
41
+
42} // namespace ftxui
+ +
NodeDecorator(Element child)
+ +
friend void Render(Screen &screen, Node *node, Selection &selection)
Definition node.cpp:96
+
Element clear_under(Element element)
Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
A rectangular grid of Pixel.
Definition screen.hpp:26
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ + + +
+
+ + + + + diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..d29ae8e70f9e0c1517b008c64d02c749d37f38cc GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8D)9Z?cj1i;`mIWfKm3{P*dDAfv<5f3*y&j2e1dIRjK3f1mod-)|GIo|S=1_R{V{ fv-v8NIIqoSkrff}nI(M~Xe@)LtDnm{r-UW|+uAE_ literal 0 HcmV?d00001 diff --git a/color_8cppm.html b/color_8cppm.html new file mode 100644 index 000000000..c8f19cf86 --- /dev/null +++ b/color_8cppm.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: color.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::literals
 
+
+
+ + + + + diff --git a/color_8cppm_source.html b/color_8cppm_source.html new file mode 100644 index 000000000..b06b0fffb --- /dev/null +++ b/color_8cppm_source.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: color.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.screen.color
+
2/// @brief Module file for the Color class of the Screen module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.screen.color;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::Color;
+
16
+
17 inline namespace literals {
+
18 using ftxui::literals::operator""_rgb;
+
19 }
+
20}
+ +
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
Module file for the Color class of the Screen module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/color_8hpp.html b/color_8hpp.html new file mode 100644 index 000000000..7b85c1f4a --- /dev/null +++ b/color_8hpp.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: color.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  Color
 Color is a class that represents a color in the terminal user interface. More...
 
+ + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::literals
 
+ + + + +

+Functions

Color operator""_rgb (unsigned long long int combined)
 Creates a color from a combined hex RGB representation, e.g. 0x808000_rgb.
 
+
+
+ + + + + diff --git a/color_8hpp.js b/color_8hpp.js new file mode 100644 index 000000000..c5782ee61 --- /dev/null +++ b/color_8hpp.js @@ -0,0 +1,4 @@ +var color_8hpp = +[ + [ "operator\"\"_rgb", "color_8hpp.html#a66d988ecc082819b1671ee2bbadebccd", null ] +]; \ No newline at end of file diff --git a/color_8hpp_source.html b/color_8hpp_source.html new file mode 100644 index 000000000..4ef42eb72 --- /dev/null +++ b/color_8hpp_source.html @@ -0,0 +1,839 @@ + + + + + + + + +FTXUI: color.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_SCREEN_COLOR_HPP
+
5#define FTXUI_SCREEN_COLOR_HPP
+
6
+
7#include <cstdint> // for uint8_t
+
8#include <string> // for string
+
9
+
10#ifdef RGB
+
11// Workaround for wingdi.h (via Windows.h) defining macros that break things.
+
12// https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-rgb
+
13#undef RGB
+
14#endif
+
15
+
16namespace ftxui {
+
17
+
18/// @brief Color is a class that represents a color in the terminal user
+
19/// interface.
+
20///
+
21/// @ingroup screen
+
+
22class Color {
+
23 public:
+
24 enum Palette1 : uint8_t;
+
25 enum Palette16 : uint8_t;
+
26 enum Palette256 : uint8_t;
+
27
+
28 // NOLINTBEGIN
+
29 Color(); // Transparent.
+
30 Color(Palette1 index); // Transparent.
+
31 Color(Palette16 index); // Implicit conversion from index to Color.
+
32 Color(Palette256 index); // Implicit conversion from index to Color.
+
33 // NOLINTEND
+
34 Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = 255);
+
35 static Color RGB(uint8_t red, uint8_t green, uint8_t blue);
+
36 static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value);
+
37 static Color RGBA(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha);
+
38 static Color HSVA(uint8_t hue,
+
39 uint8_t saturation,
+
40 uint8_t value,
+
41 uint8_t alpha);
+
42 static Color Interpolate(float t, const Color& a, const Color& b);
+
43 static Color Blend(const Color& lhs, const Color& rhs);
+
44
+
45 //---------------------------
+
46 // List of colors:
+
47 //---------------------------
+
48 // clang-format off
+
+
49 enum Palette1 : uint8_t{
+
50 Default, // Transparent
+
51 };
+
+
52
+
+
53 enum Palette16 : uint8_t {
+
54 Black = 0,
+
55 Red = 1,
+
56 Green = 2,
+
57 Yellow = 3,
+
58 Blue = 4,
+ +
60 Cyan = 6,
+ + + + + + + + +
69 White = 15,
+
70 };
+
+
71
+
+
72 enum Palette256 : uint8_t {
+ + + +
76 Blue1 = 21,
+
77 Blue3 = 19,
+ + + + + + + + + + + +
89 Cornsilk1 = 230,
+
90 Cyan1 = 51,
+
91 Cyan2 = 50,
+
92 Cyan3 = 43,
+ + + + +
97 DarkKhaki = 143,
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
144 Gold1 = 220,
+
145 Gold3 = 142,
+
146 Gold3Bis = 178,
+
147 Green1 = 46,
+
148 Green3 = 34,
+ +
150 Green4 = 28,
+ +
152 Grey0 = 16,
+
153 Grey100 = 231,
+
154 Grey11 = 234,
+
155 Grey15 = 235,
+
156 Grey19 = 236,
+
157 Grey23 = 237,
+
158 Grey27 = 238,
+
159 Grey3 = 232,
+
160 Grey30 = 239,
+
161 Grey35 = 240,
+
162 Grey37 = 59,
+
163 Grey39 = 241,
+
164 Grey42 = 242,
+
165 Grey46 = 243,
+
166 Grey50 = 244,
+
167 Grey53 = 102,
+
168 Grey54 = 245,
+
169 Grey58 = 246,
+
170 Grey62 = 247,
+
171 Grey63 = 139,
+
172 Grey66 = 248,
+
173 Grey69 = 145,
+
174 Grey7 = 233,
+
175 Grey70 = 249,
+
176 Grey74 = 250,
+
177 Grey78 = 251,
+
178 Grey82 = 252,
+
179 Grey84 = 188,
+
180 Grey85 = 253,
+
181 Grey89 = 254,
+
182 Grey93 = 255,
+ +
184 HotPink = 205,
+
185 HotPink2 = 169,
+
186 HotPink3 = 132,
+ + + + + + +
193 Khaki1 = 228,
+
194 Khaki3 = 185,
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
221 Magenta1 = 201,
+
222 Magenta2 = 165,
+ +
224 Magenta3 = 127,
+ + + + + + + + + + + + + + + + + + + + + +
246 Orange1 = 214,
+
247 Orange3 = 172,
+ + + +
251 Orchid = 170,
+
252 Orchid1 = 213,
+
253 Orchid2 = 212,
+ + + + + + + +
261 Pink1 = 218,
+
262 Pink3 = 175,
+
263 Plum1 = 219,
+
264 Plum2 = 183,
+
265 Plum3 = 176,
+
266 Plum4 = 96,
+
267 Purple = 129,
+ + + + +
272 Red1 = 196,
+
273 Red3 = 124,
+
274 Red3Bis = 160,
+ + +
277 Salmon1 = 209,
+ + + + + +
283 SkyBlue1 = 117,
+
284 SkyBlue2 = 111,
+ + + + + + + + + + + + + + +
299 Tan = 180,
+
300 Thistle1 = 225,
+
301 Thistle3 = 182,
+ + +
304 Violet = 177,
+
305 Wheat1 = 229,
+
306 Wheat4 = 101,
+
307 Yellow1 = 226,
+
308 Yellow2 = 190,
+
309 Yellow3 = 148,
+ +
311 Yellow4 = 100,
+ +
313 };
+
+
314 // clang-format on
+
315
+
316 // --- Operators ------
+
317 bool operator==(const Color& rhs) const;
+
318 bool operator!=(const Color& rhs) const;
+
319
+
320 std::string Print(bool is_background_color) const;
+
321 bool IsOpaque() const { return alpha_ == 255; }
+
322
+
323 private:
+
324 enum class ColorType : uint8_t {
+
325 Palette1,
+
326 Palette16,
+ +
328 TrueColor,
+
329 };
+
330 ColorType type_ = ColorType::Palette1;
+
331 uint8_t red_ = 0;
+
332 uint8_t green_ = 0;
+
333 uint8_t blue_ = 0;
+
334 uint8_t alpha_ = 0;
+
335};
+
+
336
+
+
337inline namespace literals {
+
338
+
339/// @brief Creates a color from a combined hex RGB representation,
+
340/// e.g. 0x808000_rgb
+
341Color operator""_rgb(unsigned long long int combined);
+
342
+
343} // namespace literals
+
+
344
+
345} // namespace ftxui
+
346
+
347#endif // FTXUI_SCREEN_COLOR_HPP
+
Color()
Build a transparent color.
+
static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
+
static Color RGBA(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
Build a Color from its RGBA representation. https://en.wikipedia.org/wiki/RGB_color_model.
+
static Color Blend(const Color &lhs, const Color &rhs)
Blend two colors together using the alpha channel.
+
bool operator!=(const Color &rhs) const
+
bool operator==(const Color &rhs) const
+
bool IsOpaque() const
Definition color.hpp:321
+ + +
static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
+ + + + + + +
@ LightGoldenrod2
Definition color.hpp:199
+
@ MediumOrchid1Bis
Definition color.hpp:229
+ + + + + + + + + + + + + +
@ DarkMagentaBis
Definition color.hpp:99
+ + + + + + + + + + + + + + + +
@ Chartreuse3Bis
Definition color.hpp:86
+ + +
@ LightGoldenrod1
Definition color.hpp:198
+ + + + + + + + + +
@ MediumPurple3Bis
Definition color.hpp:236
+ + + + + +
@ LightGoldenrod3
Definition color.hpp:202
+ + + + + + + + +
@ DarkSeaGreen4Bis
Definition color.hpp:119
+
@ LightSkyBlue3Bis
Definition color.hpp:214
+ + + + + + + + +
@ DarkOliveGreen1
Definition color.hpp:100
+ +
@ Aquamarine1Bis
Definition color.hpp:74
+
@ DarkOliveGreen1Bis
Definition color.hpp:101
+
@ MediumPurple2Bis
Definition color.hpp:234
+ + + + + + + + + +
@ Chartreuse2Bis
Definition color.hpp:84
+ + + + + + + + + + +
@ DarkSeaGreen1Bis
Definition color.hpp:113
+ + + + + + + + + + + + +
@ MediumTurquoise
Definition color.hpp:239
+ + + + +
@ DarkOliveGreen3Ter
Definition color.hpp:105
+
@ DarkSeaGreen3Bis
Definition color.hpp:117
+ + +
@ LightSteelBlue1
Definition color.hpp:218
+ + + +
@ DeepSkyBlue3Bis
Definition color.hpp:137
+ + + +
@ MediumVioletRed
Definition color.hpp:240
+ + + + + + + + + +
@ LightGoldenrod2Ter
Definition color.hpp:201
+ + +
@ DeepSkyBlue4Ter
Definition color.hpp:140
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
@ DarkOliveGreen2
Definition color.hpp:102
+ + + + +
@ CornflowerBlue
Definition color.hpp:88
+
@ DarkGoldenrod
Definition color.hpp:95
+ + + + + + +
@ LightGoldenrod2Bis
Definition color.hpp:200
+ + + + + + +
@ DarkSeaGreen2Bis
Definition color.hpp:115
+ + + + + + + +
@ LightSalmon3Bis
Definition color.hpp:210
+ + + + + +
@ SpringGreen2Bis
Definition color.hpp:291
+ +
@ DeepSkyBlue4Bis
Definition color.hpp:139
+ + + +
@ DarkOliveGreen3Bis
Definition color.hpp:104
+ + + + + + + + +
@ MediumSpringGreen
Definition color.hpp:238
+ + + + + +
@ DarkOliveGreen3
Definition color.hpp:103
+ + + + +
@ SpringGreen3Bis
Definition color.hpp:293
+ + + + +
@ LightSteelBlue3
Definition color.hpp:219
+ + + + +
std::string Print(bool is_background_color) const
+ + + + + + + + + + + + + + + + + +
static Color Interpolate(float t, const Color &a, const Color &b)
+
static Color HSVA(uint8_t hue, uint8_t saturation, uint8_t value, uint8_t alpha)
Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
+
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/color__gallery_8cpp.html b/color__gallery_8cpp.html new file mode 100644 index 000000000..c48bad1a9 --- /dev/null +++ b/color__gallery_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: color_gallery.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_gallery.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 18 of file color_gallery.cpp.

+ +
+
+
+
+ + + + + diff --git a/color__gallery_8cpp.js b/color__gallery_8cpp.js new file mode 100644 index 000000000..6fba9c7e6 --- /dev/null +++ b/color__gallery_8cpp.js @@ -0,0 +1,4 @@ +var color__gallery_8cpp = +[ + [ "main", "color__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/color__gallery_8cpp_source.html b/color__gallery_8cpp_source.html new file mode 100644 index 000000000..d7005ead6 --- /dev/null +++ b/color__gallery_8cpp_source.html @@ -0,0 +1,392 @@ + + + + + + + + +FTXUI: color_gallery.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_gallery.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <ftxui/screen/color_info.hpp> // for ColorInfo
+
5#include <ftxui/screen/screen.hpp> // for Full, Screen
+
6#include <ftxui/screen/terminal.hpp> // for ColorSupport, Color, Palette16, Palette256, TrueColor
+
7#include <memory> // for allocator, shared_ptr
+
8#include <utility> // for move
+
9#include <vector> // for vector
+
10
+
11#include "ftxui/dom/elements.hpp" // for text, bgcolor, color, vbox, hbox, separator, operator|, Elements, Element, Fit, border
+
12#include "ftxui/dom/node.hpp" // for Render
+
13#include "ftxui/screen/color.hpp" // for Color, Color::Black, Color::Blue, Color::BlueLight, Color::Cyan, Color::CyanLight, Color::Default, Color::GrayDark, Color::GrayLight, Color::Green, Color::GreenLight, Color::Magenta, Color::MagentaLight, Color::Red, Color::RedLight, Color::White, Color::Yellow, Color::YellowLight, Color::Palette256, ftxui
+
14
+
15using namespace ftxui;
+
16#include "./color_info_sorted_2d.ipp" // for ColorInfoSorted2D
+
17
+
+
18int main() {
+
19 // clang-format off
+
20 auto basic_color_display =
+
21 vbox(
+
22 text("16 color palette:"),
+
23 separator(),
+
24 hbox(
+
25 vbox(
+
26 color(Color::Default, text("Default")),
+
27 color(Color::Black, text("Black")),
+
28 color(Color::GrayDark, text("GrayDark")),
+
29 color(Color::GrayLight, text("GrayLight")),
+
30 color(Color::White, text("White")),
+
31 color(Color::Blue, text("Blue")),
+
32 color(Color::BlueLight, text("BlueLight")),
+
33 color(Color::Cyan, text("Cyan")),
+
34 color(Color::CyanLight, text("CyanLight")),
+
35 color(Color::Green, text("Green")),
+
36 color(Color::GreenLight, text("GreenLight")),
+
37 color(Color::Magenta, text("Magenta")),
+
38 color(Color::MagentaLight, text("MagentaLight")),
+
39 color(Color::Red, text("Red")),
+
40 color(Color::RedLight, text("RedLight")),
+
41 color(Color::Yellow, text("Yellow")),
+
42 color(Color::YellowLight, text("YellowLight"))
+
43 ),
+
44 vbox(
+
45 bgcolor(Color::Default, text("Default")),
+
46 bgcolor(Color::Black, text("Black")),
+
47 bgcolor(Color::GrayDark, text("GrayDark")),
+
48 bgcolor(Color::GrayLight, text("GrayLight")),
+
49 bgcolor(Color::White, text("White")),
+
50 bgcolor(Color::Blue, text("Blue")),
+
51 bgcolor(Color::BlueLight, text("BlueLight")),
+
52 bgcolor(Color::Cyan, text("Cyan")),
+
53 bgcolor(Color::CyanLight, text("CyanLight")),
+
54 bgcolor(Color::Green, text("Green")),
+
55 bgcolor(Color::GreenLight, text("GreenLight")),
+
56 bgcolor(Color::Magenta, text("Magenta")),
+
57 bgcolor(Color::MagentaLight, text("MagentaLight")),
+
58 bgcolor(Color::Red, text("Red")),
+
59 bgcolor(Color::RedLight, text("RedLight")),
+
60 bgcolor(Color::Yellow, text("Yellow")),
+
61 bgcolor(Color::YellowLight, text("YellowLight"))
+
62 )
+
63 )
+
64 );
+
65
+
66 // clang-format on
+
67 auto palette_256_color_display = text("256 colors palette:");
+
68 {
+
69 std::vector<std::vector<ColorInfo>> info_columns = ColorInfoSorted2D();
+
70 Elements columns;
+
71 for (auto& column : info_columns) {
+
72 Elements column_elements;
+
73 for (auto& it : column) {
+
74 column_elements.push_back(
+
75 text(" ") | bgcolor(Color(Color::Palette256(it.index_256))));
+
76 }
+
77 columns.push_back(hbox(std::move(column_elements)));
+
78 }
+
79 palette_256_color_display = vbox({
+
80 palette_256_color_display,
+
81 separator(),
+
82 vbox(columns),
+
83 });
+
84 }
+
85
+
86 // True color display.
+
87 auto true_color_display = text("TrueColors: 24bits:");
+
88 {
+
89 const int max_value = 255;
+
90 const int value_increment = 8;
+
91 const int hue_increment = 6;
+
92 int saturation = max_value;
+
93 Elements array;
+
94 for (int value = 0; value < max_value; value += 2 * value_increment) {
+
95 Elements line;
+
96 for (int hue = 0; hue < max_value; hue += hue_increment) {
+
97 line.push_back(
+
98 text("▀") //
+
99 | color(Color::HSV(hue, saturation, value)) //
+
100 | bgcolor(Color::HSV(hue, saturation, value + value_increment)));
+
101 }
+
102 array.push_back(hbox(std::move(line)));
+
103 }
+
104 true_color_display = vbox({
+
105 true_color_display,
+
106 separator(),
+
107 vbox(std::move(array)),
+
108 });
+
109 }
+
110
+
111 auto terminal_info =
+
112 vbox({
+
113 Terminal::ColorSupport() >= Terminal::Color::Palette16
+
114 ? text(" 16 color palette support : Yes")
+
115 : text(" 16 color palette support : No"),
+
116 Terminal::ColorSupport() >= Terminal::Color::Palette256
+
117 ? text("256 color palette support : Yes")
+
118 : text("256 color palette support : No"),
+
119 Terminal::ColorSupport() >= Terminal::Color::TrueColor
+
120 ? text(" True color support : Yes")
+
121 : text(" True color support : No"),
+
122 }) |
+
123 border;
+
124
+
125 auto document = vbox({hbox({
+
126 basic_color_display,
+
127 text(" "),
+
128 palette_256_color_display,
+
129 text(" "),
+
130 true_color_display,
+
131 }),
+
132 terminal_info});
+
133 // clang-format on
+
134
+
135 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
+
136 Render(screen, document);
+
137
+
138 screen.Print();
+
139
+
140 return 0;
+
141}
+
+ + + + +
std::vector< std::vector< ftxui::ColorInfo > > ColorInfoSorted2D()
+ +
Decorator bgcolor(Color)
Decorate using a background color.
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element separator()
Draw a vertical or horizontal separation in between two other elements.
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
Decorator color(Color)
Decorate using a foreground color.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+
static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
+
static Screen Create(Dimensions dimension)
Create a screen with the given dimension.
Definition screen.cpp:395
+ + + + + + + + + + + + + + + + + + +
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
Color ColorSupport()
Get the color support of the terminal.
Definition terminal.cpp:130
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+
std::vector< Element > Elements
Definition elements.hpp:23
+ + + +
+
+ + + + + diff --git a/color__info_8cpp.html b/color__info_8cpp.html new file mode 100644 index 000000000..2e69bd00d --- /dev/null +++ b/color__info_8cpp.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: color_info.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_info.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + +

+Functions

ColorInfo GetColorInfo (Color::Palette256 index)
 
ColorInfo GetColorInfo (Color::Palette16 index)
 
+ + + +

+Variables

const std::array< ColorInfo, 256 > palette256
 
+
+
+ + + + + diff --git a/color__info_8cpp.js b/color__info_8cpp.js new file mode 100644 index 000000000..8cffdc766 --- /dev/null +++ b/color__info_8cpp.js @@ -0,0 +1,6 @@ +var color__info_8cpp = +[ + [ "GetColorInfo", "color__info_8cpp.html#a883a81f30fb771a82f6c87b77ac3658e", null ], + [ "GetColorInfo", "color__info_8cpp.html#ad5dd7fa2651003bf7c9f8b58de9b0a93", null ], + [ "palette256", "color__info_8cpp.html#acc77ce2876ca75e8d5fe8925a45592d1", null ] +]; \ No newline at end of file diff --git a/color__info_8cpp_source.html b/color__info_8cpp_source.html new file mode 100644 index 000000000..ab80bb5c6 --- /dev/null +++ b/color__info_8cpp_source.html @@ -0,0 +1,504 @@ + + + + + + + + +FTXUI: color_info.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_info.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+ +
5
+
6#include <array>
+
7
+
8#include "ftxui/screen/color.hpp" // for Color, Color::Palette16, Color::Palette256
+
9
+
10namespace ftxui {
+
11
+
12// clang-format off
+
+
13const std::array<ColorInfo, 256> palette256 = {{
+
14 {"Black" , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ,
+
15 {"Red" , 1 , 1 , 128 , 0 , 0 , 0 , 255 , 128 } ,
+
16 {"Green" , 2 , 2 , 0 , 128 , 0 , 85 , 255 , 128 } ,
+
17 {"Yellow" , 3 , 3 , 128 , 128 , 0 , 43 , 255 , 128 } ,
+
18 {"Blue" , 4 , 4 , 0 , 0 , 128 , 171 , 255 , 128 } ,
+
19 {"Magenta" , 5 , 5 , 128 , 0 , 128 , 213 , 255 , 128 } ,
+
20 {"Cyan" , 6 , 6 , 0 , 128 , 128 , 128 , 255 , 128 } ,
+
21 {"GrayLight" , 7 , 7 , 192 , 192 , 192 , 0 , 0 , 192 } ,
+
22 {"GrayDark" , 8 , 8 , 128 , 128 , 128 , 0 , 0 , 128 } ,
+
23 {"RedLight" , 9 , 9 , 255 , 0 , 0 , 0 , 255 , 255 } ,
+
24 {"GreenLight" , 10 , 10 , 0 , 255 , 0 , 85 , 255 , 255 } ,
+
25 {"YellowLight" , 11 , 11 , 255 , 255 , 0 , 43 , 255 , 255 } ,
+
26 {"BlueLight" , 12 , 12 , 0 , 0 , 255 , 171 , 255 , 255 } ,
+
27 {"MagentaLight" , 13 , 13 , 255 , 0 , 255 , 213 , 255 , 255 } ,
+
28 {"CyanLight" , 14 , 14 , 0 , 255 , 255 , 128 , 255 , 255 } ,
+
29 {"White" , 15 , 15 , 255 , 255 , 255 , 0 , 0 , 255 } ,
+
30 {"Grey0" , 16 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ,
+
31 {"NavyBlue" , 17 , 4 , 0 , 0 , 95 , 171 , 255 , 95 } ,
+
32 {"DarkBlue" , 18 , 4 , 0 , 0 , 135 , 171 , 255 , 135 } ,
+
33 {"Blue3" , 19 , 4 , 0 , 0 , 175 , 171 , 255 , 175 } ,
+
34 {"Blue3Bis" , 20 , 12 , 0 , 0 , 215 , 171 , 255 , 215 } ,
+
35 {"Blue1" , 21 , 12 , 0 , 0 , 255 , 171 , 255 , 255 } ,
+
36 {"DarkGreen" , 22 , 2 , 0 , 95 , 0 , 85 , 255 , 95 } ,
+
37 {"DeepSkyBlue4" , 23 , 6 , 0 , 95 , 95 , 128 , 255 , 95 } ,
+
38 {"DeepSkyBlue4Bis" , 24 , 6 , 0 , 95 , 135 , 141 , 255 , 135 } ,
+
39 {"DeepSkyBlue4Ter" , 25 , 6 , 0 , 95 , 175 , 148 , 255 , 175 } ,
+
40 {"DodgerBlue3" , 26 , 12 , 0 , 95 , 215 , 152 , 255 , 215 } ,
+
41 {"DodgerBlue2" , 27 , 12 , 0 , 95 , 255 , 155 , 255 , 255 } ,
+
42 {"Green4" , 28 , 2 , 0 , 135 , 0 , 85 , 255 , 135 } ,
+
43 {"SpringGreen4" , 29 , 6 , 0 , 135 , 95 , 115 , 255 , 135 } ,
+
44 {"Turquoise4" , 30 , 6 , 0 , 135 , 135 , 128 , 255 , 135 } ,
+
45 {"DeepSkyBlue3" , 31 , 6 , 0 , 135 , 175 , 138 , 255 , 175 } ,
+
46 {"DeepSkyBlue3Bis" , 32 , 14 , 0 , 135 , 215 , 144 , 255 , 215 } ,
+
47 {"DodgerBlue1" , 33 , 14 , 0 , 135 , 255 , 149 , 255 , 255 } ,
+
48 {"Green3" , 34 , 2 , 0 , 175 , 0 , 85 , 255 , 175 } ,
+
49 {"SpringGreen3" , 35 , 6 , 0 , 175 , 95 , 108 , 255 , 175 } ,
+
50 {"DarkCyan" , 36 , 6 , 0 , 175 , 135 , 118 , 255 , 175 } ,
+
51 {"LightSeaGreen" , 37 , 6 , 0 , 175 , 175 , 128 , 255 , 175 } ,
+
52 {"DeepSkyBlue2" , 38 , 14 , 0 , 175 , 215 , 136 , 255 , 215 } ,
+
53 {"DeepSkyBlue1" , 39 , 14 , 0 , 175 , 255 , 142 , 255 , 255 } ,
+
54 {"Green3Bis" , 40 , 10 , 0 , 215 , 0 , 85 , 255 , 215 } ,
+
55 {"SpringGreen3Bis" , 41 , 10 , 0 , 215 , 95 , 104 , 255 , 215 } ,
+
56 {"SpringGreen2" , 42 , 14 , 0 , 215 , 135 , 112 , 255 , 215 } ,
+
57 {"Cyan3" , 43 , 14 , 0 , 215 , 175 , 120 , 255 , 215 } ,
+
58 {"DarkTurquoise" , 44 , 14 , 0 , 215 , 215 , 128 , 255 , 215 } ,
+
59 {"Turquoise2" , 45 , 14 , 0 , 215 , 255 , 135 , 255 , 255 } ,
+
60 {"Green1" , 46 , 10 , 0 , 255 , 0 , 85 , 255 , 255 } ,
+
61 {"SpringGreen2Bis" , 47 , 10 , 0 , 255 , 95 , 101 , 255 , 255 } ,
+
62 {"SpringGreen1" , 48 , 14 , 0 , 255 , 135 , 107 , 255 , 255 } ,
+
63 {"MediumSpringGreen" , 49 , 14 , 0 , 255 , 175 , 114 , 255 , 255 } ,
+
64 {"Cyan2" , 50 , 14 , 0 , 255 , 215 , 121 , 255 , 255 } ,
+
65 {"Cyan1" , 51 , 14 , 0 , 255 , 255 , 128 , 255 , 255 } ,
+
66 {"DarkRed" , 52 , 1 , 95 , 0 , 0 , 0 , 255 , 95 } ,
+
67 {"DeepPink4Ter" , 53 , 5 , 95 , 0 , 95 , 213 , 255 , 95 } ,
+
68 {"Purple4" , 54 , 5 , 95 , 0 , 135 , 201 , 255 , 135 } ,
+
69 {"Purple4Bis" , 55 , 5 , 95 , 0 , 175 , 194 , 255 , 175 } ,
+
70 {"Purple3" , 56 , 12 , 95 , 0 , 215 , 190 , 255 , 215 } ,
+
71 {"BlueViolet" , 57 , 12 , 95 , 0 , 255 , 187 , 255 , 255 } ,
+
72 {"Orange4" , 58 , 3 , 95 , 95 , 0 , 43 , 255 , 95 } ,
+
73 {"Grey37" , 59 , 8 , 95 , 95 , 95 , 0 , 0 , 95 } ,
+
74 {"MediumPurple4" , 60 , 4 , 95 , 95 , 135 , 171 , 75 , 135 } ,
+
75 {"SlateBlue3" , 61 , 4 , 95 , 95 , 175 , 171 , 116 , 175 } ,
+
76 {"SlateBlue3Bis" , 62 , 12 , 95 , 95 , 215 , 171 , 142 , 215 } ,
+
77 {"RoyalBlue1" , 63 , 12 , 95 , 95 , 255 , 171 , 160 , 255 } ,
+
78 {"Chartreuse4" , 64 , 3 , 95 , 135 , 0 , 55 , 255 , 135 } ,
+
79 {"DarkSeaGreen4" , 65 , 8 , 95 , 135 , 95 , 85 , 75 , 135 } ,
+
80 {"PaleTurquoise4" , 66 , 6 , 95 , 135 , 135 , 128 , 75 , 135 } ,
+
81 {"SteelBlue" , 67 , 4 , 95 , 135 , 175 , 150 , 116 , 175 } ,
+
82 {"SteelBlue3" , 68 , 12 , 95 , 135 , 215 , 157 , 142 , 215 } ,
+
83 {"CornflowerBlue" , 69 , 12 , 95 , 135 , 255 , 161 , 160 , 255 } ,
+
84 {"Chartreuse3" , 70 , 3 , 95 , 175 , 0 , 62 , 255 , 175 } ,
+
85 {"DarkSeaGreen4Bis" , 71 , 2 , 95 , 175 , 95 , 85 , 116 , 175 } ,
+
86 {"CadetBlue" , 72 , 2 , 95 , 175 , 135 , 106 , 116 , 175 } ,
+
87 {"CadetBlueBis" , 73 , 6 , 95 , 175 , 175 , 128 , 116 , 175 } ,
+
88 {"SkyBlue3" , 74 , 14 , 95 , 175 , 215 , 143 , 142 , 215 } ,
+
89 {"SteelBlue1" , 75 , 12 , 95 , 175 , 255 , 150 , 160 , 255 } ,
+
90 {"Chartreuse3Bis" , 76 , 10 , 95 , 215 , 0 , 66 , 255 , 215 } ,
+
91 {"PaleGreen3Bis" , 77 , 10 , 95 , 215 , 95 , 85 , 142 , 215 } ,
+
92 {"SeaGreen3" , 78 , 10 , 95 , 215 , 135 , 99 , 142 , 215 } ,
+
93 {"Aquamarine3" , 79 , 14 , 95 , 215 , 175 , 113 , 142 , 215 } ,
+
94 {"MediumTurquoise" , 80 , 14 , 95 , 215 , 215 , 128 , 142 , 215 } ,
+
95 {"SteelBlue1Bis" , 81 , 14 , 95 , 215 , 255 , 139 , 160 , 255 } ,
+
96 {"Chartreuse2Bis" , 82 , 10 , 95 , 255 , 0 , 69 , 255 , 255 } ,
+
97 {"SeaGreen2" , 83 , 10 , 95 , 255 , 95 , 85 , 160 , 255 } ,
+
98 {"SeaGreen1" , 84 , 10 , 95 , 255 , 135 , 95 , 160 , 255 } ,
+
99 {"SeaGreen1Bis" , 85 , 10 , 95 , 255 , 175 , 106 , 160 , 255 } ,
+
100 {"Aquamarine1Bis" , 86 , 14 , 95 , 255 , 215 , 117 , 160 , 255 } ,
+
101 {"DarkSlateGray2" , 87 , 14 , 95 , 255 , 255 , 128 , 160 , 255 } ,
+
102 {"DarkRedBis" , 88 , 1 , 135 , 0 , 0 , 0 , 255 , 135 } ,
+
103 {"DeepPink4Bis" , 89 , 5 , 135 , 0 , 95 , 226 , 255 , 135 } ,
+
104 {"DarkMagenta" , 90 , 5 , 135 , 0 , 135 , 213 , 255 , 135 } ,
+
105 {"DarkMagentaBis" , 91 , 5 , 135 , 0 , 175 , 204 , 255 , 175 } ,
+
106 {"DarkVioletBis" , 92 , 13 , 135 , 0 , 215 , 198 , 255 , 215 } ,
+
107 {"PurpleBis" , 93 , 13 , 135 , 0 , 255 , 193 , 255 , 255 } ,
+
108 {"Orange4Bis" , 94 , 3 , 135 , 95 , 0 , 30 , 255 , 135 } ,
+
109 {"LightPink4" , 95 , 8 , 135 , 95 , 95 , 0 , 75 , 135 } ,
+
110 {"Plum4" , 96 , 5 , 135 , 95 , 135 , 213 , 75 , 135 } ,
+
111 {"MediumPurple3" , 97 , 4 , 135 , 95 , 175 , 192 , 116 , 175 } ,
+
112 {"MediumPurple3Bis" , 98 , 12 , 135 , 95 , 215 , 185 , 142 , 215 } ,
+
113 {"SlateBlue1" , 99 , 12 , 135 , 95 , 255 , 181 , 160 , 255 } ,
+
114 {"Yellow4" , 100 , 3 , 135 , 135 , 0 , 43 , 255 , 135 } ,
+
115 {"Wheat4" , 101 , 8 , 135 , 135 , 95 , 43 , 75 , 135 } ,
+
116 {"Grey53" , 102 , 8 , 135 , 135 , 135 , 0 , 0 , 135 } ,
+
117 {"LightSlateGrey" , 103 , 4 , 135 , 135 , 175 , 171 , 58 , 175 } ,
+
118 {"MediumPurple" , 104 , 12 , 135 , 135 , 215 , 171 , 94 , 215 } ,
+
119 {"LightSlateBlue" , 105 , 12 , 135 , 135 , 255 , 171 , 120 , 255 } ,
+
120 {"Yellow4Bis" , 106 , 3 , 135 , 175 , 0 , 52 , 255 , 175 } ,
+
121 {"DarkOliveGreen3" , 107 , 7 , 135 , 175 , 95 , 64 , 116 , 175 } ,
+
122 {"DarkSeaGreen" , 108 , 7 , 135 , 175 , 135 , 85 , 58 , 175 } ,
+
123 {"LightSkyBlue3" , 109 , 7 , 135 , 175 , 175 , 128 , 58 , 175 } ,
+
124 {"LightSkyBlue3Bis" , 110 , 12 , 135 , 175 , 215 , 150 , 94 , 215 } ,
+
125 {"SkyBlue2" , 111 , 12 , 135 , 175 , 255 , 157 , 120 , 255 } ,
+
126 {"Chartreuse2" , 112 , 11 , 135 , 215 , 0 , 58 , 255 , 215 } ,
+
127 {"DarkOliveGreen3Bis" , 113 , 10 , 135 , 215 , 95 , 71 , 142 , 215 } ,
+
128 {"PaleGreen3" , 114 , 7 , 135 , 215 , 135 , 85 , 94 , 215 } ,
+
129 {"DarkSeaGreen3" , 115 , 10 , 135 , 215 , 175 , 106 , 94 , 215 } ,
+
130 {"DarkSlateGray3" , 116 , 14 , 135 , 215 , 215 , 128 , 94 , 215 } ,
+
131 {"SkyBlue1" , 117 , 14 , 135 , 215 , 255 , 143 , 120 , 255 } ,
+
132 {"Chartreuse1" , 118 , 11 , 135 , 255 , 0 , 63 , 255 , 255 } ,
+
133 {"LightGreen" , 119 , 10 , 135 , 255 , 95 , 75 , 160 , 255 } ,
+
134 {"LightGreenBis" , 120 , 10 , 135 , 255 , 135 , 85 , 120 , 255 } ,
+
135 {"PaleGreen1" , 121 , 10 , 135 , 255 , 175 , 99 , 120 , 255 } ,
+
136 {"Aquamarine1" , 122 , 14 , 135 , 255 , 215 , 113 , 120 , 255 } ,
+
137 {"DarkSlateGray1" , 123 , 14 , 135 , 255 , 255 , 128 , 120 , 255 } ,
+
138 {"Red3" , 124 , 1 , 175 , 0 , 0 , 0 , 255 , 175 } ,
+
139 {"DeepPink4" , 125 , 5 , 175 , 0 , 95 , 233 , 255 , 175 } ,
+
140 {"MediumVioletRed" , 126 , 5 , 175 , 0 , 135 , 223 , 255 , 175 } ,
+
141 {"Magenta3" , 127 , 5 , 175 , 0 , 175 , 213 , 255 , 175 } ,
+
142 {"DarkViolet" , 128 , 13 , 175 , 0 , 215 , 206 , 255 , 215 } ,
+
143 {"Purple" , 129 , 13 , 175 , 0 , 255 , 200 , 255 , 255 } ,
+
144 {"DarkOrange3" , 130 , 3 , 175 , 95 , 0 , 23 , 255 , 175 } ,
+
145 {"IndianRed" , 131 , 7 , 175 , 95 , 95 , 0 , 116 , 175 } ,
+
146 {"HotPink3" , 132 , 5 , 175 , 95 , 135 , 235 , 116 , 175 } ,
+
147 {"MediumOrchid3" , 133 , 5 , 175 , 95 , 175 , 213 , 116 , 175 } ,
+
148 {"MediumOrchid" , 134 , 13 , 175 , 95 , 215 , 199 , 142 , 215 } ,
+
149 {"MediumPurple2" , 135 , 12 , 175 , 95 , 255 , 192 , 160 , 255 } ,
+
150 {"DarkGoldenrod" , 136 , 3 , 175 , 135 , 0 , 33 , 255 , 175 } ,
+
151 {"LightSalmon3" , 137 , 7 , 175 , 135 , 95 , 21 , 116 , 175 } ,
+
152 {"RosyBrown" , 138 , 7 , 175 , 135 , 135 , 0 , 58 , 175 } ,
+
153 {"Grey63" , 139 , 5 , 175 , 135 , 175 , 213 , 58 , 175 } ,
+
154 {"MediumPurple2Bis" , 140 , 12 , 175 , 135 , 215 , 192 , 94 , 215 } ,
+
155 {"MediumPurple1" , 141 , 12 , 175 , 135 , 255 , 185 , 120 , 255 } ,
+
156 {"Gold3" , 142 , 3 , 175 , 175 , 0 , 43 , 255 , 175 } ,
+
157 {"DarkKhaki" , 143 , 7 , 175 , 175 , 95 , 43 , 116 , 175 } ,
+
158 {"NavajoWhite3" , 144 , 7 , 175 , 175 , 135 , 43 , 58 , 175 } ,
+
159 {"Grey69" , 145 , 7 , 175 , 175 , 175 , 0 , 0 , 175 } ,
+
160 {"LightSteelBlue3" , 146 , 12 , 175 , 175 , 215 , 171 , 47 , 215 } ,
+
161 {"LightSteelBlue" , 147 , 12 , 175 , 175 , 255 , 171 , 80 , 255 } ,
+
162 {"Yellow3" , 148 , 11 , 175 , 215 , 0 , 50 , 255 , 215 } ,
+
163 {"DarkOliveGreen3Ter" , 149 , 11 , 175 , 215 , 95 , 57 , 142 , 215 } ,
+
164 {"DarkSeaGreen3Bis" , 150 , 7 , 175 , 215 , 135 , 64 , 94 , 215 } ,
+
165 {"DarkSeaGreen2" , 151 , 7 , 175 , 215 , 175 , 85 , 47 , 215 } ,
+
166 {"LightCyan3" , 152 , 7 , 175 , 215 , 215 , 128 , 47 , 215 } ,
+
167 {"LightSkyBlue1" , 153 , 12 , 175 , 215 , 255 , 150 , 80 , 255 } ,
+
168 {"GreenYellow" , 154 , 11 , 175 , 255 , 0 , 56 , 255 , 255 } ,
+
169 {"DarkOliveGreen2" , 155 , 10 , 175 , 255 , 95 , 64 , 160 , 255 } ,
+
170 {"PaleGreen1Bis" , 156 , 10 , 175 , 255 , 135 , 71 , 120 , 255 } ,
+
171 {"DarkSeaGreen2Bis" , 157 , 15 , 175 , 255 , 175 , 85 , 80 , 255 } ,
+
172 {"DarkSeaGreen1" , 158 , 15 , 175 , 255 , 215 , 106 , 80 , 255 } ,
+
173 {"PaleTurquoise1" , 159 , 14 , 175 , 255 , 255 , 128 , 80 , 255 } ,
+
174 {"Red3Bis" , 160 , 9 , 215 , 0 , 0 , 0 , 255 , 215 } ,
+
175 {"DeepPink3" , 161 , 13 , 215 , 0 , 95 , 237 , 255 , 215 } ,
+
176 {"DeepPink3Bis" , 162 , 13 , 215 , 0 , 135 , 229 , 255 , 215 } ,
+
177 {"Magenta3Bis" , 163 , 13 , 215 , 0 , 175 , 221 , 255 , 215 } ,
+
178 {"Magenta3Ter" , 164 , 13 , 215 , 0 , 215 , 213 , 255 , 215 } ,
+
179 {"Magenta2" , 165 , 13 , 215 , 0 , 255 , 207 , 255 , 255 } ,
+
180 {"DarkOrange3Bis" , 166 , 9 , 215 , 95 , 0 , 19 , 255 , 215 } ,
+
181 {"IndianRedBis" , 167 , 9 , 215 , 95 , 95 , 0 , 142 , 215 } ,
+
182 {"HotPink3Bis" , 168 , 13 , 215 , 95 , 135 , 242 , 142 , 215 } ,
+
183 {"HotPink2" , 169 , 13 , 215 , 95 , 175 , 228 , 142 , 215 } ,
+
184 {"Orchid" , 170 , 13 , 215 , 95 , 215 , 213 , 142 , 215 } ,
+
185 {"MediumOrchid1" , 171 , 13 , 215 , 95 , 255 , 203 , 160 , 255 } ,
+
186 {"Orange3" , 172 , 11 , 215 , 135 , 0 , 27 , 255 , 215 } ,
+
187 {"LightSalmon3" , 173 , 9 , 215 , 135 , 95 , 14 , 142 , 215 } ,
+
188 {"LightPink3" , 174 , 7 , 215 , 135 , 135 , 0 , 94 , 215 } ,
+
189 {"Pink3" , 175 , 13 , 215 , 135 , 175 , 235 , 94 , 215 } ,
+
190 {"Plum3" , 176 , 13 , 215 , 135 , 215 , 213 , 94 , 215 } ,
+
191 {"Violet" , 177 , 13 , 215 , 135 , 255 , 199 , 120 , 255 } ,
+
192 {"Gold3Bis" , 178 , 11 , 215 , 175 , 0 , 35 , 255 , 215 } ,
+
193 {"LightGoldenrod3" , 179 , 11 , 215 , 175 , 95 , 28 , 142 , 215 } ,
+
194 {"Tan" , 180 , 7 , 215 , 175 , 135 , 21 , 94 , 215 } ,
+
195 {"MistyRose3" , 181 , 7 , 215 , 175 , 175 , 0 , 47 , 215 } ,
+
196 {"Thistle3" , 182 , 13 , 215 , 175 , 215 , 213 , 47 , 215 } ,
+
197 {"Plum2" , 183 , 12 , 215 , 175 , 255 , 192 , 80 , 255 } ,
+
198 {"Yellow3Bis" , 184 , 11 , 215 , 215 , 0 , 43 , 255 , 215 } ,
+
199 {"Khaki3" , 185 , 11 , 215 , 215 , 95 , 43 , 142 , 215 } ,
+
200 {"LightGoldenrod2" , 186 , 7 , 215 , 215 , 135 , 43 , 94 , 215 } ,
+
201 {"LightYellow3" , 187 , 7 , 215 , 215 , 175 , 43 , 47 , 215 } ,
+
202 {"Grey84" , 188 , 7 , 215 , 215 , 215 , 0 , 0 , 215 } ,
+
203 {"LightSteelBlue1" , 189 , 12 , 215 , 215 , 255 , 171 , 40 , 255 } ,
+
204 {"Yellow2" , 190 , 11 , 215 , 255 , 0 , 49 , 255 , 255 } ,
+
205 {"DarkOliveGreen1" , 191 , 11 , 215 , 255 , 95 , 53 , 160 , 255 } ,
+
206 {"DarkOliveGreen1Bis" , 192 , 11 , 215 , 255 , 135 , 57 , 120 , 255 } ,
+
207 {"DarkSeaGreen1Bis" , 193 , 15 , 215 , 255 , 175 , 64 , 80 , 255 } ,
+
208 {"Honeydew2" , 194 , 15 , 215 , 255 , 215 , 85 , 40 , 255 } ,
+
209 {"LightCyan1Bis" , 195 , 15 , 215 , 255 , 255 , 128 , 40 , 255 } ,
+
210 {"Red1" , 196 , 9 , 255 , 0 , 0 , 0 , 255 , 255 } ,
+
211 {"DeepPink2" , 197 , 13 , 255 , 0 , 95 , 240 , 255 , 255 } ,
+
212 {"DeepPink1" , 198 , 13 , 255 , 0 , 135 , 234 , 255 , 255 } ,
+
213 {"DeepPink1Bis" , 199 , 13 , 255 , 0 , 175 , 227 , 255 , 255 } ,
+
214 {"Magenta2Bis" , 200 , 13 , 255 , 0 , 215 , 220 , 255 , 255 } ,
+
215 {"Magenta1" , 201 , 13 , 255 , 0 , 255 , 213 , 255 , 255 } ,
+
216 {"OrangeRed1" , 202 , 9 , 255 , 95 , 0 , 16 , 255 , 255 } ,
+
217 {"IndianRed1" , 203 , 9 , 255 , 95 , 95 , 0 , 160 , 255 } ,
+
218 {"IndianRed1Bis" , 204 , 13 , 255 , 95 , 135 , 246 , 160 , 255 } ,
+
219 {"HotPink" , 205 , 13 , 255 , 95 , 175 , 235 , 160 , 255 } ,
+
220 {"HotPinkBis" , 206 , 13 , 255 , 95 , 215 , 224 , 160 , 255 } ,
+
221 {"MediumOrchid1Bis" , 207 , 13 , 255 , 95 , 255 , 213 , 160 , 255 } ,
+
222 {"DarkOrange" , 208 , 11 , 255 , 135 , 0 , 22 , 255 , 255 } ,
+
223 {"Salmon1" , 209 , 9 , 255 , 135 , 95 , 10 , 160 , 255 } ,
+
224 {"LightCoral" , 210 , 15 , 255 , 135 , 135 , 0 , 120 , 255 } ,
+
225 {"PaleVioletRed1" , 211 , 13 , 255 , 135 , 175 , 242 , 120 , 255 } ,
+
226 {"Orchid2" , 212 , 13 , 255 , 135 , 215 , 228 , 120 , 255 } ,
+
227 {"Orchid1" , 213 , 13 , 255 , 135 , 255 , 213 , 120 , 255 } ,
+
228 {"Orange1" , 214 , 11 , 255 , 175 , 0 , 29 , 255 , 255 } ,
+
229 {"SandyBrown" , 215 , 9 , 255 , 175 , 95 , 21 , 160 , 255 } ,
+
230 {"LightSalmon1" , 216 , 15 , 255 , 175 , 135 , 14 , 120 , 255 } ,
+
231 {"LightPink1" , 217 , 15 , 255 , 175 , 175 , 0 , 80 , 255 } ,
+
232 {"Pink1" , 218 , 13 , 255 , 175 , 215 , 235 , 80 , 255 } ,
+
233 {"Plum1" , 219 , 13 , 255 , 175 , 255 , 213 , 80 , 255 } ,
+
234 {"Gold1" , 220 , 11 , 255 , 215 , 0 , 36 , 255 , 255 } ,
+
235 {"LightGoldenrod2Bis" , 221 , 11 , 255 , 215 , 95 , 32 , 160 , 255 } ,
+
236 {"LightGoldenrod2Ter" , 222 , 15 , 255 , 215 , 135 , 28 , 120 , 255 } ,
+
237 {"NavajoWhite1" , 223 , 15 , 255 , 215 , 175 , 21 , 80 , 255 } ,
+
238 {"MistyRose1" , 224 , 15 , 255 , 215 , 215 , 0 , 40 , 255 } ,
+
239 {"Thistle1" , 225 , 13 , 255 , 215 , 255 , 213 , 40 , 255 } ,
+
240 {"Yellow1" , 226 , 11 , 255 , 255 , 0 , 43 , 255 , 255 } ,
+
241 {"LightGoldenrod1" , 227 , 11 , 255 , 255 , 95 , 43 , 160 , 255 } ,
+
242 {"Khaki1" , 228 , 15 , 255 , 255 , 135 , 43 , 120 , 255 } ,
+
243 {"Wheat1" , 229 , 15 , 255 , 255 , 175 , 43 , 80 , 255 } ,
+
244 {"Cornsilk1" , 230 , 15 , 255 , 255 , 215 , 43 , 40 , 255 } ,
+
245 {"Grey100" , 231 , 15 , 255 , 255 , 255 , 0 , 0 , 255 } ,
+
246 {"Grey3" , 232 , 0 , 8 , 8 , 8 , 0 , 0 , 8 } ,
+
247 {"Grey7" , 233 , 0 , 18 , 18 , 18 , 0 , 0 , 18 } ,
+
248 {"Grey11" , 234 , 0 , 28 , 28 , 28 , 0 , 0 , 28 } ,
+
249 {"Grey15" , 235 , 0 , 38 , 38 , 38 , 0 , 0 , 38 } ,
+
250 {"Grey19" , 236 , 0 , 48 , 48 , 48 , 0 , 0 , 48 } ,
+
251 {"Grey23" , 237 , 0 , 58 , 58 , 58 , 0 , 0 , 58 } ,
+
252 {"Grey27" , 238 , 8 , 68 , 68 , 68 , 0 , 0 , 68 } ,
+
253 {"Grey30" , 239 , 8 , 78 , 78 , 78 , 0 , 0 , 78 } ,
+
254 {"Grey35" , 240 , 8 , 88 , 88 , 88 , 0 , 0 , 88 } ,
+
255 {"Grey39" , 241 , 8 , 98 , 98 , 98 , 0 , 0 , 98 } ,
+
256 {"Grey42" , 242 , 8 , 108 , 108 , 108 , 0 , 0 , 108 } ,
+
257 {"Grey46" , 243 , 8 , 118 , 118 , 118 , 0 , 0 , 118 } ,
+
258 {"Grey50" , 244 , 8 , 128 , 128 , 128 , 0 , 0 , 128 } ,
+
259 {"Grey54" , 245 , 8 , 138 , 138 , 138 , 0 , 0 , 138 } ,
+
260 {"Grey58" , 246 , 8 , 148 , 148 , 148 , 0 , 0 , 148 } ,
+
261 {"Grey62" , 247 , 8 , 158 , 158 , 158 , 0 , 0 , 158 } ,
+
262 {"Grey66" , 248 , 7 , 168 , 168 , 168 , 0 , 0 , 168 } ,
+
263 {"Grey70" , 249 , 7 , 178 , 178 , 178 , 0 , 0 , 178 } ,
+
264 {"Grey74" , 250 , 7 , 188 , 188 , 188 , 0 , 0 , 188 } ,
+
265 {"Grey78" , 251 , 7 , 198 , 198 , 198 , 0 , 0 , 198 } ,
+
266 {"Grey82" , 252 , 7 , 208 , 208 , 208 , 0 , 0 , 208 } ,
+
267 {"Grey85" , 253 , 7 , 218 , 218 , 218 , 0 , 0 , 218 } ,
+
268 {"Grey89" , 254 , 15 , 228 , 228 , 228 , 0 , 0 , 228 } ,
+
269 {"Grey93" , 255 , 15 , 238 , 238 , 238 , 0 , 0 , 238 } ,
+
270}};
+
+
271
+
+ +
273 return palette256[index]; // NOLINT;
+
274}
+
+
275
+
+ +
277 return palette256[index]; // NOLINT;
+
278}
+
+
279// clang-format off
+
280
+
281}
+ + + + +
ColorInfo is a structure that contains information about the terminal color palette.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
ColorInfo GetColorInfo(Color::Palette256 index)
+
const std::array< ColorInfo, 256 > palette256
+
+
+ + + + + diff --git a/color__info_8cppm.html b/color__info_8cppm.html new file mode 100644 index 000000000..0f8bf0632 --- /dev/null +++ b/color__info_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: color_info.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_info.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/color__info_8cppm_source.html b/color__info_8cppm_source.html new file mode 100644 index 000000000..ff4f891a0 --- /dev/null +++ b/color__info_8cppm_source.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: color_info.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_info.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.screen.color_info
+
2/// @brief Module file for the ColorInfo struct of the Screen module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.screen.color_info;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::ColorInfo;
+
16
+
17 using ftxui::GetColorInfo;
+
18}
+ +
ColorInfo is a structure that contains information about the terminal color palette.
+
Module file for the ColorInfo struct of the Screen module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/color__info_8hpp.html b/color__info_8hpp.html new file mode 100644 index 000000000..0316c2fed --- /dev/null +++ b/color__info_8hpp.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: color_info.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_info.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

struct  ColorInfo
 ColorInfo is a structure that contains information about the terminal color palette. More...
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + +

+Functions

ColorInfo GetColorInfo (Color::Palette256 index)
 
ColorInfo GetColorInfo (Color::Palette16 index)
 
+
+
+ + + + + diff --git a/color__info_8hpp.js b/color__info_8hpp.js new file mode 100644 index 000000000..4964cf188 --- /dev/null +++ b/color__info_8hpp.js @@ -0,0 +1,5 @@ +var color__info_8hpp = +[ + [ "GetColorInfo", "color__info_8hpp.html#a883a81f30fb771a82f6c87b77ac3658e", null ], + [ "GetColorInfo", "color__info_8hpp.html#ad5dd7fa2651003bf7c9f8b58de9b0a93", null ] +]; \ No newline at end of file diff --git a/color__info_8hpp_source.html b/color__info_8hpp_source.html new file mode 100644 index 000000000..ac1111a53 --- /dev/null +++ b/color__info_8hpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: color_info.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_info.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_SCREEN_COLOR_INFO_HPP
+
5#define FTXUI_SCREEN_COLOR_INFO_HPP
+
6
+
7#include <cstdint>
+ +
9
+
10namespace ftxui {
+
11
+
12/// @brief ColorInfo is a structure that contains information about the terminal
+
13/// color palette.
+
14///
+
15/// @ingroup screen
+
+
16struct ColorInfo {
+
17 const char* name;
+
18 uint8_t index_256;
+
19 uint8_t index_16;
+
20 uint8_t red;
+
21 uint8_t green;
+
22 uint8_t blue;
+
23 uint8_t hue;
+
24 uint8_t saturation;
+
25 uint8_t value;
+
26};
+
+
27
+ + +
30
+
31} // namespace ftxui
+
32
+
33#endif // FTXUI_SCREEN_COLOR_INFO_HPP
+ + + + + +
const char * name
+ + + + + + +
ColorInfo is a structure that contains information about the terminal color palette.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
ColorInfo GetColorInfo(Color::Palette256 index)
+
+
+ + + + + diff --git a/color__info__palette256_8cpp.html b/color__info__palette256_8cpp.html new file mode 100644 index 000000000..b4abf9250 --- /dev/null +++ b/color__info__palette256_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: color_info_palette256.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_info_palette256.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 16 of file color_info_palette256.cpp.

+ +
+
+
+
+ + + + + diff --git a/color__info__palette256_8cpp.js b/color__info__palette256_8cpp.js new file mode 100644 index 000000000..aaee37697 --- /dev/null +++ b/color__info__palette256_8cpp.js @@ -0,0 +1,4 @@ +var color__info__palette256_8cpp = +[ + [ "main", "color__info__palette256_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/color__info__palette256_8cpp_source.html b/color__info__palette256_8cpp_source.html new file mode 100644 index 000000000..351926e89 --- /dev/null +++ b/color__info__palette256_8cpp_source.html @@ -0,0 +1,268 @@ + + + + + + + + +FTXUI: color_info_palette256.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_info_palette256.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <ftxui/dom/elements.hpp> // for text, bgcolor, hbox, operator|, Elements, Fit, vbox, Element
+
5#include <ftxui/screen/color_info.hpp> // for ColorInfo
+
6#include <ftxui/screen/screen.hpp> // for Full, Screen
+
7#include <utility> // for move
+
8#include <vector> // for vector, allocator
+
9
+
10#include "ftxui/dom/node.hpp" // for Render
+
11#include "ftxui/screen/color.hpp" // for Color, Color::Palette256, ftxui
+
12
+
13using namespace ftxui;
+
14#include "./color_info_sorted_2d.ipp" // for ColorInfoSorted2D
+
15
+
+
16int main() {
+
17 std::vector<std::vector<ColorInfo>> info_columns = ColorInfoSorted2D();
+
18
+
19 // Draw every columns
+
20 Elements columns_elements;
+
21 for (auto& column : info_columns) {
+
22 Elements column_elements;
+
23 for (auto& it : column) {
+
24 column_elements.push_back(hbox({
+
25 text(" ") | bgcolor(Color(Color::Palette256(it.index_256))),
+
26 text(it.name),
+
27 }));
+
28 }
+
29 columns_elements.push_back(vbox(std::move(column_elements)));
+
30 }
+
31 auto document = hbox(std::move(columns_elements));
+
32
+
33 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
+
34 Render(screen, document);
+
35
+
36 screen.Print();
+
37
+
38 return 0;
+
39}
+
+ + + + +
std::vector< std::vector< ftxui::ColorInfo > > ColorInfoSorted2D()
+ +
Decorator bgcolor(Color)
Decorate using a background color.
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+
static Screen Create(Dimensions dimension)
Create a screen with the given dimension.
Definition screen.cpp:395
+ +
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+
std::vector< Element > Elements
Definition elements.hpp:23
+ + +
+
+ + + + + diff --git a/color__info__sorted__2d_8ipp.html b/color__info__sorted__2d_8ipp.html new file mode 100644 index 000000000..151adc96b --- /dev/null +++ b/color__info__sorted__2d_8ipp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: color_info_sorted_2d.ipp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_info_sorted_2d.ipp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

std::vector< std::vector< ftxui::ColorInfo > > ColorInfoSorted2D ()
 
+

Function Documentation

+ +

◆ ColorInfoSorted2D()

+ +
+
+ + + + + + + +
std::vector< std::vector< ftxui::ColorInfo > > ColorInfoSorted2D ()
+
+ +

Definition at line 5 of file color_info_sorted_2d.ipp.

+ +
+
+
+
+ + + + + diff --git a/color__info__sorted__2d_8ipp.js b/color__info__sorted__2d_8ipp.js new file mode 100644 index 000000000..e13bfcfc2 --- /dev/null +++ b/color__info__sorted__2d_8ipp.js @@ -0,0 +1,4 @@ +var color__info__sorted__2d_8ipp = +[ + [ "ColorInfoSorted2D", "color__info__sorted__2d_8ipp.html#a0f08918d6064cd2a0e56cb9ec74033ca", null ] +]; \ No newline at end of file diff --git a/color__info__sorted__2d_8ipp_source.html b/color__info__sorted__2d_8ipp_source.html new file mode 100644 index 000000000..6b3368f83 --- /dev/null +++ b/color__info__sorted__2d_8ipp_source.html @@ -0,0 +1,269 @@ + + + + + + + + +FTXUI: color_info_sorted_2d.ipp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_info_sorted_2d.ipp
+
+
+Go to the documentation of this file.
1#include <algorithm>
+
2#include <cmath>
+
3#include <ftxui/screen/color_info.hpp> // for ftxui::ColorInfo
+
4
+
+
5std::vector<std::vector<ftxui::ColorInfo>> ColorInfoSorted2D() {
+
6 // Acquire the color information for the palette256.
+
7 std::vector<ftxui::ColorInfo> info_gray;
+
8 std::vector<ftxui::ColorInfo> info_color;
+
9 for (int i = 16; i < 256; ++i) {
+
10 ftxui::ColorInfo info = GetColorInfo(ftxui::Color::Palette256(i));
+
11 if (info.saturation == 0)
+
12 info_gray.push_back(info);
+
13 else
+
14 info_color.push_back(info);
+
15 }
+
16
+
17 // Sort info_color by hue.
+
18 std::sort(
+
19 info_color.begin(), info_color.end(),
+
20 [](const ftxui::ColorInfo& A, const ftxui::ColorInfo& B) { return A.hue < B.hue; });
+
21
+
22 // Make 8 colums, one gray and seven colored.
+
23 std::vector<std::vector<ftxui::ColorInfo>> info_columns(8);
+
24 info_columns[0] = info_gray;
+
25 for (size_t i = 0; i < info_color.size(); ++i) {
+
26 info_columns[1 + 7 * i / info_color.size()].push_back(info_color[i]);
+
27 }
+
28
+
29 // Minimize discontinuities for every columns.
+
30 for (auto& column : info_columns) {
+
31 std::sort(column.begin(), column.end(),
+
32 [](const ftxui::ColorInfo& A, const ftxui::ColorInfo& B) {
+
33 return A.value < B.value;
+
34 });
+
35 for (int i = 0; i < int(column.size()) - 1; ++i) {
+
36 int best_index = i + 1;
+
37 int best_distance = 255 * 255 * 3;
+
38 for (int j = i + 1; j < column.size(); ++j) {
+
39 int dx = column[i].red - column[j].red;
+
40 int dy = column[i].green - column[j].green;
+
41 int dz = column[i].blue - column[j].blue;
+
42 int distance = dx * dx + dy * dy + dz * dz;
+
43 if (best_distance > distance) {
+
44 best_distance = distance;
+
45 best_index = j;
+
46 }
+
47 }
+
48 std::swap(column[i + 1], column[best_index]);
+
49 }
+
50 }
+
51
+
52 return std::move(info_columns);
+
53}
+
+ +
std::vector< std::vector< ftxui::ColorInfo > > ColorInfoSorted2D()
+ + +
ColorInfo is a structure that contains information about the terminal color palette.
+
+
+ + + + + diff --git a/color__truecolor__HSV_8cpp.html b/color__truecolor__HSV_8cpp.html new file mode 100644 index 000000000..5eb7f2c73 --- /dev/null +++ b/color__truecolor__HSV_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: color_truecolor_HSV.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_truecolor_HSV.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 12 of file color_truecolor_HSV.cpp.

+ +
+
+
+
+ + + + + diff --git a/color__truecolor__HSV_8cpp.js b/color__truecolor__HSV_8cpp.js new file mode 100644 index 000000000..3b6b1074d --- /dev/null +++ b/color__truecolor__HSV_8cpp.js @@ -0,0 +1,4 @@ +var color__truecolor__HSV_8cpp = +[ + [ "main", "color__truecolor__HSV_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/color__truecolor__HSV_8cpp_source.html b/color__truecolor__HSV_8cpp_source.html new file mode 100644 index 000000000..213c5528d --- /dev/null +++ b/color__truecolor__HSV_8cpp_source.html @@ -0,0 +1,253 @@ + + + + + + + + +FTXUI: color_truecolor_HSV.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_truecolor_HSV.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <ftxui/dom/elements.hpp> // for operator|, Elements, Fit, bgcolor, color, hbox, text, vbox, Element
+
5#include <ftxui/screen/screen.hpp> // for Full, Screen
+
6#include <memory> // for allocator
+
7#include <utility> // for move
+
8
+
9#include "ftxui/dom/node.hpp" // for Render
+
10#include "ftxui/screen/color.hpp" // for Color, ftxui
+
11
+
+
12int main() {
+
13 using namespace ftxui;
+
14
+
15 int saturation = 255;
+
16 Elements array;
+
17 for (int value = 0; value < 255; value += 20) {
+
18 Elements line;
+
19 for (int hue = 0; hue < 255; hue += 2) {
+
20 line.push_back(text("▀") //
+
21 | color(Color::HSV(hue, saturation, value)) //
+
22 | bgcolor(Color::HSV(hue, saturation, value + 10)));
+
23 }
+
24 array.push_back(hbox(std::move(line)));
+
25 }
+
26
+
27 auto document = vbox(std::move(array));
+
28
+
29 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
+
30 Render(screen, document);
+
31
+
32 screen.Print();
+
33
+
34 return 0;
+
35}
+
+ +
int main()
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::vector< Element > Elements
Definition elements.hpp:23
+ + +
+
+ + + + + diff --git a/color__truecolor__RGB_8cpp.html b/color__truecolor__RGB_8cpp.html new file mode 100644 index 000000000..49b0e8811 --- /dev/null +++ b/color__truecolor__RGB_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: color_truecolor_RGB.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color_truecolor_RGB.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 12 of file color_truecolor_RGB.cpp.

+ +
+
+
+
+ + + + + diff --git a/color__truecolor__RGB_8cpp.js b/color__truecolor__RGB_8cpp.js new file mode 100644 index 000000000..4e1f0be85 --- /dev/null +++ b/color__truecolor__RGB_8cpp.js @@ -0,0 +1,4 @@ +var color__truecolor__RGB_8cpp = +[ + [ "main", "color__truecolor__RGB_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/color__truecolor__RGB_8cpp_source.html b/color__truecolor__RGB_8cpp_source.html new file mode 100644 index 000000000..67537eb36 --- /dev/null +++ b/color__truecolor__RGB_8cpp_source.html @@ -0,0 +1,271 @@ + + + + + + + + +FTXUI: color_truecolor_RGB.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
color_truecolor_RGB.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <ftxui/dom/elements.hpp> // for hbox, text, bgcolor, operator|, vbox, Elements, window, Element, Fit
+
5#include <ftxui/screen/screen.hpp> // for Full, Screen
+
6#include <memory> // for allocator
+
7#include <utility> // for move
+
8
+
9#include "ftxui/dom/node.hpp" // for Render
+
10#include "ftxui/screen/color.hpp" // for Color, ftxui
+
11
+
+
12int main() {
+
13 using namespace ftxui;
+
14
+
15 Elements red_line;
+
16 Elements green_line;
+
17 Elements blue_line;
+
18 Elements cyan_line;
+
19 Elements magenta_line;
+
20 Elements yellow_line;
+
21
+
22 for (int value = 0; value < 255; value += 3) {
+
23 int v = value * value / 255;
+
24 red_line.push_back(text(" ") | bgcolor(Color::RGB(v, 0, 0)));
+
25 green_line.push_back(text(" ") | bgcolor(Color::RGB(0, v, 0)));
+
26 blue_line.push_back(text(" ") | bgcolor(Color::RGB(0, 0, v)));
+
27 cyan_line.push_back(text(" ") | bgcolor(Color::RGB(0, v, v)));
+
28 magenta_line.push_back(text(" ") | bgcolor(Color::RGB(v, 0, v)));
+
29 yellow_line.push_back(text(" ") | bgcolor(Color::RGB(v, v, 0)));
+
30 }
+
31
+
32 auto document = vbox({
+
33 window(text("Primary colors"),
+
34 vbox({
+
35 hbox({text("Red line :"), hbox(std::move(red_line))}),
+
36 hbox({text("Green line :"), hbox(std::move(green_line))}),
+
37 hbox({text("Blue line :"), hbox(std::move(blue_line))}),
+
38 })),
+
39 window(text("Secondary colors"),
+
40 vbox({
+
41 hbox({text("cyan line :"), hbox(std::move(cyan_line))}),
+
42 hbox({text("magenta line:"), hbox(std::move(magenta_line))}),
+
43 hbox({text("Yellow line :"), hbox(std::move(yellow_line))}),
+
44 })),
+
45 });
+
46
+
47 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
+
48 Render(screen, document);
+
49
+
50 screen.Print();
+
51
+
52 return 0;
+
53}
+
+ +
int main()
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::vector< Element > Elements
Definition elements.hpp:23
+ + +
+
+ + + + + diff --git a/component_2component_8cppm.html b/component_2component_8cppm.html new file mode 100644 index 000000000..06ee8bbc9 --- /dev/null +++ b/component_2component_8cppm.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: component.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::Container
 
+
+
+ + + + + diff --git a/component_2component_8cppm_source.html b/component_2component_8cppm_source.html new file mode 100644 index 000000000..534b5077a --- /dev/null +++ b/component_2component_8cppm_source.html @@ -0,0 +1,280 @@ + + + + + + + + +FTXUI: component.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component/component.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component.component
+
2/// @brief Module file for the Component classes of the Component module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.component.component;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+ + +
17 using ftxui::Event;
+ + + + +
22
+
23 using ftxui::Make;
+
24
+ + +
27
+
28 using ftxui::operator|;
+
29 using ftxui::operator|=;
+
30
+
31 namespace Container {
+
32 using ftxui::Container::Vertical;
+
33 using ftxui::Container::Horizontal;
+
34 using ftxui::Container::Tab;
+
35 using ftxui::Container::Stacked;
+
36 }
+
37
+
38 using ftxui::Button;
+
39 using ftxui::Checkbox;
+
40 using ftxui::Input;
+
41 using ftxui::Menu;
+
42 using ftxui::MenuEntry;
+
43 using ftxui::Radiobox;
+
44 using ftxui::Dropdown;
+
45 using ftxui::Toggle;
+
46 using ftxui::Slider;
+
47 using ftxui::ResizableSplit;
+
48 using ftxui::ResizableSplitLeft;
+
49 using ftxui::ResizableSplitRight;
+
50 using ftxui::ResizableSplitTop;
+
51 using ftxui::ResizableSplitBottom;
+
52 using ftxui::Renderer;
+
53 using ftxui::CatchEvent;
+
54 using ftxui::Maybe;
+
55 using ftxui::Modal;
+
56 using ftxui::Collapsible;
+
57 using ftxui::Hoverable;
+
58 using ftxui::Window;
+
59}
+ +
Option for the AnimatedButton component.
+
Option for the Checkbox component.
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Option for the Input component.
+
Option for the MenuEntry component.
+
Option for the Menu component.
+
Option for the Radiobox component.
+
Module file for the Component classes of the Component module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::function< Element(Element)> ElementDecorator
Definition component.hpp:33
+
std::function< Component(Component)> ComponentDecorator
Definition component.hpp:32
+
+
+ + + + + diff --git a/component_2util_8cpp.html b/component_2util_8cpp.html new file mode 100644 index 000000000..f16b98a2f --- /dev/null +++ b/component_2util_8cpp.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: util.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
util.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + + + + + +

+Functions

Component operator| (Component component, ComponentDecorator decorator)
 
Component operator| (Component component, ElementDecorator decorator)
 
Componentoperator|= (Component &component, ComponentDecorator decorator)
 
Componentoperator|= (Component &component, ElementDecorator decorator)
 
+
+
+ + + + + diff --git a/component_2util_8cpp.js b/component_2util_8cpp.js new file mode 100644 index 000000000..9bb8296e2 --- /dev/null +++ b/component_2util_8cpp.js @@ -0,0 +1,7 @@ +var component_2util_8cpp = +[ + [ "operator|", "component_2util_8cpp.html#a65a2e15f64ae3bc205c485abc3a5aeb9", null ], + [ "operator|", "component_2util_8cpp.html#a9c4cf8bcb7012f740b146bfe89cbd3eb", null ], + [ "operator|=", "component_2util_8cpp.html#ade35e69d695327db85be01c9787c39f8", null ], + [ "operator|=", "component_2util_8cpp.html#aa480c58bcaeae204fbe68b192c5ede92", null ] +]; \ No newline at end of file diff --git a/component_2util_8cpp_source.html b/component_2util_8cpp_source.html new file mode 100644 index 000000000..408a14b97 --- /dev/null +++ b/component_2util_8cpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: util.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component/util.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2022 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <functional> // for function
+
5
+
6#include "ftxui/component/component.hpp" // for Renderer, ComponentDecorator, ElementDecorator, operator|, operator|=
+
7#include "ftxui/component/component_base.hpp" // for Component
+
8
+
9namespace ftxui {
+
10
+
11// NOLINTNEXTLINE
+
+ +
13 return decorator(component); // NOLINT
+
14}
+
+
15
+
16// NOLINTNEXTLINE
+
+ +
18 return component | Renderer(decorator); // NOLINT
+
19}
+
+
20
+
21// NOLINTNEXTLINE
+
+ +
23 component = component | decorator; // NOLINT
+
24 return component;
+
25}
+
+
26
+
27// NOLINTNEXTLINE
+
+ +
29 component = component | decorator; // NOLINT
+
30 return component;
+
31}
+
+
32
+
33} // namespace ftxui
+ + +
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::function< Element(Element)> ElementDecorator
Definition component.hpp:33
+
Component operator|(Component component, ComponentDecorator decorator)
+
Component & operator|=(Component &component, ComponentDecorator decorator)
+
std::function< Component(Component)> ComponentDecorator
Definition component.hpp:32
+
std::shared_ptr< ComponentBase > Component
+
+
+ + + + + diff --git a/component_8cpp.html b/component_8cpp.html new file mode 100644 index 000000000..29e60f0ee --- /dev/null +++ b/component_8cpp.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: component.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::animation
 The FTXUI ftxui::animation:: namespace.
 
+
+
+ + + + + diff --git a/component_8cpp_source.html b/component_8cpp_source.html new file mode 100644 index 000000000..35a0153f8 --- /dev/null +++ b/component_8cpp_source.html @@ -0,0 +1,525 @@ + + + + + + + + +FTXUI: component.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <algorithm> // for find_if
+
5#include <cassert> // for assert
+
6#include <cstddef> // for size_t
+
7#include <iterator> // for begin, end
+
8#include <memory> // for unique_ptr, make_unique
+
9#include <utility> // for move
+
10#include <vector> // for vector, __alloc_traits<>::value_type
+
11
+
12#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse, CapturedMouseInterface
+ +
14#include "ftxui/component/component_base.hpp" // for ComponentBase, Components
+
15#include "ftxui/component/event.hpp" // for Event
+
16#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
+
17#include "ftxui/dom/elements.hpp" // for text, Element
+
18#include "ftxui/dom/node.hpp" // for Node, Elements
+
19#include "ftxui/screen/box.hpp" // for Box
+
20
+
21namespace ftxui::animation {
+
22class Params;
+
23} // namespace ftxui::animation
+
24
+
25namespace ftxui {
+
26
+
27namespace {
+
28class CaptureMouseImpl : public CapturedMouseInterface {};
+
29} // namespace
+
30
+ +
34
+
35/// @brief Return the parent ComponentBase, or nul if any.
+
36/// @see Detach
+
37/// @see Parent
+
+ +
39 return parent_;
+
40}
+
+
41
+
42/// @brief Access the child at index `i`.
+
+ +
44 assert(i < ChildCount()); // NOLINT
+
45 return children_[i];
+
46}
+
+
47
+
48/// @brief Returns the number of children.
+
+ +
50 return children_.size();
+
51}
+
+
52
+
53/// @brief Return index of the component in its parent. -1 if no parent.
+
+ +
55 if (parent_ == nullptr) {
+
56 return -1;
+
57 }
+
58 int index = 0;
+
59 for (const Component& child : parent_->children_) {
+
60 if (child.get() == this) {
+
61 return index;
+
62 }
+
63 index++;
+
64 }
+
65 return -1; // Not reached.
+
66}
+
+
67
+
68/// @brief Add a child.
+
69/// @@param child The child to be attached.
+
+ +
71 child->Detach();
+
72 child->parent_ = this;
+
73 children_.push_back(std::move(child));
+
74}
+
+
75
+
76/// @brief Detach this child from its parent.
+
77/// @see Detach
+
78/// @see Parent
+
+ +
80 if (parent_ == nullptr) {
+
81 return;
+
82 }
+
83 auto it = std::find_if(std::begin(parent_->children_), //
+
84 std::end(parent_->children_), //
+
85 [this](const Component& that) { //
+
86 return this == that.get();
+
87 });
+
88 ComponentBase* parent = parent_;
+
89 parent_ = nullptr;
+
90 parent->children_.erase(it); // Might delete |this|.
+
91}
+
+
92
+
93/// @brief Remove all children.
+
+ +
95 while (!children_.empty()) {
+
96 children_[0]->Detach();
+
97 }
+
98}
+
+
99
+
100/// @brief Draw the component.
+
101/// Build a ftxui::Element to be drawn on the ftxui::Screen representing this
+
102/// ftxui::ComponentBase. Please override OnRender() to modify the rendering.
+
+ +
104 // Some users might call `ComponentBase::Render()` from
+
105 // `T::OnRender()`. To avoid infinite recursion, we use a flag.
+
106 if (in_render) {
+ +
108 }
+
109
+
110 in_render = true;
+
111 Element element = OnRender();
+
112 in_render = false;
+
113
+
114 class Wrapper : public Node {
+
115 public:
+
116 bool active_ = false;
+
117
+
118 Wrapper(Element child, bool active)
+
119 : Node({std::move(child)}), active_(active) {}
+
120
+
121 void SetBox(Box box) override {
+
122 Node::SetBox(box);
+
123 children_[0]->SetBox(box);
+
124 }
+
125
+
126 void ComputeRequirement() override {
+
127 Node::ComputeRequirement();
+
128 requirement_.focused.component_active = active_;
+
129 }
+
130 };
+
131
+
132 return std::make_shared<Wrapper>(std::move(element), Active());
+
133}
+
+
134
+
135/// @brief Draw the component.
+
136/// Build a ftxui::Element to be drawn on the ftxi::Screen representing this
+
137/// ftxui::ComponentBase. This function is means to be overridden.
+
+ +
139 if (children_.size() == 1) {
+
140 return children_.front()->Render();
+
141 }
+
142
+
143 return text("Not implemented component");
+
144}
+
+
145
+
146/// @brief Called in response to an event.
+
147/// @param event The event.
+
148/// @return True when the event has been handled.
+
149/// The default implementation called OnEvent on every child until one return
+
150/// true. If none returns true, return false.
+
+
151bool ComponentBase::OnEvent(Event event) { // NOLINT
+
152 for (Component& child : children_) { // NOLINT
+
153 if (child->OnEvent(event)) {
+
154 return true;
+
155 }
+
156 }
+
157 return false;
+
158}
+
+
159
+
160/// @brief Called in response to an animation event.
+
161/// @param params the parameters of the animation
+
162/// The default implementation dispatch the event to every child.
+
+ +
164 for (const Component& child : children_) {
+
165 child->OnAnimation(params);
+
166 }
+
167}
+
+
168
+
169/// @brief Return the currently Active child.
+
170/// @return the currently Active child.
+
+ +
172 for (auto& child : children_) {
+
173 if (child->Focusable()) {
+
174 return child;
+
175 }
+
176 }
+
177 return nullptr;
+
178}
+
+
179
+
180/// @brief Return true when the component contains focusable elements.
+
181/// The non focusable Components will be skipped when navigating using the
+
182/// keyboard.
+
+ +
184 for (const Component& child : children_) { // NOLINT
+
185 if (child->Focusable()) {
+
186 return true;
+
187 }
+
188 }
+
189 return false;
+
190}
+
+
191
+
192/// @brief Returns if the element if the currently active child of its parent.
+
+ +
194 return parent_ == nullptr || parent_->ActiveChild().get() == this;
+
195}
+
+
196
+
197/// @brief Returns if the elements if focused by the user.
+
198/// True when the ComponentBase is focused by the user. An element is Focused
+
199/// when it is with all its ancestors the ActiveChild() of their parents, and it
+
200/// Focusable().
+
+ +
202 const auto* current = this;
+
203 while (current && current->Active()) {
+
204 current = current->parent_;
+
205 }
+
206 return !current && Focusable();
+
207}
+
+
208
+
209/// @brief Make the |child| to be the "active" one.
+
210/// @param child the child to become active.
+
211void ComponentBase::SetActiveChild([[maybe_unused]] ComponentBase* child) {}
+
212
+
213/// @brief Make the |child| to be the "active" one.
+
214/// @param child the child to become active.
+
+ +
216 SetActiveChild(child.get());
+
217}
+
+
218
+
219/// @brief Configure all the ancestors to give focus to this component.
+
+ +
221 ComponentBase* child = this;
+
222 while (ComponentBase* parent = child->parent_) {
+
223 parent->SetActiveChild(child);
+
224 child = parent;
+
225 }
+
226}
+
+
227
+
228/// @brief Take the CapturedMouse if available. There is only one component of
+
229/// them. It represents a component taking priority over others.
+
230/// @param event The event
+
+ +
232 if (event.screen_) {
+
233 return event.screen_->CaptureMouse();
+
234 }
+
235 return std::make_unique<CaptureMouseImpl>();
+
236}
+
+
237
+
238} // namespace ftxui
+ + + + + + + +
virtual bool Focusable() const
Return true when the component contains focusable elements. The non focusable Components will be skip...
+
bool Focused() const
Returns if the elements if focused by the user. True when the ComponentBase is focused by the user....
+
CapturedMouse CaptureMouse(const Event &event)
Take the CapturedMouse if available. There is only one component of them. It represents a component t...
+
void Add(Component children)
Add a child. @param child The child to be attached.
Definition component.cpp:70
+ +
Element Render()
Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
+
void TakeFocus()
Configure all the ancestors to give focus to this component.
+
bool Active() const
Returns if the element if the currently active child of its parent.
+
ScreenInteractive * screen_
Definition event.hpp:124
+
virtual Component ActiveChild()
Return the currently Active child.
+
void DetachAllChildren()
Remove all children.
Definition component.cpp:94
+
virtual void SetActiveChild(ComponentBase *child)
Make the |child| to be the "active" one.
+
int Index() const
Return index of the component in its parent. -1 if no parent.
Definition component.cpp:54
+
size_t ChildCount() const
Returns the number of children.
Definition component.cpp:49
+
ComponentBase * Parent() const
Return the parent ComponentBase, or nul if any.
Definition component.cpp:38
+
virtual Element OnRender()
Draw the component. Build a ftxui::Element to be drawn on the ftxi::Screen representing this ftxui::C...
+
virtual bool OnEvent(Event)
Called in response to an event.
+
void Detach()
Detach this child from its parent.
Definition component.cpp:79
+
Component & ChildAt(size_t i)
Access the child at index i.
Definition component.cpp:43
+
virtual ~ComponentBase()
Definition component.cpp:31
+
virtual void OnAnimation(animation::Params &params)
Called in response to an animation event.
+
It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Node is the base class for all elements in the DOM tree.
Definition node.hpp:37
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Box is a structure that represents a rectangular area in a 2D space.
Definition box.hpp:16
+
The FTXUI ftxui::animation:: namespace.
Definition animation.hpp:10
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::unique_ptr< CapturedMouseInterface > CapturedMouse
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::shared_ptr< ComponentBase > Component
+ + +
+
+ + + + + diff --git a/component_8cppm.html b/component_8cppm.html new file mode 100644 index 000000000..2f87aa27d --- /dev/null +++ b/component_8cppm.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: component.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component.cppm File Reference
+
+ +
+ + + + + diff --git a/component_8cppm_source.html b/component_8cppm_source.html new file mode 100644 index 000000000..52b3f063a --- /dev/null +++ b/component_8cppm_source.html @@ -0,0 +1,237 @@ + + + + + + + + +FTXUI: component.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component
+
2/// @brief Module file for FTXUI component operations.
+
3
+
4export module ftxui.component;
+
5
+
6export import ftxui.component.animation;
+ +
8export import ftxui.component.component;
+ + +
11export import ftxui.component.event;
+
12export import ftxui.component.loop;
+
13export import ftxui.component.mouse;
+
14export import ftxui.component.receiver;
+ +
16export import ftxui.component.task;
+
C++20 module interface for the Animation namespace of the Component module.
+
Module file for the CapturedMouseInterface class of the Component module.
+
Module file for the ComponentBase class of the Component module.
+
Module file for options for the Component class of the Component module.
+
Module file for the Component classes of the Component module.
+
Module file for the Event struct of the Component module.
+
Module file for the Loop class of the Component module.
+
Module file for the Mouse struct of the Component module.
+
Module file for the Receiver class of the Component module.
+
Module file for the ScreenInteractive class of the Component module.
+
Module file for the Task class of the Component module.
+
Module file for FTXUI component operations.
+
+
+ + + + + diff --git a/component_8hpp.html b/component_8hpp.html new file mode 100644 index 000000000..785182666 --- /dev/null +++ b/component_8hpp.html @@ -0,0 +1,394 @@ + + + + + + + + +FTXUI: component.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::Container
 
+ + + + + +

+Typedefs

using ComponentDecorator = std::function<Component(Component)>
 
using ElementDecorator = std::function<Element(Element)>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<class T , class... Args>
std::shared_ptr< T > Make (Args &&... args)
 
Component operator| (Component component, ComponentDecorator decorator)
 
Component operator| (Component component, ElementDecorator decorator)
 
Componentoperator|= (Component &component, ComponentDecorator decorator)
 
Componentoperator|= (Component &component, ElementDecorator decorator)
 
Component Vertical (Components children)
 A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys.
 
Component Vertical (Components children, int *selector)
 A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys. This is useful for implementing a Menu for instance.
 
Component Horizontal (Components children)
 A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
 
Component Horizontal (Components children, int *selector)
 A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
 
Component Tab (Components children, int *selector)
 A list of components, where only one is drawn and interacted with at a time. The |selector| gives the index of the selected component. This is useful to implement tabs.
 
Component Stacked (Components children)
 A list of components to be stacked on top of each other. Events are propagated to the first component, then the second if not handled, etc. The components are drawn in the reverse order they are given. When a component take focus, it is put at the front, without changing the relative order of the other elements.
 
Component Button (ButtonOption option)
 Draw a button. Execute a function when clicked.
 
Component Button (ConstStringRef label, std::function< void()> on_click, ButtonOption option)
 Draw a button. Execute a function when clicked.
 
Component Checkbox (CheckboxOption option)
 Draw checkable element.
 
Component Checkbox (ConstStringRef label, bool *checked, CheckboxOption option)
 Draw checkable element.
 
Component Input (InputOption option)
 An input box for editing text.
 
Component Input (StringRef content, InputOption option)
 An input box for editing text.
 
Component Input (StringRef content, StringRef placeholder, InputOption option)
 An input box for editing text.
 
Component Menu (MenuOption option)
 A list of text. The focused element is selected.
 
Component Menu (ConstStringListRef entries, int *selected, MenuOption option)
 A list of text. The focused element is selected.
 
Component MenuEntry (MenuEntryOption option)
 A specific menu entry. They can be put into a Container::Vertical to form a menu.
 
Component MenuEntry (ConstStringRef label, MenuEntryOption option)
 A specific menu entry. They can be put into a Container::Vertical to form a menu.
 
Component Radiobox (RadioboxOption option)
 A list of element, where only one can be selected.
 
Component Radiobox (ConstStringListRef entries, int *selected, RadioboxOption option)
 A list of element, where only one can be selected.
 
Component Dropdown (ConstStringListRef entries, int *selected)
 A dropdown menu.
 
Component Dropdown (DropdownOption option)
 A dropdown menu.
 
Component Toggle (ConstStringListRef entries, int *selected)
 An horizontal list of elements. The user can navigate through them.
 
template<typename T >
Component Slider (SliderOption< T > options)
 A slider in any direction.
 
Component Slider (ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)
 An horizontal slider.
 
Component Slider (ConstStringRef label, Ref< float > value, ConstRef< float > min=0.f, ConstRef< float > max=100.f, ConstRef< float > increment=5.f)
 
Component Slider (ConstStringRef label, Ref< long > value, ConstRef< long > min=0L, ConstRef< long > max=100L, ConstRef< long > increment=5L)
 
Component ResizableSplit (ResizableSplitOption options)
 A split in between two components.
 
Component ResizableSplitLeft (Component main, Component back, int *main_size)
 An horizontal split in between two components, configurable using the mouse.
 
Component ResizableSplitRight (Component main, Component back, int *main_size)
 An horizontal split in between two components, configurable using the mouse.
 
Component ResizableSplitTop (Component main, Component back, int *main_size)
 An vertical split in between two components, configurable using the mouse.
 
Component ResizableSplitBottom (Component main, Component back, int *main_size)
 An vertical split in between two components, configurable using the mouse.
 
Component Renderer (Component child, std::function< Element()> render)
 Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
 
Component Renderer (std::function< Element()> render)
 Return a component, using |render| to render its interface.
 
Component Renderer (std::function< Element(bool)> render)
 Return a focusable component, using |render| to render its interface.
 
ComponentDecorator Renderer (ElementDecorator decorator)
 Decorate a component, by decorating what it renders.
 
Component CatchEvent (Component child, std::function< bool(Event)>)
 
ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
 Decorate a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
 
Component Maybe (Component child, const bool *show)
 Decorate a component |child|. It is shown only when |show| is true.
 
Component Maybe (Component child, std::function< bool()> show)
 Decorate a component |child|. It is shown only when |show| returns true.
 
ComponentDecorator Maybe (const bool *show)
 Decorate a component. It is shown only when |show| is true.
 
ComponentDecorator Maybe (std::function< bool()> show)
 Decorate a component. It is shown only when the |show| function returns true.
 
Component Modal (Component main, Component modal, const bool *show_modal)
 
ComponentDecorator Modal (Component modal, const bool *show_modal)
 
Component Collapsible (ConstStringRef label, Component child, Ref< bool > show)
 A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed.
 
Component Hoverable (Component component, bool *hover)
 Wrap a component. Gives the ability to know if it is hovered by the mouse.
 
Component Hoverable (Component component, std::function< void()> on_enter, std::function< void()> on_leave)
 Wrap a component. Uses callbacks.
 
Component Hoverable (Component component, std::function< void(bool)> on_change)
 Wrap a component. Gives the ability to know if it is hovered by the mouse.
 
ComponentDecorator Hoverable (bool *hover)
 Wrap a component. Gives the ability to know if it is hovered by the mouse.
 
ComponentDecorator Hoverable (std::function< void()> on_enter, std::function< void()> on_leave)
 Wrap a component. Gives the ability to know if it is hovered by the mouse.
 
ComponentDecorator Hoverable (std::function< void(bool)> on_change)
 Wrap a component. Gives the ability to know if it is hovered by the mouse.
 
Component Window (WindowOptions option)
 A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stacked({...}) component;.
 
+
+
+ + + + + diff --git a/component_8hpp.js b/component_8hpp.js new file mode 100644 index 000000000..2e9987b6d --- /dev/null +++ b/component_8hpp.js @@ -0,0 +1,61 @@ +var component_8hpp = +[ + [ "ComponentDecorator", "component_8hpp.html#af07b496fe512e3a4863ee546f19e9a6c", null ], + [ "ElementDecorator", "component_8hpp.html#a2d5012891073dbf196bfada5f702f382", null ], + [ "Make", "component_8hpp.html#a2b8973dc71334f1d98e2e6f55de8b5ae", null ], + [ "operator|", "component_8hpp.html#a65a2e15f64ae3bc205c485abc3a5aeb9", null ], + [ "operator|", "component_8hpp.html#a9c4cf8bcb7012f740b146bfe89cbd3eb", null ], + [ "operator|=", "component_8hpp.html#ade35e69d695327db85be01c9787c39f8", null ], + [ "operator|=", "component_8hpp.html#aa480c58bcaeae204fbe68b192c5ede92", null ], + [ "Vertical", "component_8hpp.html#ga6471e39f5664d059144746c5801d37e6", null ], + [ "Vertical", "component_8hpp.html#ga25099e2d2ead8a46c8d9a899982070b7", null ], + [ "Horizontal", "component_8hpp.html#ga01563bae9454fe64c0b29b0eb3755e68", null ], + [ "Horizontal", "component_8hpp.html#ga337564f8a13c98222025d8fe7e47df4c", null ], + [ "Tab", "component_8hpp.html#gaea9fe244eeeb420276bcc5760b46953d", null ], + [ "Stacked", "component_8hpp.html#gaafd394665b0c231380a143b810339d8e", null ], + [ "Button", "component_8hpp.html#ga4e8295ec77dd31b0acc5063b134473e7", null ], + [ "Button", "component_8hpp.html#ga0488e28ee9388e0ddca26f1d03d827d1", null ], + [ "Checkbox", "component_8hpp.html#gae0d441d2c83740f187f62db566bbefcd", null ], + [ "Checkbox", "component_8hpp.html#ga5e9dbb03c44d549f10c96f134269366f", null ], + [ "Input", "component_8hpp.html#ga7f285fcbc4dd0a0767b89a255fd062dc", null ], + [ "Input", "component_8hpp.html#ga9d118d596e33bf5bee9d5eccb6265d15", null ], + [ "Input", "component_8hpp.html#ga82ba18065d2c29514f034c7278dead74", null ], + [ "Menu", "component_8hpp.html#ga27828fc39da10a18478ba84b1b162039", null ], + [ "Menu", "component_8hpp.html#gad793a3a507766ffa711c4332a3815e24", null ], + [ "MenuEntry", "component_8hpp.html#ga2c0a27959e6a5d90109f6d4506e00f69", null ], + [ "MenuEntry", "component_8hpp.html#gafca94c5cdae5fbf3c6aa81fc1cd7b1c0", null ], + [ "Radiobox", "component_8hpp.html#ga3e7a44f321fa910f07aef5879e67af95", null ], + [ "Radiobox", "component_8hpp.html#gac73eebf15ff6b5386b7ee6c6cb4a4890", null ], + [ "Dropdown", "component_8hpp.html#gaa22bddff4aeed66e20f30d0715596999", null ], + [ "Dropdown", "component_8hpp.html#gaa4b353566017558bac648ee1409930de", null ], + [ "Toggle", "component_8hpp.html#ga3537fccac66b07cd792874c9a6086811", null ], + [ "Slider", "component_8hpp.html#aa3558d992a72679e5e9c9c7b67abd727", null ], + [ "Slider", "component_8hpp.html#gafdce74ff1421c2f1bda336c8dacefcbd", null ], + [ "Slider", "component_8hpp.html#a8bfa2757905a4fb50e0ec263976d1f96", null ], + [ "Slider", "component_8hpp.html#aba34419b025c881c07808816c81c5230", null ], + [ "ResizableSplit", "component_8hpp.html#a5ce41caeafc35dedc5c7da5347386e80", null ], + [ "ResizableSplitLeft", "component_8hpp.html#gae2205fc172615b43e1e3307bb614be4c", null ], + [ "ResizableSplitRight", "component_8hpp.html#ga9030d0beb64f653603cab382b02750a8", null ], + [ "ResizableSplitTop", "component_8hpp.html#ga238b4b650aca14716b82b2198695e008", null ], + [ "ResizableSplitBottom", "component_8hpp.html#gacb75e6e61a021829893f7b57aeb7e3a2", null ], + [ "Renderer", "component_8hpp.html#ga533e883e2aeea28de2b60564fcaf0361", null ], + [ "Renderer", "component_8hpp.html#gaf03d3df7243bf71bb1a73686628f7f2b", null ], + [ "Renderer", "component_8hpp.html#ga099cb57274a99396ee10f38acbfe62a7", null ], + [ "Renderer", "component_8hpp.html#ga41d63b7af41dee1570b54915821abd30", null ], + [ "CatchEvent", "component_8hpp.html#afa5872ba3f9889c7487e57e745e56857", null ], + [ "CatchEvent", "component_8hpp.html#gad2948235799c010c76c6de861c050c59", null ], + [ "Maybe", "component_8hpp.html#ga20b66a70c1cd4ff3f0ff571a4507d2b4", null ], + [ "Maybe", "component_8hpp.html#ga70afe9695167fb736631173201969730", null ], + [ "Maybe", "component_8hpp.html#ga83b6fd5e1524023722a7450f987f15d0", null ], + [ "Maybe", "component_8hpp.html#gae39ad8b223e6bb7704c77a3708571a7d", null ], + [ "Modal", "component_8hpp.html#ga5185342fbba215496cb8a6805f36089c", null ], + [ "Modal", "component_8hpp.html#ga5babae0bb25f8cada57784cc5d27fb74", null ], + [ "Collapsible", "component_8hpp.html#a760cd5eb9a72c008ca18f1e6b366c796", null ], + [ "Hoverable", "component_8hpp.html#ga562d984d3830d63285643565cd55d16f", null ], + [ "Hoverable", "component_8hpp.html#ga92ec2f5ccb509da2e2c24ae6a1f6b12b", null ], + [ "Hoverable", "component_8hpp.html#ga91cac81077c483efdb952268aee9a523", null ], + [ "Hoverable", "component_8hpp.html#ga9d94b37352be13d3551a9d5785f75439", null ], + [ "Hoverable", "component_8hpp.html#ga34adfc9c76cf3603156cba32ad5d7142", null ], + [ "Hoverable", "component_8hpp.html#gafd7cbaef5378a907111a64ee69aed56a", null ], + [ "Window", "component_8hpp.html#ga638693abef9289912f5fa39606390b20", null ] +]; \ No newline at end of file diff --git a/component_8hpp_source.html b/component_8hpp_source.html new file mode 100644 index 000000000..7abebc0b4 --- /dev/null +++ b/component_8hpp_source.html @@ -0,0 +1,406 @@ + + + + + + + + +FTXUI: component.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_COMPONENT_HPP
+
5#define FTXUI_COMPONENT_HPP
+
6
+
7#include <functional> // for function
+
8#include <memory> // for make_shared, shared_ptr
+
9#include <utility> // for forward
+
10
+ +
12#include "ftxui/component/component_base.hpp" // for Component, Components
+
13#include "ftxui/component/component_options.hpp" // for ButtonOption, CheckboxOption, MenuOption
+
14#include "ftxui/dom/elements.hpp" // for Element
+
15#include "ftxui/util/ref.hpp" // for ConstRef, Ref, ConstStringRef, ConstStringListRef, StringRef
+
16
+
17namespace ftxui {
+
18struct ButtonOption;
+
19struct CheckboxOption;
+
20struct Event;
+
21struct InputOption;
+
22struct MenuOption;
+
23struct RadioboxOption;
+
24struct MenuEntryOption;
+
25
+
26template <class T, class... Args>
+
+
27std::shared_ptr<T> Make(Args&&... args) {
+
28 return std::make_shared<T>(std::forward<Args>(args)...);
+
29}
+
+
30
+
31// Pipe operator to decorate components.
+
32using ComponentDecorator = std::function<Component(Component)>;
+
33using ElementDecorator = std::function<Element(Element)>;
+ +
35Component operator|(Component component, ElementDecorator decorator);
+
36Component& operator|=(Component& component, ComponentDecorator decorator);
+
37Component& operator|=(Component& component, ElementDecorator decorator);
+
38
+
+
39namespace Container {
+ +
41Component Vertical(Components children, int* selector);
+ +
43Component Horizontal(Components children, int* selector);
+
44Component Tab(Components children, int* selector);
+ +
46} // namespace Container
+
+
47
+ + +
50 std::function<void()> on_click,
+ +
52
+ + +
55 bool* checked,
+ +
57
+
58Component Input(InputOption options = {});
+
59Component Input(StringRef content, InputOption options = {});
+
60Component Input(StringRef content,
+
61 StringRef placeholder,
+
62 InputOption options = {});
+
63
+
64Component Menu(MenuOption options);
+
65Component Menu(ConstStringListRef entries,
+
66 int* selected_,
+
67 MenuOption options = MenuOption::Vertical());
+
68Component MenuEntry(MenuEntryOption options);
+
69Component MenuEntry(ConstStringRef label, MenuEntryOption options = {});
+
70
+
71Component Radiobox(RadioboxOption options);
+
72Component Radiobox(ConstStringListRef entries,
+
73 int* selected_,
+
74 RadioboxOption options = {});
+
75
+
76Component Dropdown(ConstStringListRef entries, int* selected);
+
77Component Dropdown(DropdownOption options);
+
78
+
79Component Toggle(ConstStringListRef entries, int* selected);
+
80
+
81// General slider constructor:
+
82template <typename T>
+
83Component Slider(SliderOption<T> options);
+
84
+
85// Shorthand without the `SliderOption` constructor:
+
86Component Slider(ConstStringRef label,
+
87 Ref<int> value,
+
88 ConstRef<int> min = 0,
+
89 ConstRef<int> max = 100,
+
90 ConstRef<int> increment = 5);
+
91Component Slider(ConstStringRef label,
+
92 Ref<float> value,
+
93 ConstRef<float> min = 0.f,
+
94 ConstRef<float> max = 100.f,
+
95 ConstRef<float> increment = 5.f);
+
96Component Slider(ConstStringRef label,
+
97 Ref<long> value,
+
98 ConstRef<long> min = 0L,
+
99 ConstRef<long> max = 100L,
+
100 ConstRef<long> increment = 5L);
+
101
+
102Component ResizableSplit(ResizableSplitOption options);
+ + +
105Component ResizableSplitTop(Component main, Component back, int* main_size);
+ +
107
+
108Component Renderer(Component child, std::function<Element()>);
+
109Component Renderer(std::function<Element()>);
+
110Component Renderer(std::function<Element(bool /* focused */)>);
+ +
112
+
113Component CatchEvent(Component child, std::function<bool(Event)>);
+
114ComponentDecorator CatchEvent(std::function<bool(Event)> on_event);
+
115
+
116Component Maybe(Component, const bool* show);
+
117Component Maybe(Component, std::function<bool()>);
+
118ComponentDecorator Maybe(const bool* show);
+
119ComponentDecorator Maybe(std::function<bool()>);
+
120
+
121Component Modal(Component main, Component modal, const bool* show_modal);
+
122ComponentDecorator Modal(Component modal, const bool* show_modal);
+
123
+ +
125 Component child,
+
126 Ref<bool> show = false);
+
127
+
128Component Hoverable(Component component, bool* hover);
+ +
130 std::function<void()> on_enter,
+
131 std::function<void()> on_leave);
+
132Component Hoverable(Component component, //
+
133 std::function<void(bool)> on_change);
+
134ComponentDecorator Hoverable(bool* hover);
+
135ComponentDecorator Hoverable(std::function<void()> on_enter,
+
136 std::function<void()> on_leave);
+
137ComponentDecorator Hoverable(std::function<void(bool)> on_change);
+
138
+ +
140
+
141} // namespace ftxui
+
142
+
143#endif /* end of include guard: FTXUI_COMPONENT_HPP */
+
An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
Definition ref.hpp:94
+
An adapter. Own or reference an mutable object.
Definition ref.hpp:46
+ + + + +
static CheckboxOption Simple()
Option for standard Checkbox.
+
static ButtonOption Simple()
Create a ButtonOption, inverted when focused.
+
static MenuOption Vertical()
Standard options for a vertical menu. This can be useful to implement a list of selectable items.
+
Component Horizontal(Components children)
A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
+
Component Maybe(Component, const bool *show)
Decorate a component |child|. It is shown only when |show| is true.
+
Component ResizableSplitTop(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
+
Component Menu(MenuOption options)
A list of text. The focused element is selected.
+
Component MenuEntry(MenuEntryOption options)
A specific menu entry. They can be put into a Container::Vertical to form a menu.
+
Component Toggle(ConstStringListRef entries, int *selected)
An horizontal list of elements. The user can navigate through them.
+
Component Radiobox(RadioboxOption options)
A list of element, where only one can be selected.
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Component Modal(Component main, Component modal, const bool *show_modal)
Definition modal.cpp:18
+
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
Component Hoverable(Component component, bool *hover)
Wrap a component. Gives the ability to know if it is hovered by the mouse.
Definition hoverable.cpp:43
+
Component Window(WindowOptions option)
A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
+
Component Vertical(Components children)
A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
+
Component Input(InputOption options={})
An input box for editing text.
+
Component ResizableSplitRight(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
+
Component Dropdown(ConstStringListRef entries, int *selected)
A dropdown menu.
+
Component Stacked(Components children)
A list of components to be stacked on top of each other. Events are propagated to the first component...
+
Component ResizableSplitBottom(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
+
Component Checkbox(CheckboxOption options)
Draw checkable element.
+
Component ResizableSplitLeft(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
+
Component Tab(Components children, int *selector)
A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
+
Option for the AnimatedButton component.
+
Option for the Checkbox component.
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Option for the Input component.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< T > Make(Args &&... args)
Definition component.hpp:27
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::function< Element(Element)> ElementDecorator
Definition component.hpp:33
+
std::vector< Component > Components
+
Component ResizableSplit(ResizableSplitOption options)
A split in between two components.
+
Component operator|(Component component, ComponentDecorator decorator)
+
Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed...
+
Component Slider(SliderOption< T > options)
A slider in any direction.
+
Component & operator|=(Component &component, ComponentDecorator decorator)
+
std::function< Component(Component)> ComponentDecorator
Definition component.hpp:32
+
std::shared_ptr< ComponentBase > Component
+
Component CatchEvent(Component child, std::function< bool(Event)>)
+ + + +
+
+ + + + + diff --git a/component__base_8cppm.html b/component__base_8cppm.html new file mode 100644 index 000000000..332f4b161 --- /dev/null +++ b/component__base_8cppm.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: component_base.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component_base.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::animation
 The FTXUI ftxui::animation:: namespace.
 
+
+
+ + + + + diff --git a/component__base_8cppm_source.html b/component__base_8cppm_source.html new file mode 100644 index 000000000..1ec463811 --- /dev/null +++ b/component__base_8cppm_source.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: component_base.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_base.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component.component_base
+
2/// @brief Module file for the ComponentBase class of the Component module
+
3
+
4module;
+
5
+ +
7
+ +
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::Delegate;
+
16 using ftxui::Focus;
+
17 using ftxui::Event;
+
18
+
19 namespace animation {
+ +
21 }
+
22
+ +
24 using ftxui::Component;
+ +
26}
+ + +
It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Module file for the ComponentBase class of the Component module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::vector< Component > Components
+
std::shared_ptr< ComponentBase > Component
+
+
+ + + + + diff --git a/component__base_8hpp.html b/component__base_8hpp.html new file mode 100644 index 000000000..0c6f871dc --- /dev/null +++ b/component__base_8hpp.html @@ -0,0 +1,238 @@ + + + + + + + + +FTXUI: component_base.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component_base.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  ComponentBase
 It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event. More...
 
+ + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::animation
 The FTXUI ftxui::animation:: namespace.
 
+ + + + + +

+Typedefs

using Component = std::shared_ptr<ComponentBase>
 
using Components = std::vector<Component>
 
+
+
+ + + + + diff --git a/component__base_8hpp.js b/component__base_8hpp.js new file mode 100644 index 000000000..08d3e93db --- /dev/null +++ b/component__base_8hpp.js @@ -0,0 +1,5 @@ +var component__base_8hpp = +[ + [ "Component", "component__base_8hpp.html#af1479ede01dbf087342534ab4ada11d3", null ], + [ "Components", "component__base_8hpp.html#a3d4ccad0c8a07d5b0cb4b2e690ffc90c", null ] +]; \ No newline at end of file diff --git a/component__base_8hpp_source.html b/component__base_8hpp_source.html new file mode 100644 index 000000000..789441e0c --- /dev/null +++ b/component__base_8hpp_source.html @@ -0,0 +1,354 @@ + + + + + + + + +FTXUI: component_base.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_base.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_COMPONENT_BASE_HPP
+
5#define FTXUI_COMPONENT_BASE_HPP
+
6
+
7#include <memory> // for unique_ptr
+
8#include <vector> // for vector
+
9
+
10#include "ftxui/component/captured_mouse.hpp" // for CaptureMouse
+
11#include "ftxui/dom/elements.hpp" // for Element
+
12
+
13namespace ftxui {
+
14
+
15class Delegate;
+
16class Focus;
+
17struct Event;
+
18
+
19namespace animation {
+
20class Params;
+
21} // namespace animation
+
22
+
23class ComponentBase;
+
24using Component = std::shared_ptr<ComponentBase>;
+
25using Components = std::vector<Component>;
+
26
+
27/// @brief It implement rendering itself as ftxui::Element. It implement
+
28/// keyboard navigation by responding to ftxui::Event.
+
29/// @ingroup component
+
+ +
31 public:
+
+
32 explicit ComponentBase(Components children)
+
33 : children_(std::move(children)) {}
+
+
34 virtual ~ComponentBase();
+
35 ComponentBase() = default;
+
36
+
37 // A component is not copyable/movable.
+
38 ComponentBase(const ComponentBase&) = delete;
+ + + +
42
+
43 // Component hierarchy:
+
44 ComponentBase* Parent() const;
+
45 Component& ChildAt(size_t i);
+
46 size_t ChildCount() const;
+
47 int Index() const;
+
48 void Add(Component children);
+
49 void Detach();
+
50 void DetachAllChildren();
+
51
+
52 // Renders the component.
+ +
54
+
55 // Override this function modify how `Render` works.
+
56 virtual Element OnRender();
+
57
+
58 // Handles an event.
+
59 // By default, reduce on children with a lazy OR.
+
60 //
+
61 // Returns whether the event was handled or not.
+
62 virtual bool OnEvent(Event);
+
63
+
64 // Handle an animation step.
+
65 virtual void OnAnimation(animation::Params& params);
+
66
+
67 // Focus management ----------------------------------------------------------
+
68 //
+
69 // If this component contains children, this indicates which one is active,
+
70 // nullptr if none is active.
+
71 //
+
72 // We say an element has the focus if the chain of ActiveChild() from the
+
73 // root component contains this object.
+
74 virtual Component ActiveChild();
+
75
+
76 // Return true when the component contains focusable elements.
+
77 // The non focusable Component will be skipped when navigating using the
+
78 // keyboard.
+
79 virtual bool Focusable() const;
+
80
+
81 // Whether this is the active child of its parent.
+
82 bool Active() const;
+
83 // Whether all the ancestors are active.
+
84 bool Focused() const;
+
85
+
86 // Make the |child| to be the "active" one.
+
87 virtual void SetActiveChild(ComponentBase* child);
+
88 void SetActiveChild(Component child);
+
89
+
90 // Configure all the ancestors to give focus to this component.
+
91 void TakeFocus();
+
92
+
93 protected:
+
94 CapturedMouse CaptureMouse(const Event& event);
+
95
+ +
97
+
98 private:
+
99 ComponentBase* parent_ = nullptr;
+
100 bool in_render = false;
+
101};
+
+
102
+
103} // namespace ftxui
+
104
+
105#endif /* end of include guard: FTXUI_COMPONENT_BASE_HPP */
+ + + +
virtual bool Focusable() const
Return true when the component contains focusable elements. The non focusable Components will be skip...
+
bool Focused() const
Returns if the elements if focused by the user. True when the ComponentBase is focused by the user....
+
CapturedMouse CaptureMouse(const Event &event)
Take the CapturedMouse if available. There is only one component of them. It represents a component t...
+
void Add(Component children)
Add a child. @param child The child to be attached.
Definition component.cpp:70
+ +
Element Render()
Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
+
void TakeFocus()
Configure all the ancestors to give focus to this component.
+
bool Active() const
Returns if the element if the currently active child of its parent.
+
virtual Component ActiveChild()
Return the currently Active child.
+
void DetachAllChildren()
Remove all children.
Definition component.cpp:94
+
virtual void SetActiveChild(ComponentBase *child)
Make the |child| to be the "active" one.
+
int Index() const
Return index of the component in its parent. -1 if no parent.
Definition component.cpp:54
+
size_t ChildCount() const
Returns the number of children.
Definition component.cpp:49
+
ComponentBase(ComponentBase &&)=delete
+
ComponentBase & operator=(ComponentBase &&)=delete
+
ComponentBase * Parent() const
Return the parent ComponentBase, or nul if any.
Definition component.cpp:38
+
virtual Element OnRender()
Draw the component. Build a ftxui::Element to be drawn on the ftxi::Screen representing this ftxui::C...
+
virtual bool OnEvent(Event)
Called in response to an event.
+
void Detach()
Detach this child from its parent.
Definition component.cpp:79
+
ComponentBase(const ComponentBase &)=delete
+
ComponentBase & operator=(const ComponentBase &)=delete
+ +
Component & ChildAt(size_t i)
Access the child at index i.
Definition component.cpp:43
+
ComponentBase(Components children)
+
virtual ~ComponentBase()
Definition component.cpp:31
+
virtual void OnAnimation(animation::Params &params)
Called in response to an animation event.
+
It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::unique_ptr< CapturedMouseInterface > CapturedMouse
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::vector< Component > Components
+
std::shared_ptr< ComponentBase > Component
+
+
+ + + + + diff --git a/component__examples_8md.html b/component__examples_8md.html new file mode 100644 index 000000000..31f8a2e1d --- /dev/null +++ b/component__examples_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: component_examples.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_examples.md File Reference
+
+
+
+
+ + + + + diff --git a/component__fuzzer_8cpp.html b/component__fuzzer_8cpp.html new file mode 100644 index 000000000..9c925b155 --- /dev/null +++ b/component__fuzzer_8cpp.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: component_fuzzer.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component_fuzzer.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int LLVMFuzzerTestOneInput (const char *data, size_t size)
 
+

Function Documentation

+ +

◆ LLVMFuzzerTestOneInput()

+ +
+
+ + + + + + + + + + + +
int LLVMFuzzerTestOneInput (const char * data,
size_t size )
+
+ +

Definition at line 197 of file component_fuzzer.cpp.

+ +
+
+
+
+ + + + + diff --git a/component__fuzzer_8cpp.js b/component__fuzzer_8cpp.js new file mode 100644 index 000000000..7e7930645 --- /dev/null +++ b/component__fuzzer_8cpp.js @@ -0,0 +1,4 @@ +var component__fuzzer_8cpp = +[ + [ "LLVMFuzzerTestOneInput", "component__fuzzer_8cpp.html#af5589fffd86439465eeb19c9774d1982", null ] +]; \ No newline at end of file diff --git a/component__fuzzer_8cpp_source.html b/component__fuzzer_8cpp_source.html new file mode 100644 index 000000000..98766aefc --- /dev/null +++ b/component__fuzzer_8cpp_source.html @@ -0,0 +1,500 @@ + + + + + + + + +FTXUI: component_fuzzer.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_fuzzer.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <cassert>
+ +
6#include <vector>
+ + +
9
+
10using namespace ftxui;
+
11namespace {
+
12
+
13bool GeneratorBool(const char*& data, size_t& size) {
+
14 if (size == 0) {
+
15 return false;
+
16 }
+
17
+
18 auto out = bool(data[0] % 2);
+
19 data++;
+
20 size--;
+
21 return out;
+
22}
+
23
+
24std::string GeneratorString(const char*& data, size_t& size) {
+
25 int index = 0;
+
26 while (index < size && data[index]) {
+
27 ++index;
+
28 }
+
29
+
30 auto out = std::string(data, data + index);
+
31 data += index;
+
32 size -= index;
+
33
+
34 // The input component do not support invalid UTF8 yet.
+
35 try {
+
36 to_wstring(out);
+
37 } catch (...) {
+
38 return "0";
+
39 }
+
40 return std::move(out);
+
41}
+
42
+
43int GeneratorInt(const char* data, size_t size) {
+
44 if (size == 0) {
+
45 return 0;
+
46 }
+
47 auto out = int(data[0]);
+
48 data++;
+
49 size--;
+
50 return out;
+
51}
+
52
+
53Color GeneratorColor(const char* data, size_t size) {
+
54 return Color::RGB(GeneratorInt(data, size), GeneratorInt(data, size),
+
55 GeneratorInt(data, size));
+
56}
+
57
+
58AnimatedColorOption GeneratorAnimatedColorOption(const char* data,
+
59 size_t size) {
+ +
61 option.enabled = GeneratorBool(data, size);
+
62 option.inactive = GeneratorColor(data, size);
+
63 option.active = GeneratorColor(data, size);
+
64 option.duration = std::chrono::milliseconds(GeneratorInt(data, size));
+
65 return option;
+
66}
+
67
+
68AnimatedColorsOption GeneratorAnimatedColorsOptions(const char* data,
+
69 size_t size) {
+ +
71 option.background = GeneratorAnimatedColorOption(data, size);
+
72 option.foreground = GeneratorAnimatedColorOption(data, size);
+
73 return option;
+
74}
+
75
+
76ButtonOption GeneratorButtonOption(const char* data, size_t size) {
+
77 ButtonOption option;
+
78 option.animated_colors = GeneratorAnimatedColorsOptions(data, size);
+
79 return option;
+
80}
+
81
+
82UnderlineOption GeneratorUnderlineOption(const char* data, size_t size) {
+
83 UnderlineOption option;
+
84 option.enabled = GeneratorBool(data, size);
+
85 option.color_active = GeneratorColor(data, size);
+
86 option.color_inactive = GeneratorColor(data, size);
+
87 option.leader_duration = std::chrono::milliseconds(GeneratorInt(data, size));
+
88 option.follower_duration =
+
89 std::chrono::milliseconds(GeneratorInt(data, size));
+
90 option.leader_delay = std::chrono::milliseconds(GeneratorInt(data, size));
+
91 option.follower_delay = std::chrono::milliseconds(GeneratorInt(data, size));
+
92 return option;
+
93}
+
94
+
95MenuEntryOption GeneratorMenuEntryOption(const char* data, size_t size) {
+
96 MenuEntryOption option;
+
97 option.animated_colors = GeneratorAnimatedColorsOptions(data, size);
+
98 return option;
+
99}
+
100
+
101MenuOption GeneratorMenuOption(const char* data, size_t size) {
+
102 MenuOption option;
+
103 option.underline = GeneratorUnderlineOption(data, size);
+
104 option.entries_option = GeneratorMenuEntryOption(data, size);
+
105 option.direction = static_cast<Direction>(GeneratorInt(data, size) % 4);
+
106 return option;
+
107}
+
108
+
109bool g_bool;
+
110int g_int;
+
111std::vector<std::string> g_list;
+
112
+
113Components GeneratorComponents(const char*& data, size_t& size, int depth);
+
114
+
115Component GeneratorComponent(const char*& data, size_t& size, int depth) {
+
116 depth--;
+
117 int value = GeneratorInt(data, size);
+
118 if (depth <= 0) {
+
119 return Button(GeneratorString(data, size), [] {});
+
120 }
+
121
+
122 constexpr int value_max = 19;
+
123 value = (value % value_max + value_max) % value_max;
+
124 switch (value) {
+
125 case 0:
+
126 return Button(
+
127 GeneratorString(data, size), [] {},
+
128 GeneratorButtonOption(data, size));
+
129 case 1:
+
130 return Checkbox(GeneratorString(data, size), &g_bool);
+
131 case 2:
+
132 return Input(GeneratorString(data, size), GeneratorString(data, size));
+
133 case 3:
+
134 return Menu(&g_list, &g_int, GeneratorMenuOption(data, size));
+
135 case 4:
+
136 return Radiobox(&g_list, &g_int);
+
137 case 5:
+
138 return Toggle(&g_list, &g_int);
+
139 case 6:
+
140 return Slider(GeneratorString(data, size), &g_int,
+
141 GeneratorInt(data, size), GeneratorInt(data, size),
+
142 GeneratorInt(data, size));
+
143 case 7:
+
144 return ResizableSplitLeft(GeneratorComponent(data, size, depth - 1),
+
145 GeneratorComponent(data, size, depth - 1),
+
146 &g_int);
+
147 case 8:
+
148 return ResizableSplitRight(GeneratorComponent(data, size, depth - 1),
+
149 GeneratorComponent(data, size, depth - 1),
+
150 &g_int);
+
151 case 9:
+
152 return ResizableSplitTop(GeneratorComponent(data, size, depth - 1),
+
153 GeneratorComponent(data, size, depth - 1),
+
154 &g_int);
+
155 case 10:
+
156 return ResizableSplitBottom(GeneratorComponent(data, size, depth - 1),
+
157 GeneratorComponent(data, size, depth - 1),
+
158 &g_int);
+
159 case 11:
+
160 return Container::Vertical(GeneratorComponents(data, size, depth - 1));
+
161
+
162 case 12:
+
163 return Container::Vertical(GeneratorComponents(data, size, depth - 1),
+
164 &g_int);
+
165
+
166 case 13:
+
167 return Container::Horizontal(GeneratorComponents(data, size, depth - 1));
+
168 case 14:
+
169 return Container::Horizontal(GeneratorComponents(data, size, depth - 1),
+
170 &g_int);
+
171 case 15:
+
172 return Container::Tab(GeneratorComponents(data, size, depth - 1), &g_int);
+
173 case 16:
+
174 return Maybe(GeneratorComponent(data, size, depth - 1), &g_bool);
+
175 case 17:
+
176 return Dropdown(&g_list, &g_int);
+
177 case 18:
+
178 return Collapsible(GeneratorString(data, size),
+
179 GeneratorComponent(data, size, depth - 1),
+
180 GeneratorBool(data, size));
+
181 default:
+
182 assert(false);
+
183 }
+
184}
+
185
+
186Components GeneratorComponents(const char*& data, size_t& size, int depth) {
+
187 Components out;
+
188 if (depth > 0) {
+
189 while (size && GeneratorInt(data, size) % 2) {
+
190 out.push_back(GeneratorComponent(data, size, depth - 1));
+
191 }
+
192 }
+
193 return std::move(out);
+
194}
+
195
+
196} // namespace
+
+
197extern "C" int LLVMFuzzerTestOneInput(const char* data, size_t size) {
+
198 g_bool = GeneratorBool(data, size);
+
199 g_int = GeneratorInt(data, size);
+
200 g_list = {
+
201 "test_1", "test_2", "test_3", "test_4", "test_5",
+
202 };
+
203
+
204 int depth = 10;
+
205 auto component = GeneratorComponent(data, size, depth);
+
206
+
207 int width = GeneratorInt(data, size);
+
208 int height = GeneratorInt(data, size);
+
209
+
210 width %= 500;
+
211 width += 500;
+
212
+
213 height %= 500;
+
214 height += 500;
+
215
+
216 auto screen =
+
217 Screen::Create(Dimension::Fixed(width), Dimension::Fixed(height));
+
218
+
219 // Generate some events.
+
220 std::vector<Event> events;
+
221 auto parser =
+
222 TerminalInputParser([&](const Event& event) { events.push_back(event); });
+
223
+
224 for (size_t i = 0; i < size; ++i) {
+
225 parser.Add(data[i]);
+
226 }
+
227
+
228 for (const auto& event : events) {
+
229 component->OnEvent(event);
+
230 auto document = component->Render();
+
231 Render(screen, document);
+
232 }
+
233 return 0; // Non-zero return values are reserved for future use.
+
234}
+
+ + +
int LLVMFuzzerTestOneInput(const char *data, size_t size)
+ +
animation::Duration follower_duration
+
MenuEntryOption entries_option
+
animation::Duration follower_delay
+ +
UnderlineOption underline
+ + +
animation::Duration leader_duration
+ + + +
AnimatedColorsOption animated_colors
+ +
animation::Duration leader_delay
+
Component Horizontal(Components children)
A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
+
Component Maybe(Component, const bool *show)
Decorate a component |child|. It is shown only when |show| is true.
+
Component ResizableSplitTop(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
+
Component Menu(MenuOption options)
A list of text. The focused element is selected.
+
Component Toggle(ConstStringListRef entries, int *selected)
An horizontal list of elements. The user can navigate through them.
+
Component Radiobox(RadioboxOption options)
A list of element, where only one can be selected.
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Component Vertical(Components children)
A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
+
Component Input(InputOption options={})
An input box for editing text.
+
Component ResizableSplitRight(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
+
Component Dropdown(ConstStringListRef entries, int *selected)
A dropdown menu.
+
Component ResizableSplitBottom(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
+
Component Checkbox(CheckboxOption options)
Draw checkable element.
+
Component ResizableSplitLeft(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
+
Component Tab(Components children, int *selector)
A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
+
Option about a potentially animated color.
+
Option for the AnimatedButton component.
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Option for the MenuEntry component.
+
Option for the Menu component.
+
Option for the underline effect.
+
Decorator size(WidthOrHeight, Constraint, int value)
Apply a constraint on the size of an element.
+
Direction
Direction is an enumeration that represents the four cardinal directions.
Definition direction.hpp:13
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
static Screen Create(Dimensions dimension)
Create a screen with the given dimension.
Definition screen.cpp:395
+
static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
+
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::vector< Component > Components
+
std::wstring to_wstring(const std::string &s)
Convert a UTF8 std::string into a std::wstring.
Definition string.cpp:1638
+
Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed...
+
Component Slider(SliderOption< T > options)
A slider in any direction.
+
std::shared_ptr< ComponentBase > Component
+ + + + +
+
+ + + + + diff --git a/component__options_8cpp.html b/component__options_8cpp.html new file mode 100644 index 000000000..ab248337d --- /dev/null +++ b/component__options_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: component_options.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component_options.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/component__options_8cpp_source.html b/component__options_8cpp_source.html new file mode 100644 index 000000000..9edc39225 --- /dev/null +++ b/component__options_8cpp_source.html @@ -0,0 +1,657 @@ + + + + + + + + +FTXUI: component_options.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_options.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2022 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+ +
5
+
6#include <ftxui/screen/color.hpp> // for Color, Color::White, Color::Black, Color::GrayDark, Color::Blue, Color::GrayLight, Color::Red
+
7#include <memory> // for shared_ptr
+
8#include <utility> // for move
+
9#include "ftxui/component/animation.hpp" // for Function, Duration
+ +
11#include "ftxui/dom/elements.hpp" // for operator|=, Element, text, bgcolor, inverted, bold, dim, operator|, color, borderEmpty, hbox, automerge, border, borderLight
+
12
+
13namespace ftxui {
+
14
+
15/// @brief A color option that can be animated.
+
16/// @params _inactive The color when the component is inactive.
+
17/// @params _active The color when the component is active.
+
18/// @params _duration The duration of the animation.
+
19/// @params _function The easing function of the animation.
+
+ +
21 Color _active,
+
22 animation::Duration _duration,
+ +
24 enabled = true;
+
25 inactive = _inactive;
+
26 active = _active;
+
27 duration = _duration;
+
28 function = std::move(_function);
+
29}
+
+
30
+
31/// @brief Set how the underline should animate.
+
32/// @param d The duration of the animation.
+
33/// @param f The easing function of the animation.
+ +
39
+
40/// @brief Set how the underline should animate.
+
41/// @param d The duration of the animation.
+ +
46
+
47/// @brief Set how the underline should animate.
+
48/// @param f The easing function of the animation.
+ +
53
+
54/// @brief Set how the underline should animate.
+
55/// This is useful to desynchronize the animation of the leader and the
+
56/// follower.
+
57/// @param f_leader The duration of the animation for the leader.
+
58/// @param f_follower The duration of the animation for the follower.
+
+ + +
61 animation::easing::Function f_follower) {
+
62 leader_function = std::move(f_leader);
+
63 follower_function = std::move(f_follower);
+
64}
+
+
65
+
66/// @brief Standard options for a horizontal menu.
+
67/// This can be useful to implement a tab bar.
+
68// static
+
+ +
70 MenuOption option;
+ +
72 option.entries_option.transform = [](const EntryState& state) {
+
73 Element e = text(state.label);
+
74 if (state.focused) {
+
75 e |= inverted;
+
76 }
+
77 if (state.active) {
+
78 e |= bold;
+
79 }
+
80 if (!state.focused && !state.active) {
+
81 e |= dim;
+
82 }
+
83 return e;
+
84 };
+
85 option.elements_infix = [] { return text(" "); };
+
86
+
87 return option;
+
88}
+
+
89
+
90/// @brief Standard options for an animated horizontal menu.
+
91/// This can be useful to implement a tab bar.
+
92// static
+
+ +
94 auto option = Horizontal();
+
95 option.underline.enabled = true;
+
96 return option;
+
97}
+
+
98
+
99/// @brief Standard options for a vertical menu.
+
100/// This can be useful to implement a list of selectable items.
+
101// static
+
+ +
103 MenuOption option;
+
104 option.entries_option.transform = [](const EntryState& state) {
+
105 Element e = text((state.active ? "> " : " ") + state.label); // NOLINT
+
106 if (state.focused) {
+
107 e |= inverted;
+
108 }
+
109 if (state.active) {
+
110 e |= bold;
+
111 }
+
112 if (!state.focused && !state.active) {
+
113 e |= dim;
+
114 }
+
115 return e;
+
116 };
+
117 return option;
+
118}
+
+
119
+
120/// @brief Standard options for an animated vertical menu.
+
121/// This can be useful to implement a list of selectable items.
+
122// static
+
+ +
124 auto option = MenuOption::Vertical();
+
125 option.entries_option.transform = [](const EntryState& state) {
+
126 Element e = text(state.label);
+
127 if (state.focused) {
+
128 e |= inverted;
+
129 }
+
130 if (state.active) {
+
131 e |= bold;
+
132 }
+
133 if (!state.focused && !state.active) {
+
134 e |= dim;
+
135 }
+
136 return e;
+
137 };
+
138 option.underline.enabled = true;
+
139 return option;
+
140}
+
+
141
+
142/// @brief Standard options for a horizontal menu with some separator.
+
143/// This can be useful to implement a tab bar.
+
144// static
+
+ +
146 auto option = MenuOption::Horizontal();
+
147 option.elements_infix = [] { return text("│") | automerge; };
+
148 return option;
+
149}
+
+
150
+
151/// @brief Create a ButtonOption, highlighted using [] characters.
+
152// static
+
+ +
154 ButtonOption option;
+
155 option.transform = [](const EntryState& s) {
+
156 const std::string t = s.focused ? "[" + s.label + "]" //
+
157 : " " + s.label + " ";
+
158 return text(t);
+
159 };
+
160 return option;
+
161}
+
+
162
+
163/// @brief Create a ButtonOption, inverted when focused.
+
164// static
+
+ +
166 ButtonOption option;
+
167 option.transform = [](const EntryState& s) {
+
168 auto element = text(s.label) | borderLight;
+
169 if (s.focused) {
+
170 element |= inverted;
+
171 }
+
172 return element;
+
173 };
+
174 return option;
+
175}
+
+
176
+
177/// @brief Create a ButtonOption. The button is shown using a border, inverted
+
178/// when focused. This is the current default.
+
+ +
180 ButtonOption option;
+
181 option.transform = [](const EntryState& s) {
+
182 auto element = text(s.label) | border;
+
183 if (s.active) {
+
184 element |= bold;
+
185 }
+
186 if (s.focused) {
+
187 element |= inverted;
+
188 }
+
189 return element;
+
190 };
+
191 return option;
+
192}
+
+
193
+
194/// @brief Create a ButtonOption, using animated colors.
+
195// static
+ +
200
+
201/// @brief Create a ButtonOption, using animated colors.
+
202// static
+
+ + +
205 Color::Interpolate(0.85F, color, Color::Black), // NOLINT
+
206 Color::Interpolate(0.10F, color, Color::White), // NOLINT
+
207 Color::Interpolate(0.10F, color, Color::Black), // NOLINT
+
208 Color::Interpolate(0.85F, color, Color::White)); // NOLINT
+
209}
+
+
210
+
211/// @brief Create a ButtonOption, using animated colors.
+
212// static
+
+ +
214 // NOLINTBEGIN
+ +
216 /*bakground=*/background,
+
217 /*foreground=*/foreground,
+
218 /*background_active=*/foreground,
+
219 /*foreground_active=*/background);
+
220 // NOLINTEND
+
221}
+
+
222
+
223/// @brief Create a ButtonOption, using animated colors.
+
224// static
+
+ +
226 Color foreground,
+
227 Color background_active,
+
228 Color foreground_active) {
+
229 ButtonOption option;
+
230 option.transform = [](const EntryState& s) {
+
231 auto element = text(s.label) | borderEmpty;
+
232 if (s.focused) {
+
233 element |= bold;
+
234 }
+
235 return element;
+
236 };
+
237 option.animated_colors.foreground.Set(foreground, foreground_active);
+
238 option.animated_colors.background.Set(background, background_active);
+
239 return option;
+
240}
+
+
241
+
242/// @brief Option for standard Checkbox.
+
243// static
+
+ +
245 auto option = CheckboxOption();
+
246 option.transform = [](const EntryState& s) {
+
247#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
+
248 // Microsoft terminal do not use fonts able to render properly the default
+
249 // radiobox glyph.
+
250 auto prefix = text(s.state ? "[X] " : "[ ] "); // NOLINT
+
251#else
+
252 auto prefix = text(s.state ? "▣ " : "☐ "); // NOLINT
+
253#endif
+
254 auto t = text(s.label);
+
255 if (s.active) {
+
256 t |= bold;
+
257 }
+
258 if (s.focused) {
+
259 t |= inverted;
+
260 }
+
261 return hbox({prefix, t});
+
262 };
+
263 return option;
+
264}
+
+
265
+
266/// @brief Option for standard Radiobox
+
267// static
+
+ +
269 auto option = RadioboxOption();
+
270 option.transform = [](const EntryState& s) {
+
271#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
+
272 // Microsoft terminal do not use fonts able to render properly the default
+
273 // radiobox glyph.
+
274 auto prefix = text(s.state ? "(*) " : "( ) "); // NOLINT
+
275#else
+
276 auto prefix = text(s.state ? "◉ " : "○ "); // NOLINT
+
277#endif
+
278 auto t = text(s.label);
+
279 if (s.active) {
+
280 t |= bold;
+
281 }
+
282 if (s.focused) {
+
283 t |= inverted;
+
284 }
+
285 return hbox({prefix, t});
+
286 };
+
287 return option;
+
288}
+
+
289
+
290/// @brief Standard options for the input component.
+
291// static
+
+ +
293 InputOption option;
+
294 option.transform = [](InputState state) {
+
295 state.element |= color(Color::White);
+
296
+
297 if (state.is_placeholder) {
+
298 state.element |= dim;
+
299 }
+
300
+
301 if (state.focused) {
+
302 state.element |= inverted;
+
303 } else if (state.hovered) {
+
304 state.element |= bgcolor(Color::GrayDark);
+
305 }
+
306
+
307 return state.element;
+
308 };
+
309 return option;
+
310}
+
+
311
+
312/// @brief Standard options for a more beautiful input component.
+
313// static
+
+ +
315 InputOption option;
+
316 option.transform = [](InputState state) {
+
317 state.element |= borderEmpty;
+
318 state.element |= color(Color::White);
+
319
+
320 if (state.is_placeholder) {
+
321 state.element |= dim;
+
322 }
+
323
+
324 if (state.focused) {
+
325 state.element |= bgcolor(Color::Black);
+
326 }
+
327
+
328 if (state.hovered) {
+
329 state.element |= bgcolor(Color::GrayDark);
+
330 }
+
331
+
332 return state.element;
+
333 };
+
334 return option;
+
335}
+
+
336
+
337} // namespace ftxui
+ + + + + +
static ButtonOption Animated()
Create a ButtonOption, using animated colors.
+
static MenuOption Toggle()
Standard options for a horizontal menu with some separator. This can be useful to implement a tab bar...
+
animation::Duration follower_duration
+
animation::easing::Function leader_function
+
MenuEntryOption entries_option
+
static InputOption Default()
Create the default input style:
+
animation::easing::Function function
+
static ButtonOption Border()
Create a ButtonOption. The button is shown using a border, inverted when focused. This is the current...
+
void SetAnimationFunction(animation::easing::Function f)
Set how the underline should animate.
+
static InputOption Spacious()
A white on black style with high margins:
+
static CheckboxOption Simple()
Option for standard Checkbox.
+ +
static ButtonOption Simple()
Create a ButtonOption, inverted when focused.
+
std::function< Element(const EntryState &state)> transform
+ +
static MenuOption Horizontal()
Standard options for a horizontal menu. This can be useful to implement a tab bar.
+
static MenuOption VerticalAnimated()
Standard options for an animated vertical menu. This can be useful to implement a list of selectable ...
+
animation::Duration leader_duration
+
static MenuOption Vertical()
Standard options for a vertical menu. This can be useful to implement a list of selectable items.
+
static ButtonOption Ascii()
Create a ButtonOption, highlighted using [] characters.
+ +
void SetAnimation(animation::Duration d, animation::easing::Function f)
Set how the underline should animate.
+
void SetAnimationDuration(animation::Duration d)
Set how the underline should animate.
+
animation::easing::Function follower_function
+ + +
std::function< Element(InputState)> transform
+
std::function< Element()> elements_infix
+
AnimatedColorsOption animated_colors
+
void Set(Color inactive, Color active, animation::Duration duration=std::chrono::milliseconds(250), animation::easing::Function function=animation::easing::QuadraticInOut)
A color option that can be animated. @params _inactive The color when the component is inactive....
+
static MenuOption HorizontalAnimated()
Standard options for an animated horizontal menu. This can be useful to implement a tab bar.
+
static RadioboxOption Simple()
Option for standard Radiobox.
+
std::function< Element(const EntryState &)> transform
+
Option for the AnimatedButton component.
+
Option for the Checkbox component.
+
Option for the Input component.
+
Option for the Menu component.
+
Option for the Radiobox component.
+
Decorator bgcolor(Color)
Decorate using a background color.
+
Element bold(Element)
Use a bold font, for elements with more emphasis.
Definition bold.cpp:33
+
Element inverted(Element)
Add a filter that will invert the foreground and the background colors.
Definition inverted.cpp:34
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element borderLight(Element)
Draw a light border around the element.
+
Element dim(Element)
Use a light font, for elements with less emphasis.
Definition dim.cpp:33
+
Element automerge(Element child)
Enable character to be automatically merged with others nearby.
Definition automerge.cpp:17
+
Element border(Element)
Draw a border around the element.
+
Element borderEmpty(Element)
Draw an empty border around the element.
+
Decorator color(Color)
Decorate using a foreground color.
+ + + + + +
static Color Interpolate(float t, const Color &a, const Color &b)
+
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
std::function< float(float)> Function
Definition animation.hpp:45
+
std::chrono::duration< float > Duration
Definition animation.hpp:30
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+ + +
arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
+
Used to define style for the Input component.
+
+
+ + + + + diff --git a/component__options_8cppm.html b/component__options_8cppm.html new file mode 100644 index 000000000..a9bfb8def --- /dev/null +++ b/component__options_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: component_options.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component_options.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/component__options_8cppm_source.html b/component__options_8cppm_source.html new file mode 100644 index 000000000..16f20c46a --- /dev/null +++ b/component__options_8cppm_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: component_options.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_options.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component.component_options
+
2/// @brief Module file for options for the Component class of the Component module
+
3
+
4module;
+
5
+ +
7
+ +
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+ + + + + + + + + + + + + + + + +
31}
+ +
Option about a potentially animated color.
+
Option for the AnimatedButton component.
+
Option for the Checkbox component.
+
Option for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox.
+
Option for the Input component.
+
Option for the MenuEntry component.
+
Option for the Menu component.
+
Option for the Radiobox component.
+
Option for the underline effect.
+
State passed to the Window component's render function.
+
Module file for options for the Component class of the Component module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
+
Used to define style for the Input component.
+ + + +
+
+ + + + + diff --git a/component__options_8hpp.html b/component__options_8hpp.html new file mode 100644 index 000000000..de9ca8071 --- /dev/null +++ b/component__options_8hpp.html @@ -0,0 +1,268 @@ + + + + + + + + +FTXUI: component_options.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
component_options.hpp File Reference
+
+
+ +

Go to the source code of this file.

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

+Classes

struct  EntryState
 arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|. More...
 
struct  UnderlineOption
 Option for the underline effect. More...
 
struct  AnimatedColorOption
 Option about a potentially animated color. More...
 
struct  AnimatedColorsOption
 
struct  MenuEntryOption
 Option for the MenuEntry component. More...
 
struct  MenuOption
 Option for the Menu component. More...
 
struct  ButtonOption
 Option for the AnimatedButton component. More...
 
struct  CheckboxOption
 Option for the Checkbox component. More...
 
struct  InputState
 Used to define style for the Input component. More...
 
struct  InputOption
 Option for the Input component. More...
 
struct  RadioboxOption
 Option for the Radiobox component. More...
 
struct  ResizableSplitOption
 
struct  SliderOption< T >
 
struct  WindowRenderState
 State passed to the Window component's render function. More...
 
struct  WindowOptions
 
struct  DropdownOption
 Option for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox. More...
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/component__options_8hpp.js b/component__options_8hpp.js new file mode 100644 index 000000000..10d02a7b1 --- /dev/null +++ b/component__options_8hpp.js @@ -0,0 +1,9 @@ +var component__options_8hpp = +[ + [ "EntryState", "structftxui_1_1EntryState.html", "structftxui_1_1EntryState" ], + [ "AnimatedColorsOption", "structftxui_1_1AnimatedColorsOption.html", "structftxui_1_1AnimatedColorsOption" ], + [ "InputState", "structftxui_1_1InputState.html", "structftxui_1_1InputState" ], + [ "ResizableSplitOption", "structftxui_1_1ResizableSplitOption.html", "structftxui_1_1ResizableSplitOption" ], + [ "SliderOption< T >", "structftxui_1_1SliderOption.html", "structftxui_1_1SliderOption" ], + [ "WindowOptions", "structftxui_1_1WindowOptions.html", "structftxui_1_1WindowOptions" ] +]; \ No newline at end of file diff --git a/component__options_8hpp_source.html b/component__options_8hpp_source.html new file mode 100644 index 000000000..abcbfaf42 --- /dev/null +++ b/component__options_8hpp_source.html @@ -0,0 +1,671 @@ + + + + + + + + +FTXUI: component_options.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component_options.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_COMPONENT_COMPONENT_OPTIONS_HPP
+
5#define FTXUI_COMPONENT_COMPONENT_OPTIONS_HPP
+
6
+
7#include <chrono> // for milliseconds
+
8#include <ftxui/component/animation.hpp> // for Duration, QuadraticInOut, Function
+
9#include <ftxui/dom/direction.hpp> // for Direction, Direction::Left, Direction::Right, Direction::Down
+
10#include <ftxui/dom/elements.hpp> // for Element, separator
+
11#include <ftxui/util/ref.hpp> // for Ref, ConstRef, StringRef
+ +
13#include <functional> // for function
+
14#include <string> // for string
+
15
+
16#include "ftxui/component/component_base.hpp" // for Component
+
17#include "ftxui/screen/color.hpp" // for Color, Color::GrayDark, Color::White
+
18
+
19namespace ftxui {
+
20
+
21/// @brief arguments for transform from |ButtonOption|, |CheckboxOption|,
+
22/// |RadioboxOption|, |MenuEntryOption|, |MenuOption|.
+
+
23struct EntryState {
+
24 std::string label; ///< The label to display.
+
25 bool state; ///< The state of the button/checkbox/radiobox
+
26 bool active; ///< Whether the entry is the active one.
+
27 bool focused; ///< Whether the entry is one focused by the user.
+
28 int index; ///< Index of the entry when applicable or -1.
+
29};
+
+
30
+
31/// @brief Option for the underline effect.
+
32/// @ingroup component
+ +
55
+
56/// @brief Option about a potentially animated color.
+
57/// @ingroup component
+
+ +
59 void Set(
+ + +
62 animation::Duration duration = std::chrono::milliseconds(250),
+
63 animation::easing::Function function = animation::easing::QuadraticInOut);
+
64
+
65 bool enabled = false;
+ + +
68 animation::Duration duration = std::chrono::milliseconds(250);
+ +
70};
+
+
71
+ +
76
+
77/// @brief Option for the MenuEntry component.
+
78/// @ingroup component
+
+ +
80 ConstStringRef label = "MenuEntry";
+
81 std::function<Element(const EntryState& state)> transform;
+ +
83};
+
+
84
+
85/// @brief Option for the Menu component.
+
86/// @ingroup component
+
+
87struct MenuOption {
+
88 // Standard constructors:
+
89 static MenuOption Horizontal();
+ +
91 static MenuOption Vertical();
+ +
93 static MenuOption Toggle();
+
94
+
95 ConstStringListRef entries; ///> The list of entries.
+
96 Ref<int> selected = 0; ///> The index of the selected entry.
+
97
+
98 // Style:
+ + + +
102 std::function<Element()> elements_prefix;
+
103 std::function<Element()> elements_infix;
+
104 std::function<Element()> elements_postfix;
+
105
+
106 // Observers:
+
107 std::function<void()> on_change; ///> Called when the selected entry changes.
+
108 std::function<void()> on_enter; ///> Called when the user presses enter.
+ +
110};
+
+
111
+
112/// @brief Option for the AnimatedButton component.
+
113/// @ingroup component
+
+ +
115 // Standard constructors:
+
116 static ButtonOption Ascii();
+
117 static ButtonOption Simple();
+
118 static ButtonOption Border();
+
119 static ButtonOption Animated();
+
120 static ButtonOption Animated(Color color);
+
121 static ButtonOption Animated(Color background, Color foreground);
+
122 static ButtonOption Animated(Color background,
+
123 Color foreground,
+
124 Color background_active,
+
125 Color foreground_active);
+
126
+ +
128 std::function<void()> on_click = [] {};
+
129
+
130 // Style:
+
131 std::function<Element(const EntryState&)> transform;
+ +
133};
+
+
134
+
135/// @brief Option for the Checkbox component.
+
136/// @ingroup component
+
+ +
138 // Standard constructors:
+
139 static CheckboxOption Simple();
+
140
+
141 ConstStringRef label = "Checkbox";
+
142
+ +
144
+
145 // Style:
+
146 std::function<Element(const EntryState&)> transform;
+
147
+
148 // Observer:
+
149 /// Called when the user change the state.
+
150 std::function<void()> on_change = [] {};
+
151};
+
+
152
+
153/// @brief Used to define style for the Input component.
+
+ + +
156 bool hovered; ///< Whether the input is hovered by the mouse.
+
157 bool focused; ///< Whether the input is focused by the user.
+
158 bool is_placeholder; ///< Whether the input is empty and displaying the
+
159 ///< placeholder.
+
160};
+
+
161
+
162/// @brief Option for the Input component.
+
163/// @ingroup component
+
+ +
165 // A set of predefined styles:
+
166
+
167 /// @brief Create the default input style:
+
168 static InputOption Default();
+
169 /// @brief A white on black style with high margins:
+
170 static InputOption Spacious();
+
171
+
172 /// The content of the input.
+ +
174
+
175 /// The content of the input when it's empty.
+ +
177
+
178 // Style:
+
179 std::function<Element(InputState)> transform;
+
180 Ref<bool> password = false; ///< Obscure the input content using '*'.
+
181 Ref<bool> multiline = true; ///< Whether the input can be multiline.
+
182 Ref<bool> insert = true; ///< Insert or overtype character mode.
+
183
+
184 /// Called when the content changes.
+
185 std::function<void()> on_change = [] {};
+
186 /// Called when the user presses enter.
+
187 std::function<void()> on_enter = [] {};
+
188
+
189 // The char position of the cursor:
+ +
191};
+
+
192
+
193/// @brief Option for the Radiobox component.
+
194/// @ingroup component
+
+ +
196 // Standard constructors:
+
197 static RadioboxOption Simple();
+
198
+
199 // Content:
+ + +
202
+
203 // Style:
+
204 std::function<Element(const EntryState&)> transform;
+
205
+
206 // Observers:
+
207 /// Called when the selected entry changes.
+
208 std::function<void()> on_change = [] {};
+ +
210};
+
+
211
+
+ + + + + + +
218 : 10;
+
219 std::function<Element()> separator_func = [] { return ::ftxui::separator(); };
+
220};
+
+
221
+
222// @brief Option for the `Slider` component.
+
223// @ingroup component
+
224template <typename T>
+
+ + + +
228 ConstRef<T> max = T(100);
+
229 ConstRef<T> increment = (max() - min()) / 20;
+ + + +
233 std::function<void()> on_change; ///> Called when `value` is updated.
+
234};
+
+
235
+
236/// @brief State passed to the `Window` component's render function.
+
237/// @ingroup component
+
+ +
239 Element inner; ///< The element wrapped inside this window.
+
240 const std::string& title; ///< The title of the window.
+
241 bool active = false; ///< Whether the window is the active one.
+
242 bool drag = false; ///< Whether the window is being dragged.
+
243 bool resize = false; ///< Whether the window is being resized.
+
244 bool hover_left = false; ///< Whether the resizeable left side is hovered.
+
245 bool hover_right = false; ///< Whether the resizeable right side is hovered.
+
246 bool hover_top = false; ///< Whether the resizeable top side is hovered.
+
247 bool hover_down = false; ///< Whether the resizeable down side is hovered.
+
248};
+
+
249
+
250// @brief Option for the `Window` component.
+
251// @ingroup component
+
+ +
253 Component inner; ///< The component wrapped by this window.
+
254 ConstStringRef title = ""; ///< The title displayed by this window.
+
255
+
256 Ref<int> left = 0; ///< The left side position of the window.
+
257 Ref<int> top = 0; ///< The top side position of the window.
+
258 Ref<int> width = 20; ///< The width of the window.
+
259 Ref<int> height = 10; ///< The height of the window.
+
260
+
261 Ref<bool> resize_left = true; ///< Can the left side be resized?
+
262 Ref<bool> resize_right = true; ///< Can the right side be resized?
+
263 Ref<bool> resize_top = true; ///< Can the top side be resized?
+
264 Ref<bool> resize_down = true; ///< Can the down side be resized?
+
265
+
266 /// An optional function to customize how the window looks like:
+
267 std::function<Element(const WindowRenderState&)> render;
+
268};
+
+
269
+
270/// @brief Option for the Dropdown component.
+
271/// @ingroup component
+
272/// A dropdown menu is a checkbox opening/closing a radiobox.
+
+ +
274 /// Whether the dropdown is open or closed:
+ +
276 // The options for the checkbox:
+ +
278 // The options for the radiobox:
+ +
280 // The transformation function:
+
281 std::function<Element(bool open, Element checkbox, Element radiobox)>
+ +
283};
+
+
284
+
285} // namespace ftxui
+
286
+
287#endif /* end of include guard: FTXUI_COMPONENT_COMPONENT_OPTIONS_HPP */
+ +
An adapter. Own or reference an immutable object.
Definition ref.hpp:17
+
An adapter. Reference a list of strings.
Definition ref.hpp:116
+
An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
Definition ref.hpp:94
+
An adapter. Own or reference an mutable object.
Definition ref.hpp:46
+
An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable ...
Definition ref.hpp:82
+ + + + +
static ButtonOption Animated()
Create a ButtonOption, using animated colors.
+
bool active
Whether the window is the active one.
+ +
std::function< void()> on_click
+
std::function< Element()> elements_prefix
+
static MenuOption Toggle()
Standard options for a horizontal menu with some separator. This can be useful to implement a tab bar...
+
animation::Duration follower_duration
+
animation::easing::Function leader_function
+
MenuEntryOption entries_option
+
bool drag
Whether the window is being dragged.
+
static InputOption Default()
Create the default input style:
+
animation::easing::Function function
+
animation::Duration follower_delay
+
static ButtonOption Border()
Create a ButtonOption. The button is shown using a border, inverted when focused. This is the current...
+
bool hover_down
Whether the resizeable down side is hovered.
+
const std::string & title
The title of the window.
+ +
void SetAnimationFunction(animation::easing::Function f)
Set how the underline should animate.
+
static InputOption Spacious()
A white on black style with high margins:
+
Ref< bool > insert
Insert or overtype character mode.
+
static CheckboxOption Simple()
Option for standard Checkbox.
+
bool resize
Whether the window is being resized.
+
std::function< void()> on_enter
+ +
Element inner
The element wrapped inside this window.
+
static ButtonOption Simple()
Create a ButtonOption, inverted when focused.
+
UnderlineOption underline
+
std::function< Element(const EntryState &state)> transform
+ + +
static MenuOption Horizontal()
Standard options for a horizontal menu. This can be useful to implement a tab bar.
+
static MenuOption VerticalAnimated()
Standard options for an animated vertical menu. This can be useful to implement a list of selectable ...
+
animation::Duration leader_duration
+
static MenuOption Vertical()
Standard options for a vertical menu. This can be useful to implement a list of selectable items.
+
static ButtonOption Ascii()
Create a ButtonOption, highlighted using [] characters.
+ + +
void SetAnimation(animation::Duration d, animation::easing::Function f)
Set how the underline should animate.
+
void SetAnimationDuration(animation::Duration d)
Set how the underline should animate.
+
ConstStringListRef entries
+
animation::easing::Function follower_function
+ + + +
bool hover_right
Whether the resizeable right side is hovered.
+
Ref< bool > password
Obscure the input content using '*'.
+
std::function< Element(InputState)> transform
+ +
std::function< Element()> elements_infix
+
Ref< bool > open
Whether the dropdown is open or closed:
+
StringRef placeholder
The content of the input when it's empty.
+
std::function< Element()> elements_postfix
+
AnimatedColorsOption animated_colors
+ +
bool hover_left
Whether the resizeable left side is hovered.
+
std::function< void()> on_change
+ +
StringRef content
The content of the input.
+
bool hover_top
Whether the resizeable top side is hovered.
+
void Set(Color inactive, Color active, animation::Duration duration=std::chrono::milliseconds(250), animation::easing::Function function=animation::easing::QuadraticInOut)
A color option that can be animated. @params _inactive The color when the component is inactive....
+ +
animation::Duration leader_delay
+
std::function< Element(bool open, Element checkbox, Element radiobox)> transform
+
static MenuOption HorizontalAnimated()
Standard options for an animated horizontal menu. This can be useful to implement a tab bar.
+
Ref< bool > multiline
Whether the input can be multiline.
+
static RadioboxOption Simple()
Option for standard Radiobox.
+
std::function< Element(const EntryState &)> transform
+
Option about a potentially animated color.
+
Option for the AnimatedButton component.
+
Option for the Checkbox component.
+
Option for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox.
+
Option for the Input component.
+
Option for the MenuEntry component.
+
Option for the Menu component.
+
Option for the Radiobox component.
+
Option for the underline effect.
+
State passed to the Window component's render function.
+
Direction
Direction is an enumeration that represents the four cardinal directions.
Definition direction.hpp:13
+ + + + + +
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
float QuadraticInOut(float p)
Definition animation.cpp:46
+
std::function< float(float)> Function
Definition animation.hpp:45
+
std::chrono::duration< float > Duration
Definition animation.hpp:30
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::shared_ptr< ComponentBase > Component
+ + + + +
arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
+
bool active
Whether the entry is the active one.
+
std::string label
The label to display.
+
bool focused
Whether the entry is one focused by the user.
+
int index
Index of the entry when applicable or -1.
+
bool state
The state of the button/checkbox/radiobox.
+
Used to define style for the Input component.
+
bool focused
Whether the input is focused by the user.
+
bool hovered
Whether the input is hovered by the mouse.
+ + + +
std::function< Element()> separator_func
+ + + + + + + + + + + +
std::function< void()> on_change
+ + +
Ref< bool > resize_down
Can the down side be resized?
+
Component inner
The component wrapped by this window.
+
Ref< bool > resize_left
Can the left side be resized?
+
Ref< int > height
The height of the window.
+
Ref< bool > resize_top
Can the top side be resized?
+
Ref< int > width
The width of the window.
+
std::function< Element(const WindowRenderState &)> render
An optional function to customize how the window looks like:
+
ConstStringRef title
The title displayed by this window.
+
Ref< bool > resize_right
Can the right side be resized?
+
Ref< int > left
The left side position of the window.
+
Ref< int > top
The top side position of the window.
+ +
+
+ + + + + diff --git a/composite__decorator_8cpp.html b/composite__decorator_8cpp.html new file mode 100644 index 000000000..756993b65 --- /dev/null +++ b/composite__decorator_8cpp.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: composite_decorator.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
composite_decorator.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + + + + + + + + + +

+Functions

Element hcenter (Element child)
 Center an element horizontally.
 
Element vcenter (Element child)
 Center an element vertically.
 
Element center (Element child)
 Center an element horizontally and vertically.
 
Element align_right (Element child)
 Align an element on the right side.
 
+
+
+ + + + + diff --git a/composite__decorator_8cpp.js b/composite__decorator_8cpp.js new file mode 100644 index 000000000..3acfaff4a --- /dev/null +++ b/composite__decorator_8cpp.js @@ -0,0 +1,7 @@ +var composite__decorator_8cpp = +[ + [ "hcenter", "composite__decorator_8cpp.html#gaf7d0d1e44c1a5424e42a5cddceacf7f7", null ], + [ "vcenter", "composite__decorator_8cpp.html#gad907a8a48bb9f9dfdb06402e9fc12316", null ], + [ "center", "composite__decorator_8cpp.html#ga5b11656305fce8427b81daf1c35883f1", null ], + [ "align_right", "composite__decorator_8cpp.html#ga778e52afe28f1978f1f7ef065ed92d6d", null ] +]; \ No newline at end of file diff --git a/composite__decorator_8cpp_source.html b/composite__decorator_8cpp_source.html new file mode 100644 index 000000000..0f597095e --- /dev/null +++ b/composite__decorator_8cpp_source.html @@ -0,0 +1,270 @@ + + + + + + + + +FTXUI: composite_decorator.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
composite_decorator.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, filler, operator|, hbox, flex_grow, vbox, xflex_grow, yflex_grow, align_right, center, hcenter, vcenter
+
8
+
9namespace ftxui {
+
10
+
11/// @brief Center an element horizontally.
+
12/// @param child The decorated element.
+
13/// @return The centered element.
+
14/// @ingroup dom
+
+ +
16 return hbox(filler(), std::move(child), filler());
+
17}
+
+
18
+
19/// @brief Center an element vertically.
+
20/// @param child The decorated element.
+
21/// @return The centered element.
+
22/// @ingroup dom
+
+ +
24 return vbox(filler(), std::move(child), filler());
+
25}
+
+
26
+
27/// @brief Center an element horizontally and vertically.
+
28/// @param child The decorated element.
+
29/// @return The centered element.
+
30/// @ingroup dom
+
+ +
32 return hcenter(vcenter(std::move(child)));
+
33}
+
+
34
+
35/// @brief Align an element on the right side.
+
36/// @param child The decorated element.
+
37/// @return The right aligned element.
+
38/// @ingroup dom
+
+ +
40 return hbox(filler(), std::move(child));
+
41}
+
+
42
+
43} // namespace ftxui
+ +
Element center(Element)
Center an element horizontally and vertically.
+
Element align_right(Element)
Align an element on the right side.
+
Element filler()
An element that will take expand proportionally to the space left in a container.
Definition flex.cpp:98
+
Element vcenter(Element)
Center an element vertically.
+
Element hcenter(Element)
Center an element horizontally.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+
+
+ + + + + diff --git a/composition_8cpp.html b/composition_8cpp.html new file mode 100644 index 000000000..7d3f90fed --- /dev/null +++ b/composition_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: composition.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
composition.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 17 of file composition.cpp.

+ +
+
+
+
+ + + + + diff --git a/composition_8cpp.js b/composition_8cpp.js new file mode 100644 index 000000000..b772ed124 --- /dev/null +++ b/composition_8cpp.js @@ -0,0 +1,4 @@ +var composition_8cpp = +[ + [ "main", "composition_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/composition_8cpp_source.html b/composition_8cpp_source.html new file mode 100644 index 000000000..6168408a3 --- /dev/null +++ b/composition_8cpp_source.html @@ -0,0 +1,289 @@ + + + + + + + + +FTXUI: composition.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
composition.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for allocator, shared_ptr, __shared_ptr_access
+
5#include <string> // for operator+, to_string
+
6
+
7#include "ftxui/component/captured_mouse.hpp" // for ftxui
+
8#include "ftxui/component/component.hpp" // for Button, Horizontal, Renderer
+
9#include "ftxui/component/component_base.hpp" // for ComponentBase
+
10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
11#include "ftxui/dom/elements.hpp" // for text, separator, Element, operator|, vbox, border
+
12
+
13using namespace ftxui;
+
14
+
15// An example of how to compose multiple components into one and maintain their
+
16// interactiveness.
+
+
17int main() {
+
18 auto left_count = 0;
+
19 auto right_count = 0;
+
20
+
21 auto left_buttons = Container::Horizontal({
+
22 Button("Decrease", [&] { left_count--; }),
+
23 Button("Increase", [&] { left_count++; }),
+
24 });
+
25
+
26 auto right_buttons = Container::Horizontal({
+
27 Button("Decrease", [&] { right_count--; }),
+
28 Button("Increase", [&] { right_count++; }),
+
29 });
+
30
+
31 // Renderer decorates its child with a new rendering function. The way the
+
32 // children reacts to events is maintained.
+
33 auto leftpane = Renderer(left_buttons, [&] {
+
34 return vbox({
+
35 text("This is the left control"),
+
36 separator(),
+
37 text("Left button count: " + std::to_string(left_count)),
+
38 left_buttons->Render(),
+
39 }) |
+
40 border;
+
41 });
+
42
+
43 auto rightpane = Renderer(right_buttons, [&] {
+
44 return vbox({
+
45 text("This is the right control"),
+
46 separator(),
+
47 text("Right button count: " + std::to_string(right_count)),
+
48 right_buttons->Render(),
+
49 }) |
+
50 border;
+
51 });
+
52
+
53 // Container groups components togethers. To render a Container::Horizontal,
+
54 // it render its children side by side. It maintains their interactiveness and
+
55 // provide the logic to navigate from one to the other using the arrow keys.
+
56 auto composition = Container::Horizontal({leftpane, rightpane});
+
57
+
58 auto screen = ScreenInteractive::FitComponent();
+
59 screen.Loop(composition);
+
60 return 0;
+
61}
+
+
62
+
63// Thanks to Chris Morgan for this example!
+ + + +
int main()
+ +
static ScreenInteractive FitComponent()
+
Component Horizontal(Components children)
A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
+
virtual void Render(Screen &screen)
Display an element on a ftxui::Screen.
Definition node.cpp:59
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element separator()
Draw a vertical or horizontal separation in between two other elements.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
+
+ + + + + diff --git a/container_8cpp.html b/container_8cpp.html new file mode 100644 index 000000000..5e99e71f6 --- /dev/null +++ b/container_8cpp.html @@ -0,0 +1,244 @@ + + + + + + + + +FTXUI: container.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
container.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::Container
 
+ + + + + + + + + + + + + + + + + + + +

+Functions

Component Vertical (Components children)
 A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys.
 
Component Vertical (Components children, int *selector)
 A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys. This is useful for implementing a Menu for instance.
 
Component Horizontal (Components children)
 A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
 
Component Horizontal (Components children, int *selector)
 A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
 
Component Tab (Components children, int *selector)
 A list of components, where only one is drawn and interacted with at a time. The |selector| gives the index of the selected component. This is useful to implement tabs.
 
Component Stacked (Components children)
 A list of components to be stacked on top of each other. Events are propagated to the first component, then the second if not handled, etc. The components are drawn in the reverse order they are given. When a component take focus, it is put at the front, without changing the relative order of the other elements.
 
+
+
+ + + + + diff --git a/container_8cpp.js b/container_8cpp.js new file mode 100644 index 000000000..c35d9a919 --- /dev/null +++ b/container_8cpp.js @@ -0,0 +1,9 @@ +var container_8cpp = +[ + [ "Vertical", "container_8cpp.html#ga6471e39f5664d059144746c5801d37e6", null ], + [ "Vertical", "container_8cpp.html#ga25099e2d2ead8a46c8d9a899982070b7", null ], + [ "Horizontal", "container_8cpp.html#ga01563bae9454fe64c0b29b0eb3755e68", null ], + [ "Horizontal", "container_8cpp.html#ga337564f8a13c98222025d8fe7e47df4c", null ], + [ "Tab", "container_8cpp.html#gaea9fe244eeeb420276bcc5760b46953d", null ], + [ "Stacked", "container_8cpp.html#gaafd394665b0c231380a143b810339d8e", null ] +]; \ No newline at end of file diff --git a/container_8cpp_source.html b/container_8cpp_source.html new file mode 100644 index 000000000..5f59d7dc2 --- /dev/null +++ b/container_8cpp_source.html @@ -0,0 +1,700 @@ + + + + + + + + +FTXUI: container.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
container.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <algorithm> // for max, min
+
5#include <cstddef> // for size_t
+
6#include <memory> // for make_shared, __shared_ptr_access, allocator, shared_ptr, allocator_traits<>::value_type
+
7#include <utility> // for move
+
8
+
9#include "ftxui/component/component.hpp" // for Horizontal, Vertical, Tab
+
10#include "ftxui/component/component_base.hpp" // for Components, Component, ComponentBase
+
11#include "ftxui/component/event.hpp" // for Event, Event::Tab, Event::TabReverse, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp, Event::End, Event::Home, Event::PageDown, Event::PageUp
+
12#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::WheelDown, Mouse::WheelUp
+
13#include "ftxui/dom/elements.hpp" // for text, Elements, operator|, reflect, Element, hbox, vbox
+
14#include "ftxui/screen/box.hpp" // for Box
+
15
+
16namespace ftxui {
+
17
+
18class ContainerBase : public ComponentBase {
+
19 public:
+
20 ContainerBase(Components children, int* selector)
+
21 : selector_(selector ? selector : &selected_) {
+
22 for (Component& child : children) {
+
23 Add(std::move(child));
+
24 }
+
25 }
+
26
+
27 // Component override.
+
28 bool OnEvent(Event event) override {
+
29 if (event.is_mouse()) {
+
30 return OnMouseEvent(event);
+
31 }
+
32
+
33 if (!Focused()) {
+
34 return false;
+
35 }
+
36
+
37 if (ActiveChild() && ActiveChild()->OnEvent(event)) {
+
38 return true;
+
39 }
+
40
+
41 return EventHandler(event);
+
42 }
+
43
+
44 Component ActiveChild() override {
+
45 if (children_.empty()) {
+
46 return nullptr;
+
47 }
+
48
+
49 return children_[static_cast<size_t>(*selector_) % children_.size()];
+
50 }
+
51
+
52 void SetActiveChild(ComponentBase* child) override {
+
53 for (size_t i = 0; i < children_.size(); ++i) {
+
54 if (children_[i].get() == child) {
+
55 *selector_ = static_cast<int>(i);
+
56 return;
+
57 }
+
58 }
+
59 }
+
60
+
61 protected:
+
62 // Handlers
+
63 virtual bool EventHandler(Event /*unused*/) { return false; } // NOLINT
+
64
+
65 virtual bool OnMouseEvent(Event event) {
+
66 return ComponentBase::OnEvent(std::move(event));
+
67 }
+
68
+
69 int selected_ = 0;
+
70 int* selector_ = nullptr;
+
71
+
72 void MoveSelector(int dir) {
+
73 for (int i = *selector_ + dir; i >= 0 && i < int(children_.size());
+
74 i += dir) {
+
75 if (children_[i]->Focusable()) {
+
76 *selector_ = i;
+
77 return;
+
78 }
+
79 }
+
80 }
+
81
+
82 void MoveSelectorWrap(int dir) {
+
83 if (children_.empty()) {
+
84 return;
+
85 }
+
86 for (size_t offset = 1; offset < children_.size(); ++offset) {
+
87 const size_t i =
+
88 (*selector_ + offset * dir + children_.size()) % children_.size();
+
89 if (children_[i]->Focusable()) {
+
90 *selector_ = int(i);
+
91 return;
+
92 }
+
93 }
+
94 }
+
95};
+
96
+
97class VerticalContainer : public ContainerBase {
+
98 public:
+
99 using ContainerBase::ContainerBase;
+
100
+
101 Element OnRender() override {
+
102 Elements elements;
+
103 elements.reserve(children_.size());
+
104 for (auto& it : children_) {
+
105 elements.push_back(it->Render());
+
106 }
+
107 if (elements.empty()) {
+
108 return text("Empty container") | reflect(box_);
+
109 }
+
110 return vbox(std::move(elements)) | reflect(box_);
+
111 }
+
112
+
113 bool EventHandler(Event event) override {
+
114 const int old_selected = *selector_;
+
115 if (event == Event::ArrowUp || event == Event::Character('k')) {
+
116 MoveSelector(-1);
+
117 }
+
118 if (event == Event::ArrowDown || event == Event::Character('j')) {
+
119 MoveSelector(+1);
+
120 }
+
121 if (event == Event::PageUp) {
+
122 for (int i = 0; i < box_.y_max - box_.y_min; ++i) {
+
123 MoveSelector(-1);
+
124 }
+
125 }
+
126 if (event == Event::PageDown) {
+
127 for (int i = 0; i < box_.y_max - box_.y_min; ++i) {
+
128 MoveSelector(1);
+
129 }
+
130 }
+
131 if (event == Event::Home) {
+
132 for (size_t i = 0; i < children_.size(); ++i) {
+
133 MoveSelector(-1);
+
134 }
+
135 }
+
136 if (event == Event::End) {
+
137 for (size_t i = 0; i < children_.size(); ++i) {
+
138 MoveSelector(1);
+
139 }
+
140 }
+
141 if (event == Event::Tab) {
+
142 MoveSelectorWrap(+1);
+
143 }
+
144 if (event == Event::TabReverse) {
+
145 MoveSelectorWrap(-1);
+
146 }
+
147
+
148 *selector_ = std::max(0, std::min(int(children_.size()) - 1, *selector_));
+
149 return old_selected != *selector_;
+
150 }
+
151
+
152 bool OnMouseEvent(Event event) override {
+
153 if (ContainerBase::OnMouseEvent(event)) {
+
154 return true;
+
155 }
+
156
+
157 if (event.mouse().button != Mouse::WheelUp &&
+
158 event.mouse().button != Mouse::WheelDown) {
+
159 return false;
+
160 }
+
161
+
162 if (!box_.Contain(event.mouse().x, event.mouse().y)) {
+
163 return false;
+
164 }
+
165
+
166 const int old_selected = *selector_;
+
167 if (event.mouse().button == Mouse::WheelUp) {
+
168 MoveSelector(-1);
+
169 }
+
170 if (event.mouse().button == Mouse::WheelDown) {
+
171 MoveSelector(+1);
+
172 }
+
173 *selector_ = std::max(0, std::min(int(children_.size()) - 1, *selector_));
+
174
+
175 return old_selected != *selector_;
+
176 }
+
177
+
178 Box box_;
+
179};
+
180
+
181class HorizontalContainer : public ContainerBase {
+
182 public:
+
183 using ContainerBase::ContainerBase;
+
184
+
185 Element OnRender() override {
+
186 Elements elements;
+
187 elements.reserve(children_.size());
+
188 for (auto& it : children_) {
+
189 elements.push_back(it->Render());
+
190 }
+
191 if (elements.empty()) {
+
192 return text("Empty container");
+
193 }
+
194 return hbox(std::move(elements));
+
195 }
+
196
+
197 bool EventHandler(Event event) override {
+
198 const int old_selected = *selector_;
+
199 if (event == Event::ArrowLeft || event == Event::Character('h')) {
+
200 MoveSelector(-1);
+
201 }
+
202 if (event == Event::ArrowRight || event == Event::Character('l')) {
+
203 MoveSelector(+1);
+
204 }
+
205 if (event == Event::Tab) {
+
206 MoveSelectorWrap(+1);
+
207 }
+
208 if (event == Event::TabReverse) {
+
209 MoveSelectorWrap(-1);
+
210 }
+
211
+
212 *selector_ = std::max(0, std::min(int(children_.size()) - 1, *selector_));
+
213 return old_selected != *selector_;
+
214 }
+
215};
+
216
+
217class TabContainer : public ContainerBase {
+
218 public:
+
219 using ContainerBase::ContainerBase;
+
220
+
221 Element OnRender() override {
+
222 const Component active_child = ActiveChild();
+
223 if (active_child) {
+
224 return active_child->Render();
+
225 }
+
226 return text("Empty container");
+
227 }
+
228
+
229 bool Focusable() const override {
+
230 if (children_.empty()) {
+
231 return false;
+
232 }
+
233 return children_[size_t(*selector_) % children_.size()]->Focusable();
+
234 }
+
235
+
236 bool OnMouseEvent(Event event) override {
+
237 return ActiveChild() && ActiveChild()->OnEvent(event);
+
238 }
+
239};
+
240
+
241class StackedContainer : public ContainerBase {
+
242 public:
+
243 explicit StackedContainer(Components children)
+
244 : ContainerBase(std::move(children), nullptr) {}
+
245
+
246 private:
+
247 Element OnRender() final {
+
248 Elements elements;
+
249 for (auto& child : children_) {
+
250 elements.push_back(child->Render());
+
251 }
+
252 // Reverse the order of the elements.
+
253 std::reverse(elements.begin(), elements.end());
+
254 return dbox(std::move(elements));
+
255 }
+
256
+
257 bool Focusable() const final {
+
258 for (const auto& child : children_) {
+
259 if (child->Focusable()) {
+
260 return true;
+
261 }
+
262 }
+
263 return false;
+
264 }
+
265
+
266 Component ActiveChild() final {
+
267 if (children_.empty()) {
+
268 return nullptr;
+
269 }
+
270 return children_[0];
+
271 }
+
272
+
273 void SetActiveChild(ComponentBase* child) final {
+
274 if (children_.empty()) {
+
275 return;
+
276 }
+
277
+
278 // Find `child` and put it at the beginning without change the order of the
+
279 // other children.
+
280 auto it =
+
281 std::find_if(children_.begin(), children_.end(),
+
282 [child](const Component& c) { return c.get() == child; });
+
283 if (it == children_.end()) {
+
284 return;
+
285 }
+
286 std::rotate(children_.begin(), it, it + 1);
+
287 }
+
288
+
289 bool OnEvent(Event event) final {
+
290 for (auto& child : children_) {
+
291 if (child->OnEvent(event)) {
+
292 return true;
+
293 }
+
294 }
+
295 return false;
+
296 }
+
297};
+
298
+
299namespace Container {
+
300
+
301/// @brief A list of components, drawn one by one vertically and navigated
+
302/// vertically using up/down arrow key or 'j'/'k' keys.
+
303/// @param children the list of components.
+
304/// @ingroup component
+
305/// @see ContainerBase
+
306///
+
307/// ### Example
+
308///
+
309/// ```cpp
+
310/// auto container = Container::Vertical({
+
311/// children_1,
+
312/// children_2,
+
313/// children_3,
+
314/// children_4,
+
315/// });
+
316/// ```
+
+ +
318 return Vertical(std::move(children), nullptr);
+
319}
+
+
320
+
321/// @brief A list of components, drawn one by one vertically and navigated
+
322/// vertically using up/down arrow key or 'j'/'k' keys.
+
323/// This is useful for implementing a Menu for instance.
+
324/// @param children the list of components.
+
325/// @param selector A reference to the index of the selected children.
+
326/// @ingroup component
+
327/// @see ContainerBase
+
328///
+
329/// ### Example
+
330///
+
331/// ```cpp
+
332/// auto container = Container::Vertical({
+
333/// children_1,
+
334/// children_2,
+
335/// children_3,
+
336/// children_4,
+
337/// }, &selected_children);
+
338/// ```
+
+
339Component Vertical(Components children, int* selector) {
+
340 return std::make_shared<VerticalContainer>(std::move(children), selector);
+
341}
+
+
342
+
343/// @brief A list of components, drawn one by one horizontally and navigated
+
344/// horizontally using left/right arrow key or 'h'/'l' keys.
+
345/// @param children the list of components.
+
346/// @ingroup component
+
347/// @see ContainerBase
+
348///
+
349/// ### Example
+
350///
+
351/// ```cpp
+
352/// int selected_children = 2;
+
353/// auto container = Container::Horizontal({
+
354/// children_1,
+
355/// children_2,
+
356/// children_3,
+
357/// children_4,
+
358/// });
+
359/// ```
+
+ +
361 return Horizontal(std::move(children), nullptr);
+
362}
+
+
363
+
364/// @brief A list of components, drawn one by one horizontally and navigated
+
365/// horizontally using left/right arrow key or 'h'/'l' keys.
+
366/// @param children the list of components.
+
367/// @param selector A reference to the index of the selected children.
+
368/// @ingroup component
+
369/// @see ContainerBase
+
370///
+
371/// ### Example
+
372///
+
373/// ```cpp
+
374/// int selected_children = 2;
+
375/// auto container = Container::Horizontal({
+
376/// children_1,
+
377/// children_2,
+
378/// children_3,
+
379/// children_4,
+
380/// }, selected_children);
+
381/// ```
+
+
382Component Horizontal(Components children, int* selector) {
+
383 return std::make_shared<HorizontalContainer>(std::move(children), selector);
+
384}
+
+
385
+
386/// @brief A list of components, where only one is drawn and interacted with at
+
387/// a time. The |selector| gives the index of the selected component. This is
+
388/// useful to implement tabs.
+
389/// @param children The list of components.
+
390/// @param selector The index of the drawn children.
+
391/// @ingroup component
+
392/// @see ContainerBase
+
393///
+
394/// ### Example
+
395///
+
396/// ```cpp
+
397/// int tab_drawn = 0;
+
398/// auto container = Container::Tab({
+
399/// children_1,
+
400/// children_2,
+
401/// children_3,
+
402/// children_4,
+
403/// }, &tab_drawn);
+
404/// ```
+
+
405Component Tab(Components children, int* selector) {
+
406 return std::make_shared<TabContainer>(std::move(children), selector);
+
407}
+
+
408
+
409/// @brief A list of components to be stacked on top of each other.
+
410/// Events are propagated to the first component, then the second if not
+
411/// handled, etc.
+
412/// The components are drawn in the reverse order they are given.
+
413/// When a component take focus, it is put at the front, without changing the
+
414/// relative order of the other elements.
+
415///
+
416/// This should be used with the `Window` component.
+
417///
+
418/// @param children The list of components.
+
419/// @ingroup component
+
420/// @see Window
+
421///
+
422/// ### Example
+
423///
+
424/// ```cpp
+
425/// auto container = Container::Stacked({
+
426/// children_1,
+
427/// children_2,
+
428/// children_3,
+
429/// children_4,
+
430/// });
+
431/// ```
+
+ +
433 return std::make_shared<StackedContainer>(std::move(children));
+
434}
+
+
435
+
436} // namespace Container
+
437
+
438} // namespace ftxui
+ + + + + +
static const Event TabReverse
Definition event.hpp:56
+
virtual bool Focusable() const
Return true when the component contains focusable elements. The non focusable Components will be skip...
+ + +
bool Focused() const
Returns if the elements if focused by the user. True when the ComponentBase is focused by the user....
+
static const Event PageUp
Definition event.hpp:62
+
void Add(Component children)
Add a child. @param child The child to be attached.
Definition component.cpp:70
+ +
static const Event ArrowUp
Definition event.hpp:42
+
static const Event Tab
Definition event.hpp:55
+
static const Event ArrowDown
Definition event.hpp:43
+
static const Event End
Definition event.hpp:61
+
static const Event Home
Definition event.hpp:60
+
virtual bool OnEvent(Event)
Called in response to an event.
+
static const Event PageDown
Definition event.hpp:63
+ +
static const Event ArrowLeft
Definition event.hpp:40
+
static const Event ArrowRight
Definition event.hpp:41
+
Component Horizontal(Components children)
A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
+
Component Vertical(Components children)
A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
+
Component Stacked(Components children)
A list of components to be stacked on top of each other. Events are propagated to the first component...
+
Component Tab(Components children, int *selector)
A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element dbox(Elements)
Stack several element on top of each other.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+
bool Contain(int x, int y) const
Definition box.cpp:42
+
int y_min
Definition box.hpp:19
+
int y_max
Definition box.hpp:20
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::vector< Component > Components
+
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+
std::vector< Element > Elements
Definition elements.hpp:23
+
Decorator reflect(Box &box)
Definition reflect.cpp:43
+
std::shared_ptr< ComponentBase > Component
+
+
+ + + + + diff --git a/cookie.js b/cookie.js new file mode 100644 index 000000000..53ad21d98 --- /dev/null +++ b/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/cpp20-modules.html b/cpp20-modules.html new file mode 100644 index 000000000..48314f01a --- /dev/null +++ b/cpp20-modules.html @@ -0,0 +1,299 @@ + + + + + + + + +FTXUI: C++20 Modules + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
C++20 Modules
+
+
+
Warning
This feature is still in development, and the API may change in future releases. Your contribution is needed to help us improve the compatibility and usability of C++20 modules in FTXUI. If you encounter any issues or have suggestions, please open an issue.
+

FTXUI experimentally supports C++20 modules to reduce compilation times and improve code organization. Each header has a corresponding module.

+

Use the FTXUI_BUILD_MODULES option to build the FTXUI project itself to provide C++ 20 modules, for example with CMake and Ninja:

+
cmake \
+
-DCMAKE_GENERATOR=Ninja \
+
-DFTXUI_BUILD_MODULES=ON \
+
..
+
+
ninja
+
Note
To use modules, you need a C++20 compatible compiler, CMake version 3.20 or higher, and use a compatible generator like Ninja. Note that Makefile generators do not support modules.
+

Then, in your own code you can consume the modules and code as normal:

+
import ftxui;
+
+
int main() {
+ +
auto button = ftxui::Button("Click me", screen.QuitClosure());
+
screen.Loop(button);
+
return 0;
+
}
+ +
static ScreenInteractive TerminalOutput()
+
Component Button(ButtonOption options)
Draw a button. Execute a function when clicked.
+
Module file re-exporting all FTXUI submodules.
+

Note, the ftxui convenience module which simply pulls together all the modules:

+
export import ftxui.component;
+
export import ftxui.dom;
+
export import ftxui.screen;
+
export import ftxui.util;
+
Module file for FTXUI component operations.
+
Module file for FTXUI main operations.
+
Module file for FTXUI screen operations.
+
Module file for FTXUI utility operations.
+

You can instead import only the module(s) you need if desired.

+

To properly find and link the modules with CMake, use target_link_libraries to get the right compiler, linker, etc. flags.

+
target_link_libraries(my_executable
+
#...whatever...
+
PRIVATE ftxui::modules
+
)
+

+Module list

+

The modules directly reference the corresponding header, or a group of related headers to provide a more convenient interface. The following modules are available:

+
    +
  • ftxui
      +
    • ftxui.component
        +
      • ftxui.component.Animation
      • +
      • ftxui.component.CapturedMouse
      • +
      • ftxui.component.Component
      • +
      • ftxui.component.ComponentBase
      • +
      • ftxui.component.ComponentOptions
      • +
      • ftxui.component.Event
      • +
      • ftxui.component.Loop
      • +
      • ftxui.component.Mouse
      • +
      • ftxui.component.Receiver
      • +
      • ftxui.component.ScreenInteractive
      • +
      • ftxui.component.Task
      • +
      +
    • +
    +
  • +
  • ftxui.dom
      +
    • ftxui.dom.Canvas
    • +
    • ftxui.dom.Deprecated
    • +
    • ftxui.dom.Direction
    • +
    • ftxui.dom.Elements
    • +
    • ftxui.dom.FlexboxConfig
    • +
    • ftxui.dom.LinearGradient
    • +
    • ftxui.dom.Node
    • +
    • ftxui.dom.Requirement
    • +
    • ftxui.dom.Selection
    • +
    • ftxui.dom.Table
    • +
    +
  • +
  • ftxui.screen
      +
    • ftxui.screen.Box
    • +
    • ftxui.screen.Color
    • +
    • ftxui.screen.ColorInfo
    • +
    • ftxui.screen.Deprecated
    • +
    • ftxui.screen.Image
    • +
    • ftxui.screen.Pixel
    • +
    • ftxui.screen.Screen
    • +
    • ftxui.screen.String
    • +
    • ftxui.screen.Terminal
    • +
    +
  • +
  • ftxui.util
      +
    • ftxui.util.AutoReset
    • +
    • ftxui.util.Ref
    • +
    +
  • +
+
+
+
+ + + + + diff --git a/cpp20-modules_8md.html b/cpp20-modules_8md.html new file mode 100644 index 000000000..edc7e3c49 --- /dev/null +++ b/cpp20-modules_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: cpp20-modules.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cpp20-modules.md File Reference
+
+
+
+
+ + + + + diff --git a/custom__loop_8cpp.html b/custom__loop_8cpp.html new file mode 100644 index 000000000..6d769f69a --- /dev/null +++ b/custom__loop_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: custom_loop.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
custom_loop.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 17 of file custom_loop.cpp.

+ +
+
+
+
+ + + + + diff --git a/custom__loop_8cpp.js b/custom__loop_8cpp.js new file mode 100644 index 000000000..210f08098 --- /dev/null +++ b/custom__loop_8cpp.js @@ -0,0 +1,4 @@ +var custom__loop_8cpp = +[ + [ "main", "custom__loop_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/custom__loop_8cpp_source.html b/custom__loop_8cpp_source.html new file mode 100644 index 000000000..970eee739 --- /dev/null +++ b/custom__loop_8cpp_source.html @@ -0,0 +1,275 @@ + + + + + + + + +FTXUI: custom_loop.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
custom_loop.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <stdlib.h> // for EXIT_SUCCESS
+
5#include <chrono> // for milliseconds
+
6#include <ftxui/component/event.hpp> // for Event
+
7#include <ftxui/component/mouse.hpp> // for ftxui
+
8#include <ftxui/dom/elements.hpp> // for text, separator, Element, operator|, vbox, border
+
9#include <memory> // for allocator, shared_ptr
+
10#include <string> // for operator+, to_string
+
11#include <thread> // for sleep_for
+
12
+
13#include "ftxui/component/component.hpp" // for CatchEvent, Renderer, operator|=
+
14#include "ftxui/component/loop.hpp" // for Loop
+
15#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
16
+
+
17int main() {
+
18 using namespace ftxui;
+
19 auto screen = ScreenInteractive::FitComponent();
+
20
+
21 // Create a component counting the number of frames drawn and event handled.
+
22 int custom_loop_count = 0;
+
23 int frame_count = 0;
+
24 int event_count = 0;
+
25 auto component = Renderer([&] {
+
26 frame_count++;
+
27 return vbox({
+
28 text("This demonstrates using a custom ftxui::Loop. It "),
+
29 text("runs at 100 iterations per seconds. The FTXUI events "),
+
30 text("are all processed once per iteration and a new frame "),
+
31 text("is rendered as needed"),
+
32 separator(),
+
33 text("ftxui event count: " + std::to_string(event_count)),
+
34 text("ftxui frame count: " + std::to_string(frame_count)),
+
35 text("Custom loop count: " + std::to_string(custom_loop_count)),
+
36 }) |
+
37 border;
+
38 });
+
39
+
40 component |= CatchEvent([&](Event) -> bool {
+
41 event_count++;
+
42 return false;
+
43 });
+
44
+
45 Loop loop(&screen, component);
+
46
+
47 while (!loop.HasQuitted()) {
+
48 custom_loop_count++;
+
49 loop.RunOnce();
+
50 std::this_thread::sleep_for(std::chrono::milliseconds(10));
+
51 }
+
52
+
53 return EXIT_SUCCESS;
+
54}
+
+ +
int main()
+ + +
Loop is a class that manages the event loop for a component.
Definition loop.hpp:56
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+ + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+ +
+
+ + + + + diff --git a/dim_8cpp.html b/dim_8cpp.html new file mode 100644 index 000000000..4005ce07f --- /dev/null +++ b/dim_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: dim.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
dim.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + +

+Functions

Element dim (Element child)
 Use a light font, for elements with less emphasis.
 
+
+
+ + + + + diff --git a/dim_8cpp.js b/dim_8cpp.js new file mode 100644 index 000000000..f3e4b0d54 --- /dev/null +++ b/dim_8cpp.js @@ -0,0 +1,4 @@ +var dim_8cpp = +[ + [ "dim", "dim_8cpp.html#gac6a3b77604739516e809369810896646", null ] +]; \ No newline at end of file diff --git a/dim_8cpp_source.html b/dim_8cpp_source.html new file mode 100644 index 000000000..8b163e6a4 --- /dev/null +++ b/dim_8cpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: dim.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dim.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for make_shared
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, dim
+
8#include "ftxui/dom/node.hpp" // for Node
+
9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
+
10#include "ftxui/screen/box.hpp" // for Box
+
11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
+
12
+
13namespace ftxui {
+
14
+
15namespace {
+
16class Dim : public NodeDecorator {
+
17 public:
+ +
19
+
20 void Render(Screen& screen) override {
+
21 Node::Render(screen);
+
22 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
23 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
24 screen.PixelAt(x, y).dim = true;
+
25 }
+
26 }
+
27 }
+
28};
+
29} // namespace
+
30
+
31/// @brief Use a light font, for elements with less emphasis.
+
32/// @ingroup dom
+
+ +
34 return std::make_shared<Dim>(std::move(child));
+
35}
+
+
36
+
37} // namespace ftxui
+ +
NodeDecorator(Element child)
+ +
friend void Render(Screen &screen, Node *node, Selection &selection)
Definition node.cpp:96
+
Element dim(Element)
Use a light font, for elements with less emphasis.
Definition dim.cpp:33
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ + + +
+
+ + + + + diff --git a/dir_000000_000005.html b/dir_000000_000005.html new file mode 100644 index 000000000..56bf9bf30 --- /dev/null +++ b/dir_000000_000005.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> dom Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

component → dom Relation

File in examples/componentIncludes file in examples/dom
homescreen.cppcolor_info_sorted_2d.ipp
+
+ + + + + diff --git a/dir_000000_000011.html b/dir_000000_000011.html new file mode 100644 index 000000000..6079c6ca2 --- /dev/null +++ b/dir_000000_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

component → include Relation

File in examples/componentIncludes file in include
button_animated.cppftxui / component / captured_mouse.hpp
button_animated.cppftxui / screen / color.hpp
button_animated.cppftxui / component / component.hpp
button_animated.cppftxui / component / component_base.hpp
button_animated.cppftxui / component / component_options.hpp
button_animated.cppftxui / dom / elements.hpp
button_animated.cppftxui / component / screen_interactive.hpp
button_in_frame.cppftxui / component / captured_mouse.hpp
button_in_frame.cppftxui / screen / color.hpp
button_in_frame.cppftxui / component / component.hpp
button_in_frame.cppftxui / component / component_base.hpp
button_in_frame.cppftxui / component / component_options.hpp
button_in_frame.cppftxui / dom / elements.hpp
button_in_frame.cppftxui / component / screen_interactive.hpp
button_style.cppftxui / component / captured_mouse.hpp
button_style.cppftxui / screen / color.hpp
button_style.cppftxui / component / component.hpp
button_style.cppftxui / component / component_base.hpp
button_style.cppftxui / component / component_options.hpp
button_style.cppftxui / dom / elements.hpp
button_style.cppftxui / component / screen_interactive.hpp
canvas_animated.cppftxui / dom / canvas.hpp
canvas_animated.cppftxui / screen / color.hpp
canvas_animated.cppftxui / component / component.hpp
canvas_animated.cppftxui / component / component_base.hpp
canvas_animated.cppftxui / dom / elements.hpp
canvas_animated.cppftxui / component / event.hpp
canvas_animated.cppftxui / component / mouse.hpp
canvas_animated.cppftxui / screen / screen.hpp
canvas_animated.cppftxui / component / screen_interactive.hpp
checkbox_in_frame.cppftxui / component / captured_mouse.hpp
checkbox_in_frame.cppftxui / component / component.hpp
checkbox_in_frame.cppftxui / component / component_base.hpp
checkbox_in_frame.cppftxui / dom / elements.hpp
checkbox_in_frame.cppftxui / component / screen_interactive.hpp
composition.cppftxui / component / captured_mouse.hpp
composition.cppftxui / component / component.hpp
composition.cppftxui / component / component_base.hpp
composition.cppftxui / dom / elements.hpp
composition.cppftxui / component / screen_interactive.hpp
custom_loop.cppftxui / component / component.hpp
custom_loop.cppftxui / dom / elements.hpp
custom_loop.cppftxui / component / event.hpp
custom_loop.cppftxui / component / loop.hpp
custom_loop.cppftxui / component / mouse.hpp
custom_loop.cppftxui / component / screen_interactive.hpp
dropdown_custom.cppftxui / component / captured_mouse.hpp
dropdown_custom.cppftxui / component / component.hpp
dropdown_custom.cppftxui / component / screen_interactive.hpp
examples/component/button.cppftxui / component / captured_mouse.hpp
examples/component/button.cppftxui / component / component.hpp
examples/component/button.cppftxui / component / component_base.hpp
examples/component/button.cppftxui / dom / elements.hpp
examples/component/button.cppftxui / component / screen_interactive.hpp
examples/component/checkbox.cppftxui / component / captured_mouse.hpp
examples/component/checkbox.cppftxui / component / component.hpp
examples/component/checkbox.cppftxui / component / component_base.hpp
examples/component/checkbox.cppftxui / dom / elements.hpp
examples/component/checkbox.cppftxui / component / screen_interactive.hpp
examples/component/collapsible.cppftxui / component / captured_mouse.hpp
examples/component/collapsible.cppftxui / component / component.hpp
examples/component/collapsible.cppftxui / component / component_base.hpp
examples/component/collapsible.cppftxui / dom / elements.hpp
examples/component/collapsible.cppftxui / component / screen_interactive.hpp
examples/component/dropdown.cppftxui / component / captured_mouse.hpp
examples/component/dropdown.cppftxui / component / component.hpp
examples/component/dropdown.cppftxui / component / screen_interactive.hpp
examples/component/focus.cppftxui / component / captured_mouse.hpp
examples/component/focus.cppftxui / screen / color.hpp
examples/component/focus.cppftxui / component / component.hpp
examples/component/focus.cppftxui / component / component_base.hpp
examples/component/focus.cppftxui / dom / elements.hpp
examples/component/focus.cppftxui / component / screen_interactive.hpp
examples/component/input.cppftxui / component / captured_mouse.hpp
examples/component/input.cppftxui / component / component.hpp
examples/component/input.cppftxui / component / component_base.hpp
examples/component/input.cppftxui / component / component_options.hpp
examples/component/input.cppftxui / dom / elements.hpp
examples/component/input.cppftxui / util / ref.hpp
examples/component/input.cppftxui / component / screen_interactive.hpp
examples/component/maybe.cppftxui / component / captured_mouse.hpp
examples/component/maybe.cppftxui / screen / color.hpp
examples/component/maybe.cppftxui / component / component.hpp
examples/component/maybe.cppftxui / component / component_base.hpp
examples/component/maybe.cppftxui / dom / elements.hpp
examples/component/maybe.cppftxui / component / screen_interactive.hpp
examples/component/menu.cppftxui / component / captured_mouse.hpp
examples/component/menu.cppftxui / component / component.hpp
examples/component/menu.cppftxui / component / component_options.hpp
examples/component/menu.cppftxui / component / screen_interactive.hpp
examples/component/radiobox.cppftxui / component / captured_mouse.hpp
examples/component/radiobox.cppftxui / component / component.hpp
examples/component/radiobox.cppftxui / component / screen_interactive.hpp
examples/component/renderer.cppftxui / component / captured_mouse.hpp
examples/component/renderer.cppftxui / screen / color.hpp
examples/component/renderer.cppftxui / component / component.hpp
examples/component/renderer.cppftxui / component / component_base.hpp
examples/component/renderer.cppftxui / dom / elements.hpp
examples/component/renderer.cppftxui / component / screen_interactive.hpp
examples/component/resizable_split.cppftxui / component / captured_mouse.hpp
examples/component/resizable_split.cppftxui / component / component.hpp
examples/component/resizable_split.cppftxui / component / component_base.hpp
examples/component/resizable_split.cppftxui / dom / elements.hpp
examples/component/resizable_split.cppftxui / component / screen_interactive.hpp
examples/component/selection.cppftxui / component / component.hpp
examples/component/selection.cppftxui / component / component_base.hpp
examples/component/selection.cppftxui / component / component_options.hpp
examples/component/selection.cppftxui / dom / elements.hpp
examples/component/selection.cppftxui / util / ref.hpp
examples/component/selection.cppftxui / component / screen_interactive.hpp
examples/component/slider.cppftxui / component / captured_mouse.hpp
examples/component/slider.cppftxui / component / component.hpp
examples/component/slider.cppftxui / component / screen_interactive.hpp
examples/component/window.cppftxui / component / component.hpp
examples/component/window.cppftxui / component / screen_interactive.hpp
flexbox_gallery.cppftxui / component / captured_mouse.hpp
flexbox_gallery.cppftxui / screen / color.hpp
flexbox_gallery.cppftxui / component / component.hpp
flexbox_gallery.cppftxui / component / component_base.hpp
flexbox_gallery.cppftxui / dom / elements.hpp
flexbox_gallery.cppftxui / dom / flexbox_config.hpp
flexbox_gallery.cppftxui / component / screen_interactive.hpp
focus_cursor.cppftxui / component / captured_mouse.hpp
focus_cursor.cppftxui / component / component.hpp
focus_cursor.cppftxui / dom / elements.hpp
focus_cursor.cppftxui / component / screen_interactive.hpp
gallery.cppftxui / component / captured_mouse.hpp
gallery.cppftxui / component / component.hpp
gallery.cppftxui / component / component_base.hpp
gallery.cppftxui / dom / elements.hpp
gallery.cppftxui / component / screen_interactive.hpp
homescreen.cppftxui / screen / color.hpp
homescreen.cppftxui / screen / color_info.hpp
homescreen.cppftxui / component / component.hpp
homescreen.cppftxui / component / component_base.hpp
homescreen.cppftxui / component / component_options.hpp
homescreen.cppftxui / dom / elements.hpp
homescreen.cppftxui / component / event.hpp
homescreen.cppftxui / dom / flexbox_config.hpp
homescreen.cppftxui / component / loop.hpp
homescreen.cppftxui / component / screen_interactive.hpp
homescreen.cppftxui / screen / terminal.hpp
input_in_frame.cppftxui / component / captured_mouse.hpp
input_in_frame.cppftxui / component / component.hpp
input_in_frame.cppftxui / component / component_base.hpp
input_in_frame.cppftxui / dom / elements.hpp
input_in_frame.cppftxui / component / screen_interactive.hpp
input_style.cppftxui / screen / color.hpp
input_style.cppftxui / component / component.hpp
input_style.cppftxui / component / component_base.hpp
input_style.cppftxui / component / component_options.hpp
input_style.cppftxui / dom / elements.hpp
input_style.cppftxui / dom / linear_gradient.hpp
input_style.cppftxui / component / screen_interactive.hpp
linear_gradient_gallery.cppftxui / component / captured_mouse.hpp
linear_gradient_gallery.cppftxui / screen / color.hpp
linear_gradient_gallery.cppftxui / component / component.hpp
linear_gradient_gallery.cppftxui / component / component_base.hpp
linear_gradient_gallery.cppftxui / dom / elements.hpp
linear_gradient_gallery.cppftxui / dom / linear_gradient.hpp
linear_gradient_gallery.cppftxui / component / screen_interactive.hpp
menu2.cppftxui / component / captured_mouse.hpp
menu2.cppftxui / component / component.hpp
menu2.cppftxui / component / component_base.hpp
menu2.cppftxui / component / component_options.hpp
menu2.cppftxui / dom / elements.hpp
menu2.cppftxui / component / screen_interactive.hpp
menu_entries.cppftxui / component / captured_mouse.hpp
menu_entries.cppftxui / screen / color.hpp
menu_entries.cppftxui / component / component.hpp
menu_entries.cppftxui / component / component_base.hpp
menu_entries.cppftxui / component / component_options.hpp
menu_entries.cppftxui / dom / elements.hpp
menu_entries.cppftxui / component / screen_interactive.hpp
menu_entries_animated.cppftxui / component / captured_mouse.hpp
menu_entries_animated.cppftxui / screen / color.hpp
menu_entries_animated.cppftxui / component / component.hpp
menu_entries_animated.cppftxui / component / component_base.hpp
menu_entries_animated.cppftxui / component / component_options.hpp
menu_entries_animated.cppftxui / dom / elements.hpp
menu_entries_animated.cppftxui / component / screen_interactive.hpp
menu_in_frame.cppftxui / component / captured_mouse.hpp
menu_in_frame.cppftxui / component / component.hpp
menu_in_frame.cppftxui / component / component_base.hpp
menu_in_frame.cppftxui / dom / elements.hpp
menu_in_frame.cppftxui / component / screen_interactive.hpp
menu_in_frame_horizontal.cppftxui / component / captured_mouse.hpp
menu_in_frame_horizontal.cppftxui / component / component.hpp
menu_in_frame_horizontal.cppftxui / component / component_base.hpp
menu_in_frame_horizontal.cppftxui / dom / elements.hpp
menu_in_frame_horizontal.cppftxui / component / screen_interactive.hpp
menu_multiple.cppftxui / component / captured_mouse.hpp
menu_multiple.cppftxui / component / component.hpp
menu_multiple.cppftxui / component / component_base.hpp
menu_multiple.cppftxui / dom / elements.hpp
menu_multiple.cppftxui / component / screen_interactive.hpp
menu_style.cppftxui / component / animation.hpp
menu_style.cppftxui / screen / color.hpp
menu_style.cppftxui / component / component.hpp
menu_style.cppftxui / component / component_base.hpp
menu_style.cppftxui / component / component_options.hpp
menu_style.cppftxui / dom / elements.hpp
menu_style.cppftxui / component / mouse.hpp
menu_style.cppftxui / component / screen_interactive.hpp
menu_underline_animated_gallery.cppftxui / component / animation.hpp
menu_underline_animated_gallery.cppftxui / screen / color.hpp
menu_underline_animated_gallery.cppftxui / component / component.hpp
menu_underline_animated_gallery.cppftxui / component / component_base.hpp
menu_underline_animated_gallery.cppftxui / component / component_options.hpp
menu_underline_animated_gallery.cppftxui / dom / elements.hpp
menu_underline_animated_gallery.cppftxui / component / mouse.hpp
menu_underline_animated_gallery.cppftxui / component / screen_interactive.hpp
modal_dialog.cppftxui / component / component.hpp
modal_dialog.cppftxui / component / component_options.hpp
modal_dialog.cppftxui / dom / elements.hpp
modal_dialog.cppftxui / component / mouse.hpp
modal_dialog.cppftxui / component / screen_interactive.hpp
modal_dialog_custom.cppftxui / component / captured_mouse.hpp
modal_dialog_custom.cppftxui / component / component.hpp
modal_dialog_custom.cppftxui / component / component_base.hpp
modal_dialog_custom.cppftxui / dom / elements.hpp
modal_dialog_custom.cppftxui / component / screen_interactive.hpp
nested_screen.cppftxui / component / captured_mouse.hpp
nested_screen.cppftxui / component / component.hpp
nested_screen.cppftxui / component / component_base.hpp
nested_screen.cppftxui / dom / elements.hpp
nested_screen.cppftxui / component / screen_interactive.hpp
print_key_press.cppftxui / component / captured_mouse.hpp
print_key_press.cppftxui / component / component.hpp
print_key_press.cppftxui / dom / elements.hpp
print_key_press.cppftxui / component / event.hpp
print_key_press.cppftxui / component / mouse.hpp
print_key_press.cppftxui / component / screen_interactive.hpp
radiobox_in_frame.cppftxui / component / captured_mouse.hpp
radiobox_in_frame.cppftxui / component / component.hpp
radiobox_in_frame.cppftxui / component / component_base.hpp
radiobox_in_frame.cppftxui / dom / elements.hpp
radiobox_in_frame.cppftxui / component / screen_interactive.hpp
scrollbar.cppftxui / component / component.hpp
scrollbar.cppftxui / component / screen_interactive.hpp
slider_direction.cppftxui / component / captured_mouse.hpp
slider_direction.cppftxui / component / component.hpp
slider_direction.cppftxui / component / component_base.hpp
slider_direction.cppftxui / component / component_options.hpp
slider_direction.cppftxui / dom / direction.hpp
slider_direction.cppftxui / dom / elements.hpp
slider_direction.cppftxui / util / ref.hpp
slider_direction.cppftxui / component / screen_interactive.hpp
slider_rgb.cppftxui / component / captured_mouse.hpp
slider_rgb.cppftxui / screen / color.hpp
slider_rgb.cppftxui / component / component.hpp
slider_rgb.cppftxui / component / component_base.hpp
slider_rgb.cppftxui / dom / elements.hpp
slider_rgb.cppftxui / component / screen_interactive.hpp
tab_horizontal.cppftxui / component / captured_mouse.hpp
tab_horizontal.cppftxui / component / component.hpp
tab_horizontal.cppftxui / component / component_base.hpp
tab_horizontal.cppftxui / dom / elements.hpp
tab_horizontal.cppftxui / component / screen_interactive.hpp
tab_vertical.cppftxui / component / captured_mouse.hpp
tab_vertical.cppftxui / component / component.hpp
tab_vertical.cppftxui / component / component_base.hpp
tab_vertical.cppftxui / dom / elements.hpp
tab_vertical.cppftxui / component / screen_interactive.hpp
textarea.cppftxui / component / captured_mouse.hpp
textarea.cppftxui / component / component.hpp
textarea.cppftxui / component / component_base.hpp
textarea.cppftxui / dom / elements.hpp
textarea.cppftxui / component / screen_interactive.hpp
toggle.cppftxui / component / captured_mouse.hpp
toggle.cppftxui / component / component.hpp
toggle.cppftxui / component / component_base.hpp
toggle.cppftxui / dom / elements.hpp
toggle.cppftxui / component / screen_interactive.hpp
with_restored_io.cppftxui / component / captured_mouse.hpp
with_restored_io.cppftxui / component / component.hpp
with_restored_io.cppftxui / component / component_base.hpp
with_restored_io.cppftxui / dom / elements.hpp
with_restored_io.cppftxui / component / screen_interactive.hpp
+
+ + + + + diff --git a/dir_000001_000006.html b/dir_000001_000006.html new file mode 100644 index 000000000..9f4442bfd --- /dev/null +++ b/dir_000001_000006.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> dom Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ + + + + diff --git a/dir_000001_000012.html b/dir_000001_000012.html new file mode 100644 index 000000000..77445d8d3 --- /dev/null +++ b/dir_000001_000012.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> screen Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

component → screen Relation

File in include/ftxui/componentIncludes file in include/ftxui/screen
component_options.hppcolor.hpp
screen_interactive.hppscreen.hpp
+
+ + + + + diff --git a/dir_000001_000015.html b/dir_000001_000015.html new file mode 100644 index 000000000..90b15b517 --- /dev/null +++ b/dir_000001_000015.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> util Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ + + + + diff --git a/dir_000002_000007.html b/dir_000002_000007.html new file mode 100644 index 000000000..3c9482499 --- /dev/null +++ b/dir_000002_000007.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> dom Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

component → dom Relation

File in src/ftxui/componentIncludes file in src/ftxui/dom
src/ftxui/component/window.cppnode_decorator.hpp
+
+ + + + + diff --git a/dir_000002_000011.html b/dir_000002_000011.html new file mode 100644 index 000000000..c751a614c --- /dev/null +++ b/dir_000002_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

component → include Relation

File in src/ftxui/componentIncludes file in include
animation.cppftxui / component / animation.hpp
animation.cppmftxui / component / animation.hpp
captured_mouse.cppmftxui / component / captured_mouse.hpp
catch_event.cppftxui / component / component.hpp
catch_event.cppftxui / component / component_base.hpp
catch_event.cppftxui / component / event.hpp
component.cppftxui / screen / box.hpp
component.cppftxui / component / captured_mouse.hpp
component.cppftxui / component / component.hpp
component.cppftxui / component / component_base.hpp
component.cppftxui / dom / elements.hpp
component.cppftxui / component / event.hpp
component.cppftxui / dom / node.hpp
component.cppftxui / component / screen_interactive.hpp
component/component.cppmftxui / component / component.hpp
component/util.cppftxui / component / component.hpp
component/util.cppftxui / component / component_base.hpp
component_base.cppmftxui / component / component_base.hpp
component_fuzzer.cppftxui / component / component.hpp
component_fuzzer.cppftxui / component / event.hpp
component_options.cppftxui / component / animation.hpp
component_options.cppftxui / screen / color.hpp
component_options.cppftxui / component / component_options.hpp
component_options.cppftxui / dom / direction.hpp
component_options.cppftxui / dom / elements.hpp
component_options.cppmftxui / component / component_options.hpp
container.cppftxui / screen / box.hpp
container.cppftxui / component / component.hpp
container.cppftxui / component / component_base.hpp
container.cppftxui / dom / elements.hpp
container.cppftxui / component / event.hpp
container.cppftxui / component / mouse.hpp
event.cppftxui / component / event.hpp
event.cppftxui / component / mouse.hpp
event.cppftxui / screen / string.hpp
event.cppmftxui / component / event.hpp
hoverable.cppftxui / screen / box.hpp
hoverable.cppftxui / component / component.hpp
hoverable.cppftxui / component / component_base.hpp
hoverable.cppftxui / dom / elements.hpp
hoverable.cppftxui / component / event.hpp
hoverable.cppftxui / component / mouse.hpp
hoverable.cppftxui / component / screen_interactive.hpp
loop.cppftxui / component / loop.hpp
loop.cppftxui / component / screen_interactive.hpp
loop.cppmftxui / component / loop.hpp
modal.cppftxui / component / component.hpp
modal.cppftxui / component / component_base.hpp
modal.cppftxui / dom / elements.hpp
modal.cppftxui / component / event.hpp
mouse.cppmftxui / component / mouse.hpp
receiver.cppmftxui / component / receiver.hpp
screen_interactive.cppftxui / component / animation.hpp
screen_interactive.cppftxui / util / autoreset.hpp
screen_interactive.cppftxui / component / captured_mouse.hpp
screen_interactive.cppftxui / component / component_base.hpp
screen_interactive.cppftxui / component / event.hpp
screen_interactive.cppftxui / component / loop.hpp
screen_interactive.cppftxui / dom / node.hpp
screen_interactive.cppftxui / screen / screen.hpp
screen_interactive.cppftxui / component / screen_interactive.hpp
screen_interactive.cppftxui / component / task.hpp
screen_interactive.cppftxui / screen / terminal.hpp
screen_interactive.cppmftxui / component / screen_interactive.hpp
src/ftxui/component/button.cppftxui / component / animation.hpp
src/ftxui/component/button.cppftxui / screen / box.hpp
src/ftxui/component/button.cppftxui / screen / color.hpp
src/ftxui/component/button.cppftxui / component / component.hpp
src/ftxui/component/button.cppftxui / component / component_base.hpp
src/ftxui/component/button.cppftxui / component / component_options.hpp
src/ftxui/component/button.cppftxui / dom / elements.hpp
src/ftxui/component/button.cppftxui / component / event.hpp
src/ftxui/component/button.cppftxui / component / mouse.hpp
src/ftxui/component/button.cppftxui / util / ref.hpp
src/ftxui/component/button.cppftxui / component / screen_interactive.hpp
src/ftxui/component/checkbox.cppftxui / screen / box.hpp
src/ftxui/component/checkbox.cppftxui / component / component.hpp
src/ftxui/component/checkbox.cppftxui / component / component_base.hpp
src/ftxui/component/checkbox.cppftxui / component / component_options.hpp
src/ftxui/component/checkbox.cppftxui / dom / elements.hpp
src/ftxui/component/checkbox.cppftxui / component / event.hpp
src/ftxui/component/checkbox.cppftxui / component / mouse.hpp
src/ftxui/component/checkbox.cppftxui / util / ref.hpp
src/ftxui/component/collapsible.cppftxui / component / component.hpp
src/ftxui/component/collapsible.cppftxui / component / component_base.hpp
src/ftxui/component/collapsible.cppftxui / component / component_options.hpp
src/ftxui/component/collapsible.cppftxui / dom / elements.hpp
src/ftxui/component/collapsible.cppftxui / util / ref.hpp
src/ftxui/component/dropdown.cppftxui / component / component.hpp
src/ftxui/component/dropdown.cppftxui / component / component_base.hpp
src/ftxui/component/dropdown.cppftxui / component / component_options.hpp
src/ftxui/component/dropdown.cppftxui / dom / elements.hpp
src/ftxui/component/dropdown.cppftxui / component / event.hpp
src/ftxui/component/dropdown.cppftxui / util / ref.hpp
src/ftxui/component/input.cppftxui / screen / box.hpp
src/ftxui/component/input.cppftxui / component / component.hpp
src/ftxui/component/input.cppftxui / component / component_base.hpp
src/ftxui/component/input.cppftxui / component / component_options.hpp
src/ftxui/component/input.cppftxui / dom / elements.hpp
src/ftxui/component/input.cppftxui / component / event.hpp
src/ftxui/component/input.cppftxui / component / mouse.hpp
src/ftxui/component/input.cppftxui / util / ref.hpp
src/ftxui/component/input.cppftxui / component / screen_interactive.hpp
src/ftxui/component/input.cppftxui / screen / string.hpp
src/ftxui/component/maybe.cppftxui / component / component.hpp
src/ftxui/component/maybe.cppftxui / component / component_base.hpp
src/ftxui/component/maybe.cppftxui / dom / elements.hpp
src/ftxui/component/maybe.cppftxui / component / event.hpp
src/ftxui/component/maybe.cppftxui / dom / node.hpp
src/ftxui/component/menu.cppftxui / component / animation.hpp
src/ftxui/component/menu.cppftxui / screen / box.hpp
src/ftxui/component/menu.cppftxui / screen / color.hpp
src/ftxui/component/menu.cppftxui / component / component.hpp
src/ftxui/component/menu.cppftxui / component / component_base.hpp
src/ftxui/component/menu.cppftxui / component / component_options.hpp
src/ftxui/component/menu.cppftxui / dom / direction.hpp
src/ftxui/component/menu.cppftxui / dom / elements.hpp
src/ftxui/component/menu.cppftxui / component / event.hpp
src/ftxui/component/menu.cppftxui / component / mouse.hpp
src/ftxui/component/menu.cppftxui / util / ref.hpp
src/ftxui/component/menu.cppftxui / component / screen_interactive.hpp
src/ftxui/component/radiobox.cppftxui / screen / box.hpp
src/ftxui/component/radiobox.cppftxui / component / component.hpp
src/ftxui/component/radiobox.cppftxui / component / component_base.hpp
src/ftxui/component/radiobox.cppftxui / component / component_options.hpp
src/ftxui/component/radiobox.cppftxui / dom / elements.hpp
src/ftxui/component/radiobox.cppftxui / component / event.hpp
src/ftxui/component/radiobox.cppftxui / component / mouse.hpp
src/ftxui/component/radiobox.cppftxui / util / ref.hpp
src/ftxui/component/radiobox.cppftxui / component / screen_interactive.hpp
src/ftxui/component/renderer.cppftxui / screen / box.hpp
src/ftxui/component/renderer.cppftxui / component / component.hpp
src/ftxui/component/renderer.cppftxui / component / component_base.hpp
src/ftxui/component/renderer.cppftxui / dom / elements.hpp
src/ftxui/component/renderer.cppftxui / component / event.hpp
src/ftxui/component/renderer.cppftxui / component / mouse.hpp
src/ftxui/component/resizable_split.cppftxui / screen / box.hpp
src/ftxui/component/resizable_split.cppftxui / component / captured_mouse.hpp
src/ftxui/component/resizable_split.cppftxui / component / component.hpp
src/ftxui/component/resizable_split.cppftxui / component / component_base.hpp
src/ftxui/component/resizable_split.cppftxui / component / component_options.hpp
src/ftxui/component/resizable_split.cppftxui / dom / direction.hpp
src/ftxui/component/resizable_split.cppftxui / dom / elements.hpp
src/ftxui/component/resizable_split.cppftxui / component / event.hpp
src/ftxui/component/resizable_split.cppftxui / component / mouse.hpp
src/ftxui/component/resizable_split.cppftxui / util / ref.hpp
src/ftxui/component/slider.cppftxui / screen / box.hpp
src/ftxui/component/slider.cppftxui / component / captured_mouse.hpp
src/ftxui/component/slider.cppftxui / screen / color.hpp
src/ftxui/component/slider.cppftxui / component / component.hpp
src/ftxui/component/slider.cppftxui / component / component_base.hpp
src/ftxui/component/slider.cppftxui / component / component_options.hpp
src/ftxui/component/slider.cppftxui / dom / direction.hpp
src/ftxui/component/slider.cppftxui / dom / elements.hpp
src/ftxui/component/slider.cppftxui / component / event.hpp
src/ftxui/component/slider.cppftxui / component / mouse.hpp
src/ftxui/component/slider.cppftxui / util / ref.hpp
src/ftxui/component/slider.cppftxui / component / screen_interactive.hpp
src/ftxui/component/window.cppftxui / screen / color.hpp
src/ftxui/component/window.cppftxui / component / component.hpp
src/ftxui/component/window.cppftxui / component / component_base.hpp
src/ftxui/component/window.cppftxui / component / component_options.hpp
src/ftxui/component/window.cppftxui / dom / elements.hpp
src/ftxui/component/window.cppftxui / screen / screen.hpp
src/ftxui/component/window.cppftxui / component / screen_interactive.hpp
task.cppmftxui / component / task.hpp
terminal_input_parser.cppftxui / component / event.hpp
terminal_input_parser.cppftxui / component / mouse.hpp
terminal_input_parser.cppftxui / component / task.hpp
terminal_input_parser.hppftxui / component / mouse.hpp
terminal_input_parser_test_fuzzer.cppftxui / component / event.hpp
+
+ + + + + diff --git a/dir_000002_000013.html b/dir_000002_000013.html new file mode 100644 index 000000000..5a05b75a6 --- /dev/null +++ b/dir_000002_000013.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: component -> screen Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ + + + + diff --git a/dir_000005_000011.html b/dir_000005_000011.html new file mode 100644 index 000000000..f1c4c9f18 --- /dev/null +++ b/dir_000005_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: dom -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dom → include Relation

File in examples/domIncludes file in include
border_colored.cppftxui / screen / color.hpp
border_colored.cppftxui / dom / elements.hpp
border_colored.cppftxui / dom / node.hpp
border_colored.cppftxui / screen / screen.hpp
border_style.cppftxui / screen / color.hpp
border_style.cppftxui / dom / elements.hpp
border_style.cppftxui / dom / node.hpp
border_style.cppftxui / screen / screen.hpp
color_gallery.cppftxui / screen / color.hpp
color_gallery.cppftxui / screen / color_info.hpp
color_gallery.cppftxui / dom / elements.hpp
color_gallery.cppftxui / dom / node.hpp
color_gallery.cppftxui / screen / screen.hpp
color_gallery.cppftxui / screen / terminal.hpp
color_info_palette256.cppftxui / screen / color.hpp
color_info_palette256.cppftxui / screen / color_info.hpp
color_info_palette256.cppftxui / dom / elements.hpp
color_info_palette256.cppftxui / dom / node.hpp
color_info_palette256.cppftxui / screen / screen.hpp
color_info_sorted_2d.ippftxui / screen / color_info.hpp
color_truecolor_HSV.cppftxui / screen / color.hpp
color_truecolor_HSV.cppftxui / dom / elements.hpp
color_truecolor_HSV.cppftxui / dom / node.hpp
color_truecolor_HSV.cppftxui / screen / screen.hpp
color_truecolor_RGB.cppftxui / screen / color.hpp
color_truecolor_RGB.cppftxui / dom / elements.hpp
color_truecolor_RGB.cppftxui / dom / node.hpp
color_truecolor_RGB.cppftxui / screen / screen.hpp
examples/dom/border.cppftxui / screen / color.hpp
examples/dom/border.cppftxui / dom / elements.hpp
examples/dom/border.cppftxui / dom / node.hpp
examples/dom/border.cppftxui / screen / screen.hpp
examples/dom/canvas.cppftxui / dom / canvas.hpp
examples/dom/canvas.cppftxui / screen / color.hpp
examples/dom/canvas.cppftxui / dom / elements.hpp
examples/dom/canvas.cppftxui / dom / node.hpp
examples/dom/canvas.cppftxui / screen / screen.hpp
examples/dom/dbox.cppftxui / screen / color.hpp
examples/dom/dbox.cppftxui / dom / elements.hpp
examples/dom/dbox.cppftxui / dom / node.hpp
examples/dom/dbox.cppftxui / screen / screen.hpp
examples/dom/gauge.cppftxui / screen / color.hpp
examples/dom/gauge.cppftxui / dom / elements.hpp
examples/dom/gauge.cppftxui / dom / node.hpp
examples/dom/gauge.cppftxui / screen / screen.hpp
examples/dom/graph.cppftxui / screen / color.hpp
examples/dom/graph.cppftxui / dom / elements.hpp
examples/dom/graph.cppftxui / dom / node.hpp
examples/dom/graph.cppftxui / screen / screen.hpp
examples/dom/gridbox.cppftxui / screen / color.hpp
examples/dom/gridbox.cppftxui / dom / elements.hpp
examples/dom/gridbox.cppftxui / dom / node.hpp
examples/dom/gridbox.cppftxui / screen / screen.hpp
examples/dom/linear_gradient.cppftxui / screen / color.hpp
examples/dom/linear_gradient.cppftxui / dom / elements.hpp
examples/dom/linear_gradient.cppftxui / dom / linear_gradient.hpp
examples/dom/linear_gradient.cppftxui / dom / node.hpp
examples/dom/linear_gradient.cppftxui / screen / screen.hpp
examples/dom/paragraph.cppftxui / screen / box.hpp
examples/dom/paragraph.cppftxui / dom / elements.hpp
examples/dom/paragraph.cppftxui / dom / node.hpp
examples/dom/paragraph.cppftxui / screen / screen.hpp
examples/dom/separator.cppftxui / screen / color.hpp
examples/dom/separator.cppftxui / dom / elements.hpp
examples/dom/separator.cppftxui / dom / node.hpp
examples/dom/separator.cppftxui / screen / screen.hpp
examples/dom/size.cppftxui / screen / color.hpp
examples/dom/size.cppftxui / dom / elements.hpp
examples/dom/size.cppftxui / dom / node.hpp
examples/dom/size.cppftxui / screen / screen.hpp
examples/dom/spinner.cppftxui / screen / color.hpp
examples/dom/spinner.cppftxui / dom / elements.hpp
examples/dom/spinner.cppftxui / dom / node.hpp
examples/dom/spinner.cppftxui / screen / screen.hpp
examples/dom/table.cppftxui / screen / color.hpp
examples/dom/table.cppftxui / dom / elements.hpp
examples/dom/table.cppftxui / dom / node.hpp
examples/dom/table.cppftxui / screen / screen.hpp
examples/dom/table.cppftxui / dom / table.hpp
gauge_direction.cppftxui / screen / color.hpp
gauge_direction.cppftxui / dom / elements.hpp
gauge_direction.cppftxui / dom / node.hpp
gauge_direction.cppftxui / screen / screen.hpp
hflow.cppftxui / screen / color.hpp
hflow.cppftxui / dom / elements.hpp
hflow.cppftxui / dom / node.hpp
hflow.cppftxui / screen / screen.hpp
html_like.cppftxui / screen / box.hpp
html_like.cppftxui / screen / color.hpp
html_like.cppftxui / dom / elements.hpp
html_like.cppftxui / dom / node.hpp
html_like.cppftxui / screen / screen.hpp
package_manager.cppftxui / screen / color.hpp
package_manager.cppftxui / dom / elements.hpp
package_manager.cppftxui / dom / node.hpp
package_manager.cppftxui / screen / screen.hpp
separator_style.cppftxui / screen / box.hpp
separator_style.cppftxui / dom / elements.hpp
separator_style.cppftxui / dom / node.hpp
separator_style.cppftxui / screen / screen.hpp
style_blink.cppftxui / screen / color.hpp
style_blink.cppftxui / dom / elements.hpp
style_blink.cppftxui / dom / node.hpp
style_blink.cppftxui / screen / screen.hpp
style_bold.cppftxui / screen / color.hpp
style_bold.cppftxui / dom / elements.hpp
style_bold.cppftxui / dom / node.hpp
style_bold.cppftxui / screen / screen.hpp
style_color.cppftxui / screen / color.hpp
style_color.cppftxui / dom / elements.hpp
style_color.cppftxui / dom / linear_gradient.hpp
style_color.cppftxui / dom / node.hpp
style_color.cppftxui / screen / screen.hpp
style_dim.cppftxui / screen / color.hpp
style_dim.cppftxui / dom / elements.hpp
style_dim.cppftxui / dom / node.hpp
style_dim.cppftxui / screen / screen.hpp
style_gallery.cppftxui / screen / color.hpp
style_gallery.cppftxui / dom / elements.hpp
style_gallery.cppftxui / dom / node.hpp
style_gallery.cppftxui / screen / screen.hpp
style_hyperlink.cppftxui / screen / color.hpp
style_hyperlink.cppftxui / dom / elements.hpp
style_hyperlink.cppftxui / dom / node.hpp
style_hyperlink.cppftxui / screen / screen.hpp
style_inverted.cppftxui / screen / color.hpp
style_inverted.cppftxui / dom / elements.hpp
style_inverted.cppftxui / dom / node.hpp
style_inverted.cppftxui / screen / screen.hpp
style_italic.cppftxui / screen / color.hpp
style_italic.cppftxui / dom / elements.hpp
style_italic.cppftxui / dom / node.hpp
style_italic.cppftxui / screen / screen.hpp
style_strikethrough.cppftxui / screen / color.hpp
style_strikethrough.cppftxui / dom / elements.hpp
style_strikethrough.cppftxui / dom / node.hpp
style_strikethrough.cppftxui / screen / screen.hpp
style_underlined.cppftxui / screen / color.hpp
style_underlined.cppftxui / dom / elements.hpp
style_underlined.cppftxui / dom / node.hpp
style_underlined.cppftxui / screen / screen.hpp
style_underlined_double.cppftxui / screen / color.hpp
style_underlined_double.cppftxui / dom / elements.hpp
style_underlined_double.cppftxui / dom / node.hpp
style_underlined_double.cppftxui / screen / screen.hpp
vbox_hbox.cppftxui / screen / color.hpp
vbox_hbox.cppftxui / dom / elements.hpp
vbox_hbox.cppftxui / dom / node.hpp
vbox_hbox.cppftxui / screen / screen.hpp
vflow.cppftxui / screen / color.hpp
vflow.cppftxui / dom / elements.hpp
vflow.cppftxui / dom / node.hpp
vflow.cppftxui / screen / screen.hpp
+
+ + + + + diff --git a/dir_000006_000012.html b/dir_000006_000012.html new file mode 100644 index 000000000..accb649cf --- /dev/null +++ b/dir_000006_000012.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: dom -> screen Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + + diff --git a/dir_000006_000015.html b/dir_000006_000015.html new file mode 100644 index 000000000..ede0e5e2e --- /dev/null +++ b/dir_000006_000015.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: dom -> util Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dom → util Relation

File in include/ftxui/domIncludes file in include/ftxui/util
elements.hppref.hpp
+
+ + + + + diff --git a/dir_000007_000011.html b/dir_000007_000011.html new file mode 100644 index 000000000..9daf5ee96 --- /dev/null +++ b/dir_000007_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: dom -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dom → include Relation

File in src/ftxui/domIncludes file in include
automerge.cppftxui / screen / box.hpp
automerge.cppftxui / dom / elements.hpp
automerge.cppftxui / dom / node.hpp
automerge.cppftxui / screen / screen.hpp
blink.cppftxui / screen / box.hpp
blink.cppftxui / dom / elements.hpp
blink.cppftxui / dom / node.hpp
blink.cppftxui / screen / screen.hpp
bold.cppftxui / screen / box.hpp
bold.cppftxui / dom / elements.hpp
bold.cppftxui / dom / node.hpp
bold.cppftxui / screen / screen.hpp
box_helper.hppftxui / dom / requirement.hpp
canvas.cppmftxui / dom / canvas.hpp
clear_under.cppftxui / screen / box.hpp
clear_under.cppftxui / dom / elements.hpp
clear_under.cppftxui / dom / node.hpp
clear_under.cppftxui / screen / screen.hpp
composite_decorator.cppftxui / dom / elements.hpp
dim.cppftxui / screen / box.hpp
dim.cppftxui / dom / elements.hpp
dim.cppftxui / dom / node.hpp
dim.cppftxui / screen / screen.hpp
direction.cppmftxui / dom / direction.hpp
dom/color.cppftxui / screen / box.hpp
dom/color.cppftxui / screen / color.hpp
dom/color.cppftxui / dom / elements.hpp
dom/color.cppftxui / screen / screen.hpp
dom/deprecated.cppmftxui / dom / dom/deprecated.hpp
dom/util.cppftxui / screen / box.hpp
dom/util.cppftxui / dom / elements.hpp
dom/util.cppftxui / dom / node.hpp
dom/util.cppftxui / dom / requirement.hpp
dom/util.cppftxui / screen / screen.hpp
dom/util.cppftxui / screen / terminal.hpp
elements.cppmftxui / dom / elements.hpp
flex.cppftxui / screen / box.hpp
flex.cppftxui / dom / elements.hpp
flex.cppftxui / dom / node.hpp
flex.cppftxui / dom / requirement.hpp
flexbox.cppftxui / screen / box.hpp
flexbox.cppftxui / dom / elements.hpp
flexbox.cppftxui / dom / flexbox_config.hpp
flexbox.cppftxui / dom / node.hpp
flexbox.cppftxui / dom / requirement.hpp
flexbox.cppftxui / dom / selection.hpp
flexbox_config.cppftxui / dom / flexbox_config.hpp
flexbox_config.cppmftxui / dom / flexbox_config.hpp
flexbox_helper.cppftxui / dom / flexbox_config.hpp
flexbox_helper.hppftxui / dom / flexbox_config.hpp
frame.cppftxui / util / autoreset.hpp
frame.cppftxui / screen / box.hpp
frame.cppftxui / dom / elements.hpp
frame.cppftxui / dom / node.hpp
frame.cppftxui / dom / requirement.hpp
frame.cppftxui / screen / screen.hpp
hbox.cppftxui / screen / box.hpp
hbox.cppftxui / dom / elements.hpp
hbox.cppftxui / dom / node.hpp
hbox.cppftxui / dom / requirement.hpp
hbox.cppftxui / dom / selection.hpp
hyperlink.cppftxui / screen / box.hpp
hyperlink.cppftxui / dom / elements.hpp
hyperlink.cppftxui / screen / screen.hpp
inverted.cppftxui / screen / box.hpp
inverted.cppftxui / dom / elements.hpp
inverted.cppftxui / dom / node.hpp
inverted.cppftxui / screen / screen.hpp
italic.cppftxui / screen / box.hpp
italic.cppftxui / dom / elements.hpp
italic.cppftxui / dom / node.hpp
italic.cppftxui / screen / screen.hpp
linear_gradient.cppmftxui / dom / linear_gradient.hpp
node.cppftxui / screen / box.hpp
node.cppftxui / dom / node.hpp
node.cppftxui / screen / screen.hpp
node.cppftxui / dom / selection.hpp
node.cppmftxui / dom / node.hpp
node_decorator.cppftxui / screen / box.hpp
node_decorator.cppftxui / dom / node.hpp
node_decorator.cppftxui / dom / requirement.hpp
node_decorator.hppftxui / dom / elements.hpp
node_decorator.hppftxui / dom / node.hpp
reflect.cppftxui / screen / box.hpp
reflect.cppftxui / dom / elements.hpp
reflect.cppftxui / dom / node.hpp
reflect.cppftxui / dom / requirement.hpp
reflect.cppftxui / screen / screen.hpp
requirement.cppmftxui / dom / requirement.hpp
scroll_indicator.cppftxui / screen / box.hpp
scroll_indicator.cppftxui / dom / elements.hpp
scroll_indicator.cppftxui / dom / node.hpp
scroll_indicator.cppftxui / dom / requirement.hpp
scroll_indicator.cppftxui / screen / screen.hpp
selection.cppmftxui / dom / selection.hpp
selection_style.cppftxui / screen / color.hpp
selection_style.cppftxui / dom / elements.hpp
selection_style.cppftxui / screen / pixel.hpp
selection_style.cppftxui / screen / screen.hpp
src/ftxui/dom/border.cppftxui / screen / box.hpp
src/ftxui/dom/border.cppftxui / screen / color.hpp
src/ftxui/dom/border.cppftxui / dom / elements.hpp
src/ftxui/dom/border.cppftxui / dom / node.hpp
src/ftxui/dom/border.cppftxui / screen / pixel.hpp
src/ftxui/dom/border.cppftxui / dom / requirement.hpp
src/ftxui/dom/border.cppftxui / screen / screen.hpp
src/ftxui/dom/canvas.cppftxui / screen / box.hpp
src/ftxui/dom/canvas.cppftxui / dom / canvas.hpp
src/ftxui/dom/canvas.cppftxui / screen / color.hpp
src/ftxui/dom/canvas.cppftxui / dom / elements.hpp
src/ftxui/dom/canvas.cppftxui / screen / image.hpp
src/ftxui/dom/canvas.cppftxui / dom / node.hpp
src/ftxui/dom/canvas.cppftxui / screen / pixel.hpp
src/ftxui/dom/canvas.cppftxui / util / ref.hpp
src/ftxui/dom/canvas.cppftxui / dom / requirement.hpp
src/ftxui/dom/canvas.cppftxui / screen / screen.hpp
src/ftxui/dom/canvas.cppftxui / screen / string.hpp
src/ftxui/dom/dbox.cppftxui / screen / box.hpp
src/ftxui/dom/dbox.cppftxui / dom / elements.hpp
src/ftxui/dom/dbox.cppftxui / dom / node.hpp
src/ftxui/dom/dbox.cppftxui / screen / pixel.hpp
src/ftxui/dom/dbox.cppftxui / dom / requirement.hpp
src/ftxui/dom/focus.cppftxui / screen / box.hpp
src/ftxui/dom/focus.cppftxui / dom / elements.hpp
src/ftxui/dom/focus.cppftxui / dom / requirement.hpp
src/ftxui/dom/gauge.cppftxui / screen / box.hpp
src/ftxui/dom/gauge.cppftxui / dom / direction.hpp
src/ftxui/dom/gauge.cppftxui / dom / elements.hpp
src/ftxui/dom/gauge.cppftxui / dom / node.hpp
src/ftxui/dom/gauge.cppftxui / dom / requirement.hpp
src/ftxui/dom/gauge.cppftxui / screen / screen.hpp
src/ftxui/dom/graph.cppftxui / screen / box.hpp
src/ftxui/dom/graph.cppftxui / dom / elements.hpp
src/ftxui/dom/graph.cppftxui / dom / node.hpp
src/ftxui/dom/graph.cppftxui / dom / requirement.hpp
src/ftxui/dom/graph.cppftxui / screen / screen.hpp
src/ftxui/dom/gridbox.cppftxui / screen / box.hpp
src/ftxui/dom/gridbox.cppftxui / dom / elements.hpp
src/ftxui/dom/gridbox.cppftxui / dom / node.hpp
src/ftxui/dom/gridbox.cppftxui / dom / requirement.hpp
src/ftxui/dom/linear_gradient.cppftxui / screen / box.hpp
src/ftxui/dom/linear_gradient.cppftxui / screen / color.hpp
src/ftxui/dom/linear_gradient.cppftxui / dom / elements.hpp
src/ftxui/dom/linear_gradient.cppftxui / dom / linear_gradient.hpp
src/ftxui/dom/linear_gradient.cppftxui / screen / screen.hpp
src/ftxui/dom/paragraph.cppftxui / dom / elements.hpp
src/ftxui/dom/paragraph.cppftxui / dom / flexbox_config.hpp
src/ftxui/dom/selection.cppftxui / dom / selection.hpp
src/ftxui/dom/separator.cppftxui / screen / box.hpp
src/ftxui/dom/separator.cppftxui / screen / color.hpp
src/ftxui/dom/separator.cppftxui / dom / elements.hpp
src/ftxui/dom/separator.cppftxui / dom / node.hpp
src/ftxui/dom/separator.cppftxui / screen / pixel.hpp
src/ftxui/dom/separator.cppftxui / dom / requirement.hpp
src/ftxui/dom/separator.cppftxui / screen / screen.hpp
src/ftxui/dom/size.cppftxui / screen / box.hpp
src/ftxui/dom/size.cppftxui / dom / elements.hpp
src/ftxui/dom/size.cppftxui / dom / node.hpp
src/ftxui/dom/size.cppftxui / dom / requirement.hpp
src/ftxui/dom/spinner.cppftxui / dom / elements.hpp
src/ftxui/dom/table.cppftxui / dom / elements.hpp
src/ftxui/dom/table.cppftxui / dom / table.hpp
strikethrough.cppftxui / screen / box.hpp
strikethrough.cppftxui / dom / elements.hpp
strikethrough.cppftxui / dom / node.hpp
strikethrough.cppftxui / screen / screen.hpp
table.cppmftxui / dom / table.hpp
text.cppftxui / screen / box.hpp
text.cppftxui / dom / dom/deprecated.hpp
text.cppftxui / dom / elements.hpp
text.cppftxui / dom / node.hpp
text.cppftxui / dom / requirement.hpp
text.cppftxui / screen / screen.hpp
text.cppftxui / dom / selection.hpp
text.cppftxui / screen / string.hpp
underlined.cppftxui / screen / box.hpp
underlined.cppftxui / dom / elements.hpp
underlined.cppftxui / dom / node.hpp
underlined.cppftxui / screen / screen.hpp
underlined_double.cppftxui / screen / box.hpp
underlined_double.cppftxui / dom / elements.hpp
underlined_double.cppftxui / dom / node.hpp
underlined_double.cppftxui / screen / screen.hpp
vbox.cppftxui / screen / box.hpp
vbox.cppftxui / dom / elements.hpp
vbox.cppftxui / dom / node.hpp
vbox.cppftxui / dom / requirement.hpp
vbox.cppftxui / dom / selection.hpp
+
+ + + + + diff --git a/dir_000010_000002.html b/dir_000010_000002.html new file mode 100644 index 000000000..4d53f5146 --- /dev/null +++ b/dir_000010_000002.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: ftxui -> component Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + + diff --git a/dir_000010_000007.html b/dir_000010_000007.html new file mode 100644 index 000000000..e27da45dd --- /dev/null +++ b/dir_000010_000007.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: ftxui -> dom Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + + diff --git a/dir_000010_000011.html b/dir_000010_000011.html new file mode 100644 index 000000000..c4b1a7e71 --- /dev/null +++ b/dir_000010_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: ftxui -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ftxui → include Relation

File in src/ftxuiIncludes file in include
component / animation.cppftxui / component / animation.hpp
component / animation.cppmftxui / component / animation.hpp
dom / automerge.cppftxui / screen / box.hpp
dom / automerge.cppftxui / dom / elements.hpp
dom / automerge.cppftxui / dom / node.hpp
dom / automerge.cppftxui / screen / screen.hpp
dom / blink.cppftxui / screen / box.hpp
dom / blink.cppftxui / dom / elements.hpp
dom / blink.cppftxui / dom / node.hpp
dom / blink.cppftxui / screen / screen.hpp
dom / bold.cppftxui / screen / box.hpp
dom / bold.cppftxui / dom / elements.hpp
dom / bold.cppftxui / dom / node.hpp
dom / bold.cppftxui / screen / screen.hpp
dom / box_helper.hppftxui / dom / requirement.hpp
dom / canvas.cppmftxui / dom / canvas.hpp
component / captured_mouse.cppmftxui / component / captured_mouse.hpp
component / catch_event.cppftxui / component / component.hpp
component / catch_event.cppftxui / component / component_base.hpp
component / catch_event.cppftxui / component / event.hpp
dom / clear_under.cppftxui / screen / box.hpp
dom / clear_under.cppftxui / dom / elements.hpp
dom / clear_under.cppftxui / dom / node.hpp
dom / clear_under.cppftxui / screen / screen.hpp
component / component.cppftxui / screen / box.hpp
component / component.cppftxui / component / captured_mouse.hpp
component / component.cppftxui / component / component.hpp
component / component.cppftxui / component / component_base.hpp
component / component.cppftxui / dom / elements.hpp
component / component.cppftxui / component / event.hpp
component / component.cppftxui / dom / node.hpp
component / component.cppftxui / component / screen_interactive.hpp
component / component/component.cppmftxui / component / component.hpp
component / component/util.cppftxui / component / component.hpp
component / component/util.cppftxui / component / component_base.hpp
component / component_base.cppmftxui / component / component_base.hpp
component / component_fuzzer.cppftxui / component / component.hpp
component / component_fuzzer.cppftxui / component / event.hpp
component / component_options.cppftxui / component / animation.hpp
component / component_options.cppftxui / screen / color.hpp
component / component_options.cppftxui / component / component_options.hpp
component / component_options.cppftxui / dom / direction.hpp
component / component_options.cppftxui / dom / elements.hpp
component / component_options.cppmftxui / component / component_options.hpp
dom / composite_decorator.cppftxui / dom / elements.hpp
component / container.cppftxui / screen / box.hpp
component / container.cppftxui / component / component.hpp
component / container.cppftxui / component / component_base.hpp
component / container.cppftxui / dom / elements.hpp
component / container.cppftxui / component / event.hpp
component / container.cppftxui / component / mouse.hpp
dom / dim.cppftxui / screen / box.hpp
dom / dim.cppftxui / dom / elements.hpp
dom / dim.cppftxui / dom / node.hpp
dom / dim.cppftxui / screen / screen.hpp
dom / direction.cppmftxui / dom / direction.hpp
dom / dom/color.cppftxui / screen / box.hpp
dom / dom/color.cppftxui / screen / color.hpp
dom / dom/color.cppftxui / dom / elements.hpp
dom / dom/color.cppftxui / screen / screen.hpp
dom / dom/deprecated.cppmftxui / dom / dom/deprecated.hpp
dom / dom/util.cppftxui / screen / box.hpp
dom / dom/util.cppftxui / dom / elements.hpp
dom / dom/util.cppftxui / dom / node.hpp
dom / dom/util.cppftxui / dom / requirement.hpp
dom / dom/util.cppftxui / screen / screen.hpp
dom / dom/util.cppftxui / screen / terminal.hpp
dom / elements.cppmftxui / dom / elements.hpp
component / event.cppftxui / component / event.hpp
component / event.cppftxui / component / mouse.hpp
component / event.cppftxui / screen / string.hpp
component / event.cppmftxui / component / event.hpp
dom / flex.cppftxui / screen / box.hpp
dom / flex.cppftxui / dom / elements.hpp
dom / flex.cppftxui / dom / node.hpp
dom / flex.cppftxui / dom / requirement.hpp
dom / flexbox.cppftxui / screen / box.hpp
dom / flexbox.cppftxui / dom / elements.hpp
dom / flexbox.cppftxui / dom / flexbox_config.hpp
dom / flexbox.cppftxui / dom / node.hpp
dom / flexbox.cppftxui / dom / requirement.hpp
dom / flexbox.cppftxui / dom / selection.hpp
dom / flexbox_config.cppftxui / dom / flexbox_config.hpp
dom / flexbox_config.cppmftxui / dom / flexbox_config.hpp
dom / flexbox_helper.cppftxui / dom / flexbox_config.hpp
dom / flexbox_helper.hppftxui / dom / flexbox_config.hpp
dom / frame.cppftxui / util / autoreset.hpp
dom / frame.cppftxui / screen / box.hpp
dom / frame.cppftxui / dom / elements.hpp
dom / frame.cppftxui / dom / node.hpp
dom / frame.cppftxui / dom / requirement.hpp
dom / frame.cppftxui / screen / screen.hpp
dom / hbox.cppftxui / screen / box.hpp
dom / hbox.cppftxui / dom / elements.hpp
dom / hbox.cppftxui / dom / node.hpp
dom / hbox.cppftxui / dom / requirement.hpp
dom / hbox.cppftxui / dom / selection.hpp
component / hoverable.cppftxui / screen / box.hpp
component / hoverable.cppftxui / component / component.hpp
component / hoverable.cppftxui / component / component_base.hpp
component / hoverable.cppftxui / dom / elements.hpp
component / hoverable.cppftxui / component / event.hpp
component / hoverable.cppftxui / component / mouse.hpp
component / hoverable.cppftxui / component / screen_interactive.hpp
dom / hyperlink.cppftxui / screen / box.hpp
dom / hyperlink.cppftxui / dom / elements.hpp
dom / hyperlink.cppftxui / screen / screen.hpp
dom / inverted.cppftxui / screen / box.hpp
dom / inverted.cppftxui / dom / elements.hpp
dom / inverted.cppftxui / dom / node.hpp
dom / inverted.cppftxui / screen / screen.hpp
dom / italic.cppftxui / screen / box.hpp
dom / italic.cppftxui / dom / elements.hpp
dom / italic.cppftxui / dom / node.hpp
dom / italic.cppftxui / screen / screen.hpp
dom / linear_gradient.cppmftxui / dom / linear_gradient.hpp
component / loop.cppftxui / component / loop.hpp
component / loop.cppftxui / component / screen_interactive.hpp
component / loop.cppmftxui / component / loop.hpp
component / modal.cppftxui / component / component.hpp
component / modal.cppftxui / component / component_base.hpp
component / modal.cppftxui / dom / elements.hpp
component / modal.cppftxui / component / event.hpp
component / mouse.cppmftxui / component / mouse.hpp
dom / node.cppftxui / screen / box.hpp
dom / node.cppftxui / dom / node.hpp
dom / node.cppftxui / screen / screen.hpp
dom / node.cppftxui / dom / selection.hpp
dom / node.cppmftxui / dom / node.hpp
dom / node_decorator.cppftxui / screen / box.hpp
dom / node_decorator.cppftxui / dom / node.hpp
dom / node_decorator.cppftxui / dom / requirement.hpp
dom / node_decorator.hppftxui / dom / elements.hpp
dom / node_decorator.hppftxui / dom / node.hpp
component / receiver.cppmftxui / component / receiver.hpp
dom / reflect.cppftxui / screen / box.hpp
dom / reflect.cppftxui / dom / elements.hpp
dom / reflect.cppftxui / dom / node.hpp
dom / reflect.cppftxui / dom / requirement.hpp
dom / reflect.cppftxui / screen / screen.hpp
dom / requirement.cppmftxui / dom / requirement.hpp
component / screen_interactive.cppftxui / component / animation.hpp
component / screen_interactive.cppftxui / util / autoreset.hpp
component / screen_interactive.cppftxui / component / captured_mouse.hpp
component / screen_interactive.cppftxui / component / component_base.hpp
component / screen_interactive.cppftxui / component / event.hpp
component / screen_interactive.cppftxui / component / loop.hpp
component / screen_interactive.cppftxui / dom / node.hpp
component / screen_interactive.cppftxui / screen / screen.hpp
component / screen_interactive.cppftxui / component / screen_interactive.hpp
component / screen_interactive.cppftxui / component / task.hpp
component / screen_interactive.cppftxui / screen / terminal.hpp
component / screen_interactive.cppmftxui / component / screen_interactive.hpp
dom / scroll_indicator.cppftxui / screen / box.hpp
dom / scroll_indicator.cppftxui / dom / elements.hpp
dom / scroll_indicator.cppftxui / dom / node.hpp
dom / scroll_indicator.cppftxui / dom / requirement.hpp
dom / scroll_indicator.cppftxui / screen / screen.hpp
dom / selection.cppmftxui / dom / selection.hpp
dom / selection_style.cppftxui / screen / color.hpp
dom / selection_style.cppftxui / dom / elements.hpp
dom / selection_style.cppftxui / screen / pixel.hpp
dom / selection_style.cppftxui / screen / screen.hpp
component / src/ftxui/component/button.cppftxui / component / animation.hpp
component / src/ftxui/component/button.cppftxui / screen / box.hpp
component / src/ftxui/component/button.cppftxui / screen / color.hpp
component / src/ftxui/component/button.cppftxui / component / component.hpp
component / src/ftxui/component/button.cppftxui / component / component_base.hpp
component / src/ftxui/component/button.cppftxui / component / component_options.hpp
component / src/ftxui/component/button.cppftxui / dom / elements.hpp
component / src/ftxui/component/button.cppftxui / component / event.hpp
component / src/ftxui/component/button.cppftxui / component / mouse.hpp
component / src/ftxui/component/button.cppftxui / util / ref.hpp
component / src/ftxui/component/button.cppftxui / component / screen_interactive.hpp
component / src/ftxui/component/checkbox.cppftxui / screen / box.hpp
component / src/ftxui/component/checkbox.cppftxui / component / component.hpp
component / src/ftxui/component/checkbox.cppftxui / component / component_base.hpp
component / src/ftxui/component/checkbox.cppftxui / component / component_options.hpp
component / src/ftxui/component/checkbox.cppftxui / dom / elements.hpp
component / src/ftxui/component/checkbox.cppftxui / component / event.hpp
component / src/ftxui/component/checkbox.cppftxui / component / mouse.hpp
component / src/ftxui/component/checkbox.cppftxui / util / ref.hpp
component / src/ftxui/component/collapsible.cppftxui / component / component.hpp
component / src/ftxui/component/collapsible.cppftxui / component / component_base.hpp
component / src/ftxui/component/collapsible.cppftxui / component / component_options.hpp
component / src/ftxui/component/collapsible.cppftxui / dom / elements.hpp
component / src/ftxui/component/collapsible.cppftxui / util / ref.hpp
component / src/ftxui/component/dropdown.cppftxui / component / component.hpp
component / src/ftxui/component/dropdown.cppftxui / component / component_base.hpp
component / src/ftxui/component/dropdown.cppftxui / component / component_options.hpp
component / src/ftxui/component/dropdown.cppftxui / dom / elements.hpp
component / src/ftxui/component/dropdown.cppftxui / component / event.hpp
component / src/ftxui/component/dropdown.cppftxui / util / ref.hpp
component / src/ftxui/component/input.cppftxui / screen / box.hpp
component / src/ftxui/component/input.cppftxui / component / component.hpp
component / src/ftxui/component/input.cppftxui / component / component_base.hpp
component / src/ftxui/component/input.cppftxui / component / component_options.hpp
component / src/ftxui/component/input.cppftxui / dom / elements.hpp
component / src/ftxui/component/input.cppftxui / component / event.hpp
component / src/ftxui/component/input.cppftxui / component / mouse.hpp
component / src/ftxui/component/input.cppftxui / util / ref.hpp
component / src/ftxui/component/input.cppftxui / component / screen_interactive.hpp
component / src/ftxui/component/input.cppftxui / screen / string.hpp
component / src/ftxui/component/maybe.cppftxui / component / component.hpp
component / src/ftxui/component/maybe.cppftxui / component / component_base.hpp
component / src/ftxui/component/maybe.cppftxui / dom / elements.hpp
component / src/ftxui/component/maybe.cppftxui / component / event.hpp
component / src/ftxui/component/maybe.cppftxui / dom / node.hpp
component / src/ftxui/component/menu.cppftxui / component / animation.hpp
component / src/ftxui/component/menu.cppftxui / screen / box.hpp
component / src/ftxui/component/menu.cppftxui / screen / color.hpp
component / src/ftxui/component/menu.cppftxui / component / component.hpp
component / src/ftxui/component/menu.cppftxui / component / component_base.hpp
component / src/ftxui/component/menu.cppftxui / component / component_options.hpp
component / src/ftxui/component/menu.cppftxui / dom / direction.hpp
component / src/ftxui/component/menu.cppftxui / dom / elements.hpp
component / src/ftxui/component/menu.cppftxui / component / event.hpp
component / src/ftxui/component/menu.cppftxui / component / mouse.hpp
component / src/ftxui/component/menu.cppftxui / util / ref.hpp
component / src/ftxui/component/menu.cppftxui / component / screen_interactive.hpp
component / src/ftxui/component/radiobox.cppftxui / screen / box.hpp
component / src/ftxui/component/radiobox.cppftxui / component / component.hpp
component / src/ftxui/component/radiobox.cppftxui / component / component_base.hpp
component / src/ftxui/component/radiobox.cppftxui / component / component_options.hpp
component / src/ftxui/component/radiobox.cppftxui / dom / elements.hpp
component / src/ftxui/component/radiobox.cppftxui / component / event.hpp
component / src/ftxui/component/radiobox.cppftxui / component / mouse.hpp
component / src/ftxui/component/radiobox.cppftxui / util / ref.hpp
component / src/ftxui/component/radiobox.cppftxui / component / screen_interactive.hpp
component / src/ftxui/component/renderer.cppftxui / screen / box.hpp
component / src/ftxui/component/renderer.cppftxui / component / component.hpp
component / src/ftxui/component/renderer.cppftxui / component / component_base.hpp
component / src/ftxui/component/renderer.cppftxui / dom / elements.hpp
component / src/ftxui/component/renderer.cppftxui / component / event.hpp
component / src/ftxui/component/renderer.cppftxui / component / mouse.hpp
component / src/ftxui/component/resizable_split.cppftxui / screen / box.hpp
component / src/ftxui/component/resizable_split.cppftxui / component / captured_mouse.hpp
component / src/ftxui/component/resizable_split.cppftxui / component / component.hpp
component / src/ftxui/component/resizable_split.cppftxui / component / component_base.hpp
component / src/ftxui/component/resizable_split.cppftxui / component / component_options.hpp
component / src/ftxui/component/resizable_split.cppftxui / dom / direction.hpp
component / src/ftxui/component/resizable_split.cppftxui / dom / elements.hpp
component / src/ftxui/component/resizable_split.cppftxui / component / event.hpp
component / src/ftxui/component/resizable_split.cppftxui / component / mouse.hpp
component / src/ftxui/component/resizable_split.cppftxui / util / ref.hpp
component / src/ftxui/component/slider.cppftxui / screen / box.hpp
component / src/ftxui/component/slider.cppftxui / component / captured_mouse.hpp
component / src/ftxui/component/slider.cppftxui / screen / color.hpp
component / src/ftxui/component/slider.cppftxui / component / component.hpp
component / src/ftxui/component/slider.cppftxui / component / component_base.hpp
component / src/ftxui/component/slider.cppftxui / component / component_options.hpp
component / src/ftxui/component/slider.cppftxui / dom / direction.hpp
component / src/ftxui/component/slider.cppftxui / dom / elements.hpp
component / src/ftxui/component/slider.cppftxui / component / event.hpp
component / src/ftxui/component/slider.cppftxui / component / mouse.hpp
component / src/ftxui/component/slider.cppftxui / util / ref.hpp
component / src/ftxui/component/slider.cppftxui / component / screen_interactive.hpp
component / src/ftxui/component/window.cppftxui / screen / color.hpp
component / src/ftxui/component/window.cppftxui / component / component.hpp
component / src/ftxui/component/window.cppftxui / component / component_base.hpp
component / src/ftxui/component/window.cppftxui / component / component_options.hpp
component / src/ftxui/component/window.cppftxui / dom / elements.hpp
component / src/ftxui/component/window.cppftxui / screen / screen.hpp
component / src/ftxui/component/window.cppftxui / component / screen_interactive.hpp
dom / src/ftxui/dom/border.cppftxui / screen / box.hpp
dom / src/ftxui/dom/border.cppftxui / screen / color.hpp
dom / src/ftxui/dom/border.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/border.cppftxui / dom / node.hpp
dom / src/ftxui/dom/border.cppftxui / screen / pixel.hpp
dom / src/ftxui/dom/border.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/border.cppftxui / screen / screen.hpp
dom / src/ftxui/dom/canvas.cppftxui / screen / box.hpp
dom / src/ftxui/dom/canvas.cppftxui / dom / canvas.hpp
dom / src/ftxui/dom/canvas.cppftxui / screen / color.hpp
dom / src/ftxui/dom/canvas.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/canvas.cppftxui / screen / image.hpp
dom / src/ftxui/dom/canvas.cppftxui / dom / node.hpp
dom / src/ftxui/dom/canvas.cppftxui / screen / pixel.hpp
dom / src/ftxui/dom/canvas.cppftxui / util / ref.hpp
dom / src/ftxui/dom/canvas.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/canvas.cppftxui / screen / screen.hpp
dom / src/ftxui/dom/canvas.cppftxui / screen / string.hpp
dom / src/ftxui/dom/dbox.cppftxui / screen / box.hpp
dom / src/ftxui/dom/dbox.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/dbox.cppftxui / dom / node.hpp
dom / src/ftxui/dom/dbox.cppftxui / screen / pixel.hpp
dom / src/ftxui/dom/dbox.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/focus.cppftxui / screen / box.hpp
dom / src/ftxui/dom/focus.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/focus.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/gauge.cppftxui / screen / box.hpp
dom / src/ftxui/dom/gauge.cppftxui / dom / direction.hpp
dom / src/ftxui/dom/gauge.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/gauge.cppftxui / dom / node.hpp
dom / src/ftxui/dom/gauge.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/gauge.cppftxui / screen / screen.hpp
dom / src/ftxui/dom/graph.cppftxui / screen / box.hpp
dom / src/ftxui/dom/graph.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/graph.cppftxui / dom / node.hpp
dom / src/ftxui/dom/graph.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/graph.cppftxui / screen / screen.hpp
dom / src/ftxui/dom/gridbox.cppftxui / screen / box.hpp
dom / src/ftxui/dom/gridbox.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/gridbox.cppftxui / dom / node.hpp
dom / src/ftxui/dom/gridbox.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/linear_gradient.cppftxui / screen / box.hpp
dom / src/ftxui/dom/linear_gradient.cppftxui / screen / color.hpp
dom / src/ftxui/dom/linear_gradient.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/linear_gradient.cppftxui / dom / linear_gradient.hpp
dom / src/ftxui/dom/linear_gradient.cppftxui / screen / screen.hpp
dom / src/ftxui/dom/paragraph.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/paragraph.cppftxui / dom / flexbox_config.hpp
dom / src/ftxui/dom/selection.cppftxui / dom / selection.hpp
dom / src/ftxui/dom/separator.cppftxui / screen / box.hpp
dom / src/ftxui/dom/separator.cppftxui / screen / color.hpp
dom / src/ftxui/dom/separator.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/separator.cppftxui / dom / node.hpp
dom / src/ftxui/dom/separator.cppftxui / screen / pixel.hpp
dom / src/ftxui/dom/separator.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/separator.cppftxui / screen / screen.hpp
dom / src/ftxui/dom/size.cppftxui / screen / box.hpp
dom / src/ftxui/dom/size.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/size.cppftxui / dom / node.hpp
dom / src/ftxui/dom/size.cppftxui / dom / requirement.hpp
dom / src/ftxui/dom/spinner.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/table.cppftxui / dom / elements.hpp
dom / src/ftxui/dom/table.cppftxui / dom / table.hpp
dom / strikethrough.cppftxui / screen / box.hpp
dom / strikethrough.cppftxui / dom / elements.hpp
dom / strikethrough.cppftxui / dom / node.hpp
dom / strikethrough.cppftxui / screen / screen.hpp
dom / table.cppmftxui / dom / table.hpp
component / task.cppmftxui / component / task.hpp
component / terminal_input_parser.cppftxui / component / event.hpp
component / terminal_input_parser.cppftxui / component / mouse.hpp
component / terminal_input_parser.cppftxui / component / task.hpp
component / terminal_input_parser.hppftxui / component / mouse.hpp
component / terminal_input_parser_test_fuzzer.cppftxui / component / event.hpp
dom / text.cppftxui / screen / box.hpp
dom / text.cppftxui / dom / dom/deprecated.hpp
dom / text.cppftxui / dom / elements.hpp
dom / text.cppftxui / dom / node.hpp
dom / text.cppftxui / dom / requirement.hpp
dom / text.cppftxui / screen / screen.hpp
dom / text.cppftxui / dom / selection.hpp
dom / text.cppftxui / screen / string.hpp
dom / underlined.cppftxui / screen / box.hpp
dom / underlined.cppftxui / dom / elements.hpp
dom / underlined.cppftxui / dom / node.hpp
dom / underlined.cppftxui / screen / screen.hpp
dom / underlined_double.cppftxui / screen / box.hpp
dom / underlined_double.cppftxui / dom / elements.hpp
dom / underlined_double.cppftxui / dom / node.hpp
dom / underlined_double.cppftxui / screen / screen.hpp
dom / vbox.cppftxui / screen / box.hpp
dom / vbox.cppftxui / dom / elements.hpp
dom / vbox.cppftxui / dom / node.hpp
dom / vbox.cppftxui / dom / requirement.hpp
dom / vbox.cppftxui / dom / selection.hpp
screen / box.cppftxui / screen / box.hpp
screen / box.cppmftxui / screen / box.hpp
screen / screen/color.cppftxui / screen / color.hpp
screen / screen/color.cppftxui / screen / color_info.hpp
screen / screen/color.cppftxui / screen / terminal.hpp
screen / color.cppmftxui / screen / color.hpp
screen / color_info.cppftxui / screen / color_info.hpp
screen / color_info.cppftxui / screen / color.hpp
screen / color_info.cppmftxui / screen / color_info.hpp
screen / screen/deprecated.cppmftxui / screen / screen/deprecated.hpp
screen / image.cppftxui / screen / image.hpp
screen / image.cppftxui / screen / pixel.hpp
screen / image.cppmftxui / screen / image.hpp
screen / pixel.cppmftxui / screen / pixel.hpp
screen / screen.cppftxui / screen / image.hpp
screen / screen.cppftxui / screen / pixel.hpp
screen / screen.cppftxui / screen / screen.hpp
screen / screen.cppftxui / screen / string.hpp
screen / screen.cppftxui / screen / terminal.hpp
screen / screen/screen.cppmftxui / screen / screen.hpp
screen / string.cppftxui / screen / string.hpp
screen / string.cppftxui / screen / screen/deprecated.hpp
screen / string.cppmftxui / screen / string.hpp
screen / terminal.cppftxui / screen / terminal.hpp
screen / terminal.cppmftxui / screen / terminal.hpp
util / autoreset.cppmftxui / util / autoreset.hpp
util / ref.cppmftxui / util / ref.hpp
+
+ + + + + diff --git a/dir_000010_000013.html b/dir_000010_000013.html new file mode 100644 index 000000000..e127ecb2c --- /dev/null +++ b/dir_000010_000013.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: ftxui -> screen Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + + diff --git a/dir_000010_000016.html b/dir_000010_000016.html new file mode 100644 index 000000000..c7dcc9fbc --- /dev/null +++ b/dir_000010_000016.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: ftxui -> util Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ftxui → util Relation

File in src/ftxuiIncludes file in src/ftxui/util
util.cppmautoreset.cppm
util.cppmref.cppm
+
+ + + + + diff --git a/dir_000013_000011.html b/dir_000013_000011.html new file mode 100644 index 000000000..3b3b059a0 --- /dev/null +++ b/dir_000013_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: screen -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + + diff --git a/dir_000015_000012.html b/dir_000015_000012.html new file mode 100644 index 000000000..a8a6c77ab --- /dev/null +++ b/dir_000015_000012.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: util -> screen Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

util → screen Relation

File in include/ftxui/utilIncludes file in include/ftxui/screen
ref.hppstring.hpp
+
+ + + + + diff --git a/dir_000016_000011.html b/dir_000016_000011.html new file mode 100644 index 000000000..0183f4d6d --- /dev/null +++ b/dir_000016_000011.html @@ -0,0 +1,206 @@ + + + + + + + + +FTXUI: util -> include Relation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

util → include Relation

File in src/ftxui/utilIncludes file in include
autoreset.cppmftxui / util / autoreset.hpp
ref.cppmftxui / util / ref.hpp
+
+ + + + + diff --git a/dir_1668679807285893c235fcc812b1f73d.html b/dir_1668679807285893c235fcc812b1f73d.html new file mode 100644 index 000000000..ef6da8dcf --- /dev/null +++ b/dir_1668679807285893c235fcc812b1f73d.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: util Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
util Directory Reference
+
+
+
+ + Directory dependency graph for util:
+
+
+ + + + + + + + + +

+Files

 autoreset.hpp
 
 ref.hpp
 
 warn_windows_macro.hpp
 
+
+
+ + + + + diff --git a/dir_1668679807285893c235fcc812b1f73d.js b/dir_1668679807285893c235fcc812b1f73d.js new file mode 100644 index 000000000..9aea69ef4 --- /dev/null +++ b/dir_1668679807285893c235fcc812b1f73d.js @@ -0,0 +1,6 @@ +var dir_1668679807285893c235fcc812b1f73d = +[ + [ "autoreset.hpp", "autoreset_8hpp.html", "autoreset_8hpp" ], + [ "ref.hpp", "ref_8hpp.html", "ref_8hpp" ], + [ "warn_windows_macro.hpp", "warn__windows__macro_8hpp.html", null ] +]; \ No newline at end of file diff --git a/dir_1668679807285893c235fcc812b1f73d_dep.map b/dir_1668679807285893c235fcc812b1f73d_dep.map new file mode 100644 index 000000000..de3b225b5 --- /dev/null +++ b/dir_1668679807285893c235fcc812b1f73d_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dir_1668679807285893c235fcc812b1f73d_dep.md5 b/dir_1668679807285893c235fcc812b1f73d_dep.md5 new file mode 100644 index 000000000..ca1c95c71 --- /dev/null +++ b/dir_1668679807285893c235fcc812b1f73d_dep.md5 @@ -0,0 +1 @@ +8b70903d5986e641832e4a9c1d059e52 \ No newline at end of file diff --git a/dir_1668679807285893c235fcc812b1f73d_dep.png b/dir_1668679807285893c235fcc812b1f73d_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..b033237582400d7e41ae2fe4ccf88068514e26fe GIT binary patch literal 2877 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 Ib=&ZN0Z6H<_5c6? literal 0 HcmV?d00001 diff --git a/dir_34153e0f69aea4f55932893abc931484.html b/dir_34153e0f69aea4f55932893abc931484.html new file mode 100644 index 000000000..dc31a7eaf --- /dev/null +++ b/dir_34153e0f69aea4f55932893abc931484.html @@ -0,0 +1,330 @@ + + + + + + + + +FTXUI: component Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component Directory Reference
+
+ +
+ + + + + diff --git a/dir_34153e0f69aea4f55932893abc931484.js b/dir_34153e0f69aea4f55932893abc931484.js new file mode 100644 index 000000000..f127cc8ef --- /dev/null +++ b/dir_34153e0f69aea4f55932893abc931484.js @@ -0,0 +1,53 @@ +var dir_34153e0f69aea4f55932893abc931484 = +[ + [ "button.cpp", "examples_2component_2button_8cpp.html", "examples_2component_2button_8cpp" ], + [ "button_animated.cpp", "button__animated_8cpp.html", "button__animated_8cpp" ], + [ "button_in_frame.cpp", "button__in__frame_8cpp.html", "button__in__frame_8cpp" ], + [ "button_style.cpp", "button__style_8cpp.html", "button__style_8cpp" ], + [ "canvas_animated.cpp", "canvas__animated_8cpp.html", "canvas__animated_8cpp" ], + [ "checkbox.cpp", "examples_2component_2checkbox_8cpp.html", "examples_2component_2checkbox_8cpp" ], + [ "checkbox_in_frame.cpp", "checkbox__in__frame_8cpp.html", "checkbox__in__frame_8cpp" ], + [ "collapsible.cpp", "examples_2component_2collapsible_8cpp.html", "examples_2component_2collapsible_8cpp" ], + [ "composition.cpp", "composition_8cpp.html", "composition_8cpp" ], + [ "custom_loop.cpp", "custom__loop_8cpp.html", "custom__loop_8cpp" ], + [ "dropdown.cpp", "examples_2component_2dropdown_8cpp.html", "examples_2component_2dropdown_8cpp" ], + [ "dropdown_custom.cpp", "dropdown__custom_8cpp.html", "dropdown__custom_8cpp" ], + [ "flexbox_gallery.cpp", "flexbox__gallery_8cpp.html", "flexbox__gallery_8cpp" ], + [ "focus.cpp", "examples_2component_2focus_8cpp.html", "examples_2component_2focus_8cpp" ], + [ "focus_cursor.cpp", "focus__cursor_8cpp.html", "focus__cursor_8cpp" ], + [ "gallery.cpp", "gallery_8cpp.html", "gallery_8cpp" ], + [ "homescreen.cpp", "homescreen_8cpp.html", "homescreen_8cpp" ], + [ "input.cpp", "examples_2component_2input_8cpp.html", "examples_2component_2input_8cpp" ], + [ "input_in_frame.cpp", "input__in__frame_8cpp.html", "input__in__frame_8cpp" ], + [ "input_style.cpp", "input__style_8cpp.html", "input__style_8cpp" ], + [ "linear_gradient_gallery.cpp", "linear__gradient__gallery_8cpp.html", "linear__gradient__gallery_8cpp" ], + [ "maybe.cpp", "examples_2component_2maybe_8cpp.html", "examples_2component_2maybe_8cpp" ], + [ "menu.cpp", "examples_2component_2menu_8cpp.html", "examples_2component_2menu_8cpp" ], + [ "menu2.cpp", "menu2_8cpp.html", "menu2_8cpp" ], + [ "menu_entries.cpp", "menu__entries_8cpp.html", "menu__entries_8cpp" ], + [ "menu_entries_animated.cpp", "menu__entries__animated_8cpp.html", "menu__entries__animated_8cpp" ], + [ "menu_in_frame.cpp", "menu__in__frame_8cpp.html", "menu__in__frame_8cpp" ], + [ "menu_in_frame_horizontal.cpp", "menu__in__frame__horizontal_8cpp.html", "menu__in__frame__horizontal_8cpp" ], + [ "menu_multiple.cpp", "menu__multiple_8cpp.html", "menu__multiple_8cpp" ], + [ "menu_style.cpp", "menu__style_8cpp.html", "menu__style_8cpp" ], + [ "menu_underline_animated_gallery.cpp", "menu__underline__animated__gallery_8cpp.html", "menu__underline__animated__gallery_8cpp" ], + [ "modal_dialog.cpp", "modal__dialog_8cpp.html", "modal__dialog_8cpp" ], + [ "modal_dialog_custom.cpp", "modal__dialog__custom_8cpp.html", "modal__dialog__custom_8cpp" ], + [ "nested_screen.cpp", "nested__screen_8cpp.html", "nested__screen_8cpp" ], + [ "print_key_press.cpp", "print__key__press_8cpp.html", "print__key__press_8cpp" ], + [ "radiobox.cpp", "examples_2component_2radiobox_8cpp.html", "examples_2component_2radiobox_8cpp" ], + [ "radiobox_in_frame.cpp", "radiobox__in__frame_8cpp.html", "radiobox__in__frame_8cpp" ], + [ "renderer.cpp", "examples_2component_2renderer_8cpp.html", "examples_2component_2renderer_8cpp" ], + [ "resizable_split.cpp", "examples_2component_2resizable__split_8cpp.html", "examples_2component_2resizable__split_8cpp" ], + [ "scrollbar.cpp", "scrollbar_8cpp.html", "scrollbar_8cpp" ], + [ "selection.cpp", "examples_2component_2selection_8cpp.html", "examples_2component_2selection_8cpp" ], + [ "slider.cpp", "examples_2component_2slider_8cpp.html", "examples_2component_2slider_8cpp" ], + [ "slider_direction.cpp", "slider__direction_8cpp.html", "slider__direction_8cpp" ], + [ "slider_rgb.cpp", "slider__rgb_8cpp.html", "slider__rgb_8cpp" ], + [ "tab_horizontal.cpp", "tab__horizontal_8cpp.html", "tab__horizontal_8cpp" ], + [ "tab_vertical.cpp", "tab__vertical_8cpp.html", "tab__vertical_8cpp" ], + [ "textarea.cpp", "textarea_8cpp.html", "textarea_8cpp" ], + [ "toggle.cpp", "toggle_8cpp.html", "toggle_8cpp" ], + [ "window.cpp", "examples_2component_2window_8cpp.html", "examples_2component_2window_8cpp" ], + [ "with_restored_io.cpp", "with__restored__io_8cpp.html", "with__restored__io_8cpp" ] +]; \ No newline at end of file diff --git a/dir_34153e0f69aea4f55932893abc931484_dep.map b/dir_34153e0f69aea4f55932893abc931484_dep.map new file mode 100644 index 000000000..0773e192b --- /dev/null +++ b/dir_34153e0f69aea4f55932893abc931484_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_34153e0f69aea4f55932893abc931484_dep.md5 b/dir_34153e0f69aea4f55932893abc931484_dep.md5 new file mode 100644 index 000000000..d69e7d213 --- /dev/null +++ b/dir_34153e0f69aea4f55932893abc931484_dep.md5 @@ -0,0 +1 @@ +ba18667c7722f3e7e7d0e07f0753ffda \ No newline at end of file diff --git a/dir_34153e0f69aea4f55932893abc931484_dep.png b/dir_34153e0f69aea4f55932893abc931484_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..b14724d7255d9a813486fdbff4f9bcf8a8ff32ee GIT binary patch literal 6986 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 literal 0 HcmV?d00001 diff --git a/dir_3f4db74392b369be141833a3ebdcb6a2.html b/dir_3f4db74392b369be141833a3ebdcb6a2.html new file mode 100644 index 000000000..0e4f673c1 --- /dev/null +++ b/dir_3f4db74392b369be141833a3ebdcb6a2.html @@ -0,0 +1,263 @@ + + + + + + + + +FTXUI: screen Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
screen Directory Reference
+
+
+
+ + Directory dependency graph for screen:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 box.cpp
 
 box.cppm
 
 color.cpp
 
 color.cppm
 
 color_info.cpp
 
 color_info.cppm
 
 deprecated.cppm
 
 image.cpp
 
 image.cppm
 
 pixel.cppm
 
 screen.cpp
 
 screen.cppm
 
 string.cpp
 
 string.cppm
 
 string_internal.hpp
 
 terminal.cpp
 
 terminal.cppm
 
 util.hpp
 
+
+
+ + + + + diff --git a/dir_3f4db74392b369be141833a3ebdcb6a2.js b/dir_3f4db74392b369be141833a3ebdcb6a2.js new file mode 100644 index 000000000..c6ee3549e --- /dev/null +++ b/dir_3f4db74392b369be141833a3ebdcb6a2.js @@ -0,0 +1,21 @@ +var dir_3f4db74392b369be141833a3ebdcb6a2 = +[ + [ "box.cpp", "box_8cpp.html", null ], + [ "box.cppm", "box_8cppm.html", null ], + [ "color.cpp", "screen_2color_8cpp.html", "screen_2color_8cpp" ], + [ "color.cppm", "color_8cppm.html", null ], + [ "color_info.cpp", "color__info_8cpp.html", "color__info_8cpp" ], + [ "color_info.cppm", "color__info_8cppm.html", null ], + [ "deprecated.cppm", "screen_2deprecated_8cppm.html", null ], + [ "image.cpp", "image_8cpp.html", null ], + [ "image.cppm", "image_8cppm.html", null ], + [ "pixel.cppm", "pixel_8cppm.html", null ], + [ "screen.cpp", "screen_8cpp.html", "screen_8cpp" ], + [ "screen.cppm", "screen_2screen_8cppm.html", null ], + [ "string.cpp", "string_8cpp.html", "string_8cpp" ], + [ "string.cppm", "string_8cppm.html", null ], + [ "string_internal.hpp", "string__internal_8hpp.html", "string__internal_8hpp" ], + [ "terminal.cpp", "terminal_8cpp.html", "terminal_8cpp" ], + [ "terminal.cppm", "terminal_8cppm.html", null ], + [ "util.hpp", "util_8hpp.html", "util_8hpp" ] +]; \ No newline at end of file diff --git a/dir_3f4db74392b369be141833a3ebdcb6a2_dep.map b/dir_3f4db74392b369be141833a3ebdcb6a2_dep.map new file mode 100644 index 000000000..49554f211 --- /dev/null +++ b/dir_3f4db74392b369be141833a3ebdcb6a2_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dir_3f4db74392b369be141833a3ebdcb6a2_dep.md5 b/dir_3f4db74392b369be141833a3ebdcb6a2_dep.md5 new file mode 100644 index 000000000..6f6c79a9e --- /dev/null +++ b/dir_3f4db74392b369be141833a3ebdcb6a2_dep.md5 @@ -0,0 +1 @@ +60132acab31fba947469c2d94e809df3 \ No newline at end of file diff --git a/dir_3f4db74392b369be141833a3ebdcb6a2_dep.png b/dir_3f4db74392b369be141833a3ebdcb6a2_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..9596a620161684927fb3ef08b2780446866e711f GIT binary patch literal 3714 zcmZ`+2T&8twhl#5kd6c)5_-7-q(kU}geF8#ghWF}S}4+`*C5iQDplz}z1PsIG?m_r z^d)yZj*e@HO^U~5_u5(Cjk3Z>M`1KnTj8cr6 zF;Mee&Db@QaanC)C%?5d6L9i$(V}S(vR<$Z!%AAg?q{n-D3aL(xnajvAGiPFe>D9rkw&}+yvFbra1k`&N zpNTd$P442Wk0-9Z%QGWayP*|Ree_n9Dt5L?*gLgbQTs-PCmOkuHmaI$q;8;$1L<~p zE=?Yo3CKZyj%VqP1#O2A{g-_C1?<SKZF>A^j(5W_P6fw$scI>G@{l+A!Fu^clzuSy){BusE(>plmiy9CyC9 zyJfZ!%jh|83+(VZB!|)cfLr(8Cb@9vAjoS%PUL46%caKjcZ2C;I&KkYR^bMEF#f&9 z)m(JOr_nUX=cB()_G99$jt3k2-$RF=J`$?&+C(ZVJDL6FbHI!z^uWWTwdvA>>JpeV z{U71_Qfk-x9G3G^ig1&xS?C_PCKhO3m;gs5S6SHX6D0Jp1<*DoGj^IwVOrqWdQU{O zjN3xy?J2>n`qq}z&3iD+?lZko?6xEB`u^&!?%INMVM$3w75?g6H9hcx%&1(x7QLw$ ze6gw|S8+9M>o!ez>4U#W*9U%1N%lyDGD+(g7}Q3d7hzl}50=~{4DCi3clKgRviMBJ zEo}Gy>KV)Fdh?r(W6iu$aa0vCG}hd!;C*BYprX5@8=LO3Gu;WzS(G1|nMqsp{*EN1 zq>2vE5TgH%pSk9H7W&cszeWoDYFc&4wDPjpDumeuYCai}?}7doWLv9HM-X53yk1)+ z{g!C_W7=7$o@Gt}<$nS_DN4DxF13zwo`!W^h6!vY@-oy)KK1L=?Sq}4;vpVPFOB|U ztMHV`lH+U+dH=*@fzl;h$-y}BIr-fS%Y?se&aO$A<&4%IXxvneKuvk1_gNKb>U?W| z{#4-5-p~nIvPF(HsVrU~*tqoLuZ)frO@Ni2XrG`O70c$mh+FUkX0vVKFz>&?tg+h& z!ZuM?dRNuFs{OYfwIN8!x(?U%eq`*nRRj9FerTf7RPSI$dV-G=xE~vmGvKVEWc;Ib z1pUW}#nJJ~dMi#MQ@%7dB&Y1=ZGy$K*1(C!xzK=;(|hgmce7QieFo>SGT00Ko*#p4R^Qzz)0;eU3undy60q%xRB<4Eei83iP*@^o-RX z9&2MJzv)1|qyv*C+rYdPK8f@~+CtgcBM)oyA)h{p%eYNsZiyi&+)qXXtbJYAyYH49 zmhRDZe_1U!-ULH`8z7sUXuD6GP3LQaAlh*A-l=*)Kt1m^%gXwvj47egXRRJdr&M9_ z0Cp80-tllGIU}=T0@2exCDkjQL$+P-3Zu+7;MB9ax@z%miGheXtitz^5~^J~K=H0G zdSD}_fPkM{2R!TaVxp#|{!W;N$aI;CxlJ7w#R35i96K(H&r6E~ZXYbeH;;;FpW_qV zeXCs+eMFwJaWAtm3K*cr*y=f7XZ1NfmFONt1^o1w<6@78buQM0nd2-r2)hvFZB$lv zHb^`hF4MR&#I%-3Tx-ld9<-GB`SilOti|Ndqs4Ml@mr3~b`?H1zn%4&Z;fXR6FqO( z+S^%;4X^e@+>C?qnK!n-EYY^&1H6|TxLI5?k0~{Qb za?jP@n>x&lC9Z2TOdUi4X~oShSU8T*G_Tr$7PdzPkzBv(#WQ(yQ5^I|LW7r5?F z1o%>U*h@XgRV-JSSrnyJduNlmPt)c* z{mLg$hbUB|C9oRP;wRhCz?qqkpl!mmekl!WRntMi*&ymRkLG9O^f;M4lq%+e;-4EM z8Q5^JQknIh*U2%|OEc`~#D8VY|A1j>*N(&)yPazrTz9K$l_NUUn;Cv9*>XkfGLSRW1kEW;Pr^c2sM) zAK&v|Wb-f1`Tt<3>}*F^jJNY`f~oXwrcGfO>J}lR4+j)xxT=<2%am$Qb>lnNQ=WYT8c=n=_H!u3_wF) zU3YAm#6;)_l368A-k1l?7|dT}TVh$vu1n>I0D;`R8tmE!sb@D6|3s%weALgw+N$sa zrRmV4OHoVAr}J9dHjgXzg(>k8KM}d3v2^aJ>t(#}kT7O&n?74R&)YN`UonNdJhgR= zspzES+6mM^p7vY;_VqyVedE_(%&a3-sbl-U83#zWXr(2#Grsd7DceDsQNSD>dr*XZkzR{ykZs@#cH*D#PY6u-+ z?j&2gnLJqFGcwqf#hl+3MfuXc|5DTL2=gh@jp<04TlvF#h@%c@PC z;a=V$D^6H5s-YmP1vGpd^{!kc_X)*Y(QsGnP8zD;kw<}ywT&W-RYwF`TNhh141Nd? zcfCgSriSXH$e8OJTh9BPKv0|JGC8g4+x(whwemC|$vR#A_YJT)@@jv?Gie=qZsKtj zgt_3J2lw||F9yh~95Gebs3dxk_sQ1X4+z*na&gDk2iMqY5Ul()k)lFqRgeQcjuwP7 z;nyEFCtG+azOB=fE1NTLCl*@F)COc%rC(-Cyc zPGmhrs6?pL2v#xDrTvbJ4EJSMm$n130lTo}nWlJtE%m!+3tJDyvgTqbzs|9g^2c}( z1fhyQ@TbKdzampFJ-D5ZklBURZF0t0l&J&cdo@MzG+eHWU;S|yTH4-{{Bg7k%6dMn zTcdf3lV->@SZfK=1|(FLvdm)xhNQQ!YKbE0*St&(p8-L0SRCgv|^X%Ia~F~z77(3P`*p5 z!s+7X-8J_*{G7j2if5~xl}P!Zmq~|evP%}q>jUp{kG{sbm9r8KUmVX*SX|GN;Q#`G znCQ6GQ+(D<&goIx5I1uL>0*OIL_OOtutFRT+f*MgcS=60>Lrm7AmVGVosq%dIW)ij z6(~7X(msswF5g`Wkub=lk_;ZJ2_&ld{kX$x4;N}dQJaH7z29(3m#Kr9H6!9}+!%WB zI6-#`a2-7z`JB!=aoRsjJ`NAB20PKDmA7Pw4fRY+Oy8j>EV-(6U!G}XW&o?MtoBhW zC}9C_GLw^s4qh{c$D~|Qzg@;BempO#5v=gI8O-s0_IOB*`wj89cX)U>XFXW%l2w}? zEGp6Ai&wlj?p`+7-cya0yL0~g+QX?ms4C)85&$bmN*h&^TG%5}t$@FT@HmI7T~|OYD5ugqfKvA|3s|JWE2H*kl~0~ zx?;H}hFo1Up7p|$1O!P-uY__Kh + + + + + + + +FTXUI: dom Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom Directory Reference
+
+
+
+ + Directory dependency graph for dom:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Files

 canvas.hpp
 
 deprecated.hpp
 
 direction.hpp
 
 elements.hpp
 
 flexbox_config.hpp
 
 linear_gradient.hpp
 
 node.hpp
 
 requirement.hpp
 
 selection.hpp
 
 table.hpp
 
+
+
+ + + + + diff --git a/dir_4cbb3a1c219643e03aadd7cd3693e7bd.js b/dir_4cbb3a1c219643e03aadd7cd3693e7bd.js new file mode 100644 index 000000000..afd56cba3 --- /dev/null +++ b/dir_4cbb3a1c219643e03aadd7cd3693e7bd.js @@ -0,0 +1,13 @@ +var dir_4cbb3a1c219643e03aadd7cd3693e7bd = +[ + [ "canvas.hpp", "canvas_8hpp.html", null ], + [ "deprecated.hpp", "dom_2deprecated_8hpp.html", "dom_2deprecated_8hpp" ], + [ "direction.hpp", "direction_8hpp.html", "direction_8hpp" ], + [ "elements.hpp", "elements_8hpp.html", "elements_8hpp" ], + [ "flexbox_config.hpp", "flexbox__config_8hpp.html", null ], + [ "linear_gradient.hpp", "linear__gradient_8hpp.html", "linear__gradient_8hpp" ], + [ "node.hpp", "node_8hpp.html", "node_8hpp" ], + [ "requirement.hpp", "requirement_8hpp.html", "requirement_8hpp" ], + [ "selection.hpp", "selection_8hpp.html", null ], + [ "table.hpp", "table_8hpp.html", "table_8hpp" ] +]; \ No newline at end of file diff --git a/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.map b/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.map new file mode 100644 index 000000000..e3419b031 --- /dev/null +++ b/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.md5 b/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.md5 new file mode 100644 index 000000000..c068d66dd --- /dev/null +++ b/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.md5 @@ -0,0 +1 @@ +0ca4efdd8324fd732ab2839a2795d29d \ No newline at end of file diff --git a/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.png b/dir_4cbb3a1c219643e03aadd7cd3693e7bd_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..a04ac5c2411537f5df21e2620816443be105673b GIT binary patch literal 5211 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 + + + + + + + +FTXUI: screen Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
screen Directory Reference
+
+
+
+ + Directory dependency graph for screen:
+
+
+ + + + + + + + + + + + + + + + + + + + + +

+Files

 box.hpp
 
 color.hpp
 
 color_info.hpp
 
 deprecated.hpp
 
 image.hpp
 
 pixel.hpp
 
 screen.hpp
 
 string.hpp
 
 terminal.hpp
 
+
+
+ + + + + diff --git a/dir_53f6d8d3eb5689656c3f196f1d99fcb2.js b/dir_53f6d8d3eb5689656c3f196f1d99fcb2.js new file mode 100644 index 000000000..80c3906f1 --- /dev/null +++ b/dir_53f6d8d3eb5689656c3f196f1d99fcb2.js @@ -0,0 +1,12 @@ +var dir_53f6d8d3eb5689656c3f196f1d99fcb2 = +[ + [ "box.hpp", "box_8hpp.html", null ], + [ "color.hpp", "color_8hpp.html", "color_8hpp" ], + [ "color_info.hpp", "color__info_8hpp.html", "color__info_8hpp" ], + [ "deprecated.hpp", "screen_2deprecated_8hpp.html", "screen_2deprecated_8hpp" ], + [ "image.hpp", "image_8hpp.html", null ], + [ "pixel.hpp", "pixel_8hpp.html", null ], + [ "screen.hpp", "screen_8hpp.html", "screen_8hpp" ], + [ "string.hpp", "string_8hpp.html", "string_8hpp" ], + [ "terminal.hpp", "terminal_8hpp.html", "terminal_8hpp" ] +]; \ No newline at end of file diff --git a/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.map b/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.map new file mode 100644 index 000000000..d5750f312 --- /dev/null +++ b/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.md5 b/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.md5 new file mode 100644 index 000000000..ca566389c --- /dev/null +++ b/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.md5 @@ -0,0 +1 @@ +f892d1a318e0075ef547f88938a2593e \ No newline at end of file diff --git a/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.png b/dir_53f6d8d3eb5689656c3f196f1d99fcb2_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..535127d0c281b9afe968567f7bacc5e448532625 GIT binary patch literal 1865 zcmZ8i2{0S#77lf7ZK$obi$_ZpMG0byOSx((%55#Nw6?lpr)r5rskX`u&(c`iswJ;V z#PUS!o_!b87E7dJd6A&CCAHkV>AZP&-kdq-%$)z6IcMhl-}zD<>@0!&Qv3h_0BCi` z+>z~L*c!mg&9(-0AS<@x_O`J!2b}*$-nU`0*?}`FbJO2qis*~M4!_OH^zUg5B=>Ox zg^&-t)EmMUT8@m4mLK{p_{^<9_^mDE>IUE$Cge<=cx?ijl|1l zyzM;?~(TC03+uO6jGCm-wBa(_}$Z4G%9grTfK3l zp#J@o&yclEP$O|-E~NJUav=?!`zCDl#FYdLz^Rh4II;HWomhqd-D4lj=MpZAqqrN8 zWtbfbDsW|PFF~nL_?OM8aBFqx-2)nMEr_MhBPdf|QY*7!idb6iSFQM?4ARj+B7Jts zI2T`XQW<~y2-op!0>=xm&8HEF$H36FHd1hcuLM2{3PpK4cPeGyFr^vbFd#j>RVtPK z3j0JGHpY3WT~-&#OQdAU5kpT|IuEXCl&!; zja5!RQG@$`JYXgq9c<8(6i_+2bu}@1pYMyco=^gp7iy)E=kh27Uvv2U4jH?9BxiPJ zm|}$Yg(RN>%gQQ53~!DRG3Bc0pSxE2r~50kwUqN-z?`kD?mpe$+O*40Tw2^YbBypJ znL$axAAFQ*SIZj=hggSnODOEq0ioCX9wW{zKk*dE9XNKMI2kd_!hb=kT;KU4Saf^Q z<_u*9(T~nCw%BnUE|rbTTai16{ji&PxY`ghcdg9ZC3cdS>pbz4i1oe<7iH z9Or-}yvY$8&#Ko!6NP+s85eAP{+c_VGPev&9*ea>(7BtNTz~OL-TUv8n zHD&ShPr6qEKny{FR2T9l)Vq?!K;UM|0MH!CE(+t?!(OY-*V&0;*Ev+}I3E;oRe@Wu z$)@q1I9x{8Y&SODm+QarAOGb?0nNwWuawx-vDdevaQj~hEi`x!@`mco)zw;`4@1Ml z!RiWli(he+s6yR%N({l%gYbONsbXs~BZOlkgjD71tX^`Q2;msEY@kGW&0oGEJGdRY z7x$DV3NhG+uou*P_%Xh-Jy~{|{=I*`2z-{xNEl-0x<@C3g-*a`dD5`|o7joR9d~-y zyD#OkD7ibk9uv+Q)~NE+3)Ri8l`qZf!mfX;USN_t zJwujQJd)Crsj||xa|5PoRwuU((6DOy@45ZGs10#wdXEVcEdNYUQ%5Pw2MPYLQW&05 zq)RR+2()#j4U*c^hAz$yF6`R~w0i~J^eWC8+0rn<1nj&#p{~XDp`^#(oyUy0wPSXT zb^X^J61KSQN4?A!DmR)OB2mdNQD0}L#QA_SqjhC5BmUZn{`#HmlqFvYFKX0hF=1ge z&OlKzt(TyoP!ydZU@vHIWZc$tj*x3@`z~z!NSG+1#1U5Bj;iZ^dAwh5os@JNaL3v+ z*7B69>h(8&N-4m-#ckZO<9lMZ*b|9Mw>btt!HPx$8I?o)+yXxb)Eg;i@h9fq_}xeg z!ky@6;@Ue?q$VYW)$+ab%Xo+U(EwH`h<#~b^q24&PD`%6Xj7rWx*6@rKJ%H1YVwFP z2GHd0Z1WD1AR!5=oMLfwb5>{20yQ`^)wL#?M<*RjG(whx)+3e_N5AeIGl7i|2B}7_ zQwI7=6uxd!cof+CPcWUAJCE7p?hm;oUOzwbEX&wP=dl4sg(fKrPC}ss)IF+dQRH*# z`r$h!rTYaBg~1rh|2NEtY`A%jYIF2@T)&vBPk$Q5tj(CO(@#zlADcR(yGM^ow7HK#A24;1T4ud)5%RiEBTg$S}G87VK$9fxA-Qi%WLBo(kqV znjuV}lt{|@`tkUCSqEKqwlh2z@3OD>Utx^xM{Z6OJou!ugu&0^(H + + + + + + + +FTXUI: component Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component Directory Reference
+
+
+
+ + Directory dependency graph for component:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 animation.cpp
 
 animation.cppm
 
 button.cpp
 
 captured_mouse.cppm
 
 catch_event.cpp
 
 checkbox.cpp
 
 collapsible.cpp
 
 component.cpp
 
 component.cppm
 
 component_base.cppm
 
 component_fuzzer.cpp
 
 component_options.cpp
 
 component_options.cppm
 
 container.cpp
 
 dropdown.cpp
 
 event.cpp
 
 event.cppm
 
 hoverable.cpp
 
 input.cpp
 
 loop.cpp
 
 loop.cppm
 
 maybe.cpp
 
 menu.cpp
 
 modal.cpp
 
 mouse.cppm
 
 radiobox.cpp
 
 receiver.cppm
 
 renderer.cpp
 
 resizable_split.cpp
 
 screen_interactive.cpp
 
 screen_interactive.cppm
 
 slider.cpp
 
 task.cpp
 
 task.cppm
 
 task_internal.hpp
 
 task_queue.cpp
 
 task_queue.hpp
 
 task_runner.cpp
 
 task_runner.hpp
 
 terminal_input_parser.cpp
 
 terminal_input_parser.hpp
 
 terminal_input_parser_test_fuzzer.cpp
 
 util.cpp
 
 window.cpp
 
+
+
+ + + + + diff --git a/dir_591e152ed8a369b957ed274cdb7355d5.js b/dir_591e152ed8a369b957ed274cdb7355d5.js new file mode 100644 index 000000000..fce653828 --- /dev/null +++ b/dir_591e152ed8a369b957ed274cdb7355d5.js @@ -0,0 +1,47 @@ +var dir_591e152ed8a369b957ed274cdb7355d5 = +[ + [ "animation.cpp", "animation_8cpp.html", "animation_8cpp" ], + [ "animation.cppm", "animation_8cppm.html", null ], + [ "button.cpp", "src_2ftxui_2component_2button_8cpp.html", "src_2ftxui_2component_2button_8cpp" ], + [ "captured_mouse.cppm", "captured__mouse_8cppm.html", null ], + [ "catch_event.cpp", "catch__event_8cpp.html", "catch__event_8cpp" ], + [ "checkbox.cpp", "src_2ftxui_2component_2checkbox_8cpp.html", "src_2ftxui_2component_2checkbox_8cpp" ], + [ "collapsible.cpp", "src_2ftxui_2component_2collapsible_8cpp.html", "src_2ftxui_2component_2collapsible_8cpp" ], + [ "component.cpp", "component_8cpp.html", null ], + [ "component.cppm", "component_2component_8cppm.html", null ], + [ "component_base.cppm", "component__base_8cppm.html", null ], + [ "component_fuzzer.cpp", "component__fuzzer_8cpp.html", "component__fuzzer_8cpp" ], + [ "component_options.cpp", "component__options_8cpp.html", null ], + [ "component_options.cppm", "component__options_8cppm.html", null ], + [ "container.cpp", "container_8cpp.html", "container_8cpp" ], + [ "dropdown.cpp", "src_2ftxui_2component_2dropdown_8cpp.html", "src_2ftxui_2component_2dropdown_8cpp" ], + [ "event.cpp", "event_8cpp.html", null ], + [ "event.cppm", "event_8cppm.html", null ], + [ "hoverable.cpp", "hoverable_8cpp.html", "hoverable_8cpp" ], + [ "input.cpp", "src_2ftxui_2component_2input_8cpp.html", "src_2ftxui_2component_2input_8cpp" ], + [ "loop.cpp", "loop_8cpp.html", null ], + [ "loop.cppm", "loop_8cppm.html", null ], + [ "maybe.cpp", "src_2ftxui_2component_2maybe_8cpp.html", "src_2ftxui_2component_2maybe_8cpp" ], + [ "menu.cpp", "src_2ftxui_2component_2menu_8cpp.html", "src_2ftxui_2component_2menu_8cpp" ], + [ "modal.cpp", "modal_8cpp.html", "modal_8cpp" ], + [ "mouse.cppm", "mouse_8cppm.html", null ], + [ "radiobox.cpp", "src_2ftxui_2component_2radiobox_8cpp.html", "src_2ftxui_2component_2radiobox_8cpp" ], + [ "receiver.cppm", "receiver_8cppm.html", null ], + [ "renderer.cpp", "src_2ftxui_2component_2renderer_8cpp.html", "src_2ftxui_2component_2renderer_8cpp" ], + [ "resizable_split.cpp", "src_2ftxui_2component_2resizable__split_8cpp.html", "src_2ftxui_2component_2resizable__split_8cpp" ], + [ "screen_interactive.cpp", "screen__interactive_8cpp.html", "screen__interactive_8cpp" ], + [ "screen_interactive.cppm", "screen__interactive_8cppm.html", null ], + [ "slider.cpp", "src_2ftxui_2component_2slider_8cpp.html", "src_2ftxui_2component_2slider_8cpp" ], + [ "task.cpp", "task_8cpp.html", null ], + [ "task.cppm", "task_8cppm.html", null ], + [ "task_internal.hpp", "task__internal_8hpp.html", "task__internal_8hpp" ], + [ "task_queue.cpp", "task__queue_8cpp.html", null ], + [ "task_queue.hpp", "task__queue_8hpp.html", "task__queue_8hpp" ], + [ "task_runner.cpp", "task__runner_8cpp.html", null ], + [ "task_runner.hpp", "task__runner_8hpp.html", "task__runner_8hpp" ], + [ "terminal_input_parser.cpp", "terminal__input__parser_8cpp.html", "terminal__input__parser_8cpp" ], + [ "terminal_input_parser.hpp", "terminal__input__parser_8hpp.html", "terminal__input__parser_8hpp" ], + [ "terminal_input_parser_test_fuzzer.cpp", "terminal__input__parser__test__fuzzer_8cpp.html", "terminal__input__parser__test__fuzzer_8cpp" ], + [ "util.cpp", "component_2util_8cpp.html", "component_2util_8cpp" ], + [ "window.cpp", "src_2ftxui_2component_2window_8cpp.html", "src_2ftxui_2component_2window_8cpp" ] +]; \ No newline at end of file diff --git a/dir_591e152ed8a369b957ed274cdb7355d5_dep.map b/dir_591e152ed8a369b957ed274cdb7355d5_dep.map new file mode 100644 index 000000000..265ce68f7 --- /dev/null +++ b/dir_591e152ed8a369b957ed274cdb7355d5_dep.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/dir_591e152ed8a369b957ed274cdb7355d5_dep.md5 b/dir_591e152ed8a369b957ed274cdb7355d5_dep.md5 new file mode 100644 index 000000000..e4796af9c --- /dev/null +++ b/dir_591e152ed8a369b957ed274cdb7355d5_dep.md5 @@ -0,0 +1 @@ +746456e14187a8b6f2db7da9f05a0d8f \ No newline at end of file diff --git a/dir_591e152ed8a369b957ed274cdb7355d5_dep.png b/dir_591e152ed8a369b957ed274cdb7355d5_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce320d6385f52218a9f57716fa6f84f08197c55 GIT binary patch literal 8625 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 literal 0 HcmV?d00001 diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 000000000..9beb1b643 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: src Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
src Directory Reference
+
+
+
+ + Directory dependency graph for src:
+
+
+ + + + + +

+Directories

 ftxui
 
+
+
+ + + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 000000000..493d88c82 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,4 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "ftxui", "dir_aca3139ef08e710186b498ba0b7d3b1a.html", "dir_aca3139ef08e710186b498ba0b7d3b1a" ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map new file mode 100644 index 000000000..10e535871 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 new file mode 100644 index 000000000..82f8de391 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 @@ -0,0 +1 @@ +572d7aca101ab47e858561a23b864b85 \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc36de564fc740301ae5a852bfa90e4e289f573 GIT binary patch literal 3500 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 s;7mC@f^TgDV?xI%{=dG_9gPS4GSi^68o`r~ + + + + + + + +FTXUI: doc Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
doc Directory Reference
+
+
+
+
+ + + + + diff --git a/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.html b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.html new file mode 100644 index 000000000..a805fb9d7 --- /dev/null +++ b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.html @@ -0,0 +1,248 @@ + + + + + + + + +FTXUI: ftxui Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ftxui Directory Reference
+
+
+
+ + Directory dependency graph for ftxui:
+
+
+ + + + + + + + + + + +

+Directories

 component
 
 dom
 
 screen
 
 util
 
+
+
+ + + + + diff --git a/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.js b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.js new file mode 100644 index 000000000..74d28278d --- /dev/null +++ b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.js @@ -0,0 +1,7 @@ +var dir_7f0d124f4cd00c9c7b5b93f60cb4ae34 = +[ + [ "component", "dir_b7c1fcae8d0ae1df453f463e8938778b.html", "dir_b7c1fcae8d0ae1df453f463e8938778b" ], + [ "dom", "dir_4cbb3a1c219643e03aadd7cd3693e7bd.html", "dir_4cbb3a1c219643e03aadd7cd3693e7bd" ], + [ "screen", "dir_53f6d8d3eb5689656c3f196f1d99fcb2.html", "dir_53f6d8d3eb5689656c3f196f1d99fcb2" ], + [ "util", "dir_1668679807285893c235fcc812b1f73d.html", "dir_1668679807285893c235fcc812b1f73d" ] +]; \ No newline at end of file diff --git a/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.map b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.map new file mode 100644 index 000000000..2aa7a1510 --- /dev/null +++ b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.md5 b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.md5 new file mode 100644 index 000000000..8593da13b --- /dev/null +++ b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.md5 @@ -0,0 +1 @@ +71d06994bbbad9cabbbc282f505f5c97 \ No newline at end of file diff --git a/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.png b/dir_7f0d124f4cd00c9c7b5b93f60cb4ae34_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2de6aa75b1967df3281e68a17ce540c77e0945 GIT binary patch literal 13919 zcmaib2T)T{ur^8)q$waB1gRpO&+S1i-14~1PHyi zP=wI=<9qYo-)8=QGLxIhxp(imd+zSpZ};119W7;ILRvyBEG%MG6~#B0;~5s#1EWWH zm|wEg_KKJTo~637BG&!CPj*{jA{N$jELBB0J>T>Lq)#Ay-{r;e_||sTd2qO}lbL})_}R!lVh$&h|9^jZ>bB1v3k=W;F0rgj2Uoe*Y?U5w#S2(@P%DM~?y$X%l8c&2^gn zayeSa=A{6kl&ZG4WnLyPg@{f+T zvp>cC#k>N2?KW8fMV{;2iPdbARRCHM%OhS(g$%~zFwfb z;(1<&lNog7_LCP_c8wmFF&V9~+7xuMq%F*>OZgt$!0mH5JC;wCIkdmiL@!wSjV|QM zYHrTB?ed9Y>ncsHQS<(KfD|H1S?>0*1yzx0E;W*9_F32WAc^W?CXugtbB`e}FYjc} zV)2ozhX=WBdd-jYbg4!E`^V)uy7zLv64TJWFfO(e;4}*jE zTsS$?71hABTV}3Y7L^u{J4-8DKfb44xSPKo92$DT$Cowl+>usRmM*}w1~s%`mE?%$ z4hfW2RULZuwk`!_dfs!mWf8Q2yI<|?+`QraW@>UMO{a6TVX>=LTjmgo=4w@t7?zi{ zF)%=npErupJ2_$PFG9m|xIoniM@A+qmrF)=P2Szp+4Uh%bI2mJ_KVZJ+K?vGMUuU< zGmC)0(3;>Q)HjGkIHgv)2IAbQ(X`@;g+qKScIS%SUa;f+UCCh<$2wJ&!&V${et*FT ze(NE(!fM0hN|pp2dvMR19Ttn@^+?kG(msWkO7wRBWl70PL_=k$iA%HhABSCxas_K^ zE(czaPQu~C5I&i;N>b!fZKX@*YilL(5dURoNLt#(`Woq#DJZM%MwphCwsGy;q^M$1 z*~$vrRHKuYPasa_Ri@l~j0QoP~%lGrzpma z=mDmU&Q*e&T`HNig;U<$U?7ilScvqQ;JEau3rVW};6Vd&kZtKQILk^JJ*igj#ACfP z5hdg@Cd_zyoppJ*VR*687Bg{b1cZ`V21<<oUD}E!` z{w&C>c=W#v7ezc0dJ2;dry&3{cYpa0fvpMJ2NRAthk?5rg+%wwJo#xwJAk1KvIOv5 zH(L)7g%Q@F@uYP%-`41MBH&K!2btW#&{iZV*yWqUKOsvTryaX*{|HwmNv{aMz~*RWi-akGZwp@F-$ z1`dByuY*y+%;({_);idEn`7@zm;4i zF%Zlg`ngQ|pH9w-Bgn8-bYin-{^*S7_|=LB53Sr>437l5e>vNOSGib3XrCXrJcYd< z6gG2QI(jgsrJNnRO34Sj7Z&&PD+@$DJ`7lX(r$dsrmvr5F5SO&9~h3g(AO*L6N?-} zWI6-M-AQbseF2y9T)rT0-^y@|>wl|6pL3yjYlO~P`aZhz3VE@+!`Lq{bC57<0v?xg7~WXJa3V?eLHzZ?zW zR%+69*j(4YDJexCPvE1fPeu*x?ZGx9Kc51xmZjm9CJGpj!xVA>)GDkEXo1{L2i~k) zH=6Qd0q-3F#AjZ}ai6+|Q_PiKF63IHsO&avX#+Z-S=VVu6JbCgVfGMjN>@YWC4PMo zH85aLz})ZeYeDxIyQ1>vE+?N%UC)-HwKZ~)6WtcUZi2O2L5V>vqE@pxb`_PYWlW3X z!-XMXJTD{Xf+SM_Xu9-(4FxRZJblgfEAO9y@*0j0N54*+`X0!n3eGn-03lY4^%qj! zKg!tQnX*pPTD2Tjp4md8t%9COVgRk ze7|jPzulw{B2iv9rTr`uJCGT0P5=))rZILnygJ}RKt1r!yr8Z1t4i$`fdC*XC>MktD$MYxH&k2wG*^-#<+o&=e%pgDw$529Mkf=H z6nAa_DfK?-wg~BFlL`2~Dz3g`=d!UfueEkI5Hggy)X@;YlK{Y4)6Gi88!sS-v~C{ zeS%`Oo>!XqUCa0goOSkLUb`MpNMpK-#VKjb7CmX_NXR`6pR~Jl^3DFxlLi^o0IA1_ z(&fK3R2hM6hiNZ_{M!gHZqrpfW8v~z=7DRso3bkcU9oIJWjcA=9Cd$3F%l;o`htqS zPnoGbYGh-TssTw;WEr0(nRSKqSzA>Xl?o_P259^8PnaY~hOE$N<9QTj% z%i@o=K^57*3etlD)cRe2XYy^V8$E7L8)9>~Q@3<~raR$X?{e|+fDVXxALSg)?s<*( zo;1WOl59b%`p|rv#T<-ll_4SDw^LGNsT_V|{2;@#Q51YrVl{CRKWJ=XQr6TG zoHejY{>I+He*5&Tr$!)pJo5buc9CD>r;+b__M3qovFa*2cj7PSwDi6(D697r#Urk% zMNBAolf8mwCiN5?JQ%pM?liMzsI(;0$KvWSQ_#c3CEwY$vvr@KaQEOKx}IC)7;q(j zCYK?3jAhXF7b_0_djELnBg>q)};Qfmfn8dp=Zd>ousV4omJ*bH9(L zAvd1~27*qbE!OrO2N;ukhiwm+tJt;@(tqw93)nIQvoKX$kcYI~I>woLb72Y7{G3M3o5 z_m_-9He;K^OcvubwiyGHY#v5cb^;t(?(A5~d`814)D>W2LO>WGax`!qLbdF(BKh7; zU7afog*;)w=aWc0E49e`Fsi22zJC8%TcgJ&c2l|GJ~^~F>I7jDUyX6G?H)ZszcX!- ziFJsa6v2Qex)ag>OR&v@CURS}`0JIwO{}c8fBp8;xta0;=Z)I~?^Q`m0vT;@m+vZq z;%-yiqU|+a0&}i!1JPUKZp$|y#L*66yDxf)HGjkPPCtZh`W%bO^j38D9JP6Hzc2(p zL-}7l!H50eno1FL@<*dY7j7I*P9OU%FG~8|WW^t?l=!%b(ci4Z!?zMG_!ICMZ}7)~ zXMDycCRn9C2WcExT^)=8DNu)wFib-71x zY+^tNy7UlQml^21@%g%St73lEXye0}Xa%~?7dQc*?BwIi=p`m~Vr8?saA?puy<*Z% zR(;y)Shf^WE-uRVVmI}ek?$24%&bT{RLB_B1?iCY4O<7{t9+6EbdMgP#3%-@nG+M2 z{EKa{{v+P_@2G{m?#1vfI;raXY7+|U4b8l+RxU6xB>();qWKk z$Rk;uO%R{VhU3qy)q^&F8mq3Q__awU6EM^`^UpY*Fcn7jwHx%sO0H|O_P;(U#y=kB#qRm& zqCsx~ux~Kp2o>47sEn;$TQ1{bw}5j3%fIjKsW4x{fK~ar)fN3<@A-k*eec+vIcKR+ z)S^wHeOy|$pLMdFUo4I{>$gBKpGWG^Fi9Bpl(3LgWBxjjrY_(;Y^$1Fqk!F>amn%z z?S*b03yz8o`a~;24#e>)Yu$*F&g$c@ejk%knf&F2V)n>T+Xj=ccj44=I9|!OB)%Q; zZh`HpHB<$Ru{1q86A8UaU4By<^&&49OTXDPQfJ}-;0J|NKGYu&fK!iF5M}>YD?NlO z;ZtD_%9K`p=c+c{hbBatp|o!eb2%N}q#NZ4v{LX@i)gm&AeT+Pm8NDC_}Qe%l@e(@ zQTTk3eJH##ip28}0$dU-w!Hfa{nUfcU}8&=N{uJQhpy}+le)E82s*Lf^38w#sivg6 zb0sw2ik?v7dv%^goL9$|h5*8}^1`x1xToiJ#{XuG6T@54wr-jxQrszSr7U$`zLtYDf{(LJ^Hk+T4Vt2-VEnlWN zB@l_w?tdXkqV-DH&$corN57&nf{i82Up>rHIdL`o;lZVGyF%4`S<`5sQ*eC&zuakH zDy`vN{UeztG%%L~-QOzH8d@i26uonJOxFj3zshvaE*o;~ZwjB~FaPFZPjZUUK38?( zVR4PC`RWxT%@f1Kusn~z-xqNObANVf)5<94_4Tdo>QzME`hNMO%#ote0-&5s3m~#7 zXi|wit2$!IQ_=%M;YZ$0mfjGXP%3-~QGZ4;K+hJTG^N=tI(6maR=vfMVs)zV#&VgB z=Eu`X)-3-o@R^tAP_8)iiELt5W1%eVuDMr|LUn_ZUwPDmO{aaLX1y?Hdqt9sZ_&wX zpjWSOhbFO05*_{bUqf-Hx5o>$Sz@My+}6EM^RqdPYHLg~fBLN`f_{{V zOR3jd7RtGm#8Ma6y?E1$b5`K5q$z2-9#L>;N2CuLQ0l@2>_6W7#I7c2;*me4!1rA_ zpNqz2x0so`$nIWl3`~XcKUMnO6sRAu`cY4_04Xy-w*#3g=a&;=GpZd`-}!MoQS~8o z=$bMnlB9C~O?b-ZN4pG~G04#vCBM6t1P7tA0`L3m!)-%9F!9;JH?obk8lKo z5C?dt9zVtdu9RE}u0fZ<_&<4)uz`&Cx)XztrMm4&!9Ypb=Y3tlIX2Vx z_ywD1rhyO~LuS0ywSDslt^;@VDe-8kFM_(nK?*;9*>6{YH)~$^ZTfRZvyPA~LBQ@S zo{84Di`v&XI-RN!kb|!=lXwLCIx85^84p?N%G5^ghC{C@M>sBn1<>&?DVb2U?55lN zU5IH&g`;)nhnuCWgDmr%oDZYF^+x9dDEijk+ACgUVdBosw2FUmXY*y7b4Rz10SGoz zz^dTX;>F@dLSE~g28hn?piiqrAgAAuB`}wTUB%wUgbDpkp=zXyU+^t`;oL|H)6q%a zZ5tw1&V4S2Sztelf@g8m@9AJ0JO**cD@J#vlvL|>k&+NR8=P#KRxxeR+&i=R*dwZX zxmzVD%T%0&ixtDSifE>SWci*(gNeU-ZZS!nH6?FCC7y;`>-a#9^uJn~*M~%@&QZ`O z2zj3R%clc4S;^vtrvuGOixQ#e0tw;NtflVU`ADIDb}X+A2yZH6DL|4@pb}6jvK`ggw%J zPYG**P?l%#bAOzfay~E0TtpKb_bhdsbKuga6c`!iMlx`|kT?7mINfUH(FR!lP*JnY0&{chsBZkxA!C_7s}q(L)O z;>MR2=93jTCvF>%&&ufDm|dgqrm;Bd++DEw``y2&Nw+wA`kB%~0@anHA5+83z3)|# zMQPQ^i2Ck(`*zeYYyVh=_P-oqTmaMiTHx6jdjveQ+;ipeF>m2Gw!c(Cq1|~sCqx3< z?CC^WnKp7Hj$O%s{sEl{1Gu2T&XKTwxQz2XhhwO}p^(POX>aJSSN$KmS$PsU!hcmg z0)tFq2dQwL7tI7+Fda78v@gZ)5ho^Qml=ghEQBlR7)qA0M%;wUCbQO2uz|r0gL(Jw z*-BzOeW<8@U&S`V7OD*dUOPZ={a-wOn%akUfu?dC%ae-#3;MuwK_5osM7qF zK9t9xR9d2**Cy)N9j%^EIfAaK0x$0pVTbcwc{IxIa8lIPfi24Nc9$wTroMLHMAQ|7 zBrY~?*V*3kFg&4GQx`c|W(p1f9R2o1KY4Zu(=U&CB_rHsk_NuKzR&1kemuV3FXOV> zd+K6yMn{VFyGyXh(3;p+S~&XidaUEhCGcda5m^F*mRqPjnKs@-ZhkuVPw~E@R z_0W#t6T0NyABfnLkX3YZ*3t!{bapLK{BD7+YJdYIcHsImJ(x19BCu>cxZSO*Jnw_X zb1py>_GX5Lcd)?ePjd}Sgq#|cp(5{&mn12AaYy_f>I#u4AJ++w`bN4tT+#Y2#Pd4< z_9HPcq}(RW zs}6A<1+DaR0f!-mp@a!+|M4Qv69c5C zS}z8@$^th@PS}}xZ>*QBdu%H`WkL|6)i;r7LGN7vIgSB zZ^7Hi06!$QLn~-jSMBRGY$iM~SJRW=@~n7op3=Tr@cVD_;_5$h(ZBH-aayZ^UMgFl zw7F)=#8*2%8Qm<}2dR%bV=n@CMG678&hmp6iZ}*fL-oQ6Gl`LIITd^_^_h?byod#7QPHf3-fzzfC88Y5Ivb;wbXlSfR5Q zSA1pR9=G~i6TjqSHCS?u5_y_XM%=A+3WL*arXK6qTloMlnhby>{?aEVM6NK2p^E52 zcc|z|u{0sr2Y7Y@l0uAJK)wCpr$J|44ZfB9VY8@@0qr$z8=u(yZs7&+&MXn?yxz`; zDQubD7h^U^7K%@l$Ct1J_TIUNW--6SP2qjP=}zw)3a9Pr>HL23jLN#)odx|w z-a-W*I#Tz{lhnY;Y^La(c}}5^3xe5`_gb*;+4ptfkJ`MODoFg88DIsG&nt@D#L5%L zT+5@aaUmI+F+2~+N3>AQDw9z^u7^eOG*_!*(X>Zqo9-bHQf0G+xGoMyCTHy76Jih*XYJAVx@+PL~N( zEFGR5Hz6UilsAf-rFVI+v4N2yY5a>XFHFL>2O;aD1s@m@tTp&aH=}X#+31=!ht(_2KQJ-30lj`aX(j*D!l6X(pq!ef z+2uyA0f%9>{MW&4g$v23uJq^R1QG$7 zG2e336)zL-9-4wlLyfuKLMjnDg|i21XSv8^fi5X|?JrswtNX&^o3=z!IQ{*oZZj>Z zfJ*~b_V-wk@G$$Q!|ordNjV1FDdbE=SHUQK2!~M!$1^Yn?bTnpvP8sHNbSCTp%TE@ zR}}G=qU(4migA5T^R_<8n=v(h(;gnh*rxtg0Fz8q+5xf+G}<)J12y=4;2b62bNo_I@M zUh~vbyvkNapH!VB%Sw;$t`A&|)Tz(V``%$uqUc-0wWF&QB`TM7P}E-lG{9^ZuJxQZ zTZyJ~C7h_m2c2pk)guVt9w8>t^6`Tjcs1g=_@kT+=+oZ|vK4Pt=TV~=41FzBMC(^` z$^x3YW{uz?V;|xY=#yP0Cke6)0vhU_eYh;6wr5AaM&*1!-tw{MbpTfQ@*KblMxV&P zlmaBu30p?5MJGU(%Y%-ik^#gdBc6Wc4b9W`XSzh2J%oK*`Z2J#DarY%-^jwH6LU-k zvpm*vj~o_{?Vw-X{g;p5ez#o}Tv-cREG;)l|HiLUdzD_yj&UfD-OFgNy1u^dq+%rN zdAx%$6~ODM*0Q|x#ok{zYd%8^%F?d4xL(A3Q8kCc+V}+rfq^yH)3-`$0 zwp8Nwd##nxjBigQkB&plq3&)a1yjPlmGT18Y`#F33B$n|SaG$^%#-amf2ZNoyXX3v z#IBy1{WhJ~lwtP-wfkTEmkHkbkS+L-MR$eR)7Lx2R z9@uqbVLf~Fj|*^C+y&ulY3~7pOP)s`)K?sDAM3U|<&2F_2AbM`rI&Pa*Df?|8G$sq z2FHnSW2I0H6A@ugS_a+f_qg9)PA-{gV)2%o&DqAe{wXOWrLooG*f}9*b^R2O2 zRkiVZPHRmo*x7fEdfL2R*#fh~_YI+Um|{IWuid^*UVjR!BI#_#BSB0=VP6dwt!YX&F7cLUMWfs`DFy9%0$@w`SZ)pt(i*vx@0%=%60-$}ZW!!+?EoL0IGVPrS;Sbn`BHw7qkcBt z;vWx)j&$#W%_V`s)us-!1Bjp590Q?4B`6{SF?GcL=77$yHT7-kji>c%XPb;+=<}C9 zBvYcqVC~GI5_2DaiJ`gCF7TS$doUdSnvHlio1VBITc~h3s3;;@+wlslfYU=3j+RS(^lBurH zLx$}^_!JO^O!;p7pBoGh_o7+{(a!{}a`VjR@A)G!$r;G2LB{s}MVa2AisxOsM0=Xx z9ZWQGR*bCKhbLEoKRYOfcr@M!%_KkksV!(^U`IkbdpK_#HWWRD?cAiw!@$_hQUtOr zGf~l(b2me7>H(QF;q%|6Mo(1Pi`p9|C@|V_;>q7ml;?taUObA;#v80BMW*e!knm|s zh|xZF7v7>UG8{V8?#id}9?Fc4hEFOT&Zzy9%Tcrznp*&;r7u9CK%_QW1)JTLPb05tE5g~n#9iqgdiufFa{f0Mb z!E?FX2jpUMuj3=WR#68&G|)uC5P(=)tfeH;XZ?HS^#zd0@70yBBrMo!=Ta0nbX!k{ zs95(l+>IjXo2Arcx=P zolwna51ZpPHxFX4t>b#SvHt5=isId6$J$O(TTPY<`z7pFL*>tp1{`l9-_nuYAd;UO4mp~M zb{^ZR#H(ge# zQy?hK9*b>op3tkqsepK1_z9<0wjRx7Rb7sVJ~Sf|Ai)4>E&;O)>+(mbq`eqGR7)$3&3&>md3 z2hR6W!DzN0E*A5*0qSePckX-c67)Q+XZtS2i!Bj8SshUw3(e_NcUR=H6~DridMmZ1 zQ=+436}l?e`yTAvp{l@MFIRION+NE@CbjJyDo}Sw1fuKwE7PjGxVYV&eVN}qjSW+E zI*mshhsc<*b1nvFUV<>>7m{w?q63k^xT$?GiG~h7%Ypl=n#VRz>5^42s0&0Q_VQ2P z6Cjy4gEdy-_jk6ScX7yP*>&p73*ACR2F+7?UVM#>R7mf>O`G3vE9M}ks;o7 z4S)U2aYu5jx;eT<^5rrpGs^=e-g*wItv*-W zWb|RKKF7iOckGK|)JC>5DE9R}aJ@nwvWxQ+1~A=*P~Bm>nLd45*$6KxOkWPAhQ zYHFjT{qLA<09O9EMNjpxn?I|$19MlW zuXo}GMPvRfp;770@eW>N_AykEYIBKCsRueq+Q)+x&iQ$I3s*(-@fHwb9P? zo1fj9@BCVzC;ERT|Juz{A(k74$s(MaAFk@jOQ(yg0>qP>efu3Nn$I@{oTiGN`YnmX zzc95(D0gTz&P>R&{cw5aYnfd|x=W26^Ax~#)=s+Xos4$a{rlzBCZDO`?o1jj(u1dcMv;e{9wApa}jRFr@dn7ar&Nb`2lT*)hKwT!C($1^y?;YFD^0MfGO`$`*uy4p} zxIy7PUM39MgQ)|=Wn`y*dk(GJ<~|9Pn1*bJ#3rXLlgJQ1neKdSjkn`H`n|Q2x0fRn zG`j^tCzCmqe`%T+kwb14_HD|Pzj1Wg1$!$maEadxUBT8oWg#{m8QnX5KTCV^tF9Y! z%i0+hXPv6Vv=jM853AO{o)y11F%8j)Ea(Y;!v}{u0aaS|HL>~j`Bh>ftxoe1Jdw{5 zbZp*TCxffsRV?aX z7LqX`r@|$566SQEpH=g?+h$5RGbFFS3)_U`EF44+E{XB;!T)> zpfG+Oni%XLY@}V@(quj{$5$k@54jiD@j->WE-9#)erNV|7erTCsqa_>`d8XDF!)2U zMs^GUbgme&e`Tl&`i#4qCb3eP=A@w(J{5xp&&*9dW9_H*?Y7$w?@h^EGLc+KV!%7C z0Zd_Dq<+;<+CAfDez{tkZzQ!>-WMb6bWKlT^IFN;Vd;-EgVo#y$2A4Y zklNJP@jDFqbZgVU4^vr~iq$Y`H1}m)Jt>ZISBacnK>pdw^iqgoK~}gua5>ON-oww; zacD+pjZ0rrxFpk=iuCMfLi0wgz2X>t7UO$%M-Q^>fdUecctW6Z_KSsA+*R!C;C4}u z_2&+lZTxk0_`$Gy7)Gzj zo{?uKV0^ClebCpMik7IsZ|-8{6CY5A(8(7L^f6jgQmu&RJkQ2n3L;DkeG3=n#ve=i z)2bZn8tg64PmMl+20^jgD*$4=A>nRi@_$+6kRyNBGXvmJwvfO#)<;Ir?v-$%7!5-5 z6$=w0+PU($>Tu3d#KB}$xo!eYVJd{E_KmQBh)Vo4@>6rQxd0EsxRtkH57N{VzBNol zG79^xwI}`_<6>h#)13SleZ?(M7?fzd2{gJAW~^XRnVptU5M_#-gjH27%^8@`!oC4o z@G#iy(8Ohpn@=m8Q$BGW6fh*W0|9Xm194#GXqDPk3M5hw#Rqs+a0bcGD^5K0{JoL_ zIW#|R-F)3-cRzF3F_n>2l#rLxtx#FKPj22M~Qq@E_wA^htve1{+6i25Z_V zbm=zPWElrm!G?kJSO_8sSNYIafgJsOtCGY1pw3h!_C79uS;&X`%dW!0 zbEnXGqCF9Vd;8D^k&*|RUJ6DWA3X{o=|cK81eA+x7KOn?xLevnL$N5j*@Ln6%Cw&g z4fqSf@8z7A23>aR-iThKWB_;-Vt>|`iHg5QpjCB9S>`^f$7;T@+BW}VrjQl)vSk#^ z&TWkg)~#XWA4qN4AvPOz!o@FixZ8S8g>ZZNr(2Y@D2j}UcqwCt1^(LSUH#ceX-aB| z?p(9Ed5RFf3NqtEWDR7?R-+y=FDO}b#D*d1yf%In=u@ETX{ghHe!RP?=kQML%@@Gu z{0<&sgD4X<;hT5$h>S_DUL6*REdMiQlp6{aype3xrz!EH)gxrYYsNgn$^~_O5;J7j zCX0}~-wd74+^yBrd-E)@!WXjnUEk5d4L{4L?y4-%&@4dcl#2HlaTjr~0tE1H_3quc z({EK&rqmxj&4HYw{T3!BJM(_qYaAMq*v{enZewGGiX`~#Qv$hX=0p!q5ba8KgqPW4 z8TErM1CxY$V_$&rO+UIt{1!WBCa1-J{@9zBSJjCP&Kt2If;~^}t-s4vTc|v9GYY4U z`EQ=lf3TyYFaEKDqyLeeZ7?K1o>3R(ZjHgELPnk`&*KYZvQGW6g5XKP8;iCy^6`$; zrUA1@veTKP7{2C)FhDOc<$JV*|9 z$3CZtJ|Yv4Gi!2qVFGU()ePZb7U3nZwUyj6?0DpfdxPT3w}Z22we4$Rif0(^FwfU( z)$vRm+1op$smFL>Z$DcObcm@!5@HmU)mwAwEYH;!scm=!V`?AQzHf{xN_m^vxYeQn zWMZJhm-PsuoLM;Kny7aBQFh69-?}FsCvmAf>p1b?I$d!)Hf7TX{2Hh$;Qf!ACJftW zdnxf#As$He@s`pA(GVcSk$&$%)C1XgE*XLsF-3w}yu+~h$mx=2&#s*G_7`N|ADa$~ z1P`7QGm#~Klebl-OKK7Ma?v{fE4E{rVOgp6+3LPyVRe1C1yl4R&=U}7fFu8Otp)gQ zw4~5?rE*5cq%AQw*`jM!QNT73?YZ(oGIR%79l5s zqi56W8tHu-4ejAPFKzV3(MyGI@IW?v-yu@ns=za9O06t)3_no;81g4{N*p5!n^9&j z3Qc+fPVt+K{w=lN%ZwIXIK4&N$HuJO-@5mGyMAg}$5Mbc`K-eHe{>c6Ya95EVbzl* zU`(m|OPMxtSlSf7v$C=khm;pCCY zDf|C-3&1}zphoXMgCzXdeW0ro^#(%{{MDJEeekc3<-a-_E^dKmn1oGI2Pv1LY|_sQ zA5Q2}7{)J!X>W3bACcGxV+{I7p=42+7ubbD@zMJUh{vg5P9_cN{C}G(PdK$~=>Od+ z5h$2bR`=lr6fms-w2-nouQ~+}o!11hx}dnU!>$hP`)c8Kqdyl(?~dD-Za!F8_a!Je zdEO9=goGf_mFCj0Q%utoQ}O)30Gka4bDIKT_5YvNtACAImKt|5yR}}~+(b5#n2s?l NRV6LO3i)@T{{uRpB6R=& literal 0 HcmV?d00001 diff --git a/dir_8b052a5e35b6e4510790af7766fda6cf.html b/dir_8b052a5e35b6e4510790af7766fda6cf.html new file mode 100644 index 000000000..14d4f342b --- /dev/null +++ b/dir_8b052a5e35b6e4510790af7766fda6cf.html @@ -0,0 +1,337 @@ + + + + + + + + +FTXUI: dom Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom Directory Reference
+
+
+
+ + Directory dependency graph for dom:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 automerge.cpp
 
 blink.cpp
 
 bold.cpp
 
 border.cpp
 
 box_helper.cpp
 
 box_helper.hpp
 
 canvas.cpp
 
 canvas.cppm
 
 clear_under.cpp
 
 color.cpp
 
 composite_decorator.cpp
 
 dbox.cpp
 
 deprecated.cppm
 
 dim.cpp
 
 direction.cppm
 
 elements.cppm
 
 flex.cpp
 
 flexbox.cpp
 
 flexbox_config.cpp
 
 flexbox_config.cppm
 
 flexbox_helper.cpp
 
 flexbox_helper.hpp
 
 focus.cpp
 
 frame.cpp
 
 gauge.cpp
 
 graph.cpp
 
 gridbox.cpp
 
 hbox.cpp
 
 hyperlink.cpp
 
 inverted.cpp
 
 italic.cpp
 
 linear_gradient.cpp
 
 linear_gradient.cppm
 
 node.cpp
 
 node.cppm
 
 node_decorator.cpp
 
 node_decorator.hpp
 
 paragraph.cpp
 
 reflect.cpp
 
 requirement.cppm
 
 scroll_indicator.cpp
 
 selection.cpp
 
 selection.cppm
 
 selection_style.cpp
 
 separator.cpp
 
 size.cpp
 
 spinner.cpp
 
 strikethrough.cpp
 
 table.cpp
 
 table.cppm
 
 text.cpp
 
 underlined.cpp
 
 underlined_double.cpp
 
 util.cpp
 
 vbox.cpp
 
+
+
+ + +
+ + diff --git a/dir_8b052a5e35b6e4510790af7766fda6cf.js b/dir_8b052a5e35b6e4510790af7766fda6cf.js new file mode 100644 index 000000000..ae188673f --- /dev/null +++ b/dir_8b052a5e35b6e4510790af7766fda6cf.js @@ -0,0 +1,58 @@ +var dir_8b052a5e35b6e4510790af7766fda6cf = +[ + [ "automerge.cpp", "automerge_8cpp.html", "automerge_8cpp" ], + [ "blink.cpp", "blink_8cpp.html", "blink_8cpp" ], + [ "bold.cpp", "bold_8cpp.html", "bold_8cpp" ], + [ "border.cpp", "src_2ftxui_2dom_2border_8cpp.html", "src_2ftxui_2dom_2border_8cpp" ], + [ "box_helper.cpp", "box__helper_8cpp.html", "box__helper_8cpp" ], + [ "box_helper.hpp", "box__helper_8hpp.html", "box__helper_8hpp" ], + [ "canvas.cpp", "src_2ftxui_2dom_2canvas_8cpp.html", "src_2ftxui_2dom_2canvas_8cpp" ], + [ "canvas.cppm", "canvas_8cppm.html", null ], + [ "clear_under.cpp", "clear__under_8cpp.html", "clear__under_8cpp" ], + [ "color.cpp", "dom_2color_8cpp.html", "dom_2color_8cpp" ], + [ "composite_decorator.cpp", "composite__decorator_8cpp.html", "composite__decorator_8cpp" ], + [ "dbox.cpp", "src_2ftxui_2dom_2dbox_8cpp.html", "src_2ftxui_2dom_2dbox_8cpp" ], + [ "deprecated.cppm", "dom_2deprecated_8cppm.html", null ], + [ "dim.cpp", "dim_8cpp.html", "dim_8cpp" ], + [ "direction.cppm", "direction_8cppm.html", null ], + [ "elements.cppm", "elements_8cppm.html", null ], + [ "flex.cpp", "flex_8cpp.html", "flex_8cpp" ], + [ "flexbox.cpp", "flexbox_8cpp.html", "flexbox_8cpp" ], + [ "flexbox_config.cpp", "flexbox__config_8cpp.html", null ], + [ "flexbox_config.cppm", "flexbox__config_8cppm.html", null ], + [ "flexbox_helper.cpp", "flexbox__helper_8cpp.html", "flexbox__helper_8cpp" ], + [ "flexbox_helper.hpp", "flexbox__helper_8hpp.html", "flexbox__helper_8hpp" ], + [ "focus.cpp", "src_2ftxui_2dom_2focus_8cpp.html", "src_2ftxui_2dom_2focus_8cpp" ], + [ "frame.cpp", "frame_8cpp.html", "frame_8cpp" ], + [ "gauge.cpp", "src_2ftxui_2dom_2gauge_8cpp.html", "src_2ftxui_2dom_2gauge_8cpp" ], + [ "graph.cpp", "src_2ftxui_2dom_2graph_8cpp.html", "src_2ftxui_2dom_2graph_8cpp" ], + [ "gridbox.cpp", "src_2ftxui_2dom_2gridbox_8cpp.html", "src_2ftxui_2dom_2gridbox_8cpp" ], + [ "hbox.cpp", "hbox_8cpp.html", "hbox_8cpp" ], + [ "hyperlink.cpp", "hyperlink_8cpp.html", "hyperlink_8cpp" ], + [ "inverted.cpp", "inverted_8cpp.html", "inverted_8cpp" ], + [ "italic.cpp", "italic_8cpp.html", "italic_8cpp" ], + [ "linear_gradient.cpp", "src_2ftxui_2dom_2linear__gradient_8cpp.html", "src_2ftxui_2dom_2linear__gradient_8cpp" ], + [ "linear_gradient.cppm", "linear__gradient_8cppm.html", null ], + [ "node.cpp", "node_8cpp.html", "node_8cpp" ], + [ "node.cppm", "node_8cppm.html", null ], + [ "node_decorator.cpp", "node__decorator_8cpp.html", null ], + [ "node_decorator.hpp", "node__decorator_8hpp.html", "node__decorator_8hpp" ], + [ "paragraph.cpp", "src_2ftxui_2dom_2paragraph_8cpp.html", "src_2ftxui_2dom_2paragraph_8cpp" ], + [ "reflect.cpp", "reflect_8cpp.html", "reflect_8cpp" ], + [ "requirement.cppm", "requirement_8cppm.html", null ], + [ "scroll_indicator.cpp", "scroll__indicator_8cpp.html", "scroll__indicator_8cpp" ], + [ "selection.cpp", "src_2ftxui_2dom_2selection_8cpp.html", null ], + [ "selection.cppm", "selection_8cppm.html", null ], + [ "selection_style.cpp", "selection__style_8cpp.html", "selection__style_8cpp" ], + [ "separator.cpp", "src_2ftxui_2dom_2separator_8cpp.html", "src_2ftxui_2dom_2separator_8cpp" ], + [ "size.cpp", "src_2ftxui_2dom_2size_8cpp.html", "src_2ftxui_2dom_2size_8cpp" ], + [ "spinner.cpp", "src_2ftxui_2dom_2spinner_8cpp.html", "src_2ftxui_2dom_2spinner_8cpp" ], + [ "strikethrough.cpp", "strikethrough_8cpp.html", "strikethrough_8cpp" ], + [ "table.cpp", "src_2ftxui_2dom_2table_8cpp.html", null ], + [ "table.cppm", "table_8cppm.html", null ], + [ "text.cpp", "text_8cpp.html", "text_8cpp" ], + [ "underlined.cpp", "underlined_8cpp.html", "underlined_8cpp" ], + [ "underlined_double.cpp", "underlined__double_8cpp.html", "underlined__double_8cpp" ], + [ "util.cpp", "dom_2util_8cpp.html", "dom_2util_8cpp" ], + [ "vbox.cpp", "vbox_8cpp.html", "vbox_8cpp" ] +]; \ No newline at end of file diff --git a/dir_8b052a5e35b6e4510790af7766fda6cf_dep.map b/dir_8b052a5e35b6e4510790af7766fda6cf_dep.map new file mode 100644 index 000000000..e2aab786c --- /dev/null +++ b/dir_8b052a5e35b6e4510790af7766fda6cf_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dir_8b052a5e35b6e4510790af7766fda6cf_dep.md5 b/dir_8b052a5e35b6e4510790af7766fda6cf_dep.md5 new file mode 100644 index 000000000..781cd0543 --- /dev/null +++ b/dir_8b052a5e35b6e4510790af7766fda6cf_dep.md5 @@ -0,0 +1 @@ +97ccfc5d2e71276aa5f45adba775a249 \ No newline at end of file diff --git a/dir_8b052a5e35b6e4510790af7766fda6cf_dep.png b/dir_8b052a5e35b6e4510790af7766fda6cf_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..4931839060bd917cc2eb9ee958756205f2517078 GIT binary patch literal 3506 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 literal 0 HcmV?d00001 diff --git a/dir_9acac4494befa3e78fe4cf0f88d4c1ad.html b/dir_9acac4494befa3e78fe4cf0f88d4c1ad.html new file mode 100644 index 000000000..2b8e5e92a --- /dev/null +++ b/dir_9acac4494befa3e78fe4cf0f88d4c1ad.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: util Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
util Directory Reference
+
+
+
+ + Directory dependency graph for util:
+
+
+ + + + + + + +

+Files

 autoreset.cppm
 
 ref.cppm
 
+
+
+ + + + + diff --git a/dir_9acac4494befa3e78fe4cf0f88d4c1ad.js b/dir_9acac4494befa3e78fe4cf0f88d4c1ad.js new file mode 100644 index 000000000..109df45e5 --- /dev/null +++ b/dir_9acac4494befa3e78fe4cf0f88d4c1ad.js @@ -0,0 +1,5 @@ +var dir_9acac4494befa3e78fe4cf0f88d4c1ad = +[ + [ "autoreset.cppm", "autoreset_8cppm.html", null ], + [ "ref.cppm", "ref_8cppm.html", null ] +]; \ No newline at end of file diff --git a/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.map b/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.map new file mode 100644 index 000000000..8bc8aa9b0 --- /dev/null +++ b/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.md5 b/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.md5 new file mode 100644 index 000000000..693c236a8 --- /dev/null +++ b/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.md5 @@ -0,0 +1 @@ +bb83e8a6ee9745f556a407918e5893c5 \ No newline at end of file diff --git a/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.png b/dir_9acac4494befa3e78fe4cf0f88d4c1ad_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..b65403e1bd5911320f5ca79d1d9a3c6e493f4153 GIT binary patch literal 2959 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 NKucXuty0B4@_(+jq459! literal 0 HcmV?d00001 diff --git a/dir_aca3139ef08e710186b498ba0b7d3b1a.html b/dir_aca3139ef08e710186b498ba0b7d3b1a.html new file mode 100644 index 000000000..25a96e304 --- /dev/null +++ b/dir_aca3139ef08e710186b498ba0b7d3b1a.html @@ -0,0 +1,270 @@ + + + + + + + + +FTXUI: ftxui Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ftxui Directory Reference
+
+
+
+ + Directory dependency graph for ftxui:
+
+
+ + + + + + + + + + + +

+Directories

 component
 
 dom
 
 screen
 
 util
 
+ + + + + + + + + + + +

+Files

 component.cppm
 
 dom.cppm
 
 ftxui.cppm
 
 screen.cppm
 
 util.cppm
 
+
+
+ + + + + diff --git a/dir_aca3139ef08e710186b498ba0b7d3b1a.js b/dir_aca3139ef08e710186b498ba0b7d3b1a.js new file mode 100644 index 000000000..ddd03afad --- /dev/null +++ b/dir_aca3139ef08e710186b498ba0b7d3b1a.js @@ -0,0 +1,12 @@ +var dir_aca3139ef08e710186b498ba0b7d3b1a = +[ + [ "component", "dir_591e152ed8a369b957ed274cdb7355d5.html", "dir_591e152ed8a369b957ed274cdb7355d5" ], + [ "dom", "dir_8b052a5e35b6e4510790af7766fda6cf.html", "dir_8b052a5e35b6e4510790af7766fda6cf" ], + [ "screen", "dir_3f4db74392b369be141833a3ebdcb6a2.html", "dir_3f4db74392b369be141833a3ebdcb6a2" ], + [ "util", "dir_9acac4494befa3e78fe4cf0f88d4c1ad.html", "dir_9acac4494befa3e78fe4cf0f88d4c1ad" ], + [ "component.cppm", "component_8cppm.html", null ], + [ "dom.cppm", "dom_8cppm.html", null ], + [ "ftxui.cppm", "ftxui_8cppm.html", null ], + [ "screen.cppm", "screen_8cppm.html", null ], + [ "util.cppm", "util_8cppm.html", null ] +]; \ No newline at end of file diff --git a/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.map b/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.map new file mode 100644 index 000000000..20c55acc6 --- /dev/null +++ b/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.md5 b/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.md5 new file mode 100644 index 000000000..15ab0360e --- /dev/null +++ b/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.md5 @@ -0,0 +1 @@ +3f1d2cddb917f8003eb79f62d527d1c7 \ No newline at end of file diff --git a/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.png b/dir_aca3139ef08e710186b498ba0b7d3b1a_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecd940dfdece48cea085e3e7bf0dc68916ef83f GIT binary patch literal 20253 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 + + + + + + + +FTXUI: component Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
component Directory Reference
+
+
+
+ + Directory dependency graph for component:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 animation.hpp
 
 captured_mouse.hpp
 
 component.hpp
 
 component_base.hpp
 
 component_options.hpp
 
 event.hpp
 
 loop.hpp
 
 mouse.hpp
 
 receiver.hpp
 
 screen_interactive.hpp
 
 task.hpp
 
+
+
+ + + + + diff --git a/dir_b7c1fcae8d0ae1df453f463e8938778b.js b/dir_b7c1fcae8d0ae1df453f463e8938778b.js new file mode 100644 index 000000000..2e51e07d2 --- /dev/null +++ b/dir_b7c1fcae8d0ae1df453f463e8938778b.js @@ -0,0 +1,14 @@ +var dir_b7c1fcae8d0ae1df453f463e8938778b = +[ + [ "animation.hpp", "animation_8hpp.html", "animation_8hpp" ], + [ "captured_mouse.hpp", "captured__mouse_8hpp.html", "captured__mouse_8hpp" ], + [ "component.hpp", "component_8hpp.html", "component_8hpp" ], + [ "component_base.hpp", "component__base_8hpp.html", "component__base_8hpp" ], + [ "component_options.hpp", "component__options_8hpp.html", "component__options_8hpp" ], + [ "event.hpp", "event_8hpp.html", null ], + [ "loop.hpp", "loop_8hpp.html", null ], + [ "mouse.hpp", "mouse_8hpp.html", null ], + [ "receiver.hpp", "receiver_8hpp.html", "receiver_8hpp" ], + [ "screen_interactive.hpp", "screen__interactive_8hpp.html", "screen__interactive_8hpp" ], + [ "task.hpp", "task_8hpp.html", "task_8hpp" ] +]; \ No newline at end of file diff --git a/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.map b/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.map new file mode 100644 index 000000000..3e070a8fa --- /dev/null +++ b/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.md5 b/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.md5 new file mode 100644 index 000000000..983c00bea --- /dev/null +++ b/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.md5 @@ -0,0 +1 @@ +fd3fbf5d5d926054fc401fd4ea3d1785 \ No newline at end of file diff --git a/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.png b/dir_b7c1fcae8d0ae1df453f463e8938778b_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..63a74bf7602151df56856cfa5099156c8e49fbd4 GIT binary patch literal 7170 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 literal 0 HcmV?d00001 diff --git a/dir_c6e2a03fcd381aa57f98a8fd0760f80b.html b/dir_c6e2a03fcd381aa57f98a8fd0760f80b.html new file mode 100644 index 000000000..9e5779ac7 --- /dev/null +++ b/dir_c6e2a03fcd381aa57f98a8fd0760f80b.html @@ -0,0 +1,301 @@ + + + + + + + + +FTXUI: dom Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom Directory Reference
+
+ +
+ + + + + diff --git a/dir_c6e2a03fcd381aa57f98a8fd0760f80b.js b/dir_c6e2a03fcd381aa57f98a8fd0760f80b.js new file mode 100644 index 000000000..dba8e503a --- /dev/null +++ b/dir_c6e2a03fcd381aa57f98a8fd0760f80b.js @@ -0,0 +1,40 @@ +var dir_c6e2a03fcd381aa57f98a8fd0760f80b = +[ + [ "border.cpp", "examples_2dom_2border_8cpp.html", "examples_2dom_2border_8cpp" ], + [ "border_colored.cpp", "border__colored_8cpp.html", "border__colored_8cpp" ], + [ "border_style.cpp", "border__style_8cpp.html", "border__style_8cpp" ], + [ "canvas.cpp", "examples_2dom_2canvas_8cpp.html", "examples_2dom_2canvas_8cpp" ], + [ "color_gallery.cpp", "color__gallery_8cpp.html", "color__gallery_8cpp" ], + [ "color_info_palette256.cpp", "color__info__palette256_8cpp.html", "color__info__palette256_8cpp" ], + [ "color_info_sorted_2d.ipp", "color__info__sorted__2d_8ipp.html", "color__info__sorted__2d_8ipp" ], + [ "color_truecolor_HSV.cpp", "color__truecolor__HSV_8cpp.html", "color__truecolor__HSV_8cpp" ], + [ "color_truecolor_RGB.cpp", "color__truecolor__RGB_8cpp.html", "color__truecolor__RGB_8cpp" ], + [ "dbox.cpp", "examples_2dom_2dbox_8cpp.html", "examples_2dom_2dbox_8cpp" ], + [ "gauge.cpp", "examples_2dom_2gauge_8cpp.html", "examples_2dom_2gauge_8cpp" ], + [ "gauge_direction.cpp", "gauge__direction_8cpp.html", "gauge__direction_8cpp" ], + [ "graph.cpp", "examples_2dom_2graph_8cpp.html", "examples_2dom_2graph_8cpp" ], + [ "gridbox.cpp", "examples_2dom_2gridbox_8cpp.html", "examples_2dom_2gridbox_8cpp" ], + [ "hflow.cpp", "hflow_8cpp.html", "hflow_8cpp" ], + [ "html_like.cpp", "html__like_8cpp.html", "html__like_8cpp" ], + [ "linear_gradient.cpp", "examples_2dom_2linear__gradient_8cpp.html", "examples_2dom_2linear__gradient_8cpp" ], + [ "package_manager.cpp", "package__manager_8cpp.html", "package__manager_8cpp" ], + [ "paragraph.cpp", "examples_2dom_2paragraph_8cpp.html", "examples_2dom_2paragraph_8cpp" ], + [ "separator.cpp", "examples_2dom_2separator_8cpp.html", "examples_2dom_2separator_8cpp" ], + [ "separator_style.cpp", "separator__style_8cpp.html", "separator__style_8cpp" ], + [ "size.cpp", "examples_2dom_2size_8cpp.html", "examples_2dom_2size_8cpp" ], + [ "spinner.cpp", "examples_2dom_2spinner_8cpp.html", "examples_2dom_2spinner_8cpp" ], + [ "style_blink.cpp", "style__blink_8cpp.html", "style__blink_8cpp" ], + [ "style_bold.cpp", "style__bold_8cpp.html", "style__bold_8cpp" ], + [ "style_color.cpp", "style__color_8cpp.html", "style__color_8cpp" ], + [ "style_dim.cpp", "style__dim_8cpp.html", "style__dim_8cpp" ], + [ "style_gallery.cpp", "style__gallery_8cpp.html", "style__gallery_8cpp" ], + [ "style_hyperlink.cpp", "style__hyperlink_8cpp.html", "style__hyperlink_8cpp" ], + [ "style_inverted.cpp", "style__inverted_8cpp.html", "style__inverted_8cpp" ], + [ "style_italic.cpp", "style__italic_8cpp.html", "style__italic_8cpp" ], + [ "style_strikethrough.cpp", "style__strikethrough_8cpp.html", "style__strikethrough_8cpp" ], + [ "style_underlined.cpp", "style__underlined_8cpp.html", "style__underlined_8cpp" ], + [ "style_underlined_double.cpp", "style__underlined__double_8cpp.html", "style__underlined__double_8cpp" ], + [ "table.cpp", "examples_2dom_2table_8cpp.html", "examples_2dom_2table_8cpp" ], + [ "vbox_hbox.cpp", "vbox__hbox_8cpp.html", "vbox__hbox_8cpp" ], + [ "vflow.cpp", "vflow_8cpp.html", "vflow_8cpp" ] +]; \ No newline at end of file diff --git a/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.map b/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.map new file mode 100644 index 000000000..9b863156c --- /dev/null +++ b/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.md5 b/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.md5 new file mode 100644 index 000000000..117315893 --- /dev/null +++ b/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.md5 @@ -0,0 +1 @@ +c7394c0361bae4523027de7ea34f765f \ No newline at end of file diff --git a/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.png b/dir_c6e2a03fcd381aa57f98a8fd0760f80b_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..23b1bafd79628c5c232f852fb5e97a6e4bd1a8a1 GIT binary patch literal 4278 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 Zx4P!!EV6 + + + + + + + +FTXUI: examples Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
examples Directory Reference
+
+
+
+ + Directory dependency graph for examples:
+
+
+ + + + + + + +

+Directories

 component
 
 dom
 
+
+
+ + + + + diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4.js b/dir_d28a4824dc47e487b107a5db32ef43c4.js new file mode 100644 index 000000000..971a71ddd --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4.js @@ -0,0 +1,5 @@ +var dir_d28a4824dc47e487b107a5db32ef43c4 = +[ + [ "component", "dir_34153e0f69aea4f55932893abc931484.html", "dir_34153e0f69aea4f55932893abc931484" ], + [ "dom", "dir_c6e2a03fcd381aa57f98a8fd0760f80b.html", "dir_c6e2a03fcd381aa57f98a8fd0760f80b" ] +]; \ No newline at end of file diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map new file mode 100644 index 000000000..9bec4bd6a --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 new file mode 100644 index 000000000..3fe352930 --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 @@ -0,0 +1 @@ +399c93eca683f0d7a4a18c1bcd4693a8 \ No newline at end of file diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..6fed7c109ba341c6bf16036dbde6d1aa4c6faf09 GIT binary patch literal 8807 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 literal 0 HcmV?d00001 diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 000000000..5698cc120 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: include Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+ + Directory dependency graph for include:
+
+
+ + + + + +

+Directories

 ftxui
 
+
+
+ + + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 000000000..65e71f0f8 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "ftxui", "dir_7f0d124f4cd00c9c7b5b93f60cb4ae34.html", "dir_7f0d124f4cd00c9c7b5b93f60cb4ae34" ] +]; \ No newline at end of file diff --git a/dir_d44c64559bbebec7f509842c48db8b23_dep.map b/dir_d44c64559bbebec7f509842c48db8b23_dep.map new file mode 100644 index 000000000..281e7a5b0 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 b/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 new file mode 100644 index 000000000..fa0285072 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 @@ -0,0 +1 @@ +47c05b247d2bc649adeb68ac7a81a518 \ No newline at end of file diff --git a/dir_d44c64559bbebec7f509842c48db8b23_dep.png b/dir_d44c64559bbebec7f509842c48db8b23_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..a53a094473c0591031385c01b237f99dd582d316 GIT binary patch literal 2071 zcmZvdc{tR27r=kkVKP~oLCA8|y^69#Ax0QmiLnbaM#R_~8jOr&pOL0T6E$U-w`^HP zFWD!e6eZIzNVXf;jA43*!@e3+Dh*L0I1IaVdCQO-`o40JKo)Z} zRHx@MwCrJOSW&sO-gtAGP3_5=24<< z%1(uFV*UVDDlb+K5hE))Cc1lz7p9to`Ww$9FU*!ae*9S|PhCUz&RKSawN=AEcWfjmPK zw@sA7w5JTPT1zT40B8y=wER@j!Jk9bZLUUO(*wY^lpsA)luuTyga;Zb;ePqR$T`P4F?#&|(XVT<17mEhs0r5m z&4+j}3Wb`6Kdj!DQ6W6`wB`y1LLbPk^zcHum!&#!Lf=B)y**;>;&DGKXC$jQa!{SP zYpb&JrN8XRyO+*h;9KoiHCeo9(d)L*nWP-u6K&wMDQ?NK_ghnyUoj9Bm4`yW{w(;5 zraM;>+2g!^dv|p6ubWw|8$m%T+b>%0EQ+x3r!c+EQOC7cHz;!5 z9Nl{r`hnX)eTl1tr`O4+v9%V}o+tw5TTiwavOI6P!PbpZ+oXYwjurvF%mf8Y56foz zY?}sWicWquS~VZNhiXs%fVrCf4r0?s?*7hGCb<<1{R#ytr84}HiorSwps2L0z&G3O zt!(bNF|}^*0-tVN$WWMKyg?3+`X++qz5M-i zjyGi(CmSfV@Km~<3?K97FA(besMTL+Es3WvUdG!8*-sP_0to8{B`hMGs1QBuL9E(q* z<2%RW@%Ul}Ll&GN%)Ep%Dz6?$;PE&tmJ|qNXKZXt{^{qpGBk)alo1s=^_*vBb71jg z@$36tqZ<#9TF|(;<>mJ1-HwO7Q}8iRyBoT5{HUyVgT^^CV$9_@n8IhEXc23DHqDH) z{|*@w1TPzcwHU;POHHMkDrT21iF*55ncj6h663%wKMsb5dbNg}GUU$VNVvPu3B zX=&%A_$?q=p#jj{3FZ=43guN&kCK!zAt96@YVgurC}1`Z7vAe6a@4@Ww|F1IKIwmbzTS1(KD^3l>r?}A3+~#^hdNUfNs*`SFrp%931_H{ zcm?=)6AZL-S6DEJ{Wd@RsdK`fhPXH&rO`t&Uk_*CN=Zul_qOKu{m11&O!I*HYe3>^ z%FN{C}hgj`{m1RxC`>ZprcrEV&Oaf45H`7IcAw$bXxRke>e8oU%6)DaAUv-L0QS$a bu{+DWc9@#%V0C+5KzhKz#tBhvg-QJn0zT7f literal 0 HcmV?d00001 diff --git a/dir_e68e8157741866f444e17edd764ebbae.html b/dir_e68e8157741866f444e17edd764ebbae.html new file mode 100644 index 000000000..371607a14 --- /dev/null +++ b/dir_e68e8157741866f444e17edd764ebbae.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: doc Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
doc Directory Reference
+
+
+
+
+ + + + + diff --git a/direction_8cppm.html b/direction_8cppm.html new file mode 100644 index 000000000..8d58cb383 --- /dev/null +++ b/direction_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: direction.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
direction.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/direction_8cppm_source.html b/direction_8cppm_source.html new file mode 100644 index 000000000..7aac85eca --- /dev/null +++ b/direction_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: direction.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
direction.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.dom.direction
+
2/// @brief Module file for the Direction enum of the Dom module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.dom.direction;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::Direction;
+
16}
+ +
Direction
Direction is an enumeration that represents the four cardinal directions.
Definition direction.hpp:13
+
Module file for the Direction enum of the Dom module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/direction_8hpp.html b/direction_8hpp.html new file mode 100644 index 000000000..1be640a56 --- /dev/null +++ b/direction_8hpp.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: direction.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
direction.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + +

+Enumerations

enum class  Direction {
+  Up = 0 +,
+  Down = 1 +,
+  Left = 2 +,
+  Right = 3 +
+ }
 Direction is an enumeration that represents the four cardinal directions. More...
 
+
+
+ + + + + diff --git a/direction_8hpp.js b/direction_8hpp.js new file mode 100644 index 000000000..f7ba8713f --- /dev/null +++ b/direction_8hpp.js @@ -0,0 +1,9 @@ +var direction_8hpp = +[ + [ "Direction", "direction_8hpp.html#ga224b9163917ac32fc95a60d8c1eec3aa", [ + [ "Up", "direction_8hpp.html#gga224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa", null ], + [ "Down", "direction_8hpp.html#gga224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53", null ], + [ "Left", "direction_8hpp.html#gga224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff", null ], + [ "Right", "direction_8hpp.html#gga224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c", null ] + ] ] +]; \ No newline at end of file diff --git a/direction_8hpp_source.html b/direction_8hpp_source.html new file mode 100644 index 000000000..c669369ca --- /dev/null +++ b/direction_8hpp_source.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: direction.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
direction.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2023 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_DOM_DIRECTION_HPP
+
5#define FTXUI_DOM_DIRECTION_HPP
+
6
+
7namespace ftxui {
+
8
+
9/// @brief Direction is an enumeration that represents the four cardinal
+
10/// directions.
+
11///
+
12/// @ingroup dom
+
+
13enum class Direction {
+
14 Up = 0,
+
15 Down = 1,
+
16 Left = 2,
+
17 Right = 3,
+
18};
+
+
19
+
20} // namespace ftxui
+
21
+
22#endif /* end of include guard: FTXUI_DOM_DIRECTION_HPP */
+
Direction
Direction is an enumeration that represents the four cardinal directions.
Definition direction.hpp:13
+ + + + +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/doc.svg b/doc.svg new file mode 100644 index 000000000..387945444 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 000000000..c20ddf1e0 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/dom_2color_8cpp.html b/dom_2color_8cpp.html new file mode 100644 index 000000000..4e6af80ec --- /dev/null +++ b/dom_2color_8cpp.html @@ -0,0 +1,253 @@ + + + + + + + + +FTXUI: color.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
color.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + + + + + + + + + +

+Functions

Element color (Color color, Element child)
 Set the foreground color of an element.
 
Element bgcolor (Color color, Element child)
 Set the background color of an element.
 
Decorator color (Color c)
 Decorate using a foreground color.
 
Decorator bgcolor (Color color)
 Decorate using a background color.
 
+

Variable Documentation

+ +

◆ color_

+ +
+
+ + + + +
Color color_
+
+ +

Definition at line 39 of file dom/color.cpp.

+ +
+
+
+
+ + + + + diff --git a/dom_2color_8cpp.js b/dom_2color_8cpp.js new file mode 100644 index 000000000..125e352b3 --- /dev/null +++ b/dom_2color_8cpp.js @@ -0,0 +1,8 @@ +var dom_2color_8cpp = +[ + [ "color", "dom_2color_8cpp.html#gadef6e6e66199153de6d3b21b14dcf868", null ], + [ "bgcolor", "dom_2color_8cpp.html#gaae86eacae0a0626b41e9964ac7f4f532", null ], + [ "color", "dom_2color_8cpp.html#gaf61b489da39ca5e24b68e6e1a2b09c0d", null ], + [ "bgcolor", "dom_2color_8cpp.html#ga01d4c5aaf0447e862246849111782245", null ], + [ "color_", "dom_2color_8cpp.html#af75802a6553b2b23639f23d3c4b94217", null ] +]; \ No newline at end of file diff --git a/dom_2color_8cpp_source.html b/dom_2color_8cpp_source.html new file mode 100644 index 000000000..7dcd258b4 --- /dev/null +++ b/dom_2color_8cpp_source.html @@ -0,0 +1,361 @@ + + + + + + + + +FTXUI: color.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom/color.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <memory> // for make_shared
+
5#include <utility> // for move
+
6
+
7#include "ftxui/dom/elements.hpp" // for Element, Decorator, bgcolor, color
+
8#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
+
9#include "ftxui/screen/box.hpp" // for Box
+
10#include "ftxui/screen/color.hpp" // for Color
+
11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
+
12
+
13namespace ftxui {
+
14
+
15namespace {
+
16class BgColor : public NodeDecorator {
+
17 public:
+
18 BgColor(Element child, Color color)
+
19 : NodeDecorator(std::move(child)), color_(color) {}
+
20
+
21 void Render(Screen& screen) override {
+
22 if (color_.IsOpaque()) {
+
23 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
24 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
25 screen.PixelAt(x, y).background_color = color_;
+
26 }
+
27 }
+
28 } else {
+
29 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
30 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
31 Color& color = screen.PixelAt(x, y).background_color;
+
32 color = Color::Blend(color, color_);
+
33 }
+
34 }
+
35 }
+ +
37 }
+
38
+
39 Color color_;
+
40};
+
41
+
42class FgColor : public NodeDecorator {
+
43 public:
+
44 FgColor(Element child, Color color)
+
45 : NodeDecorator(std::move(child)), color_(color) {}
+
46
+
47 void Render(Screen& screen) override {
+
48 if (color_.IsOpaque()) {
+
49 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
50 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
51 screen.PixelAt(x, y).foreground_color = color_;
+
52 }
+
53 }
+
54 } else {
+
55 for (int y = box_.y_min; y <= box_.y_max; ++y) {
+
56 for (int x = box_.x_min; x <= box_.x_max; ++x) {
+
57 Color& color = screen.PixelAt(x, y).foreground_color;
+
58 color = Color::Blend(color, color_);
+
59 }
+
60 }
+
61 }
+ +
63 }
+
64
+ +
66};
+
67
+
68} // namespace
+
69
+
70/// @brief Set the foreground color of an element.
+
71/// @param color The color of the output element.
+
72/// @param child The input element.
+
73/// @return The output element colored.
+
74/// @ingroup dom
+
75///
+
76/// ### Example
+
77///
+
78/// ```cpp
+
79/// Element document = color(Color::Green, text("Success")),
+
80/// ```
+
+
81Element color(Color color, Element child) {
+
82 return std::make_shared<FgColor>(std::move(child), color);
+
83}
+
+
84
+
85/// @brief Set the background color of an element.
+
86/// @param color The color of the output element.
+
87/// @param child The input element.
+
88/// @return The output element colored.
+
89/// @ingroup dom
+
90///
+
91/// ### Example
+
92///
+
93/// ```cpp
+
94/// Element document = bgcolor(Color::Green, text("Success")),
+
95/// ```
+
+ +
97 return std::make_shared<BgColor>(std::move(child), color);
+
98}
+
+
99
+
100/// @brief Decorate using a foreground color.
+
101/// @param c The foreground color to be applied.
+
102/// @return The Decorator applying the color.
+
103/// @ingroup dom
+
104///
+
105/// ### Example
+
106///
+
107/// ```cpp
+
108/// Element document = text("red") | color(Color::Red);
+
109/// ```
+
+ +
111 return [c](Element child) { return color(c, std::move(child)); };
+
112}
+
+
113
+
114/// @brief Decorate using a background color.
+
115/// @param color The background color to be applied.
+
116/// @return The Decorator applying the color.
+
117/// @ingroup dom
+
118///
+
119/// ### Example
+
120///
+
121/// ```cpp
+
122/// Element document = text("red") | bgcolor(Color::Red);
+
123/// ```
+
+ +
125 return [color](Element child) { return bgcolor(color, std::move(child)); };
+
126}
+
+
127
+
128} // namespace ftxui
+ + + +
friend void Render(Screen &screen, Node *node, Selection &selection)
Definition node.cpp:96
+
Decorator bgcolor(Color)
Decorate using a background color.
+
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
+
Decorator color(Color)
Decorate using a foreground color.
+
static Color Blend(const Color &lhs, const Color &rhs)
Blend two colors together using the alpha channel.
+
Color is a class that represents a color in the terminal user interface.
Definition color.hpp:22
+
Color
Color is an enumeration that represents the color support of the terminal.
Definition terminal.hpp:23
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::function< Element(Element)> Decorator
Definition elements.hpp:24
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ + + +
+
+ + + + + diff --git a/dom_2deprecated_8cppm.html b/dom_2deprecated_8cppm.html new file mode 100644 index 000000000..cdda64003 --- /dev/null +++ b/dom_2deprecated_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: deprecated.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
deprecated.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/dom_2deprecated_8cppm_source.html b/dom_2deprecated_8cppm_source.html new file mode 100644 index 000000000..7ab5501af --- /dev/null +++ b/dom_2deprecated_8cppm_source.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: deprecated.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom/deprecated.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.dom.deprecated
+
2/// @brief Module file for deprecated parts of the Dom module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.dom.deprecated;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::text;
+
16 using ftxui::vtext;
+
17 using ftxui::paragraph;
+
18}
+ +
Module file for deprecated parts of the Dom module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/dom_2deprecated_8hpp.html b/dom_2deprecated_8hpp.html new file mode 100644 index 000000000..42786fe09 --- /dev/null +++ b/dom_2deprecated_8hpp.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: deprecated.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
deprecated.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + + + + + +

+Functions

Element text (std::wstring text)
 Display a piece of unicode text.
 
Element vtext (std::wstring text)
 Display a piece unicode text vertically.
 
Elements paragraph (std::wstring text)
 
+
+
+ + + + + diff --git a/dom_2deprecated_8hpp.js b/dom_2deprecated_8hpp.js new file mode 100644 index 000000000..e74ebc223 --- /dev/null +++ b/dom_2deprecated_8hpp.js @@ -0,0 +1,6 @@ +var dom_2deprecated_8hpp = +[ + [ "text", "dom_2deprecated_8hpp.html#ga75baaa2734ed76a9f478beaafa87ae57", null ], + [ "vtext", "dom_2deprecated_8hpp.html#ga9f9f7485a45aa9d432726ca9845d1eac", null ], + [ "paragraph", "dom_2deprecated_8hpp.html#ac54cdd05db30871ce082a8fa650545da", null ] +]; \ No newline at end of file diff --git a/dom_2deprecated_8hpp_source.html b/dom_2deprecated_8hpp_source.html new file mode 100644 index 000000000..7bfb14c0f --- /dev/null +++ b/dom_2deprecated_8hpp_source.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: deprecated.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom/deprecated.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_DOM_DEPRECATED_HPP
+
5#define FTXUI_DOM_DEPRECATED_HPP
+
6
+
7#include <ftxui/dom/node.hpp>
+
8#include <string>
+
9
+
10namespace ftxui {
+
11Element text(std::wstring text);
+
12Element vtext(std::wstring text);
+
13Elements paragraph(std::wstring text);
+
14} // namespace ftxui
+
15
+
16#endif // FTXUI_DOM_DEPRECATED_HPP
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element vtext(std::wstring text)
Display a piece unicode text vertically.
Definition text.cpp:220
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::vector< Element > Elements
Definition elements.hpp:23
+
Elements paragraph(std::wstring text)
+ +
+
+ + + + + diff --git a/dom_2util_8cpp.html b/dom_2util_8cpp.html new file mode 100644 index 000000000..11f563ef2 --- /dev/null +++ b/dom_2util_8cpp.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: util.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
util.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+ + + + + + + + + + + + + + + + + + +

+Functions

Element nothing (Element element)
 A decoration doing absolutely nothing.
 
Decorator operator| (Decorator a, Decorator b)
 Compose two decorator into one.
 
Elements operator| (Elements elements, Decorator decorator)
 From a set of element, apply a decorator to every elements.
 
Element operator| (Element element, Decorator decorator)
 From an element, apply a decorator.
 
Elementoperator|= (Element &e, Decorator d)
 Apply a decorator to an element.
 
Element emptyElement ()
 
+
+
+ + + + + diff --git a/dom_2util_8cpp.js b/dom_2util_8cpp.js new file mode 100644 index 000000000..251ca0246 --- /dev/null +++ b/dom_2util_8cpp.js @@ -0,0 +1,9 @@ +var dom_2util_8cpp = +[ + [ "nothing", "dom_2util_8cpp.html#ga1bfd3885ac8b40dc82a1103725003c07", null ], + [ "operator|", "dom_2util_8cpp.html#ga027fbc9cf6fef9e86ae6a2a79e8bf23a", null ], + [ "operator|", "dom_2util_8cpp.html#ga6cbc84eb24a655ae084b3c7d26f9abfc", null ], + [ "operator|", "dom_2util_8cpp.html#ga7e9a69f0592b4013bd725d662f4a76e7", null ], + [ "operator|=", "dom_2util_8cpp.html#ga0be26ac5dcbe6c707857c791d8eec720", null ], + [ "emptyElement", "dom_2util_8cpp.html#ga40451515a5b3049e7a1276cad8b9356c", null ] +]; \ No newline at end of file diff --git a/dom_2util_8cpp_source.html b/dom_2util_8cpp_source.html new file mode 100644 index 000000000..4986ee775 --- /dev/null +++ b/dom_2util_8cpp_source.html @@ -0,0 +1,388 @@ + + + + + + + + +FTXUI: util.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom/util.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <algorithm> // for min
+
5#include <functional> // for function
+
6#include <memory> // for __shared_ptr_access, make_unique
+
7#include <utility> // for move
+
8
+
9#include "ftxui/dom/elements.hpp" // for Element, Decorator, Elements, operator|, Fit, emptyElement, nothing, operator|=
+
10#include "ftxui/dom/node.hpp" // for Node, Node::Status
+
11#include "ftxui/dom/requirement.hpp" // for Requirement
+
12#include "ftxui/screen/box.hpp" // for Box
+
13#include "ftxui/screen/screen.hpp" // for Full
+
14#include "ftxui/screen/terminal.hpp" // for Dimensions
+
15
+
16namespace ftxui {
+
17
+
18namespace {
+
19Decorator compose(Decorator a, Decorator b) {
+
20 return [a = std::move(a), b = std::move(b)](Element element) {
+
21 return b(a(std::move(element)));
+
22 };
+
23}
+
24} // namespace
+
25
+
26/// @brief A decoration doing absolutely nothing.
+
27/// @ingroup dom
+
+ +
29 return element;
+
30}
+
+
31
+
32/// @brief Compose two decorator into one.
+
33/// @ingroup dom
+
34///
+
35/// ### Example
+
36///
+
37/// ```cpp
+
38/// auto decorator = bold | blink;
+
39/// ```
+
+ +
41 return compose(std::move(a), //
+
42 std::move(b));
+
43}
+
+
44
+
45/// @brief From a set of element, apply a decorator to every elements.
+
46/// @return the set of decorated element.
+
47/// @ingroup dom
+
+
48Elements operator|(Elements elements, Decorator decorator) { // NOLINT
+
49 Elements output;
+
50 output.reserve(elements.size());
+
51 for (auto& it : elements) {
+
52 output.push_back(std::move(it) | decorator);
+
53 }
+
54 return output;
+
55}
+
+
56
+
57/// @brief From an element, apply a decorator.
+
58/// @return the decorated element.
+
59/// @ingroup dom
+
60///
+
61/// ### Example
+
62///
+
63/// Both of these are equivalent:
+
64/// ```cpp
+
65/// bold(text("Hello"));
+
66/// ```
+
67/// ```cpp
+
68/// text("Hello") | bold;
+
69/// ```
+
+
70Element operator|(Element element, Decorator decorator) { // NOLINT
+
71 return decorator(std::move(element));
+
72}
+
+
73
+
74/// @brief Apply a decorator to an element.
+
75/// @return the decorated element.
+
76/// @ingroup dom
+
77///
+
78/// ### Example
+
79///
+
80/// Both of these are equivalent:
+
81/// ```cpp
+
82/// auto element = text("Hello");
+
83/// element |= bold;
+
84/// ```
+
+ +
86 e = e | std::move(d);
+
87 return e;
+
88}
+
+
89
+
90/// The minimal dimension that will fit the given element.
+
91/// @see Fixed
+
92/// @see Full
+
93Dimensions Dimension::Fit(Element& e, bool extend_beyond_screen) {
+
94 const Dimensions fullsize = Dimension::Full();
+
95 Box box;
+
96 box.x_min = 0;
+
97 box.y_min = 0;
+
98 box.x_max = fullsize.dimx;
+
99 box.y_max = fullsize.dimy;
+
100
+
101 Node::Status status;
+
102 e->Check(&status);
+
103 const int max_iteration = 20;
+
104 while (status.need_iteration && status.iteration < max_iteration) {
+
105 e->ComputeRequirement();
+
106
+
107 // Don't give the element more space than it needs:
+
108 box.x_max = std::min(box.x_max, e->requirement().min_x);
+
109 box.y_max = e->requirement().min_y;
+
110 if (!extend_beyond_screen) {
+
111 box.y_max = std::min(box.y_max, fullsize.dimy);
+
112 }
+
113
+
114 e->SetBox(box);
+
115 status.need_iteration = false;
+
116 status.iteration++;
+
117 e->Check(&status);
+
118
+
119 if (!status.need_iteration) {
+
120 break;
+
121 }
+
122 // Increase the size of the box until it fits...
+
123 box.x_max = std::min(e->requirement().min_x, fullsize.dimx);
+
124 box.y_max = e->requirement().min_y;
+
125
+
126 // ... but don't go beyond the screen size:
+
127 if (!extend_beyond_screen) {
+
128 box.y_max = std::min(box.y_max, fullsize.dimy);
+
129 }
+
130 }
+
131
+
132 return {
+
133 box.x_max,
+
134 box.y_max,
+
135 };
+
136}
+
137
+
138/// An element of size 0x0 drawing nothing.
+
139/// @ingroup dom
+
+ +
141 class Impl : public Node {
+
142 void ComputeRequirement() override {
+
143 requirement_.min_x = 0;
+
144 requirement_.min_y = 0;
+
145 }
+
146 };
+
147 return std::make_unique<Impl>();
+
148}
+
+
149
+
150} // namespace ftxui
+ + +
Node is the base class for all elements in the DOM tree.
Definition node.hpp:37
+
Element nothing(Element element)
A decoration doing absolutely nothing.
Definition dom/util.cpp:28
+
Element emptyElement()
Definition dom/util.cpp:140
+
Dimensions Fit(Element &, bool extend_beyond_screen=false)
+
Dimensions Full()
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::function< Element(Element)> Decorator
Definition elements.hpp:24
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::vector< Element > Elements
Definition elements.hpp:23
+
Component operator|(Component component, ComponentDecorator decorator)
+
Component & operator|=(Component &component, ComponentDecorator decorator)
+ + + + +
+
+ + + + + diff --git a/dom_8cppm.html b/dom_8cppm.html new file mode 100644 index 000000000..c0c9dc53f --- /dev/null +++ b/dom_8cppm.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: dom.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom.cppm File Reference
module ftxui.dom
+
+ +
+ + + + + diff --git a/dom_8cppm_source.html b/dom_8cppm_source.html new file mode 100644 index 000000000..d544cdfac --- /dev/null +++ b/dom_8cppm_source.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: dom.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.dom
+
2/// @brief Module file for FTXUI main operations.
+
3
+
4export module ftxui.dom;
+
5
+
6export import ftxui.dom.canvas;
+
7export import ftxui.dom.deprecated;
+
8export import ftxui.dom.direction;
+
9export import ftxui.dom.elements;
+
10export import ftxui.dom.flexbox_config;
+
11export import ftxui.dom.linear_gradient;
+
12export import ftxui.dom.node;
+
13export import ftxui.dom.requirement;
+
14export import ftxui.dom.selection;
+
15export import ftxui.dom.table;
+
Module file for the Canvas struct of the Dom module.
+
Module file for deprecated parts of the Dom module.
+
Module file for the Direction enum of the Dom module.
+
Module file for the Element classes and functions of the Dom module.
+
Module file for the FlexboxConfig struct of the Dom module.
+
Module file for the LinearGradient struct of the Dom module.
+
Module file for the Node class of the Dom module.
+
Module file for the Requirement struct of the Dom module.
+
Module file for the Selection class of the Dom module.
+
Module file for the Table class of the Dom module.
+
Module file for FTXUI main operations.
+
+
+ + + + + diff --git a/dom__examples_8md.html b/dom__examples_8md.html new file mode 100644 index 000000000..af1caf381 --- /dev/null +++ b/dom__examples_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: dom_examples.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dom_examples.md File Reference
+
+
+
+
+ + + + + diff --git a/doxygen-awesome-fragment-copy-button.js b/doxygen-awesome-fragment-copy-button.js new file mode 100644 index 000000000..86c16fd93 --- /dev/null +++ b/doxygen-awesome-fragment-copy-button.js @@ -0,0 +1,85 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2022 - 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeFragmentCopyButton extends HTMLElement { + constructor() { + super(); + this.onclick=this.copyContent + } + static title = "Copy to clipboard" + static copyIcon = `` + static successIcon = `` + static successDuration = 980 + static init() { + $(function() { + $(document).ready(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const fragmentWrapper = document.createElement("div") + fragmentWrapper.className = "doxygen-awesome-fragment-wrapper" + const fragmentCopyButton = document.createElement("doxygen-awesome-fragment-copy-button") + fragmentCopyButton.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon + fragmentCopyButton.title = DoxygenAwesomeFragmentCopyButton.title + + fragment.parentNode.replaceChild(fragmentWrapper, fragment) + fragmentWrapper.appendChild(fragment) + fragmentWrapper.appendChild(fragmentCopyButton) + + } + } + }) + }) + } + + + copyContent() { + const content = this.previousSibling.cloneNode(true) + // filter out line number from file listings + content.querySelectorAll(".lineno, .ttc").forEach((node) => { + node.remove() + }) + let textContent = content.textContent + // remove trailing newlines that appear in file listings + let numberOfTrailingNewlines = 0 + while(textContent.charAt(textContent.length - (numberOfTrailingNewlines + 1)) == '\n') { + numberOfTrailingNewlines++; + } + textContent = textContent.substring(0, textContent.length - numberOfTrailingNewlines) + navigator.clipboard.writeText(textContent); + this.classList.add("success") + this.innerHTML = DoxygenAwesomeFragmentCopyButton.successIcon + window.setTimeout(() => { + this.classList.remove("success") + this.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon + }, DoxygenAwesomeFragmentCopyButton.successDuration); + } +} + +customElements.define("doxygen-awesome-fragment-copy-button", DoxygenAwesomeFragmentCopyButton) diff --git a/doxygen-awesome-interactive-toc.js b/doxygen-awesome-interactive-toc.js new file mode 100644 index 000000000..f3c3e7706 --- /dev/null +++ b/doxygen-awesome-interactive-toc.js @@ -0,0 +1,91 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2022 - 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeInteractiveToc { + static topOffset = 38 + static hideMobileMenu = true + static headers = [] + + static init() { + window.addEventListener("load", () => { + let toc = document.querySelector(".contents > .toc") + if(toc) { + toc.classList.add("interactive") + if(!DoxygenAwesomeInteractiveToc.hideMobileMenu) { + toc.classList.add("open") + } + document.querySelector(".contents > .toc > h3")?.addEventListener("click", () => { + if(toc.classList.contains("open")) { + toc.classList.remove("open") + } else { + toc.classList.add("open") + } + }) + + document.querySelectorAll(".contents > .toc > ul a").forEach((node) => { + let id = node.getAttribute("href").substring(1) + DoxygenAwesomeInteractiveToc.headers.push({ + node: node, + headerNode: document.getElementById(id) + }) + + document.getElementById("doc-content")?.addEventListener("scroll",this.throttle(DoxygenAwesomeInteractiveToc.update, 100)) + }) + DoxygenAwesomeInteractiveToc.update() + } + }) + } + + static update() { + let active = DoxygenAwesomeInteractiveToc.headers[0]?.node + DoxygenAwesomeInteractiveToc.headers.forEach((header) => { + let position = header.headerNode.getBoundingClientRect().top + header.node.classList.remove("active") + header.node.classList.remove("aboveActive") + if(position < DoxygenAwesomeInteractiveToc.topOffset) { + active = header.node + active?.classList.add("aboveActive") + } + }) + active?.classList.add("active") + active?.classList.remove("aboveActive") + } + + static throttle(func, delay) { + let lastCall = 0; + return function (...args) { + const now = new Date().getTime(); + if (now - lastCall < delay) { + return; + } + lastCall = now; + return setTimeout(() => {func(...args)}, delay); + }; + } +} diff --git a/doxygen-awesome-paragraph-link.js b/doxygen-awesome-paragraph-link.js new file mode 100644 index 000000000..e53d132ce --- /dev/null +++ b/doxygen-awesome-paragraph-link.js @@ -0,0 +1,51 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2022 - 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeParagraphLink { + // Icon from https://fonts.google.com/icons + // Licensed under the Apache 2.0 license: + // https://www.apache.org/licenses/LICENSE-2.0.html + static icon = `` + static title = "Permanent Link" + static init() { + $(function() { + $(document).ready(function() { + document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => { + let anchorlink = document.createElement("a") + anchorlink.setAttribute("href", `#${node.getAttribute("id")}`) + anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title) + anchorlink.classList.add("anchorlink") + node.classList.add("anchor") + anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon + node.parentElement.appendChild(anchorlink) + }) + }) + }) + } +} diff --git a/doxygen-awesome-tabs.js b/doxygen-awesome-tabs.js new file mode 100644 index 000000000..06dfd3d66 --- /dev/null +++ b/doxygen-awesome-tabs.js @@ -0,0 +1,90 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeTabs { + + static init() { + window.addEventListener("load", () => { + document.querySelectorAll(".tabbed:not(:empty)").forEach((tabbed, tabbedIndex) => { + let tabLinkList = [] + tabbed.querySelectorAll(":scope > ul > li").forEach((tab, tabIndex) => { + tab.id = "tab_" + tabbedIndex + "_" + tabIndex + let header = tab.querySelector(".tab-title") + let tabLink = document.createElement("button") + tabLink.classList.add("tab-button") + tabLink.appendChild(header) + header.title = header.textContent + tabLink.addEventListener("click", () => { + tabbed.querySelectorAll(":scope > ul > li").forEach((tab) => { + tab.classList.remove("selected") + }) + tabLinkList.forEach((tabLink) => { + tabLink.classList.remove("active") + }) + tab.classList.add("selected") + tabLink.classList.add("active") + }) + tabLinkList.push(tabLink) + if(tabIndex == 0) { + tab.classList.add("selected") + tabLink.classList.add("active") + } + }) + let tabsOverview = document.createElement("div") + tabsOverview.classList.add("tabs-overview") + let tabsOverviewContainer = document.createElement("div") + tabsOverviewContainer.classList.add("tabs-overview-container") + tabLinkList.forEach((tabLink) => { + tabsOverview.appendChild(tabLink) + }) + tabsOverviewContainer.appendChild(tabsOverview) + tabbed.before(tabsOverviewContainer) + + function resize() { + let maxTabHeight = 0 + tabbed.querySelectorAll(":scope > ul > li").forEach((tab, tabIndex) => { + let visibility = tab.style.display + tab.style.display = "block" + maxTabHeight = Math.max(tab.offsetHeight, maxTabHeight) + tab.style.display = visibility + }) + tabbed.style.height = `${maxTabHeight + 10}px` + } + + resize() + new ResizeObserver(resize).observe(tabbed) + }) + }) + + } + + static resize(tabbed) { + + } +} \ No newline at end of file diff --git a/doxygen-awesome.css b/doxygen-awesome.css new file mode 100644 index 000000000..c2f41142f --- /dev/null +++ b/doxygen-awesome.css @@ -0,0 +1,2681 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: #ffffff; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #6f7e8e; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --toc-font-size: 13.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1050px; + --table-line-height: 24px; + --toc-sticky-top: var(--spacing-medium); + --toc-width: 200px; + --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #faf3d8; + --warning-color-dark: #f3a600; + --warning-color-darker: #5f4204; + --note-color: #e4f3ff; + --note-color-dark: #1879C4; + --note-color-darker: #274a5c; + --todo-color: #e4dafd; + --todo-color-dark: #5b2bdd; + --todo-color-darker: #2a0d72; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #f8d1cc; + --bug-color-dark: #b61825; + --bug-color-darker: #75070f; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsible table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); + + --animation-duration: .12s +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --toc-font-size: 15px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #3b2e04; + --warning-color-dark: #f1b602; + --warning-color-darker: #ceb670; + --note-color: #163750; + --note-color-dark: #1982D2; + --note-color-darker: #dcf0fa; + --todo-color: #2a2536; + --todo-color-dark: #7661b3; + --todo-color-darker: #ae9ed6; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2e1917; + --bug-color-dark: #ad2617; + --bug-color-darker: #f5b1aa; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #3b2e04; + --warning-color-dark: #f1b602; + --warning-color-darker: #ceb670; + --note-color: #163750; + --note-color-dark: #1982D2; + --note-color-darker: #dcf0fa; + --todo-color: #2a2536; + --todo-color-dark: #7661b3; + --todo-color-darker: #ae9ed6; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2e1917; + --bug-color-dark: #ad2617; + --bug-color-darker: #f5b1aa; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, +.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, +.SelectItem, #MSearchField, .navpath li.navelem a, +.navpath li.navelem a:hover, p.reference, p.definition, div.toc li, div.toc h3 { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: 1em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl, p.reference, p.definition { + font-size: var(--page-font-size); +} + +p.reference, p.definition { + color: var(--page-secondary-foreground-color); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; + background: none; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); + display: block; +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { + background: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +/* until Doxygen 1.9.4 */ +.left img#MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +/* Doxygen 1.9.5 */ +.left span#MSearchSelect { + left: 0; + user-select: none; + margin-left: 8px; + padding: 0; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchResults .SRPage { + background-color: transparent; +} + +#MSearchResults .SRPage .SREntry { + font-size: 10pt; + padding: var(--spacing-small) var(--spacing-medium); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + width: auto !important; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); + min-width: 8px; + max-width: 50vw; +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; + margin-right: 1px; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); + overflow: hidden; + text-overflow: ellipsis; +} + +#nav-tree .item > a:focus { + outline: none; +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; + color: var(--primary-color) !important; + font-weight: 500; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); + background: none; +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + width: 4px; + background: transparent; + box-shadow: inset -1px 0 0 0 var(--separator-color); +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +@media screen and (min-width: 1000px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock { + min-width: 200px; + flex-grow: 1; + } +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 225%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents > table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe, + html:not(.light-mode) div.contents .dotgraph iframe { + filter: brightness(89%) hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents > table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe, +html.dark-mode div.contents .dotgraph iframe + { + filter: brightness(89%) hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 900px 0 var(--page-background-color), + -900px 0 var(--page-background-color), + 900px 0.75px var(--separator-color), + -900px 0.75px var(--separator-color), + 1400px 0 var(--page-background-color), + -1400px 0 var(--page-background-color), + 1400px 0.75px var(--separator-color), + -1400px 0.75px var(--separator-color), + 1900px 0 var(--page-background-color), + -1900px 0 var(--page-background-color), + 1900px 0.75px var(--separator-color), + -1900px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname, .paramname em { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); + line-height: var(--table-line-height); +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--primary-light-color); +} + +.alphachar a { + color: var(--page-foreground-color); +} + +.dotgraph { + max-width: 100%; + overflow-x: scroll; +} + +.dotgraph .caption { + position: sticky; + left: 0; +} + +/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */ +.interactive_dotgraph .dotgraph iframe { + max-width: 100%; +} + +/* + Table of Contents + */ + +div.contents .toc { + max-height: var(--toc-max-height); + min-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--separator-color); + border-radius: 0; + background-color: var(--page-background-color); + box-shadow: none; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 var(--spacing-large); + margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc li::before { + display: none; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--page-foreground-color) !important; + text-decoration: none; +} + +div.toc li a:hover, div.toc li a.active { + color: var(--primary-color) !important; +} + +div.toc li a.aboveActive { + color: var(--page-secondary-foreground-color) !important; +} + + +@media screen and (max-width: 999px) { + div.contents .toc { + max-height: 45vh; + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + position: relative; + top: 0; + position: relative; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + background-color: var(--toc-background); + box-shadow: var(--box-shadow); + } + + div.contents .toc.interactive { + max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large)); + overflow: hidden; + } + + div.contents .toc > h3 { + -webkit-tap-highlight-color: transparent; + cursor: pointer; + position: sticky; + top: 0; + background-color: var(--toc-background); + margin: 0; + padding: var(--spacing-large) 0; + display: block; + } + + div.contents .toc.interactive > h3::before { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + display: inline-block; + margin-right: var(--spacing-small); + margin-bottom: calc(var(--navigation-font-size) / 4); + transform: rotate(-90deg); + transition: transform var(--animation-duration) ease-out; + } + + div.contents .toc.interactive.open > h3::before { + transform: rotate(0deg); + } + + div.contents .toc.interactive.open { + max-height: 45vh; + overflow: auto; + transition: max-height 0.2s ease-in-out; + } + + div.contents .toc a, div.contents .toc a.active { + color: var(--primary-color) !important; + } + + div.contents .toc a:hover { + text-decoration: underline; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .textblock > .tabbed > ul > li > div.fragment, + .textblock > .tabbed > ul > li > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment, + .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment > .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); + background-color: var(--fragment-linenumber-background) !important; +} + +div.line { + border-radius: var(--border-radius-small); +} + +div.line.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); + text-shadow: none; +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; + text-shadow: none; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname), +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: inline-block; + max-width: 100%; +} + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.fieldtable, +table.markdownTable tbody, +table.doxtable tbody { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.markdownTable, table.doxtable, table.fieldtable { + padding: 1px; +} + +table.doxtable caption { + display: block; +} + +table.fieldtable { + border-collapse: collapse; + width: 100%; +} + +th.markdownTableHeadLeft, +th.markdownTableHeadRight, +th.markdownTableHeadCenter, +th.markdownTableHeadNone, +table.doxtable th { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, +th.markdownTableHeadRight:first-child, +th.markdownTableHeadCenter:first-child, +th.markdownTableHeadNone:first-child, +table.doxtable tr th:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, +th.markdownTableHeadRight:last-child, +th.markdownTableHeadCenter:last-child, +th.markdownTableHeadNone:last-child, +table.doxtable tr th:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, +table.markdownTable th, +table.fieldtable td, +table.fieldtable th, +table.doxtable td, +table.doxtable th { + border: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, +table.markdownTable th:last-child, +table.fieldtable td:last-child, +table.fieldtable th:last-child, +table.doxtable td:last-child, +table.doxtable th:last-child { + border-right: none; +} + +table.markdownTable td:first-child, +table.markdownTable th:first-child, +table.fieldtable td:first-child, +table.fieldtable th:first-child, +table.doxtable td:first-child, +table.doxtable th:first-child { + border-left: none; +} + +table.markdownTable tr:first-child td, +table.markdownTable tr:first-child th, +table.fieldtable tr:first-child td, +table.fieldtable tr:first-child th, +table.doxtable tr:first-child td, +table.doxtable tr:first-child th { + border-top: none; +} + +table.markdownTable tr:last-child td, +table.markdownTable tr:last-child th, +table.fieldtable tr:last-child td, +table.fieldtable tr:last-child th, +table.doxtable tr:last-child td, +table.doxtable tr:last-child th { + border-bottom: none; +} + +table.markdownTable tr, table.doxtable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.doxtable tr:last-child { + border-bottom: none; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + display: block; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: table; + width: 100%; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); +} + +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit, .fieldtable td.fielddoc, .fieldtable th { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +table.fieldtable tr:last-child td:first-child { + border-bottom-left-radius: var(--border-radius-small); +} + +table.fieldtable tr:last-child td:last-child { + border-bottom-right-radius: var(--border-radius-small); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +table.memberdecls { + display: block; + -webkit-tap-highlight-color: transparent; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); + white-space: normal; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: var(--spacing-small); +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-left: 0; + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memTemplItemLeft { + padding-right: var(--spacing-medium); +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + color: var(--page-secondary-foreground-color); +} + +table.memberdecls img[src="closed.png"], +table.memberdecls img[src="open.png"], +div.dynheader img[src="open.png"], +div.dynheader img[src="closed.png"] { + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + margin-top: 8px; + display: block; + float: left; + margin-left: -10px; + transition: transform var(--animation-duration) ease-out; +} + +table.memberdecls img { + margin-right: 10px; +} + +table.memberdecls img[src="closed.png"], +div.dynheader img[src="closed.png"] { + transform: rotate(-90deg); + +} + +.compoundTemplParams { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--code-font-size); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + white-space: normal; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-bottom: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 var(--separator-color), + -100px 0 var(--separator-color), + 500px 0 var(--separator-color), + -500px 0 var(--separator-color), + 900px 0 var(--separator-color), + -900px 0 var(--separator-color), + 1400px 0 var(--separator-color), + -1400px 0 var(--separator-color), + 1900px 0 var(--separator-color), + -1900px 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry, table.directory td.desc { + padding: calc(var(--spacing-small) / 2) var(--spacing-small); + line-height: var(--table-line-height); +} + +table.directory tr.even td:last-child { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; +} + +table.directory tr.even td:first-child { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); +} + +table.directory tr.even:last-child td:last-child { + border-radius: 0 var(--border-radius-small) 0 0; +} + +table.directory tr.even:last-child td:first-child { + border-radius: var(--border-radius-small) 0 0 0; +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +table.directory tr.odd { + background-color: transparent; +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + border-radius: var(--border-radius-small); + font-size: var(--page-font-size); + padding: calc(var(--page-font-size) / 5); + line-height: var(--page-font-size); + transform: scale(0.8); + height: auto; + width: var(--page-font-size); + user-select: none; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; + height: var(--table-line-height); +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +.classindex dl.even { + background-color: transparent; +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar, +div.contents .toc::-webkit-scrollbar, +.contents .dotgraph::-webkit-scrollbar, +.contents .tabs-overview-container::-webkit-scrollbar { + background: transparent; + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb, +div.contents .toc::-webkit-scrollbar-thumb, +.contents .dotgraph::-webkit-scrollbar-thumb, +.contents .tabs-overview-container::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb, +div.contents .toc:hover::-webkit-scrollbar-thumb, +.contents .dotgraph:hover::-webkit-scrollbar-thumb, +.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track, +div.contents .toc::-webkit-scrollbar-track, +.contents .dotgraph::-webkit-scrollbar-track, +.contents .tabs-overview-container::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc, +.contents .dotgraph, +.contents .tabs-overview-container { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform var(--animation-duration) ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} + +/* + Optional tab feature +*/ + +.tabbed > ul { + padding-inline-start: 0px; + margin: 0; + padding: var(--spacing-small) 0; +} + +.tabbed > ul > li { + display: none; +} + +.tabbed > ul > li.selected { + display: block; +} + +.tabs-overview-container { + overflow-x: auto; + display: block; + overflow-y: visible; +} + +.tabs-overview { + border-bottom: 1px solid var(--separator-color); + display: flex; + flex-direction: row; +} + +@media screen and (max-width: 767px) { + .tabs-overview-container { + margin: 0 calc(0px - var(--spacing-large)); + } + .tabs-overview { + padding: 0 var(--spacing-large) + } +} + +.tabs-overview button.tab-button { + color: var(--page-foreground-color); + margin: 0; + border: none; + background: transparent; + padding: calc(var(--spacing-large) / 2) 0; + display: inline-block; + font-size: var(--page-font-size); + cursor: pointer; + box-shadow: 0 1px 0 0 var(--separator-color); + position: relative; + + -webkit-tap-highlight-color: transparent; +} + +.tabs-overview button.tab-button .tab-title::before { + display: block; + content: attr(title); + font-weight: 600; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.tabs-overview button.tab-button .tab-title { + float: left; + white-space: nowrap; + font-weight: normal; + padding: calc(var(--spacing-large) / 2) var(--spacing-large); + border-radius: var(--border-radius-medium); + transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out; +} + +.tabs-overview button.tab-button:not(:last-child) .tab-title { + box-shadow: 8px 0 0 -7px var(--separator-color); +} + +.tabs-overview button.tab-button:hover .tab-title { + background: var(--separator-color); + box-shadow: none; +} + +.tabs-overview button.tab-button.active .tab-title { + font-weight: 600; +} + +.tabs-overview button.tab-button::after { + content: ''; + display: block; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 0; + width: 0%; + margin: 0 auto; + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + background-color: var(--primary-color); + transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out; +} + +.tabs-overview button.tab-button.active::after { + width: 100%; + box-sizing: border-box; + height: 3px; +} + + +/* + Navigation Buttons +*/ + +.section_buttons:not(:empty) { + margin-top: calc(var(--spacing-large) * 3); +} + +.section_buttons table.markdownTable { + display: block; + width: 100%; +} + +.section_buttons table.markdownTable tbody { + display: table !important; + width: 100%; + box-shadow: none; + border-spacing: 10px; +} + +.section_buttons table.markdownTable td { + padding: 0; +} + +.section_buttons table.markdownTable th { + display: none; +} + +.section_buttons table.markdownTable tr.markdownTableHead { + border: none; +} + +.section_buttons tr th, .section_buttons tr td { + background: none; + border: none; + padding: var(--spacing-large) 0 var(--spacing-small); +} + +.section_buttons a { + display: inline-block; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + color: var(--page-secondary-foreground-color) !important; + text-decoration: none; + transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out; +} + +.section_buttons a:hover { + color: var(--page-foreground-color) !important; + background-color: var(--odd-color); +} + +.section_buttons tr td.markdownTableBodyLeft a { + padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2); +} + +.section_buttons tr td.markdownTableBodyRight a { + padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large); +} + +.section_buttons tr td.markdownTableBodyLeft a::before, +.section_buttons tr td.markdownTableBodyRight a::after { + color: var(--page-secondary-foreground-color) !important; + display: inline-block; + transition: color .08s ease-in-out, transform .09s ease-in-out; +} + +.section_buttons tr td.markdownTableBodyLeft a::before { + content: '〈'; + padding-right: var(--spacing-large); +} + + +.section_buttons tr td.markdownTableBodyRight a::after { + content: '〉'; + padding-left: var(--spacing-large); +} + + +.section_buttons tr td.markdownTableBodyLeft a:hover::before { + color: var(--page-foreground-color) !important; + transform: translateX(-3px); +} + +.section_buttons tr td.markdownTableBodyRight a:hover::after { + color: var(--page-foreground-color) !important; + transform: translateX(3px); +} + +@media screen and (max-width: 450px) { + .section_buttons a { + width: 100%; + box-sizing: border-box; + } + + .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a { + border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); + border-right: none; + } + + .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a { + border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; + } +} diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 000000000..52886aa1a --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1841 @@ +/* The standard CSS for doxygen 1.12.0*/ + +body { + background-color: white; + color: black; +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: Roboto,sans-serif; + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-family: Roboto,sans-serif; + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid #6693EC; + color: #13419E; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: white; +} + +.classindex dl.odd { + background-color: #F6F8FD; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #154AB3; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #1956D0; +} + +a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a:hover > span.arrow { + text-decoration: none; + background : #F7F9FE; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #1956D0; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #1956D0; +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul.check { + list-style:none; + text-indent: -16px; + padding-left: 38px; +} +li.unchecked:before { + content: "\2610\A0"; +} +li.checked:before { + content: "\2611\A0"; +} + +ol { + text-indent: 0px; +} + +ul { + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid #B4CAF6; + border-radius: 4px; + background-color: #FAFBFE; + color: black; +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: auto; + fill: black; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid black; + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: #2EC82E; +} + +.clipboard.success { + border-color: #2EC82E; +} + +div.line { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #00FF00; + color: black; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: #1956D0; + background-color: #D8D8D8; +} + +span.lineno a:hover { + color: #1956D0; + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: 104px; +} + +.compoundTemplParams { + color: #1956D0; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000; +} + +span.keywordtype { + color: #604020; +} + +span.keywordflow { + color: #E08000; +} + +span.comment { + color: #800000; +} + +span.preprocessor { + color: #806020; +} + +span.stringliteral { + color: #002080; +} + +span.charliteral { + color: #008080; +} + +span.xmlcdata { + color: black; +} + +span.vhdldigit { + color: #FF00FF; +} + +span.vhdlchar { + color: #000000; +} + +span.vhdlkeyword { + color: #700070; +} + +span.vhdllogic { + color: #FF0000; +} + +blockquote { + background-color: #F4F7FD; + border-left: 2px solid #80A5EF; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #103785; +} + +th.dirtab { + background-color: #1343A3; + color: #FFFFFE; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #1A5ADA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F7F9FE; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #D5E1F9; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #1956D0; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #90B0F1; + border-left: 1px solid #90B0F1; + border-right: 1px solid #90B0F1; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #DAE5FA; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #1956D0; + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #90B0F1; + border-left: 1px solid #90B0F1; + border-right: 1px solid #90B0F1; + padding: 6px 0px 6px 0px; + color: #0D2D6D; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #D6E2FA; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #90B0F1; + border-left: 1px solid #90B0F1; + border-right: 1px solid #90B0F1; + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: white; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: #602020; + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #4B7FE9; + border-top:1px solid #2363E4; + border-left:1px solid #2363E4; + border-right:1px solid #B4CAF6; + border-bottom:1px solid #B4CAF6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #80A5EF; + border-bottom: 1px solid #80A5EF; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: #F6F8FD; +} + +.directory tr.even { + padding-left: 6px; + background-color: white; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #154AB3; +} + +.arrow { + color: #80A5EF; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial,Helvetica; + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #4B7FE9; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.svg'); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.svg'); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.svg'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #0F337D; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #103785; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #1343A3; + color: #FFFFFE; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid #90B0F1; + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { + white-space: nowrap; + border-right: 1px solid #90B0F1; + border-bottom: 1px solid #90B0F1; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + + +.fieldtable td.fielddoc { + border-bottom: 1px solid #90B0F1; +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: url('nav_f.png'); + background-repeat:repeat-x; + background-color: #DAE5FA; + font-size: 90%; + color: #0D2D6D; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #90B0F1; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#0E3177; + border:solid 1px #B1C8F5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #13429F; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + outline: none; + color: #0E3177; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: #0F337D; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F7F9FE; + margin: 0px; + border-bottom: 1px solid #B4CAF6; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* + +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention, dl.important { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention, dl.important { + background: #f8d1cc; + border-left: 8px solid #b61825; + color: #75070f; +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: #b61825; +} + +dl.note, dl.remark { + background: #faf3d8; + border-left: 8px solid #f3a600; + color: #5f4204; +} + +dl.note dt, dl.remark dt { + color: #f3a600; +} + +dl.todo { + background: #e4f3ff; + border-left: 8px solid #1879C4; + color: #274a5c; +} + +dl.todo dt { + color: #1879C4; +} + +dl.test { + background: #e8e8ff; + border-left: 8px solid #3939C4; + color: #1a1a5c; +} + +dl.test dt { + color: #3939C4; +} + +dl.bug dt a { + color: #5b2bdd !important; +} + +dl.bug { + background: #e4dafd; + border-left: 8px solid #5b2bdd; + color: #2a0d72; +} + +dl.bug dt a { + color: #5b2bdd !important; +} + +dl.deprecated { + background: #ecf0f3; + border-left: 8px solid #5b6269; + color: #43454a; +} + +dl.deprecated dt a { + color: #5b6269 !important; +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: #d8f1e3; + border-left: 8px solid #44b86f; + color: #265532; +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: #44b86f; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: Tahoma,Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: Tahoma,Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% Tahoma,Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #2363E4; + background-color: white; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#123E96; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F2F5FD; + border: 1px solid #CDDCF9; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("data:image/svg+xml;utf8,&%238595;") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,'DejaVu Sans',Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Verdana,'DejaVu Sans',Geneva,sans-serif; + color: #1956D0; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li[class^='level'] { + margin-left: 15px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.empty { + background-image: none; + margin-top: 0px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: black; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: #1956D0; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: Roboto,sans-serif; + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: white; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: gray; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: white; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: gray; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: gray; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: gray; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: gray; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: gray; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #103785; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #1343A3; + color: #FFFFFE; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 000000000..6f144f30b --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doxygen_crawl.html b/doxygen_crawl.html new file mode 100644 index 000000000..e7df51de1 --- /dev/null +++ b/doxygen_crawl.html @@ -0,0 +1,3650 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dropdown__custom_8cpp.html b/dropdown__custom_8cpp.html new file mode 100644 index 000000000..5331a83a6 --- /dev/null +++ b/dropdown__custom_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: dropdown_custom.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
dropdown_custom.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

int main ()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+ +

Definition at line 11 of file dropdown_custom.cpp.

+ +
+
+
+
+ + + + + diff --git a/dropdown__custom_8cpp.js b/dropdown__custom_8cpp.js new file mode 100644 index 000000000..508aa3708 --- /dev/null +++ b/dropdown__custom_8cpp.js @@ -0,0 +1,4 @@ +var dropdown__custom_8cpp = +[ + [ "main", "dropdown__custom_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/dropdown__custom_8cpp_source.html b/dropdown__custom_8cpp_source.html new file mode 100644 index 000000000..eb8c44d18 --- /dev/null +++ b/dropdown__custom_8cpp_source.html @@ -0,0 +1,322 @@ + + + + + + + + +FTXUI: dropdown_custom.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dropdown_custom.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <string> // for basic_string, string, allocator
+
5#include <vector> // for vector
+
6
+
7#include "ftxui/component/captured_mouse.hpp" // for ftxui
+
8#include "ftxui/component/component.hpp" // for Dropdown, Horizontal, Vertical
+
9#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
+
10
+
+
11int main() {
+
12 using namespace ftxui;
+
13
+
14 std::vector<std::string> entries = {
+
15 "tribute", "clearance", "ally", "bend", "electronics",
+
16 "module", "era", "cultural", "sniff", "nationalism",
+
17 "negotiation", "deliver", "figure", "east", "tribute",
+
18 "clearance", "ally", "bend", "electronics", "module",
+
19 "era", "cultural", "sniff", "nationalism", "negotiation",
+
20 "deliver", "figure", "east", "tribute", "clearance",
+
21 "ally", "bend", "electronics", "module", "era",
+
22 "cultural", "sniff", "nationalism", "negotiation", "deliver",
+
23 "figure", "east",
+
24 };
+
25
+
26 auto dropdown_1 = Dropdown({
+
27 .radiobox = {.entries = &entries},
+
28 .transform =
+
29 [](bool open, Element checkbox, Element radiobox) {
+
30 if (open) {
+
31 return vbox({
+
32 checkbox | inverted,
+
33 radiobox | vscroll_indicator | frame |
+
34 size(HEIGHT, LESS_THAN, 10),
+
35 filler(),
+
36 });
+
37 }
+
38 return vbox({
+
39 checkbox,
+
40 filler(),
+
41 });
+
42 },
+
43 });
+
44
+
45 auto dropdown_2 = Dropdown({
+
46 .radiobox = {.entries = &entries},
+
47 .transform =
+
48 [](bool open, Element checkbox, Element radiobox) {
+
49 if (open) {
+
50 return vbox({
+
51 checkbox | inverted,
+
52 radiobox | vscroll_indicator | frame |
+
53 size(HEIGHT, LESS_THAN, 10) | bgcolor(Color::Blue),
+
54 filler(),
+
55 });
+
56 }
+
57 return vbox({
+
58 checkbox | bgcolor(Color::Blue),
+
59 filler(),
+
60 });
+
61 },
+
62 });
+
63
+
64 auto dropdown_3 = Dropdown({
+
65 .radiobox =
+
66 {
+
67 .entries = &entries,
+
68 .transform =
+
69 [](const EntryState& s) {
+
70 auto t = text(s.label) | borderEmpty;
+
71 if (s.active) {
+
72 t |= bold;
+
73 }
+
74 if (s.focused) {
+
75 t |= inverted;
+
76 }
+
77 return t;
+
78 },
+
79 },
+
80 .transform =
+
81 [](bool open, Element checkbox, Element radiobox) {
+
82 checkbox |= borderEmpty;
+
83 if (open) {
+
84 return vbox({
+
85 checkbox | inverted,
+
86 radiobox | vscroll_indicator | frame |
+
87 size(HEIGHT, LESS_THAN, 20) | bgcolor(Color::Red),
+
88 filler(),
+
89 });
+
90 }
+
91 return vbox({
+
92 checkbox | bgcolor(Color::Red),
+
93 filler(),
+
94 });
+
95 },
+
96 });
+
97
+
98 auto screen = ScreenInteractive::FitComponent();
+
99 screen.Loop(Container::Horizontal({
+
100 dropdown_1,
+
101 dropdown_2,
+
102 dropdown_3,
+
103 }));
+
104}
+
+ + +
int main()
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+ +
arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
+
+
+ + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 000000000..0c3560522 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,205 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + +let dynsection = { + + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ +$(function() { + $('.code,.codeRef').each(function() { + $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); + $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ]; + $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); + }); +}); diff --git a/elements_8cppm.html b/elements_8cppm.html new file mode 100644 index 000000000..59073ec60 --- /dev/null +++ b/elements_8cppm.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: elements.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
elements.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::Dimension
 Define how the Screen's dimensions should look like.
 
+
+
+ + + + + diff --git a/elements_8cppm_source.html b/elements_8cppm_source.html new file mode 100644 index 000000000..99363c0c7 --- /dev/null +++ b/elements_8cppm_source.html @@ -0,0 +1,355 @@ + + + + + + + + +FTXUI: elements.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elements.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.dom.elements
+
2/// @brief Module file for the Element classes and functions of the Dom module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.dom.elements;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+
15 using ftxui::Node;
+
16 using ftxui::Element;
+
17 using ftxui::Elements;
+
18 using ftxui::Decorator;
+ +
20
+ +
22
+
23 using ftxui::operator|;
+
24 using ftxui::operator|=;
+
25
+
26 using ftxui::text;
+
27 using ftxui::vtext;
+
28 using ftxui::separator;
+
29 using ftxui::separatorLight;
+
30 using ftxui::separatorDashed;
+
31 using ftxui::separatorHeavy;
+
32 using ftxui::separatorDouble;
+
33 using ftxui::separatorEmpty;
+
34 using ftxui::separatorStyled;
+
35 using ftxui::separatorCharacter;
+
36 using ftxui::separatorHSelector;
+
37 using ftxui::separatorVSelector;
+
38 using ftxui::gauge;
+
39 using ftxui::gaugeLeft;
+
40 using ftxui::gaugeRight;
+
41 using ftxui::gaugeUp;
+
42 using ftxui::gaugeDown;
+
43 using ftxui::gaugeDirection;
+
44 using ftxui::border;
+
45 using ftxui::borderLight;
+
46 using ftxui::borderDashed;
+
47 using ftxui::borderHeavy;
+
48 using ftxui::borderDouble;
+
49 using ftxui::borderRounded;
+
50 using ftxui::borderEmpty;
+
51 using ftxui::borderStyled;
+
52 using ftxui::borderWith;
+
53 using ftxui::window;
+
54 using ftxui::spinner;
+
55 using ftxui::paragraph;
+
56 using ftxui::paragraphAlignLeft;
+
57 using ftxui::paragraphAlignRight;
+
58 using ftxui::paragraphAlignCenter;
+
59 using ftxui::paragraphAlignJustify;
+
60 using ftxui::graph;
+
61 using ftxui::emptyElement;
+
62 using ftxui::canvas;
+
63
+
64 using ftxui::bold;
+
65 using ftxui::dim;
+
66 using ftxui::italic;
+
67 using ftxui::inverted;
+
68 using ftxui::underlined;
+
69 using ftxui::underlinedDouble;
+
70 using ftxui::blink;
+
71 using ftxui::strikethrough;
+
72 using ftxui::color;
+
73 using ftxui::bgcolor;
+
74 using ftxui::focusPosition;
+
75 using ftxui::focusPositionRelative;
+
76 using ftxui::automerge;
+
77 using ftxui::hyperlink;
+
78 using ftxui::selectionStyleReset;
+
79 using ftxui::selectionColor;
+
80 using ftxui::selectionBackgroundColor;
+
81 using ftxui::selectionForegroundColor;
+
82 using ftxui::selectionStyle;
+
83
+
84 using ftxui::hbox;
+
85 using ftxui::vbox;
+
86 using ftxui::dbox;
+
87 using ftxui::flexbox;
+
88 using ftxui::gridbox;
+
89 using ftxui::hflow;
+
90 using ftxui::vflow;
+
91
+
92 using ftxui::flex;
+
93 using ftxui::flex_grow;
+
94 using ftxui::flex_shrink;
+
95 using ftxui::xflex;
+
96 using ftxui::xflex_grow;
+
97 using ftxui::xflex_shrink;
+
98 using ftxui::yflex;
+
99 using ftxui::yflex_grow;
+
100 using ftxui::yflex_shrink;
+
101 using ftxui::notflex;
+
102 using ftxui::filler;
+
103
+ +
105 using ftxui::Constraint;
+
106 using ftxui::size;
+
107
+
108 using ftxui::frame;
+
109 using ftxui::xframe;
+
110 using ftxui::yframe;
+
111 using ftxui::focus;
+
112 using ftxui::select;
+
113
+
114 using ftxui::focusCursorBlock;
+
115 using ftxui::focusCursorBlockBlinking;
+
116 using ftxui::focusCursorBar;
+
117 using ftxui::focusCursorBarBlinking;
+
118 using ftxui::focusCursorUnderline;
+
119 using ftxui::focusCursorUnderlineBlinking;
+
120
+
121 using ftxui::vscroll_indicator;
+
122 using ftxui::hscroll_indicator;
+
123 using ftxui::reflect;
+
124 using ftxui::clear_under;
+
125
+
126 using ftxui::hcenter;
+
127 using ftxui::vcenter;
+
128 using ftxui::center;
+
129 using ftxui::align_right;
+
130 using ftxui::nothing;
+
131
+
132 namespace Dimension {
+
133 using ftxui::Dimension::Fit;
+
134 }
+
135}
+ +
Node is the base class for all elements in the DOM tree.
Definition node.hpp:37
+
BorderStyle
BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
Definition elements.hpp:35
+
Module file for the Element classes and functions of the Dom module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
WidthOrHeight
Definition elements.hpp:161
+
std::function< Element(Element)> Decorator
Definition elements.hpp:24
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
std::vector< Element > Elements
Definition elements.hpp:23
+
std::function< std::vector< int >(int, int)> GraphFunction
Definition elements.hpp:25
+ +
+
+ + + + + diff --git a/elements_8hpp.html b/elements_8hpp.html new file mode 100644 index 000000000..33f395913 --- /dev/null +++ b/elements_8hpp.html @@ -0,0 +1,608 @@ + + + + + + + + +FTXUI: elements.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
elements.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
namespace  ftxui::Dimension
 Define how the Screen's dimensions should look like.
 
+ + + + + + + + + +

+Typedefs

using Element = std::shared_ptr<Node>
 
using Elements = std::vector<Element>
 
using Decorator = std::function<Element(Element)>
 
using GraphFunction = std::function<std::vector<int>(int, int)>
 
+ + + + + + + + +

+Enumerations

enum  BorderStyle {
+  LIGHT +,
+  DASHED +,
+  HEAVY +,
+  DOUBLE +,
+  ROUNDED +,
+  EMPTY +
+ }
 BorderStyle is an enumeration that represents the different styles of borders that can be applied to elements in the terminal UI. More...
 
enum  WidthOrHeight {
+  WIDTH +,
+  HEIGHT +
+ }
 
enum  Constraint {
+  LESS_THAN +,
+  EQUAL +,
+  GREATER_THAN +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

Element operator| (Element element, Decorator decorator)
 From an element, apply a decorator.
 
Elementoperator|= (Element &e, Decorator d)
 Apply a decorator to an element.
 
Elements operator| (Elements elements, Decorator decorator)
 From a set of element, apply a decorator to every elements.
 
Decorator operator| (Decorator a, Decorator b)
 Compose two decorator into one.
 
Element text (std::string text)
 Display a piece of UTF8 encoded unicode text.
 
Element vtext (std::string text)
 Display a piece of unicode text vertically.
 
Element separator ()
 Draw a vertical or horizontal separation in between two other elements.
 
Element separatorLight ()
 Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
 
Element separatorDashed ()
 Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
 
Element separatorHeavy ()
 Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
 
Element separatorDouble ()
 Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
 
Element separatorEmpty ()
 Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
 
Element separatorStyled (BorderStyle style)
 Draw a vertical or horizontal separation in between two other elements.
 
Element separator (Pixel pixel)
 Draw a separator in between two element filled with a given pixel.
 
Element separatorCharacter (std::string value)
 Draw a vertical or horizontal separation in between two other elements.
 
Element separatorHSelector (float left, float right, Color unselected_color, Color selected_color)
 Draw a horizontal bar, with the area in between left/right colored differently.
 
Element separatorVSelector (float up, float down, Color unselected_color, Color selected_color)
 Draw an vertical bar, with the area in between up/downcolored differently.
 
Element gauge (float progress)
 Draw a high definition progress bar.
 
Element gaugeLeft (float progress)
 Draw a high definition progress bar progressing from right to left.
 
Element gaugeRight (float progress)
 Draw a high definition progress bar progressing from left to right.
 
Element gaugeUp (float progress)
 Draw a high definition progress bar progressing from bottom to top.
 
Element gaugeDown (float progress)
 Draw a high definition progress bar progressing from top to bottom.
 
Element gaugeDirection (float progress, Direction direction)
 Draw a high definition progress bar progressing in specified direction.
 
Element border (Element child)
 Draw a border around the element.
 
Element borderLight (Element child)
 Draw a light border around the element.
 
Element borderDashed (Element child)
 Draw a dashed border around the element.
 
Element borderHeavy (Element child)
 Draw a heavy border around the element.
 
Element borderDouble (Element child)
 Draw a double border around the element.
 
Element borderRounded (Element child)
 Draw a rounded border around the element.
 
Element borderEmpty (Element child)
 Draw an empty border around the element.
 
Decorator borderStyled (BorderStyle style)
 Same as border but with different styles.
 
Decorator borderStyled (BorderStyle style, Color foreground_color)
 Same as border but with a foreground color and a different style.
 
Decorator borderStyled (Color foreground_color)
 Same as border but with a foreground color.
 
Decorator borderWith (const Pixel &pixel)
 Same as border but with a constant Pixel around the element.
 
Element window (Element title, Element content, BorderStyle border)
 Draw window with a title and a border around the element.
 
Element spinner (int charset_index, size_t image_index)
 Useful to represent the effect of time and/or events. This displays an ASCII art "video".
 
Element paragraph (const std::string &the_text)
 Return an element drawing the paragraph on multiple lines.
 
Element paragraphAlignLeft (const std::string &the_text)
 Return an element drawing the paragraph on multiple lines, aligned on the left.
 
Element paragraphAlignRight (const std::string &the_text)
 Return an element drawing the paragraph on multiple lines, aligned on the right.
 
Element paragraphAlignCenter (const std::string &the_text)
 Return an element drawing the paragraph on multiple lines, aligned on the center.
 
Element paragraphAlignJustify (const std::string &the_text)
 Return an element drawing the paragraph on multiple lines, aligned using a justified alignment. the center.
 
Element graph (GraphFunction graph_function)
 Draw a graph using a GraphFunction.
 
Element emptyElement ()
 
Element canvas (ConstRef< Canvas > canvas)
 Produce an element from a Canvas, or a reference to a Canvas.
 
Element canvas (int width, int height, std::function< void(Canvas &)> fn)
 Produce an element drawing a canvas of requested size.
 
Element canvas (std::function< void(Canvas &)> fn)
 Produce an element drawing a canvas.
 
Element bold (Element child)
 Use a bold font, for elements with more emphasis.
 
Element dim (Element child)
 Use a light font, for elements with less emphasis.
 
Element italic (Element child)
 Apply a underlinedDouble to text.
 
Element inverted (Element child)
 Add a filter that will invert the foreground and the background colors.
 
Element underlined (Element child)
 Underline the given element.
 
Element underlinedDouble (Element child)
 Apply a underlinedDouble to text.
 
Element blink (Element child)
 The text drawn alternates in between visible and hidden.
 
Element strikethrough (Element child)
 Apply a strikethrough to text.
 
Decorator color (Color c)
 Decorate using a foreground color.
 
Decorator bgcolor (Color color)
 Decorate using a background color.
 
Decorator color (const LinearGradient &gradient)
 Decorate using a linear-gradient effect on the foreground color.
 
Decorator bgcolor (const LinearGradient &gradient)
 Decorate using a linear-gradient effect on the background color.
 
Element color (Color color, Element child)
 Set the foreground color of an element.
 
Element bgcolor (Color color, Element child)
 Set the background color of an element.
 
Element color (const LinearGradient &gradient, Element child)
 Set the foreground color of an element with linear-gradient effect.
 
Element bgcolor (const LinearGradient &gradient, Element child)
 Set the background color of an element with linear-gradient effect.
 
Decorator focusPosition (int x, int y)
 Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in the numbers of cells.
 
Decorator focusPositionRelative (float x, float y)
 Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in proportion of the requested size.
 
Element automerge (Element child)
 Enable character to be automatically merged with others nearby.
 
Decorator hyperlink (std::string link)
 Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
 
Element hyperlink (std::string link, Element child)
 Make the rendered area clickable using a web browser. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
 
Element selectionStyleReset (Element child)
 Reset the selection style of an element.
 
Decorator selectionColor (Color foreground)
 Set the color of an element when selected.
 
Decorator selectionBackgroundColor (Color foreground)
 Set the background color of an element when selected. Note that the style is applied on top of the existing style.
 
Decorator selectionForegroundColor (Color foreground)
 Set the foreground color of an element when selected. Note that the style is applied on top of the existing style.
 
Decorator selectionStyle (std::function< void(Pixel &)> style)
 Set the style of an element when selected.
 
Element hbox (Elements children)
 A container displaying elements horizontally one by one.
 
Element vbox (Elements children)
 A container displaying elements vertically one by one.
 
Element dbox (Elements children_)
 Stack several element on top of each other.
 
Element flexbox (Elements children, FlexboxConfig config)
 A container displaying elements on row/columns and capable of wrapping on the next column/row when full.
 
Element gridbox (std::vector< Elements > lines)
 A container displaying a grid of elements.
 
Element hflow (Elements children)
 A container displaying elements in rows from left to right. When filled, it starts on a new row below.
 
Element vflow (Elements children)
 A container displaying elements in rows from top to bottom. When filled, it starts on a new columns on the right. filled, it starts on a new row. is full, it starts a new row.
 
Element flex (Element child)
 Make a child element to expand proportionally to the space left in a container.
 
Element flex_grow (Element child)
 Expand if possible.
 
Element flex_shrink (Element child)
 Minimize if needed.
 
Element xflex (Element child)
 Expand/Minimize if possible/needed on the X axis.
 
Element xflex_grow (Element child)
 Expand if possible on the X axis.
 
Element xflex_shrink (Element child)
 Minimize if needed on the X axis.
 
Element yflex (Element child)
 Expand/Minimize if possible/needed on the Y axis.
 
Element yflex_grow (Element child)
 Expand if possible on the Y axis.
 
Element yflex_shrink (Element child)
 Minimize if needed on the Y axis.
 
Element notflex (Element child)
 Make the element not flexible.
 
Element filler ()
 An element that will take expand proportionally to the space left in a container.
 
Decorator size (WidthOrHeight direction, Constraint constraint, int value)
 Apply a constraint on the size of an element.
 
Element frame (Element child)
 Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container. In this case only a smaller portion is displayed. The view is scrollable to make the focused element visible.
 
Element xframe (Element child)
 Same as frame, but only on the x-axis.
 
Element yframe (Element child)
 Same as frame, but only on the y-axis.
 
Element focus (Element child)
 Set the child to be the one focused among its siblings.
 
Element select (Element child)
 Set the child to be the one focused among its siblings.
 
Element focusCursorBlock (Element child)
 Same as focus, but set the cursor shape to be a still block.
 
Element focusCursorBlockBlinking (Element child)
 Same as focus, but set the cursor shape to be a blinking block.
 
Element focusCursorBar (Element child)
 Same as focus, but set the cursor shape to be a still block.
 
Element focusCursorBarBlinking (Element child)
 Same as focus, but set the cursor shape to be a blinking bar.
 
Element focusCursorUnderline (Element child)
 Same as focus, but set the cursor shape to be a still underline.
 
Element focusCursorUnderlineBlinking (Element child)
 Same as focus, but set the cursor shape to be a blinking underline.
 
Element vscroll_indicator (Element child)
 Display a vertical scrollbar on the right. Colors follow the content.
 
Element hscroll_indicator (Element child)
 Display a horizontal scrollbar at the bottom. Colors follow the content.
 
Decorator reflect (Box &box)
 
Element clear_under (Element element)
 Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
 
Element hcenter (Element child)
 Center an element horizontally.
 
Element vcenter (Element child)
 Center an element vertically.
 
Element center (Element child)
 Center an element horizontally and vertically.
 
Element align_right (Element child)
 Align an element on the right side.
 
Element nothing (Element element)
 A decoration doing absolutely nothing.
 
Dimensions Fit (Element &, bool extend_beyond_screen=false)
 
+
+
+ + + + + diff --git a/elements_8hpp.js b/elements_8hpp.js new file mode 100644 index 000000000..ca08aeaa5 --- /dev/null +++ b/elements_8hpp.js @@ -0,0 +1,136 @@ +var elements_8hpp = +[ + [ "Element", "elements_8hpp.html#a2bc31f2d685189e5c61d2293a1f51b4f", null ], + [ "Elements", "elements_8hpp.html#a5d4aa06ca6cc6a72e981bd5386f93f0a", null ], + [ "Decorator", "elements_8hpp.html#a164021903e9ac6f1357e4186582891e3", null ], + [ "GraphFunction", "elements_8hpp.html#ab07cb9a766f38fc867f8fe736ce2e6e3", null ], + [ "BorderStyle", "elements_8hpp.html#gafe3103dd0b8240c5443892484ef5af9c", [ + [ "LIGHT", "elements_8hpp.html#ggafe3103dd0b8240c5443892484ef5af9caf917d6c11c85b4ac32e30d1cc9da25eb", null ], + [ "DASHED", "elements_8hpp.html#ggafe3103dd0b8240c5443892484ef5af9ca830310bdfd296d7cd00c59773579b892", null ], + [ "HEAVY", "elements_8hpp.html#ggafe3103dd0b8240c5443892484ef5af9ca34cd68a92c52759ed9b545969a11c2da", null ], + [ "DOUBLE", "elements_8hpp.html#ggafe3103dd0b8240c5443892484ef5af9ca33465d1d419b1074fb259ef444609e92", null ], + [ "ROUNDED", "elements_8hpp.html#ggafe3103dd0b8240c5443892484ef5af9ca655074b92b285adff7d18a45748bf493", null ], + [ "EMPTY", "elements_8hpp.html#ggafe3103dd0b8240c5443892484ef5af9ca2f0d18fc0d0fa4a6cd92dc328501874d", null ] + ] ], + [ "WidthOrHeight", "elements_8hpp.html#a04711c04f28aabfa0e5928a35baaec53", [ + [ "WIDTH", "elements_8hpp.html#a04711c04f28aabfa0e5928a35baaec53a73c0818986b7c462c2977f57afd00522", null ], + [ "HEIGHT", "elements_8hpp.html#a04711c04f28aabfa0e5928a35baaec53a38b9241136017b93ea2755a49cf0a000", null ] + ] ], + [ "Constraint", "elements_8hpp.html#ae09f44b989d381a387329fd0a0935926", [ + [ "LESS_THAN", "elements_8hpp.html#ae09f44b989d381a387329fd0a0935926a41b05932cd237b2b133fff1ade85bed5", null ], + [ "EQUAL", "elements_8hpp.html#ae09f44b989d381a387329fd0a0935926a59a84258a4cb9025b567ee5139455029", null ], + [ "GREATER_THAN", "elements_8hpp.html#ae09f44b989d381a387329fd0a0935926a5fae95457121bd697edd588d1b64cc7c", null ] + ] ], + [ "operator|", "elements_8hpp.html#ga7e9a69f0592b4013bd725d662f4a76e7", null ], + [ "operator|=", "elements_8hpp.html#ga0be26ac5dcbe6c707857c791d8eec720", null ], + [ "operator|", "elements_8hpp.html#ga6cbc84eb24a655ae084b3c7d26f9abfc", null ], + [ "operator|", "elements_8hpp.html#ga027fbc9cf6fef9e86ae6a2a79e8bf23a", null ], + [ "text", "elements_8hpp.html#ga366051704fd333c23460f7932598a5e3", null ], + [ "vtext", "elements_8hpp.html#ga64172a43b4b526afeb6313e6e1a6d5a1", null ], + [ "separator", "elements_8hpp.html#gac1ef1cf6bf7cd0759ffa195071edb2a0", null ], + [ "separatorLight", "elements_8hpp.html#ga37c2b93daf557f68064bc9fbf93ebde0", null ], + [ "separatorDashed", "elements_8hpp.html#ga81f2d3256c0cfbc70f820129286f08c6", null ], + [ "separatorHeavy", "elements_8hpp.html#gaf0649e89a9960f1c2703e48c1817645b", null ], + [ "separatorDouble", "elements_8hpp.html#gadd376830fdb51b0bf52672ef17515989", null ], + [ "separatorEmpty", "elements_8hpp.html#ga1934703e56ab66f6f259b9f8da331f1b", null ], + [ "separatorStyled", "elements_8hpp.html#ga13cb559cfc7e409b3f211f0bb35ea7fa", null ], + [ "separator", "elements_8hpp.html#ga71d9a6a32f65b6d172f9696b3b9579b4", null ], + [ "separatorCharacter", "elements_8hpp.html#ga97a10482d591aade2958da0f2f19b371", null ], + [ "separatorHSelector", "elements_8hpp.html#a50413065cee4757447b35c3a500667d3", null ], + [ "separatorVSelector", "elements_8hpp.html#a1a0211233bacd4eb4d31a8e3d58b5f48", null ], + [ "gauge", "elements_8hpp.html#gae0b8041a60629fd790716038738c93ce", null ], + [ "gaugeLeft", "elements_8hpp.html#ga97898b9f77b3edd330eaef22fce7cf2b", null ], + [ "gaugeRight", "elements_8hpp.html#ga333d781a44885ed4b5ea8444015b86f7", null ], + [ "gaugeUp", "elements_8hpp.html#ga6e9a97b66c14404a2b3f95f4dae414c2", null ], + [ "gaugeDown", "elements_8hpp.html#gafe537f915cac5613261580bae3a8fe33", null ], + [ "gaugeDirection", "elements_8hpp.html#ga1265cc8a52448e1b98d7abe84a04681e", null ], + [ "border", "elements_8hpp.html#gae8537acd423d47cf07e61bd774fb1098", null ], + [ "borderLight", "elements_8hpp.html#gaa074cdab57eeb47b99f1699bcc8addd8", null ], + [ "borderDashed", "elements_8hpp.html#ga181c80f8ada12d1356f6bfa0ebb7219f", null ], + [ "borderHeavy", "elements_8hpp.html#ga666c31419cc31cdadc9f8178ed63529e", null ], + [ "borderDouble", "elements_8hpp.html#ga052b504344f3bc1ff86b3493cd934215", null ], + [ "borderRounded", "elements_8hpp.html#ga3cf2db223a5efaa370f0ca6bb405b80e", null ], + [ "borderEmpty", "elements_8hpp.html#gaf20f7d6fb275d109f0bdc01a2e4d3f3e", null ], + [ "borderStyled", "elements_8hpp.html#gabc9db79957d4dd36deb8ca79938e4c41", null ], + [ "borderStyled", "elements_8hpp.html#ga5aab98b289d2e7b2ce8ca0eeee51ce78", null ], + [ "borderStyled", "elements_8hpp.html#gad1dbf36194dcb77674085df9e11c1e22", null ], + [ "borderWith", "elements_8hpp.html#gaa97cfcfbe6df92dac085454395ec7b2f", null ], + [ "window", "elements_8hpp.html#ga03049def08fa7a5eaa4d5e897152bc1a", null ], + [ "spinner", "elements_8hpp.html#ga3b08e0030a0831d3ec3e2a505908273b", null ], + [ "paragraph", "elements_8hpp.html#ga3f9093ae1a2790d396fc2cff9990fbbd", null ], + [ "paragraphAlignLeft", "elements_8hpp.html#gaa334a836eccc573e1137a1ba29d07d8a", null ], + [ "paragraphAlignRight", "elements_8hpp.html#ga28a69f06a88c89fe7a507e33ab486411", null ], + [ "paragraphAlignCenter", "elements_8hpp.html#ga6a105f6b0d07d7933379ff1ae9282fb8", null ], + [ "paragraphAlignJustify", "elements_8hpp.html#gae4de548aa67ab77cb345e4ddec6b248b", null ], + [ "graph", "elements_8hpp.html#ae78c2b2b147e65701493465f8e3f4d89", null ], + [ "emptyElement", "elements_8hpp.html#ga40451515a5b3049e7a1276cad8b9356c", null ], + [ "canvas", "elements_8hpp.html#a57d7bdf155e190de514a689abb4e9a35", null ], + [ "canvas", "elements_8hpp.html#ac781c6530fb74b861af7d52c03ffb2b9", null ], + [ "canvas", "elements_8hpp.html#a8bef154e558868d259c52380e1e5ead9", null ], + [ "bold", "elements_8hpp.html#ga353c769068e25303eb41fa2da565c604", null ], + [ "dim", "elements_8hpp.html#gac6a3b77604739516e809369810896646", null ], + [ "italic", "elements_8hpp.html#ga8a8d190765de7bbd9e78f9e639c2a96d", null ], + [ "inverted", "elements_8hpp.html#ga672456b8f2091b615a30ff755418b37b", null ], + [ "underlined", "elements_8hpp.html#ga5ad450c97c4d084b64ffb5b5ca942664", null ], + [ "underlinedDouble", "elements_8hpp.html#ga16d1b74107610750276499ddb3dde8da", null ], + [ "blink", "elements_8hpp.html#gad57613de5895e774218d91dea48d074b", null ], + [ "strikethrough", "elements_8hpp.html#ga8594d70f0491def903370e86132fbf01", null ], + [ "color", "elements_8hpp.html#gaf61b489da39ca5e24b68e6e1a2b09c0d", null ], + [ "bgcolor", "elements_8hpp.html#ga01d4c5aaf0447e862246849111782245", null ], + [ "color", "elements_8hpp.html#ga8af6b5a06b03fd53bf30a6b050b96968", null ], + [ "bgcolor", "elements_8hpp.html#gaee41f3eaff28a123214e81231f8f4593", null ], + [ "color", "elements_8hpp.html#gadef6e6e66199153de6d3b21b14dcf868", null ], + [ "bgcolor", "elements_8hpp.html#gaae86eacae0a0626b41e9964ac7f4f532", null ], + [ "color", "elements_8hpp.html#ga050df9c8ed04eec13309d6c0542c636d", null ], + [ "bgcolor", "elements_8hpp.html#gaaac1622d43662a6a02113d9230a4fdd4", null ], + [ "focusPosition", "elements_8hpp.html#ga78447ba1ccb792963ad6d306f4ed1256", null ], + [ "focusPositionRelative", "elements_8hpp.html#ga13befad33cb4125e2143f2af3eddcc71", null ], + [ "automerge", "elements_8hpp.html#gaca42bd6c44d8d366d5c1014330402086", null ], + [ "hyperlink", "elements_8hpp.html#gad0eac58eac9e6cd9a04879b20f8e123b", null ], + [ "hyperlink", "elements_8hpp.html#ga8bacc04e0cbde663ccc4a4891e8b50d5", null ], + [ "selectionStyleReset", "elements_8hpp.html#aa7e1317c76cefc5018503de4f6e09ea3", null ], + [ "selectionColor", "elements_8hpp.html#a925a73b7f0eb4b5bc11af23f4ca18019", null ], + [ "selectionBackgroundColor", "elements_8hpp.html#a6c965b8f6450a50a938120b5f6ddea96", null ], + [ "selectionForegroundColor", "elements_8hpp.html#a5d98498c51cfbc03f37e46d46ec8acf5", null ], + [ "selectionStyle", "elements_8hpp.html#a4080865d947eea48cf695531f66a5160", null ], + [ "hbox", "elements_8hpp.html#a552ba6d33b3c9bec586b99fba4c243ac", null ], + [ "vbox", "elements_8hpp.html#gafd28058f0ccbbdf34691a85a7cc9b2e3", null ], + [ "dbox", "elements_8hpp.html#ga901ab1b6b2e0e8c295552168ab206441", null ], + [ "flexbox", "elements_8hpp.html#a168a235aa438b6c72df5861322154be3", null ], + [ "gridbox", "elements_8hpp.html#abcdf409d605edafd3191cd7ba47bcbd1", null ], + [ "hflow", "elements_8hpp.html#a345b31919048562675615d5af78e6322", null ], + [ "vflow", "elements_8hpp.html#ae0da51b614e95a0687727644b5898a23", null ], + [ "flex", "elements_8hpp.html#ga257acd2bd47bab7db879cca2c0e67e23", null ], + [ "flex_grow", "elements_8hpp.html#ga81ed6b31f512e849247f13d249f6f20e", null ], + [ "flex_shrink", "elements_8hpp.html#ga4629196b5ffc280054d35f2a9977e829", null ], + [ "xflex", "elements_8hpp.html#ga0dbba98e14f63f1dd5163cbdc4f42da8", null ], + [ "xflex_grow", "elements_8hpp.html#ga1618cb15307f29eb3d531e7b44c280d3", null ], + [ "xflex_shrink", "elements_8hpp.html#ga95275a9271934cf76e970c6650cc224d", null ], + [ "yflex", "elements_8hpp.html#ga42c7a33df6d890de30fc1ebb2d1b3ca6", null ], + [ "yflex_grow", "elements_8hpp.html#ga7eac3f709e905af8f583aed52093b7ce", null ], + [ "yflex_shrink", "elements_8hpp.html#gaf7d0757f5965aa579bccc125ff909256", null ], + [ "notflex", "elements_8hpp.html#ga845b0ea50d51024aa4e050447b46e1dd", null ], + [ "filler", "elements_8hpp.html#gac2a9ed2d22ec3c8811b61f4a901ed367", null ], + [ "size", "elements_8hpp.html#ga201220986fbdc539e42efe067985cbdb", null ], + [ "frame", "elements_8hpp.html#ad0d6a96f6e1fb6d67d9fa6323062a737", null ], + [ "xframe", "elements_8hpp.html#a2d0617c0912b732f059cf360ac951c49", null ], + [ "yframe", "elements_8hpp.html#a7ea9d3ceb2a977955125c6e4a6072325", null ], + [ "focus", "elements_8hpp.html#gaa2d7d671f184f85e0f396f2610fa6c2e", null ], + [ "select", "elements_8hpp.html#a9e3e2988ed61a129d82d634ad66f7eb1", null ], + [ "focusCursorBlock", "elements_8hpp.html#ga509ef7e7f8913ea3de7efd45e3301ea1", null ], + [ "focusCursorBlockBlinking", "elements_8hpp.html#gadda589914ba8fe863c905b6566557768", null ], + [ "focusCursorBar", "elements_8hpp.html#ga4f89e72e7001064e3eb8189c8317e95b", null ], + [ "focusCursorBarBlinking", "elements_8hpp.html#ga085a7c997e7364c5a54e73c7b84145db", null ], + [ "focusCursorUnderline", "elements_8hpp.html#ga61e1fe02a18c2b18e31ccc9cd3943823", null ], + [ "focusCursorUnderlineBlinking", "elements_8hpp.html#ga33637d59d1e52aa06dd2a94162adbfe9", null ], + [ "vscroll_indicator", "elements_8hpp.html#ga1974176e676afdb96d203e8e0f579219", null ], + [ "hscroll_indicator", "elements_8hpp.html#ga7f48136f949ccbde722dd93a6de4d0de", null ], + [ "reflect", "elements_8hpp.html#aaff8245861617a3d9e846e99de582a63", null ], + [ "clear_under", "elements_8hpp.html#ga17a89519e6b87e12b1e5811a702f7847", null ], + [ "hcenter", "elements_8hpp.html#gaf7d0d1e44c1a5424e42a5cddceacf7f7", null ], + [ "vcenter", "elements_8hpp.html#gad907a8a48bb9f9dfdb06402e9fc12316", null ], + [ "center", "elements_8hpp.html#ga5b11656305fce8427b81daf1c35883f1", null ], + [ "align_right", "elements_8hpp.html#ga778e52afe28f1978f1f7ef065ed92d6d", null ], + [ "nothing", "elements_8hpp.html#ga1bfd3885ac8b40dc82a1103725003c07", null ], + [ "Fit", "elements_8hpp.html#aee138f0b60ddc07682a785f55eb5fda6", null ] +]; \ No newline at end of file diff --git a/elements_8hpp_source.html b/elements_8hpp_source.html new file mode 100644 index 000000000..fb830b802 --- /dev/null +++ b/elements_8hpp_source.html @@ -0,0 +1,555 @@ + + + + + + + + +FTXUI: elements.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elements.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_DOM_ELEMENTS_HPP
+
5#define FTXUI_DOM_ELEMENTS_HPP
+
6
+
7#include <functional>
+
8#include <memory>
+
9
+
10#include "ftxui/dom/canvas.hpp"
+ + + +
14#include "ftxui/dom/node.hpp"
+
15#include "ftxui/screen/box.hpp"
+ + +
18#include "ftxui/util/ref.hpp"
+
19
+
20namespace ftxui {
+
21class Node;
+
22using Element = std::shared_ptr<Node>;
+
23using Elements = std::vector<Element>;
+
24using Decorator = std::function<Element(Element)>;
+
25using GraphFunction = std::function<std::vector<int>(int, int)>;
+
26
+
27/// @brief BorderStyle is an enumeration that represents the different styles
+
28/// of borders that can be applied to elements in the terminal UI.
+
29///
+
30/// BorderStyle is an enumeration that represents the different styles of
+
31/// borders that can be applied to elements in the terminal UI.
+
32/// It is used to define the visual appearance of borders around elements,
+
33/// such as windows, frames, or separators.
+
34/// @ingroup dom
+ +
43
+
44// Pipe elements into decorator togethers.
+
45// For instance the next lines are equivalents:
+
46// -> text("ftxui") | bold | underlined
+
47// -> underlined(bold(text("FTXUI")))
+ + + + +
52
+
53// --- Widget ---
+
54Element text(std::string text);
+
55Element vtext(std::string text);
+ + + + + + + +
63Element separator(Pixel);
+
64Element separatorCharacter(std::string);
+ +
66 float right,
+
67 Color unselected_color,
+
68 Color selected_color);
+ +
70 float down,
+
71 Color unselected_color,
+
72 Color selected_color);
+
73Element gauge(float progress);
+
74Element gaugeLeft(float progress);
+
75Element gaugeRight(float progress);
+
76Element gaugeUp(float progress);
+
77Element gaugeDown(float progress);
+
78Element gaugeDirection(float progress, Direction direction);
+ + + + + + + + + + +
89Decorator borderWith(const Pixel&);
+
90Element window(Element title, Element content, BorderStyle border = ROUNDED);
+
91Element spinner(int charset_index, size_t image_index);
+
92Element paragraph(const std::string& text);
+
93Element paragraphAlignLeft(const std::string& text);
+
94Element paragraphAlignRight(const std::string& text);
+
95Element paragraphAlignCenter(const std::string& text);
+
96Element paragraphAlignJustify(const std::string& text);
+ + +
99Element canvas(ConstRef<Canvas>);
+
100Element canvas(int width, int height, std::function<void(Canvas&)>);
+
101Element canvas(std::function<void(Canvas&)>);
+
102
+
103// -- Decorator ---
+ + + + + + + + +
112Decorator color(Color);
+
113Decorator bgcolor(Color);
+
114Decorator color(const LinearGradient&);
+
115Decorator bgcolor(const LinearGradient&);
+
116Element color(Color, Element);
+
117Element bgcolor(Color, Element);
+
118Element color(const LinearGradient&, Element);
+
119Element bgcolor(const LinearGradient&, Element);
+
120Decorator focusPosition(int x, int y);
+
121Decorator focusPositionRelative(float x, float y);
+ +
123Decorator hyperlink(std::string link);
+
124Element hyperlink(std::string link, Element child);
+ +
126Decorator selectionColor(Color foreground);
+
127Decorator selectionBackgroundColor(Color foreground);
+
128Decorator selectionForegroundColor(Color foreground);
+
129Decorator selectionStyle(std::function<void(Pixel&)> style);
+
130
+
131// --- Layout is
+
132// Horizontal, Vertical or stacked set of elements.
+ + + +
136Element flexbox(Elements, FlexboxConfig config = FlexboxConfig());
+
137Element gridbox(std::vector<Elements> lines);
+
138
+
139Element hflow(Elements); // Helper: default flexbox with row direction.
+
140Element vflow(Elements); // Helper: default flexbox with column direction.
+
141
+
142// -- Flexibility ---
+
143// Define how to share the remaining space when not all of it is used inside a
+
144// container.
+
145Element flex(Element); // Expand/Minimize if possible/needed.
+
146Element flex_grow(Element); // Expand element if possible.
+
147Element flex_shrink(Element); // Minimize element if needed.
+
148
+
149Element xflex(Element); // Expand/Minimize if possible/needed on X axis.
+
150Element xflex_grow(Element); // Expand element if possible on X axis.
+
151Element xflex_shrink(Element); // Minimize element if needed on X axis.
+
152
+
153Element yflex(Element); // Expand/Minimize if possible/needed on Y axis.
+
154Element yflex_grow(Element); // Expand element if possible on Y axis.
+
155Element yflex_shrink(Element); // Minimize element if needed on Y axis.
+
156
+
157Element notflex(Element); // Reset the flex attribute.
+
158Element filler(); // A blank expandable element.
+
159
+
160// -- Size override;
+ + + +
164
+
165// --- Frame ---
+
166// A frame is a scrollable area. The internal area is potentially larger than
+
167// the external one. The internal area is scrolled in order to make visible the
+
168// focused element.
+ + + + +
173Element select(Element e); // Deprecated - Alias for focus.
+
174
+
175// --- Cursor ---
+
176// Those are similar to `focus`, but also change the shape of the cursor.
+ + + + + + +
183
+
184// --- Misc ---
+ + +
187Decorator reflect(Box& box);
+
188// Before drawing the |element| clear the pixel below. This is useful in
+
189// combinaison with dbox.
+ +
191
+
192// --- Util --------------------------------------------------------------------
+ + + + +
197Element nothing(Element element);
+
198
+
+
199namespace Dimension {
+
200Dimensions Fit(Element&, bool extend_beyond_screen = false);
+
201} // namespace Dimension
+
+
202
+
203} // namespace ftxui
+
204
+
205// Make container able to take any number of children as input.
+
206#include "ftxui/dom/take_any_args.hpp"
+
207
+
208// Include old definitions using wstring.
+ +
210#endif // FTXUI_DOM_ELEMENTS_HPP
+ + + + + + +
Decorator bgcolor(Color)
Decorate using a background color.
+
Element window(Element title, Element content, BorderStyle border=ROUNDED)
Draw window with a title and a border around the element.
+
Element borderDouble(Element)
Draw a double border around the element.
+
Element focusCursorBarBlinking(Element)
Same as focus, but set the cursor shape to be a blinking bar.
Definition frame.cpp:189
+
Element xflex(Element)
Expand/Minimize if possible/needed on the X axis.
Definition flex.cpp:129
+
Element gaugeDirection(float progress, Direction direction)
Draw a high definition progress bar progressing in specified direction.
+
Decorator focusPositionRelative(float x, float y)
Used inside a frame, this force the view to be scrolled toward a a given position....
+
Element separatorStyled(BorderStyle)
Draw a vertical or horizontal separation in between two other elements.
+
Element xflex_grow(Element)
Expand if possible on the X axis.
Definition flex.cpp:147
+
Element underlinedDouble(Element)
Apply a underlinedDouble to text.
+
Element clear_under(Element element)
Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
+
Element borderDashed(Element)
Draw a dashed border around the element.
+
Element separatorEmpty()
Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
+
Element vscroll_indicator(Element)
Display a vertical scrollbar on the right. Colors follow the content.
+
Element nothing(Element element)
A decoration doing absolutely nothing.
Definition dom/util.cpp:28
+
Decorator size(WidthOrHeight, Constraint, int value)
Apply a constraint on the size of an element.
+
Direction
Direction is an enumeration that represents the four cardinal directions.
Definition direction.hpp:13
+
Element flex(Element)
Make a child element to expand proportionally to the space left in a container.
Definition flex.cpp:123
+
Element paragraphAlignRight(const std::string &text)
Return an element drawing the paragraph on multiple lines, aligned on the right.
+
Element gaugeRight(float progress)
Draw a high definition progress bar progressing from left to right.
+
Element focusCursorUnderlineBlinking(Element)
Same as focus, but set the cursor shape to be a blinking underline.
Definition frame.cpp:217
+
Element bold(Element)
Use a bold font, for elements with more emphasis.
Definition bold.cpp:33
+
Element separatorLight()
Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
+
Element spinner(int charset_index, size_t image_index)
Useful to represent the effect of time and/or events. This displays an ASCII art "video".
+
Element borderRounded(Element)
Draw a rounded border around the element.
+
Element emptyElement()
Definition dom/util.cpp:140
+
Element yflex(Element)
Expand/Minimize if possible/needed on the Y axis.
Definition flex.cpp:135
+
Element flex_shrink(Element)
Minimize if needed.
Definition flex.cpp:159
+
Element focusCursorBar(Element)
Same as focus, but set the cursor shape to be a still block.
Definition frame.cpp:175
+
Element focusCursorBlock(Element)
Same as focus, but set the cursor shape to be a still block.
Definition frame.cpp:147
+
Element underlined(Element)
Underline the given element.
+
Element center(Element)
Center an element horizontally and vertically.
+
Element focusCursorUnderline(Element)
Same as focus, but set the cursor shape to be a still underline.
Definition frame.cpp:203
+
Element borderHeavy(Element)
Draw a heavy border around the element.
+
Element inverted(Element)
Add a filter that will invert the foreground and the background colors.
Definition inverted.cpp:34
+
Element paragraphAlignCenter(const std::string &text)
Return an element drawing the paragraph on multiple lines, aligned on the center.
+
Element gaugeUp(float progress)
Draw a high definition progress bar progressing from bottom to top.
+
Element text(std::wstring text)
Display a piece of unicode text.
Definition text.cpp:160
+
Element align_right(Element)
Align an element on the right side.
+
Decorator focusPosition(int x, int y)
Used inside a frame, this force the view to be scrolled toward a a given position....
+
Element yflex_grow(Element)
Expand if possible on the Y axis.
Definition flex.cpp:153
+
Element hscroll_indicator(Element)
Display a horizontal scrollbar at the bottom. Colors follow the content.
+
Element flex_grow(Element)
Expand if possible.
Definition flex.cpp:141
+
Element separatorDashed()
Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
+
Element notflex(Element)
Make the element not flexible.
Definition flex.cpp:177
+
Element strikethrough(Element)
Apply a strikethrough to text.
+
Element italic(Element)
Apply a underlinedDouble to text.
Definition italic.cpp:17
+
Element dbox(Elements)
Stack several element on top of each other.
+
Element xflex_shrink(Element)
Minimize if needed on the X axis.
Definition flex.cpp:165
+
Element gaugeLeft(float progress)
Draw a high definition progress bar progressing from right to left.
+
Element separatorCharacter(std::string)
Draw a vertical or horizontal separation in between two other elements.
+
Element vtext(std::wstring text)
Display a piece unicode text vertically.
Definition text.cpp:220
+
Element borderLight(Element)
Draw a light border around the element.
+
Element focus(Element)
Set the child to be the one focused among its siblings.
Definition frame.cpp:101
+
Element paragraphAlignLeft(const std::string &text)
Return an element drawing the paragraph on multiple lines, aligned on the left.
+
Decorator borderWith(const Pixel &)
Same as border but with a constant Pixel around the element.
+
Decorator borderStyled(BorderStyle)
Same as border but with different styles.
+
Element separator()
Draw a vertical or horizontal separation in between two other elements.
+
Element filler()
An element that will take expand proportionally to the space left in a container.
Definition flex.cpp:98
+
Element dim(Element)
Use a light font, for elements with less emphasis.
Definition dim.cpp:33
+
Element automerge(Element child)
Enable character to be automatically merged with others nearby.
Definition automerge.cpp:17
+
Decorator hyperlink(std::string link)
Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported onl...
Definition hyperlink.cpp:70
+
Element blink(Element)
The text drawn alternates in between visible and hidden.
Definition blink.cpp:33
+
Element vcenter(Element)
Center an element vertically.
+
Element separatorDouble()
Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
+
Element focusCursorBlockBlinking(Element)
Same as focus, but set the cursor shape to be a blinking block.
Definition frame.cpp:161
+
Element gauge(float progress)
Draw a high definition progress bar.
+
Element paragraphAlignJustify(const std::string &text)
Return an element drawing the paragraph on multiple lines, aligned using a justified alignment....
+
Element border(Element)
Draw a border around the element.
+
Element separatorHeavy()
Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
+
Element borderEmpty(Element)
Draw an empty border around the element.
+
Decorator color(Color)
Decorate using a foreground color.
+
Element yflex_shrink(Element)
Minimize if needed on the Y axis.
Definition flex.cpp:171
+
Element hcenter(Element)
Center an element horizontally.
+
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition vbox.cpp:96
+
BorderStyle
BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
Definition elements.hpp:35
+
Element gaugeDown(float progress)
Draw a high definition progress bar progressing from top to bottom.
+
@ EMPTY
Definition elements.hpp:41
+
@ DOUBLE
Definition elements.hpp:39
+
@ HEAVY
Definition elements.hpp:38
+
@ ROUNDED
Definition elements.hpp:40
+
@ DASHED
Definition elements.hpp:37
+
@ LIGHT
Definition elements.hpp:36
+
Dimensions is a structure that represents the size of the terminal.
Definition terminal.hpp:11
+ +
Dimensions Fit(Element &, bool extend_beyond_screen=false)
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
WidthOrHeight
Definition elements.hpp:161
+ + +
std::function< Element(Element)> Decorator
Definition elements.hpp:24
+
Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
Definition flexbox.cpp:251
+
Element separatorVSelector(float up, float down, Color unselected_color, Color selected_color)
Draw an vertical bar, with the area in between up/downcolored differently.
+
std::shared_ptr< Node > Element
Definition elements.hpp:22
+
Element xframe(Element)
Same as frame, but only on the x-axis.
Definition frame.cpp:126
+
Element hflow(Elements)
A container displaying elements in rows from left to right. When filled, it starts on a new row below...
Definition flexbox.cpp:269
+
Decorator selectionStyle(std::function< void(Pixel &)> style)
Set the style of an element when selected.
+
Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)
Draw a horizontal bar, with the area in between left/right colored differently.
+
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition hbox.cpp:94
+
Element canvas(ConstRef< Canvas >)
Produce an element from a Canvas, or a reference to a Canvas.
+
std::vector< Element > Elements
Definition elements.hpp:23
+
Decorator selectionForegroundColor(Color foreground)
Set the foreground color of an element when selected. Note that the style is applied on top of the ex...
+
Component operator|(Component component, ComponentDecorator decorator)
+
Decorator selectionBackgroundColor(Color foreground)
Set the background color of an element when selected. Note that the style is applied on top of the ex...
+
Element yframe(Element)
Same as frame, but only on the y-axis.
Definition frame.cpp:134
+
Decorator selectionColor(Color foreground)
Set the color of an element when selected.
+
Element select(Element e)
Set the child to be the one focused among its siblings.
Definition frame.cpp:108
+
Element selectionStyleReset(Element)
Reset the selection style of an element.
+
Decorator reflect(Box &box)
Definition reflect.cpp:43
+
std::function< std::vector< int >(int, int)> GraphFunction
Definition elements.hpp:25
+
Element gridbox(std::vector< Elements > lines)
A container displaying a grid of elements.
+
Elements paragraph(std::wstring text)
+
Element frame(Element)
Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
Definition frame.cpp:118
+
Component & operator|=(Component &component, ComponentDecorator decorator)
+ +
@ LESS_THAN
Definition elements.hpp:162
+ +
@ GREATER_THAN
Definition elements.hpp:162
+
Element vflow(Elements)
A container displaying elements in rows from top to bottom. When filled, it starts on a new columns o...
Definition flexbox.cpp:289
+
Element graph(GraphFunction)
Draw a graph using a GraphFunction.
+ + +
std::uint8_t left
Definition screen.cpp:130
+
std::uint8_t down
Definition screen.cpp:133
+
std::uint8_t right
Definition screen.cpp:132
+ +
+
+ + + + + diff --git a/event_8cpp.html b/event_8cpp.html new file mode 100644 index 000000000..ba79d7d32 --- /dev/null +++ b/event_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: event.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
event.cpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/event_8cpp_source.html b/event_8cpp_source.html new file mode 100644 index 000000000..63d076406 --- /dev/null +++ b/event_8cpp_source.html @@ -0,0 +1,871 @@ + + + + + + + + +FTXUI: event.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
event.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#include <map> // for map
+
5#include <string>
+
6#include <utility> // for move
+
7
+ +
9#include "ftxui/component/mouse.hpp" // for Mouse
+
10#include "ftxui/screen/string.hpp" // for to_wstring
+
11
+
12// Disable warning for shadowing variable, for every compilers. Indeed, there is
+
13// a static Event for every letter of the alphabet:
+
14#ifdef __clang__
+
15#pragma clang diagnostic ignored "-Wshadow"
+
16#elif __GNUC__
+
17#pragma GCC diagnostic ignored "-Wshadow"
+
18#elif defined(_MSC_VER)
+
19#pragma warning(disable : 6244)
+
20#pragma warning(disable : 6246)
+
21#endif
+
22
+
23namespace ftxui {
+
24
+
25/// @brief An event corresponding to a given typed character.
+
26/// @param input The character typed by the user.
+
27// static
+
+
28Event Event::Character(std::string input) {
+
29 Event event;
+
30 event.input_ = std::move(input);
+
31 event.type_ = Type::Character;
+
32 return event;
+
33}
+
+
34
+
35/// @brief An event corresponding to a given typed character.
+
36/// @param c The character typed by the user.
+
37// static
+
+
38Event Event::Character(char c) {
+
39 return Event::Character(std::string{c});
+
40}
+
+
41
+
42/// @brief An event corresponding to a given typed character.
+
43/// @param c The character typed by the user.
+
44// static
+
+
45Event Event::Character(wchar_t c) {
+
46 return Event::Character(to_string(std::wstring{c}));
+
47}
+
+
48
+
49/// @brief An event corresponding to a given typed character.
+
50/// @param input The sequence of character send by the terminal.
+
51/// @param mouse The mouse state.
+
52// static
+
+
53Event Event::Mouse(std::string input, struct Mouse mouse) {
+
54 Event event;
+
55 event.input_ = std::move(input);
+
56 event.type_ = Type::Mouse;
+
57 event.data_.mouse = mouse; // NOLINT
+
58 return event;
+
59}
+
+
60
+
61/// @brief An event corresponding to a terminal DCS (Device Control String).
+
62// static
+
+
63Event Event::CursorShape(std::string input, int shape) {
+
64 Event event;
+
65 event.input_ = std::move(input);
+
66 event.type_ = Type::CursorShape;
+
67 event.data_.cursor_shape = shape; // NOLINT
+
68 return event;
+
69}
+
+
70
+
71/// @brief An custom event whose meaning is defined by the user of the library.
+
72/// @param input An arbitrary sequence of character defined by the developer.
+
73// static
+
+
74Event Event::Special(std::string input) {
+
75 Event event;
+
76 event.input_ = std::move(input);
+
77 return event;
+
78}
+
+
79
+
80/// @internal
+
81// static
+
+
82Event Event::CursorPosition(std::string input, int x, int y) {
+
83 Event event;
+
84 event.input_ = std::move(input);
+
85 event.type_ = Type::CursorPosition;
+
86 event.data_.cursor = {x, y}; // NOLINT
+
87 return event;
+
88}
+
+
89
+
90/// @brief Return a string representation of the event.
+
+
91std::string Event::DebugString() const {
+
92 static std::map<Event, const char*> event_to_string = {
+
93 // --- Arrow ---
+
94 {Event::ArrowLeft, "Event::ArrowLeft"},
+
95 {Event::ArrowRight, "Event::ArrowRight"},
+
96 {Event::ArrowUp, "Event::ArrowUp"},
+
97 {Event::ArrowDown, "Event::ArrowDown"},
+
98
+
99 // --- ArrowCtrl ---
+
100 {Event::ArrowLeftCtrl, "Event::ArrowLeftCtrl"},
+
101 {Event::ArrowRightCtrl, "Event::ArrowRightCtrl"},
+
102 {Event::ArrowUpCtrl, "Event::ArrowUpCtrl"},
+
103 {Event::ArrowDownCtrl, "Event::ArrowDownCtrl"},
+
104
+
105 // --- Other ---
+
106 {Event::Backspace, "Event::Backspace"},
+
107 {Event::Delete, "Event::Delete"},
+
108 {Event::Escape, "Event::Escape"},
+
109 {Event::Return, "Event::Return"},
+
110 {Event::Tab, "Event::Tab"},
+
111 {Event::TabReverse, "Event::TabReverse"},
+
112
+
113 // --- Function keys ---
+
114 {Event::F1, "Event::F1"},
+
115 {Event::F2, "Event::F2"},
+
116 {Event::F3, "Event::F3"},
+
117 {Event::F4, "Event::F4"},
+
118 {Event::F5, "Event::F5"},
+
119 {Event::F6, "Event::F6"},
+
120 {Event::F7, "Event::F7"},
+
121 {Event::F8, "Event::F8"},
+
122 {Event::F9, "Event::F9"},
+
123 {Event::F10, "Event::F10"},
+
124 {Event::F11, "Event::F11"},
+
125 {Event::F12, "Event::F12"},
+
126
+
127 // --- Navigation keys ---
+
128 {Event::Insert, "Event::Insert"},
+
129 {Event::Home, "Event::Home"},
+
130 {Event::End, "Event::End"},
+
131 {Event::PageUp, "Event::PageUp"},
+
132 {Event::PageDown, "Event::PageDown"},
+
133
+
134 // --- Control keys ---
+
135 {Event::CtrlA, "Event::CtrlA"},
+
136 {Event::CtrlB, "Event::CtrlB"},
+
137 {Event::CtrlC, "Event::CtrlC"},
+
138 {Event::CtrlD, "Event::CtrlD"},
+
139 {Event::CtrlE, "Event::CtrlE"},
+
140 {Event::CtrlF, "Event::CtrlF"},
+
141 {Event::CtrlG, "Event::CtrlG"},
+
142 {Event::CtrlH, "Event::CtrlH"},
+
143 {Event::CtrlI, "Event::CtrlI"},
+
144 {Event::CtrlJ, "Event::CtrlJ"},
+
145 {Event::CtrlK, "Event::CtrlK"},
+
146 {Event::CtrlL, "Event::CtrlL"},
+
147 {Event::CtrlM, "Event::CtrlM"},
+
148 {Event::CtrlN, "Event::CtrlN"},
+
149 {Event::CtrlO, "Event::CtrlO"},
+
150 {Event::CtrlP, "Event::CtrlP"},
+
151 {Event::CtrlQ, "Event::CtrlQ"},
+
152 {Event::CtrlR, "Event::CtrlR"},
+
153 {Event::CtrlS, "Event::CtrlS"},
+
154 {Event::CtrlT, "Event::CtrlT"},
+
155 {Event::CtrlU, "Event::CtrlU"},
+
156 {Event::CtrlV, "Event::CtrlV"},
+
157 {Event::CtrlW, "Event::CtrlW"},
+
158 {Event::CtrlX, "Event::CtrlX"},
+
159 {Event::CtrlY, "Event::CtrlY"},
+
160 {Event::CtrlZ, "Event::CtrlZ"},
+
161
+
162 // --- Alt keys ---
+
163 {Event::AltA, "Event::AltA"},
+
164 {Event::AltB, "Event::AltB"},
+
165 {Event::AltC, "Event::AltC"},
+
166 {Event::AltD, "Event::AltD"},
+
167 {Event::AltE, "Event::AltE"},
+
168 {Event::AltF, "Event::AltF"},
+
169 {Event::AltG, "Event::AltG"},
+
170 {Event::AltH, "Event::AltH"},
+
171 {Event::AltI, "Event::AltI"},
+
172 {Event::AltJ, "Event::AltJ"},
+
173 {Event::AltK, "Event::AltK"},
+
174 {Event::AltL, "Event::AltL"},
+
175 {Event::AltM, "Event::AltM"},
+
176 {Event::AltN, "Event::AltN"},
+
177 {Event::AltO, "Event::AltO"},
+
178 {Event::AltP, "Event::AltP"},
+
179 {Event::AltQ, "Event::AltQ"},
+
180 {Event::AltR, "Event::AltR"},
+
181 {Event::AltS, "Event::AltS"},
+
182 {Event::AltT, "Event::AltT"},
+
183 {Event::AltU, "Event::AltU"},
+
184 {Event::AltV, "Event::AltV"},
+
185 {Event::AltW, "Event::AltW"},
+
186 {Event::AltX, "Event::AltX"},
+
187 {Event::AltY, "Event::AltY"},
+
188 {Event::AltZ, "Event::AltZ"},
+
189
+
190 // --- CtrlAlt keys ---
+
191 {Event::CtrlAltA, "Event::CtrlAltA"},
+
192 {Event::CtrlAltB, "Event::CtrlAltB"},
+
193 {Event::CtrlAltC, "Event::CtrlAltC"},
+
194 {Event::CtrlAltD, "Event::CtrlAltD"},
+
195 {Event::CtrlAltE, "Event::CtrlAltE"},
+
196 {Event::CtrlAltF, "Event::CtrlAltF"},
+
197 {Event::CtrlAltG, "Event::CtrlAltG"},
+
198 {Event::CtrlAltH, "Event::CtrlAltH"},
+
199 {Event::CtrlAltI, "Event::CtrlAltI"},
+
200 {Event::CtrlAltJ, "Event::CtrlAltJ"},
+
201 {Event::CtrlAltK, "Event::CtrlAltK"},
+
202 {Event::CtrlAltL, "Event::CtrlAltL"},
+
203 {Event::CtrlAltM, "Event::CtrlAltM"},
+
204 {Event::CtrlAltN, "Event::CtrlAltN"},
+
205 {Event::CtrlAltO, "Event::CtrlAltO"},
+
206 {Event::CtrlAltP, "Event::CtrlAltP"},
+
207 {Event::CtrlAltQ, "Event::CtrlAltQ"},
+
208 {Event::CtrlAltR, "Event::CtrlAltR"},
+
209 {Event::CtrlAltS, "Event::CtrlAltS"},
+
210 {Event::CtrlAltT, "Event::CtrlAltT"},
+
211 {Event::CtrlAltU, "Event::CtrlAltU"},
+
212 {Event::CtrlAltV, "Event::CtrlAltV"},
+
213 {Event::CtrlAltW, "Event::CtrlAltW"},
+
214 {Event::CtrlAltX, "Event::CtrlAltX"},
+
215 {Event::CtrlAltY, "Event::CtrlAltY"},
+
216 {Event::CtrlAltZ, "Event::CtrlAltZ"},
+
217
+
218 // --- Custom ---
+
219 {Event::Custom, "Event::Custom"},
+
220 };
+
221
+
222 static std::map<Mouse::Button, const char*> mouse_button_string = {
+
223 {Mouse::Button::Left, ".button = Mouse::Left"},
+
224 {Mouse::Button::Middle, ".button = Mouse::Middle"},
+
225 {Mouse::Button::Right, ".button = Mouse::Right"},
+
226 {Mouse::Button::WheelUp, ".button = Mouse::WheelUp"},
+
227 {Mouse::Button::WheelDown, ".button = Mouse::WheelDown"},
+
228 {Mouse::Button::None, ".button = Mouse::None"},
+
229 {Mouse::Button::WheelLeft, ".button = Mouse::WheelLeft"},
+
230 {Mouse::Button::WheelRight, ".button = Mouse::WheelRight"},
+
231 };
+
232
+
233 static std::map<Mouse::Motion, const char*> mouse_motion_string = {
+
234 {Mouse::Motion::Pressed, ".motion = Mouse::Pressed"},
+
235 {Mouse::Motion::Released, ".motion = Mouse::Released"},
+
236 {Mouse::Motion::Moved, ".motion = Mouse::Moved"},
+
237 };
+
238
+
239 switch (type_) {
+
240 case Type::Character: {
+
241 return "Event::Character(\"" + input_ + "\")";
+
242 }
+
243 case Type::Mouse: {
+
244 std::string out = "Event::Mouse(\"...\", Mouse{";
+
245 out += std::string(mouse_button_string[data_.mouse.button]);
+
246 out += ", ";
+
247 out += std::string(mouse_motion_string[data_.mouse.motion]);
+
248 out += ", ";
+
249 if (data_.mouse.shift) {
+
250 out += ".shift = true, ";
+
251 }
+
252 if (data_.mouse.meta) {
+
253 out += ".meta = true, ";
+
254 }
+
255 if (data_.mouse.control) {
+
256 out += ".control = true, ";
+
257 }
+
258 out += ".x = " + std::to_string(data_.mouse.x);
+
259 out += ", ";
+
260 out += ".y = " + std::to_string(data_.mouse.y);
+
261 out += "})";
+
262 return out;
+
263 }
+
264 case Type::CursorShape:
+
265 return "Event::CursorShape(" + input_ + ", " +
+
266 std::to_string(data_.cursor_shape) + ")";
+
267 case Type::CursorPosition:
+
268 return "Event::CursorPosition(" + input_ + ", " +
+
269 std::to_string(data_.cursor.x) + ", " +
+
270 std::to_string(data_.cursor.y) + ")";
+
271 default: {
+
272 auto event_it = event_to_string.find(*this);
+
273 if (event_it != event_to_string.end()) {
+
274 return event_it->second;
+
275 }
+
276
+
277 return "";
+
278 }
+
279 }
+
280 return "";
+
281}
+
+
282
+
283// clang-format off
+
284// NOLINTBEGIN
+
285
+
286// --- Arrow ---
+
287const Event Event::ArrowLeft = Event::Special("\x1B[D");
+
288const Event Event::ArrowRight = Event::Special("\x1B[C");
+
289const Event Event::ArrowUp = Event::Special("\x1B[A");
+
290const Event Event::ArrowDown = Event::Special("\x1B[B");
+
291const Event Event::ArrowLeftCtrl = Event::Special("\x1B[1;5D");
+
292const Event Event::ArrowRightCtrl = Event::Special("\x1B[1;5C");
+
293const Event Event::ArrowUpCtrl = Event::Special("\x1B[1;5A");
+
294const Event Event::ArrowDownCtrl = Event::Special("\x1B[1;5B");
+ +
296const Event Event::Delete = Event::Special("\x1B[3~");
+
297const Event Event::Escape = Event::Special("\x1B");
+
298const Event Event::Return = Event::Special({10});
+
299const Event Event::Tab = Event::Special({9});
+
300const Event Event::TabReverse = Event::Special({27, 91, 90});
+
301
+
302// See https://invisible-island.net/xterm/xterm-function-keys.html
+
303// We follow xterm-new / vterm-xf86-v4 / mgt / screen
+
304const Event Event::F1 = Event::Special("\x1BOP");
+
305const Event Event::F2 = Event::Special("\x1BOQ");
+
306const Event Event::F3 = Event::Special("\x1BOR");
+
307const Event Event::F4 = Event::Special("\x1BOS");
+
308const Event Event::F5 = Event::Special("\x1B[15~");
+
309const Event Event::F6 = Event::Special("\x1B[17~");
+
310const Event Event::F7 = Event::Special("\x1B[18~");
+
311const Event Event::F8 = Event::Special("\x1B[19~");
+
312const Event Event::F9 = Event::Special("\x1B[20~");
+
313const Event Event::F10 = Event::Special("\x1B[21~");
+
314const Event Event::F11 = Event::Special("\x1B[23~");
+
315const Event Event::F12 = Event::Special("\x1B[24~");
+
316
+
317const Event Event::Insert = Event::Special("\x1B[2~");
+
318const Event Event::Home = Event::Special({27, 91, 72});
+
319const Event Event::End = Event::Special({27, 91, 70});
+
320const Event Event::PageUp = Event::Special({27, 91, 53, 126});
+
321const Event Event::PageDown = Event::Special({27, 91, 54, 126});
+
322const Event Event::Custom = Event::Special({0});
+
323
+
324const Event Event::a = Event::Character("a");
+
325const Event Event::b = Event::Character("b");
+
326const Event Event::c = Event::Character("c");
+
327const Event Event::d = Event::Character("d");
+
328const Event Event::e = Event::Character("e");
+
329const Event Event::f = Event::Character("f");
+
330const Event Event::g = Event::Character("g");
+
331const Event Event::h = Event::Character("h");
+
332const Event Event::i = Event::Character("i");
+
333const Event Event::j = Event::Character("j");
+
334const Event Event::k = Event::Character("k");
+
335const Event Event::l = Event::Character("l");
+
336const Event Event::m = Event::Character("m");
+
337const Event Event::n = Event::Character("n");
+
338const Event Event::o = Event::Character("o");
+
339const Event Event::p = Event::Character("p");
+
340const Event Event::q = Event::Character("q");
+
341const Event Event::r = Event::Character("r");
+
342const Event Event::s = Event::Character("s");
+
343const Event Event::t = Event::Character("t");
+
344const Event Event::u = Event::Character("u");
+
345const Event Event::v = Event::Character("v");
+
346const Event Event::w = Event::Character("w");
+
347const Event Event::x = Event::Character("x");
+
348const Event Event::y = Event::Character("y");
+
349const Event Event::z = Event::Character("z");
+
350
+
351const Event Event::A = Event::Character("A");
+
352const Event Event::B = Event::Character("B");
+
353const Event Event::C = Event::Character("C");
+
354const Event Event::D = Event::Character("D");
+
355const Event Event::E = Event::Character("E");
+
356const Event Event::F = Event::Character("F");
+
357const Event Event::G = Event::Character("G");
+
358const Event Event::H = Event::Character("H");
+
359const Event Event::I = Event::Character("I");
+
360const Event Event::J = Event::Character("J");
+
361const Event Event::K = Event::Character("K");
+
362const Event Event::L = Event::Character("L");
+
363const Event Event::M = Event::Character("M");
+
364const Event Event::N = Event::Character("N");
+
365const Event Event::O = Event::Character("O");
+
366const Event Event::P = Event::Character("P");
+
367const Event Event::Q = Event::Character("Q");
+
368const Event Event::R = Event::Character("R");
+
369const Event Event::S = Event::Character("S");
+
370const Event Event::T = Event::Character("T");
+
371const Event Event::U = Event::Character("U");
+
372const Event Event::V = Event::Character("V");
+
373const Event Event::W = Event::Character("W");
+
374const Event Event::X = Event::Character("X");
+
375const Event Event::Y = Event::Character("Y");
+
376const Event Event::Z = Event::Character("Z");
+
377
+
378const Event Event::CtrlA = Event::Special("\x01");
+
379const Event Event::CtrlB = Event::Special("\x02");
+
380const Event Event::CtrlC = Event::Special("\x03");
+
381const Event Event::CtrlD = Event::Special("\x04");
+
382const Event Event::CtrlE = Event::Special("\x05");
+
383const Event Event::CtrlF = Event::Special("\x06");
+
384const Event Event::CtrlG = Event::Special("\x07");
+
385const Event Event::CtrlH = Event::Special("\x08");
+
386const Event Event::CtrlI = Event::Special("\x09");
+
387const Event Event::CtrlJ = Event::Special("\x0a");
+
388const Event Event::CtrlK = Event::Special("\x0b");
+
389const Event Event::CtrlL = Event::Special("\x0c");
+
390const Event Event::CtrlM = Event::Special("\x0d");
+
391const Event Event::CtrlN = Event::Special("\x0e");
+
392const Event Event::CtrlO = Event::Special("\x0f");
+
393const Event Event::CtrlP = Event::Special("\x10");
+
394const Event Event::CtrlQ = Event::Special("\x11");
+
395const Event Event::CtrlR = Event::Special("\x12");
+
396const Event Event::CtrlS = Event::Special("\x13");
+
397const Event Event::CtrlT = Event::Special("\x14");
+
398const Event Event::CtrlU = Event::Special("\x15");
+
399const Event Event::CtrlV = Event::Special("\x16");
+
400const Event Event::CtrlW = Event::Special("\x17");
+
401const Event Event::CtrlX = Event::Special("\x18");
+
402const Event Event::CtrlY = Event::Special("\x19");
+
403const Event Event::CtrlZ = Event::Special("\x1a");
+
404
+
405const Event Event::AltA = Event::Special("\x1b""a");
+
406const Event Event::AltB = Event::Special("\x1b""b");
+
407const Event Event::AltC = Event::Special("\x1b""c");
+
408const Event Event::AltD = Event::Special("\x1b""d");
+
409const Event Event::AltE = Event::Special("\x1b""e");
+
410const Event Event::AltF = Event::Special("\x1b""f");
+
411const Event Event::AltG = Event::Special("\x1b""g");
+
412const Event Event::AltH = Event::Special("\x1b""h");
+
413const Event Event::AltI = Event::Special("\x1b""i");
+
414const Event Event::AltJ = Event::Special("\x1b""j");
+
415const Event Event::AltK = Event::Special("\x1b""k");
+
416const Event Event::AltL = Event::Special("\x1b""l");
+
417const Event Event::AltM = Event::Special("\x1b""m");
+
418const Event Event::AltN = Event::Special("\x1b""n");
+
419const Event Event::AltO = Event::Special("\x1b""o");
+
420const Event Event::AltP = Event::Special("\x1b""p");
+
421const Event Event::AltQ = Event::Special("\x1b""q");
+
422const Event Event::AltR = Event::Special("\x1b""r");
+
423const Event Event::AltS = Event::Special("\x1b""s");
+
424const Event Event::AltT = Event::Special("\x1b""t");
+
425const Event Event::AltU = Event::Special("\x1b""u");
+
426const Event Event::AltV = Event::Special("\x1b""v");
+
427const Event Event::AltW = Event::Special("\x1b""w");
+
428const Event Event::AltX = Event::Special("\x1b""x");
+
429const Event Event::AltY = Event::Special("\x1b""y");
+
430const Event Event::AltZ = Event::Special("\x1b""z");
+
431
+
432const Event Event::CtrlAltA = Event::Special("\x1b\x01");
+
433const Event Event::CtrlAltB = Event::Special("\x1b\x02");
+
434const Event Event::CtrlAltC = Event::Special("\x1b\x03");
+
435const Event Event::CtrlAltD = Event::Special("\x1b\x04");
+
436const Event Event::CtrlAltE = Event::Special("\x1b\x05");
+
437const Event Event::CtrlAltF = Event::Special("\x1b\x06");
+
438const Event Event::CtrlAltG = Event::Special("\x1b\x07");
+
439const Event Event::CtrlAltH = Event::Special("\x1b\x08");
+
440const Event Event::CtrlAltI = Event::Special("\x1b\x09");
+
441const Event Event::CtrlAltJ = Event::Special("\x1b\x0a");
+
442const Event Event::CtrlAltK = Event::Special("\x1b\x0b");
+
443const Event Event::CtrlAltL = Event::Special("\x1b\x0c");
+
444const Event Event::CtrlAltM = Event::Special("\x1b\x0d");
+
445const Event Event::CtrlAltN = Event::Special("\x1b\x0e");
+
446const Event Event::CtrlAltO = Event::Special("\x1b\x0f");
+
447const Event Event::CtrlAltP = Event::Special("\x1b\x10");
+
448const Event Event::CtrlAltQ = Event::Special("\x1b\x11");
+
449const Event Event::CtrlAltR = Event::Special("\x1b\x12");
+
450const Event Event::CtrlAltS = Event::Special("\x1b\x13");
+
451const Event Event::CtrlAltT = Event::Special("\x1b\x14");
+
452const Event Event::CtrlAltU = Event::Special("\x1b\x15");
+
453const Event Event::CtrlAltV = Event::Special("\x1b\x16");
+
454const Event Event::CtrlAltW = Event::Special("\x1b\x17");
+
455const Event Event::CtrlAltX = Event::Special("\x1b\x18");
+
456const Event Event::CtrlAltY = Event::Special("\x1b\x19");
+
457const Event Event::CtrlAltZ = Event::Special("\x1b\x1a");
+
458
+
459// NOLINTEND
+
460// clang-format on
+
461
+
462} // namespace ftxui
+ +
static const Event TabReverse
Definition event.hpp:56
+
static const Event j
Definition event.hpp:78
+
static const Event CtrlC
Definition event.hpp:71
+ + + + + + +
@ WheelRight
Supported terminal only.
Definition mouse.hpp:20
+ +
static const Event CtrlP
Definition event.hpp:84
+
static const Event CtrlV
Definition event.hpp:90
+
static const Event ArrowLeftCtrl
Definition event.hpp:45
+
static const Event CtrlL
Definition event.hpp:80
+
static const Event AltT
Definition event.hpp:88
+
static const Event w
Definition event.hpp:91
+
static const Event CtrlAltX
Definition event.hpp:92
+
static const Event D
Definition event.hpp:72
+ + + +
static const Event CtrlAltN
Definition event.hpp:82
+
static const Event a
Definition event.hpp:69
+
static const Event AltH
Definition event.hpp:76
+
static const Event AltF
Definition event.hpp:74
+
static const Event K
Definition event.hpp:79
+
static const Event T
Definition event.hpp:88
+
static const Event CtrlAltC
Definition event.hpp:71
+
static const Event X
Definition event.hpp:92
+
static const Event CtrlE
Definition event.hpp:73
+
static const Event Q
Definition event.hpp:85
+
static const Event u
Definition event.hpp:89
+
static const Event PageUp
Definition event.hpp:62
+
static const Event h
Definition event.hpp:76
+
static const Event CtrlAltF
Definition event.hpp:74
+
static const Event CtrlZ
Definition event.hpp:94
+
static const Event J
Definition event.hpp:78
+
static const Event CtrlU
Definition event.hpp:89
+
static const Event AltQ
Definition event.hpp:85
+
static const Event b
Definition event.hpp:70
+
static const Event Escape
Definition event.hpp:54
+
static const Event AltY
Definition event.hpp:93
+
static const Event CtrlAltI
Definition event.hpp:77
+
static const Event AltL
Definition event.hpp:80
+
static const Event AltW
Definition event.hpp:91
+
static const Event F12
Definition event.hpp:66
+
static const Event E
Definition event.hpp:73
+
static const Event m
Definition event.hpp:81
+
static const Event N
Definition event.hpp:82
+
static const Event CtrlAltP
Definition event.hpp:84
+
static const Event CtrlAltE
Definition event.hpp:73
+
static const Event F5
Definition event.hpp:66
+
static const Event CtrlF
Definition event.hpp:74
+
static const Event F3
Definition event.hpp:66
+
static const Event CtrlAltJ
Definition event.hpp:78
+
static const Event z
Definition event.hpp:94
+
static const Event AltK
Definition event.hpp:79
+
static const Event B
Definition event.hpp:70
+
static const Event H
Definition event.hpp:76
+
static const Event CtrlX
Definition event.hpp:92
+
static const Event F9
Definition event.hpp:66
+
static const Event AltC
Definition event.hpp:71
+
static const Event CtrlB
Definition event.hpp:70
+
static const Event CtrlAltH
Definition event.hpp:76
+
static const Event O
Definition event.hpp:83
+
static const Event R
Definition event.hpp:86
+
static const Event AltM
Definition event.hpp:81
+
static const Event CtrlR
Definition event.hpp:86
+
static const Event CtrlAltW
Definition event.hpp:91
+
static const Event CtrlAltO
Definition event.hpp:83
+
static const Event CtrlY
Definition event.hpp:93
+
static const Event Custom
Definition event.hpp:97
+
static const Event A
Definition event.hpp:69
+
static const Event AltG
Definition event.hpp:75
+
static const Event p
Definition event.hpp:84
+
static const Event l
Definition event.hpp:80
+
static const Event CtrlH
Definition event.hpp:76
+
struct Mouse mouse
Definition event.hpp:144
+
std::string DebugString() const
Return a string representation of the event.
Definition event.cpp:91
+
static const Event AltO
Definition event.hpp:83
+
static const Event CtrlJ
Definition event.hpp:78
+
static const Event CtrlAltM
Definition event.hpp:81
+
static const Event CtrlS
Definition event.hpp:87
+
static const Event Z
Definition event.hpp:94
+
static const Event AltR
Definition event.hpp:86
+
static const Event CtrlW
Definition event.hpp:91
+
static const Event CtrlN
Definition event.hpp:82
+
static const Event F2
Definition event.hpp:66
+
static const Event CtrlM
Definition event.hpp:81
+
static const Event G
Definition event.hpp:75
+
static const Event Backspace
Definition event.hpp:51
+
static const Event d
Definition event.hpp:72
+
static const Event CtrlAltR
Definition event.hpp:86
+
static const Event CtrlK
Definition event.hpp:79
+
static const Event x
Definition event.hpp:92
+
static const Event F7
Definition event.hpp:66
+
static const Event ArrowUp
Definition event.hpp:42
+
const std::string & input() const
Definition event.hpp:104
+
static const Event Tab
Definition event.hpp:55
+
static const Event r
Definition event.hpp:86
+
static const Event AltU
Definition event.hpp:89
+
static const Event CtrlQ
Definition event.hpp:85
+
static const Event CtrlAltZ
Definition event.hpp:94
+
static const Event AltN
Definition event.hpp:82
+
static const Event AltA
Definition event.hpp:69
+
static const Event ArrowDown
Definition event.hpp:43
+
static const Event End
Definition event.hpp:61
+
static const Event F11
Definition event.hpp:66
+
static const Event CtrlG
Definition event.hpp:75
+
static const Event n
Definition event.hpp:82
+
static const Event q
Definition event.hpp:85
+
static const Event AltZ
Definition event.hpp:94
+
static const Event Home
Definition event.hpp:60
+
static const Event C
Definition event.hpp:71
+
static const Event AltD
Definition event.hpp:72
+
static const Event CtrlAltY
Definition event.hpp:93
+
static const Event AltJ
Definition event.hpp:78
+
static const Event F8
Definition event.hpp:66
+
static const Event CtrlAltL
Definition event.hpp:80
+
static const Event U
Definition event.hpp:89
+
static const Event o
Definition event.hpp:83
+
static const Event AltB
Definition event.hpp:70
+
static const Event F4
Definition event.hpp:66
+
static const Event t
Definition event.hpp:88
+
static const Event y
Definition event.hpp:93
+
static const Event ArrowUpCtrl
Definition event.hpp:47
+
static const Event k
Definition event.hpp:79
+
static const Event CtrlAltS
Definition event.hpp:87
+
static const Event s
Definition event.hpp:87
+
static const Event I
Definition event.hpp:77
+
static const Event CtrlT
Definition event.hpp:88
+
static const Event F
Definition event.hpp:74
+
static const Event AltI
Definition event.hpp:77
+
static const Event F10
Definition event.hpp:66
+
static const Event AltP
Definition event.hpp:84
+
static const Event PageDown
Definition event.hpp:63
+
static const Event Y
Definition event.hpp:93
+
static const Event CtrlAltK
Definition event.hpp:79
+
static const Event F6
Definition event.hpp:66
+
static const Event CtrlAltG
Definition event.hpp:75
+
static const Event CtrlA
Definition event.hpp:69
+
static const Event i
Definition event.hpp:77
+
static const Event AltS
Definition event.hpp:87
+
static const Event g
Definition event.hpp:75
+
static const Event F1
Definition event.hpp:66
+
static const Event S
Definition event.hpp:87
+
static const Event Return
Definition event.hpp:53
+
static const Event CtrlAltU
Definition event.hpp:89
+
static const Event V
Definition event.hpp:90
+
static const Event CtrlAltT
Definition event.hpp:88
+
static const Event CtrlAltA
Definition event.hpp:69
+
static const Event AltE
Definition event.hpp:73
+
static const Event P
Definition event.hpp:84
+
static const Event CtrlD
Definition event.hpp:72
+
static const Event ArrowLeft
Definition event.hpp:40
+
static const Event CtrlAltB
Definition event.hpp:70
+
static const Event AltV
Definition event.hpp:90
+
static const Event v
Definition event.hpp:90
+
static const Event e
Definition event.hpp:73
+
static const Event CtrlO
Definition event.hpp:83
+
static const Event Delete
Definition event.hpp:52
+
static const Event CtrlAltV
Definition event.hpp:90
+
static const Event ArrowDownCtrl
Definition event.hpp:48
+
static const Event AltX
Definition event.hpp:92
+
static const Event CtrlAltD
Definition event.hpp:72
+
static const Event L
Definition event.hpp:80
+
static const Event W
Definition event.hpp:91
+
static const Event f
Definition event.hpp:74
+
static const Event Insert
Definition event.hpp:59
+
static const Event CtrlI
Definition event.hpp:77
+
static const Event ArrowRightCtrl
Definition event.hpp:46
+
static const Event c
Definition event.hpp:71
+
static const Event CtrlAltQ
Definition event.hpp:85
+
static const Event M
Definition event.hpp:81
+
static Event Special(std::string)
An custom event whose meaning is defined by the user of the library.
Definition event.cpp:74
+
static const Event ArrowRight
Definition event.hpp:41
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift,...
Definition mouse.hpp:11
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
std::string to_string(const std::wstring &s)
Convert a std::wstring into a UTF8 std::string.
Definition string.cpp:1566
+ +
+
+ + + + + diff --git a/event_8cppm.html b/event_8cppm.html new file mode 100644 index 000000000..c96522a23 --- /dev/null +++ b/event_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: event.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
event.cppm File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/event_8cppm_source.html b/event_8cppm_source.html new file mode 100644 index 000000000..f02ddcf0a --- /dev/null +++ b/event_8cppm_source.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: event.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
event.cppm
+
+
+Go to the documentation of this file.
1/// @module ftxui.component.event
+
2/// @brief Module file for the Event struct of the Component module
+
3
+
4module;
+
5
+ +
7
+
8export module ftxui.component.event;
+
9
+
10/**
+
11 * @namespace ftxui
+
12 * @brief The FTXUI ftxui:: namespace
+
13 */
+
14export namespace ftxui {
+ + +
17
+
18 using ftxui::Event;
+
19}
+ +
It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
+
ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
Module file for the Event struct of the Component module.
+
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/event_8hpp.html b/event_8hpp.html new file mode 100644 index 000000000..c476663d0 --- /dev/null +++ b/event_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: event.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
event.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

struct  Event
 Represent an event. It can be key press event, a terminal resize, or more ... More...
 
+ + + + +

+Namespaces

namespace  ftxui
 The FTXUI ftxui:: namespace.
 
+
+
+ + + + + diff --git a/event_8hpp_source.html b/event_8hpp_source.html new file mode 100644 index 000000000..b8de12027 --- /dev/null +++ b/event_8hpp_source.html @@ -0,0 +1,555 @@ + + + + + + + + +FTXUI: event.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
FTXUI 6.1.9 +
+
C++ functional terminal UI.
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
event.hpp
+
+
+Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
+
2// Use of this source code is governed by the MIT license that can be found in
+
3// the LICENSE file.
+
4#ifndef FTXUI_COMPONENT_EVENT_HPP
+
5#define FTXUI_COMPONENT_EVENT_HPP
+
6
+
7#include <ftxui/component/mouse.hpp> // for Mouse
+
8#include <string> // for string, operator==
+
9
+
10namespace ftxui {
+
11
+
12class ScreenInteractive;
+
13class ComponentBase;
+
14
+
15/// @brief Represent an event. It can be key press event, a terminal resize, or
+
16/// more ...
+
17///
+
18/// For example:
+
19/// - Printable character can be created using Event::Character('a').
+
20/// - Some special are predefined, like Event::ArrowLeft.
+
21/// - One can find arbitrary code for special Events using:
+
22/// ./example/util/print_key_press
+
23/// For instance, CTLR+A maps to Event::Special({1});
+
24///
+
25/// Useful documentation about xterm specification:
+
26/// https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+
27///
+
28/// @ingroup component
+
+
29struct Event {
+
30 // --- Constructor section ---------------------------------------------------
+
31 static Event Character(std::string);
+
32 static Event Character(char);
+
33 static Event Character(wchar_t);
+
34 static Event Special(std::string);
+
35 static Event Mouse(std::string, Mouse mouse);
+
36 static Event CursorPosition(std::string, int x, int y); // Internal
+
37 static Event CursorShape(std::string, int shape); // Internal
+
38
+
39 // --- Arrow ---
+
40 static const Event ArrowLeft;
+
41 static const Event ArrowRight;
+
42 static const Event ArrowUp;
+
43 static const Event ArrowDown;
+
44
+
45 static const Event ArrowLeftCtrl;
+
46 static const Event ArrowRightCtrl;
+
47 static const Event ArrowUpCtrl;
+
48 static const Event ArrowDownCtrl;
+
49
+
50 // --- Other ---
+
51 static const Event Backspace;
+
52 static const Event Delete;
+
53 static const Event Return;
+
54 static const Event Escape;
+
55 static const Event Tab;
+
56 static const Event TabReverse;
+
57
+
58 // --- Navigation keys ---
+
59 static const Event Insert;
+
60 static const Event Home;
+
61 static const Event End;
+
62 static const Event PageUp;
+
63 static const Event PageDown;
+
64
+
65 // --- Function keys ---
+
66 static const Event F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12;
+
67
+
68 // --- Control keys ---
+
69 static const Event a, A, CtrlA, AltA, CtrlAltA;
+
70 static const Event b, B, CtrlB, AltB, CtrlAltB;
+
71 static const Event c, C, CtrlC, AltC, CtrlAltC;
+
72 static const Event d, D, CtrlD, AltD, CtrlAltD;
+
73 static const Event e, E, CtrlE, AltE, CtrlAltE;
+
74 static const Event f, F, CtrlF, AltF, CtrlAltF;
+
75 static const Event g, G, CtrlG, AltG, CtrlAltG;
+
76 static const Event h, H, CtrlH, AltH, CtrlAltH;
+
77 static const Event i, I, CtrlI, AltI, CtrlAltI;
+
78 static const Event j, J, CtrlJ, AltJ, CtrlAltJ;
+
79 static const Event k, K, CtrlK, AltK, CtrlAltK;
+
80 static const Event l, L, CtrlL, AltL, CtrlAltL;
+
81 static const Event m, M, CtrlM, AltM, CtrlAltM;
+
82 static const Event n, N, CtrlN, AltN, CtrlAltN;
+
83 static const Event o, O, CtrlO, AltO, CtrlAltO;
+
84 static const Event p, P, CtrlP, AltP, CtrlAltP;
+
85 static const Event q, Q, CtrlQ, AltQ, CtrlAltQ;
+
86 static const Event r, R, CtrlR, AltR, CtrlAltR;
+
87 static const Event s, S, CtrlS, AltS, CtrlAltS;
+
88 static const Event t, T, CtrlT, AltT, CtrlAltT;
+
89 static const Event u, U, CtrlU, AltU, CtrlAltU;
+
90 static const Event v, V, CtrlV, AltV, CtrlAltV;
+
91 static const Event w, W, CtrlW, AltW, CtrlAltW;
+
92 static const Event x, X, CtrlX, AltX, CtrlAltX;
+
93 static const Event y, Y, CtrlY, AltY, CtrlAltY;
+
94 static const Event z, Z, CtrlZ, AltZ, CtrlAltZ;
+
95
+
96 // --- Custom ---
+
97 static const Event Custom;
+
98
+
99 //--- Method section ---------------------------------------------------------
+
100 bool operator==(const Event& other) const { return input_ == other.input_; }
+
101 bool operator!=(const Event& other) const { return !operator==(other); }
+
102 bool operator<(const Event& other) const { return input_ < other.input_; }
+
103
+
104 const std::string& input() const { return input_; }
+
105
+
106 bool is_character() const { return type_ == Type::Character; }
+
107 std::string character() const { return input_; }
+
108
+
109 bool is_mouse() const { return type_ == Type::Mouse; }
+
110 struct Mouse& mouse() { return data_.mouse; }
+
111
+
112 // --- Internal Method section -----------------------------------------------
+
113 bool is_cursor_position() const { return type_ == Type::CursorPosition; }
+
114 int cursor_x() const { return data_.cursor.x; }
+
115 int cursor_y() const { return data_.cursor.y; }
+
116
+
117 bool is_cursor_shape() const { return type_ == Type::CursorShape; }
+
118 int cursor_shape() const { return data_.cursor_shape; }
+
119
+
120 // Debug
+
121 std::string DebugString() const;
+
122
+
123 //--- State section ----------------------------------------------------------
+ +
125
+
126 private:
+
127 friend ComponentBase;
+
128 friend ScreenInteractive;
+
129 enum class Type {
+
130 Unknown,
+
131 Character,
+
132 Mouse,
+
133 CursorPosition,
+
134 CursorShape,
+
135 };
+
136 Type type_ = Type::Unknown;
+
137
+
138 struct Cursor {
+
139 int x = 0;
+
140 int y = 0;
+
141 };
+
142
+
143 union {
+
144 struct Mouse mouse;
+
145 struct Cursor cursor;
+ +
147 } data_ = {};
+
148
+
149 std::string input_;
+
150};
+
+
151
+
152} // namespace ftxui
+
153
+
154#endif /* end of include guard: FTXUI_COMPONENT_EVENT_HPP */
+
static const Event TabReverse
Definition event.hpp:56
+
int cursor_shape() const
Definition event.hpp:118
+
static const Event j
Definition event.hpp:78
+
static const Event CtrlC
Definition event.hpp:71
+
static const Event CtrlP
Definition event.hpp:84
+
static const Event CtrlV
Definition event.hpp:90
+
static const Event ArrowLeftCtrl
Definition event.hpp:45
+
static const Event CtrlL
Definition event.hpp:80
+
static const Event AltT
Definition event.hpp:88
+
std::string character() const
Definition event.hpp:107
+
static const Event w
Definition event.hpp:91
+
static const Event CtrlAltX
Definition event.hpp:92
+
static const Event D
Definition event.hpp:72
+
static const Event CtrlAltN
Definition event.hpp:82
+
static const Event a
Definition event.hpp:69
+
static Event CursorShape(std::string, int shape)
An event corresponding to a terminal DCS (Device Control String).
Definition event.cpp:63
+
static const Event AltH
Definition event.hpp:76
+
static const Event AltF
Definition event.hpp:74
+
static const Event K
Definition event.hpp:79
+
int cursor_y() const
Definition event.hpp:115
+
static const Event T
Definition event.hpp:88
+
static const Event CtrlAltC
Definition event.hpp:71
+
static const Event X
Definition event.hpp:92
+
int cursor_x() const
Definition event.hpp:114
+
static const Event CtrlE
Definition event.hpp:73
+
static const Event Q
Definition event.hpp:85
+
static const Event u
Definition event.hpp:89
+
static const Event PageUp
Definition event.hpp:62
+
static const Event h
Definition event.hpp:76
+
static const Event CtrlAltF
Definition event.hpp:74
+
static const Event CtrlZ
Definition event.hpp:94
+
static const Event J
Definition event.hpp:78
+
int cursor_shape
Definition event.hpp:146
+
static const Event CtrlU
Definition event.hpp:89
+
static const Event AltQ
Definition event.hpp:85
+
static const Event b
Definition event.hpp:70
+
static const Event Escape
Definition event.hpp:54
+
static const Event AltY
Definition event.hpp:93
+
static const Event CtrlAltI
Definition event.hpp:77
+
bool is_mouse() const
Definition event.hpp:109
+
static const Event AltL
Definition event.hpp:80
+
static const Event AltW
Definition event.hpp:91
+
static const Event F12
Definition event.hpp:66
+
struct Mouse & mouse()
Definition event.hpp:110
+
static const Event E
Definition event.hpp:73
+
static const Event m
Definition event.hpp:81
+
static const Event N
Definition event.hpp:82
+
bool is_cursor_position() const
Definition event.hpp:113
+
static const Event CtrlAltP
Definition event.hpp:84
+
static const Event CtrlAltE
Definition event.hpp:73
+
static const Event F5
Definition event.hpp:66
+
static const Event CtrlF
Definition event.hpp:74
+
static const Event F3
Definition event.hpp:66
+
static const Event CtrlAltJ
Definition event.hpp:78
+
static const Event z
Definition event.hpp:94
+
static const Event AltK
Definition event.hpp:79
+
static const Event B
Definition event.hpp:70
+
static const Event H
Definition event.hpp:76
+
static const Event CtrlX
Definition event.hpp:92
+
static const Event F9
Definition event.hpp:66
+
static const Event AltC
Definition event.hpp:71
+
static const Event CtrlB
Definition event.hpp:70
+
static const Event CtrlAltH
Definition event.hpp:76
+
static const Event O
Definition event.hpp:83
+
ScreenInteractive * screen_
Definition event.hpp:124
+
static const Event R
Definition event.hpp:86
+
static const Event AltM
Definition event.hpp:81
+
static const Event CtrlR
Definition event.hpp:86
+
static const Event CtrlAltW
Definition event.hpp:91
+
static const Event CtrlAltO
Definition event.hpp:83
+
static const Event CtrlY
Definition event.hpp:93
+
static const Event Custom
Definition event.hpp:97
+
static const Event A
Definition event.hpp:69
+
static const Event AltG
Definition event.hpp:75
+
static const Event p
Definition event.hpp:84
+
static const Event l
Definition event.hpp:80
+
static const Event CtrlH
Definition event.hpp:76
+
bool operator<(const Event &other) const
Definition event.hpp:102
+
struct Mouse mouse
Definition event.hpp:144
+
std::string DebugString() const
Return a string representation of the event.
Definition event.cpp:91
+
static Event Character(std::string)
An event corresponding to a given typed character.
Definition event.cpp:28
+
static const Event AltO
Definition event.hpp:83
+
static const Event CtrlJ
Definition event.hpp:78
+
static const Event CtrlAltM
Definition event.hpp:81
+
static const Event CtrlS
Definition event.hpp:87
+
static const Event Z
Definition event.hpp:94
+
static const Event AltR
Definition event.hpp:86
+
static const Event CtrlW
Definition event.hpp:91
+
static const Event CtrlN
Definition event.hpp:82
+
static const Event F2
Definition event.hpp:66
+
static const Event CtrlM
Definition event.hpp:81
+
static const Event G
Definition event.hpp:75
+
static const Event Backspace
Definition event.hpp:51
+
static const Event d
Definition event.hpp:72
+
static const Event CtrlAltR
Definition event.hpp:86
+
static const Event CtrlK
Definition event.hpp:79
+
static const Event x
Definition event.hpp:92
+
static const Event F7
Definition event.hpp:66
+
static const Event ArrowUp
Definition event.hpp:42
+
const std::string & input() const
Definition event.hpp:104
+
static const Event Tab
Definition event.hpp:55
+
static const Event r
Definition event.hpp:86
+
static const Event AltU
Definition event.hpp:89
+
static const Event CtrlQ
Definition event.hpp:85
+
static const Event CtrlAltZ
Definition event.hpp:94
+
static const Event AltN
Definition event.hpp:82
+
static const Event AltA
Definition event.hpp:69
+
static const Event ArrowDown
Definition event.hpp:43
+
struct Cursor cursor
Definition event.hpp:145
+
static const Event End
Definition event.hpp:61
+
static const Event F11
Definition event.hpp:66
+
static const Event CtrlG
Definition event.hpp:75
+
static const Event n
Definition event.hpp:82
+
static const Event q
Definition event.hpp:85
+
static const Event AltZ
Definition event.hpp:94
+
static const Event Home
Definition event.hpp:60
+
static const Event C
Definition event.hpp:71
+
static const Event AltD
Definition event.hpp:72
+
static const Event CtrlAltY
Definition event.hpp:93
+
static const Event AltJ
Definition event.hpp:78
+
static const Event F8
Definition event.hpp:66
+
static const Event CtrlAltL
Definition event.hpp:80
+
static const Event U
Definition event.hpp:89
+
static const Event o
Definition event.hpp:83
+
static const Event AltB
Definition event.hpp:70
+
static const Event F4
Definition event.hpp:66
+
static const Event t
Definition event.hpp:88
+
static const Event y
Definition event.hpp:93
+
static const Event ArrowUpCtrl
Definition event.hpp:47
+
static const Event k
Definition event.hpp:79
+
static const Event CtrlAltS
Definition event.hpp:87
+
static const Event s
Definition event.hpp:87
+
static const Event I
Definition event.hpp:77
+
static const Event CtrlT
Definition event.hpp:88
+
static const Event F
Definition event.hpp:74
+
static const Event AltI
Definition event.hpp:77
+
static const Event F10
Definition event.hpp:66
+
static const Event AltP
Definition event.hpp:84
+
static const Event PageDown
Definition event.hpp:63
+
static const Event Y
Definition event.hpp:93
+
static const Event CtrlAltK
Definition event.hpp:79
+
static Event CursorPosition(std::string, int x, int y)
Definition event.cpp:82
+
static const Event F6
Definition event.hpp:66
+
static const Event CtrlAltG
Definition event.hpp:75
+
static const Event CtrlA
Definition event.hpp:69
+
static const Event i
Definition event.hpp:77
+
static const Event AltS
Definition event.hpp:87
+
static const Event g
Definition event.hpp:75
+
static const Event F1
Definition event.hpp:66
+
static const Event S
Definition event.hpp:87
+
static const Event Return
Definition event.hpp:53
+
static const Event CtrlAltU
Definition event.hpp:89
+
bool operator==(const Event &other) const
Definition event.hpp:100
+
static const Event V
Definition event.hpp:90
+
static const Event CtrlAltT
Definition event.hpp:88
+
static const Event CtrlAltA
Definition event.hpp:69
+
static const Event AltE
Definition event.hpp:73
+
static const Event P
Definition event.hpp:84
+
static const Event CtrlD
Definition event.hpp:72
+
static const Event ArrowLeft
Definition event.hpp:40
+
static const Event CtrlAltB
Definition event.hpp:70
+
bool operator!=(const Event &other) const
Definition event.hpp:101
+
static const Event AltV
Definition event.hpp:90
+
static const Event v
Definition event.hpp:90
+
static const Event e
Definition event.hpp:73
+
bool is_character() const
Definition event.hpp:106
+
static const Event CtrlO
Definition event.hpp:83
+
static const Event Delete
Definition event.hpp:52
+
static const Event CtrlAltV
Definition event.hpp:90
+
static const Event ArrowDownCtrl
Definition event.hpp:48
+
static const Event AltX
Definition event.hpp:92
+
static const Event CtrlAltD
Definition event.hpp:72
+
static const Event L
Definition event.hpp:80
+
static const Event W
Definition event.hpp:91
+
static const Event f
Definition event.hpp:74
+
static const Event Insert
Definition event.hpp:59
+
static const Event CtrlI
Definition event.hpp:77
+
static const Event ArrowRightCtrl
Definition event.hpp:46
+
bool is_cursor_shape() const
Definition event.hpp:117
+
static const Event c
Definition event.hpp:71
+
static const Event CtrlAltQ
Definition event.hpp:85
+
static const Event M
Definition event.hpp:81
+
static Event Special(std::string)
An custom event whose meaning is defined by the user of the library.
Definition event.cpp:74
+
static const Event ArrowRight
Definition event.hpp:41
+
It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
+
ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
+
Represent an event. It can be key press event, a terminal resize, or more ...
Definition event.hpp:29
+
A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift,...
Definition mouse.hpp:11
+ +
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
+
+
+ + + + + diff --git a/examples/component/ftxui_example_button.js b/examples/component/ftxui_example_button.js new file mode 100644 index 000000000..2d83491ab --- /dev/null +++ b/examples/component/ftxui_example_button.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_button.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40224:function(){throw"Canceled!"},40242:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_button.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40216;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52856;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_button.wasm b/examples/component/ftxui_example_button.wasm new file mode 100755 index 0000000000000000000000000000000000000000..738c091cfd23e0add0b9703b8420404ac63bd152 GIT binary patch literal 308754 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
UKa+$5)Lqcn*K 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⋙g_=&|!hNmBQvos^sRju&~mS%I0VLgN^B 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 zj~qR?+zudbLylQP?P1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_button_animated.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39048:function(){throw"Canceled!"},39066:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_button_animated.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39040;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51944;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_button_animated.wasm b/examples/component/ftxui_example_button_animated.wasm new file mode 100755 index 0000000000000000000000000000000000000000..a19821edb62cb2d9850656be30f6dbec8d1f16e2 GIT binary patch literal 297420 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_button_animated.worker.js b/examples/component/ftxui_example_button_animated.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_button_animated.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_button_in_frame.js b/examples/component/ftxui_example_button_in_frame.js new file mode 100644 index 000000000..46e8f7da8 --- /dev/null +++ b/examples/component/ftxui_example_button_in_frame.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_button_in_frame.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39408:function(){throw"Canceled!"},39426:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_button_in_frame.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39400;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52040;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_button_in_frame.wasm b/examples/component/ftxui_example_button_in_frame.wasm new file mode 100755 index 0000000000000000000000000000000000000000..5372fba967ac54146db0fff487e3c931a0fdb764 GIT binary patch literal 300013 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≦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 zJWk2iA@50;Hf1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_button_style.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40648:function(){throw"Canceled!"},40666:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_button_style.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40640;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=53272;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_button_style.wasm b/examples/component/ftxui_example_button_style.wasm new file mode 100755 index 0000000000000000000000000000000000000000..13fc2cce0736dbf48ce3a7ed455417e08e75cd8b GIT binary patch literal 313951 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_button_style.worker.js b/examples/component/ftxui_example_button_style.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_button_style.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_canvas_animated.js b/examples/component/ftxui_example_canvas_animated.js new file mode 100644 index 000000000..db83a72cc --- /dev/null +++ b/examples/component/ftxui_example_canvas_animated.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_canvas_animated.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={48792:function(){throw"Canceled!"},48810:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_canvas_animated.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"h":___cxa_allocate_exception,"s":___cxa_thread_atexit,"g":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"i":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=48784;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=61432;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_canvas_animated.wasm b/examples/component/ftxui_example_canvas_animated.wasm new file mode 100755 index 0000000000000000000000000000000000000000..cb85324cb803cafc8576964d4d2c15c25fc663ac GIT binary patch literal 367415 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

xj0NBb43Pff#JCN#z0=ldU>Qf7w`b0F-q4$Q< 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 K@x6C^sQf=Ae$VIt literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_canvas_animated.worker.js b/examples/component/ftxui_example_canvas_animated.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_canvas_animated.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_checkbox.js b/examples/component/ftxui_example_checkbox.js new file mode 100644 index 000000000..e87523162 --- /dev/null +++ b/examples/component/ftxui_example_checkbox.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_checkbox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={29736:function(){throw"Canceled!"},29754:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_checkbox.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=29728;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=41768;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_checkbox.wasm b/examples/component/ftxui_example_checkbox.wasm new file mode 100755 index 0000000000000000000000000000000000000000..729273fc349e8cb4eee5d297d9179565d6fef4e4 GIT binary patch literal 270969 zcmeFa4ZL1Ob^p8f?6>EfeUj{8l$fM-KM$PSa7#38kx*aC*{LE3YP3jg?Y&}aul~=W zYA{gR8*&aNV63RLqEZEof`XPHDk!a5!i$K45)>2_H7X*$K~z*!Aph@g&FtrS&dDJv z_4B#C_x{D4XZGxwHEY(aS+mxfHM64^zT)rVD2n1OX>)u$9q})oKHg1};t$DWy8ja$ zpY!0K)9{Vm+Ek|8;%1)+FwU?*rC*wiCZh9ksluGP5_1S}l zJOaYV(P^-OhWw4dT=M@f6-@+5Fu|p1V2j#V?Hi zI!gHaH_<46UlcuwzkeJ35r6+L%YSj?NWUb?`1?Pin7@ zwZBIgoTpj(Nc;Ojm&~{smwc!Ac0mSg?$X$~cv0%oDvn(`LPK$yBqO{_lPrl{XOuRQ zWPftT;<%!C6pti{J19z4x)Imu6!By8Voh1*S>ymU8b|yWyF;BzT(&G;7Q5t-{aund zHxg%nbS{ltGL}Tq2pGq1ak_ZnLRUDFaZ&(1i8Gf{+zDP3r`eMijApSLTat~8B&w2j zcr%)=7~}t=kBBS4X})$22ZX?Yag;c6;*lyDNk*e2p>j+g6A+IVsW8B^C|RWL#+@=w zltWvOe&nMc30>TB$KQ+}=N61D(EsDbsau@n>1g)}k0|ou5k;0|kND%bh@&JOf8t@I z)&5cScxnPM5x6)WeN-AHSv-;GIf=4NZ%15QWDYuHW1e1)o?1sEvfECN#L=Q?!GZqdJWu%5 zzuejX(`2-hj&>G7d_fhxlPrx>2yTBFmRb}`9sd{A^$$WVO_!!|#sI-E!d$}xove!t zv&ft|hDg){mc6iF*hn19KmFmseq+cl1pG7EjLPVvL^6+(-dH73N|k-J@C!`Kc+oR+*Dj!{Cjap@%rLb`2*SY@rGl^cjw>FoAGbvx8RC;nx2dv;6qit&k!pU8d@-<4e*-p8Sax~Vj5ph}i+Q*( zdnXU)W^c{jlD#>51C@T{&dOe$ou0iidm#OJ`XhI%yC=OZ{cQS~^oI2M^qO=>dU<+r zdVc!W^bP4hr8DVIlJ6yVCErTEk=&kqDfwdZh2(R|4avuotCG_@n>(-UoYtA?>?s~B z9w_cFep&pyxUcwG@zdfb#l6Lkiysv~EOr-n7e6SzUwp6lZtrzq#g)Z>79T4SAm0s^W~|^kPe~xp-x9S}{}X$sf!g$nVd8ng1gHd46C1 zv;3#|5Au8SALl>Hf0*BsZ*h0$o89;F@8;jh@5(PvHheq3Grueu|5knnqxp^e>-nyH z{A>AFdH70xd;aBo{7d;4dH4dHeQQ2`Oa3_?KAYd1@65+<%0I)yjrk4vr}9tc*XN(e zugl+`T$)^)Uz1;*UzP93ugw3`az2)SH2+BcANjxMSLEX#&Ob!8%k#_f59Z?^$luSy z`|?Zj?fJ#|d-8wFFUsGWUzoo?{$BjA*_*O+vNvXz#k=D@?m_o~`0n`U?mqYK{9XBm zEy)G>`T6so|E}zv`32cK^7FH8`LW|~&)){P^YU}^x8`rj|201+e{=q({Ehk9`5W?o z$^SV&OMQKP{yGZ1Ha|0eP5w{$tMl=#`59!Ko^Q!F=i{%;Pvc=G-;+I<9Sear+@JkC zyASr_TKD0*}JoC*@n4f z{$YG}cKGQD|NrN#+x%zx(R6EiM!F?^Wx6MMAo*qT^Wy!0aX#`Is(e@@RzUzeVl zUg*wFzmwjbzCL|z`kM6E@$rwO|B?QCdPVx-^s@AW=?8%G{`AuHed+kc?qYX)d_DiY zE4@A*KR10#dVBo*=l^T^9yfkY`eu806A#CZzb<=ib|yr8P4-XO)@=M$*%{fEY;*P% z_Z4?qHk0j1A58C0$A6jrBE2vDS^9bRdH2)wC+WTEkJBHe<3CJyr$0!)pMEd>ZhBYx z?R5Ok^jqm2={M7Fq+d^WrC$Tbo$jmYSJK_5P>X-#_Sw~H0s+aJSPOWrNFK$j*--{-@ znVXaf84pN2%mDNz&z);b+RGDVUWKS@ADflN%HF#>GE=qZsOw_Jh)G0k4E*ev`OWP}5 zrK)9JG!Yn;bq)dA##i)Q<2E#Bf5uJrQW~Kfbt-%z#e%rGiyraM_sI2ols8qgq|Sj{ zCr2!w4CSA?fWF0beyCfj-c&s&`l;8Ir@>O|`jVd02-u4y;RU^@vz1O=NY*#W(-`9K z-{5NDTW1h`6SPbrSJcEODg_}X?X4;%b@nVs6Y9r|Z$$TExZ|lHkTv&P2Q)yW>I9h0 zZu-SP`c+4hJ!@tFyg&R45@BIf6GvD=1DXZ?5J>VpNR{N@{2&MTQeBKmvt5s+XD^U{ z2=?O5KG+M2&t@-ANY7rGXcE}VH_-CB_;#2njngu*kC>q6L{4#9`!wLR6i#!V)7qDG z2u_1*Y|Q6ynmTECJPb~wb3>e#4RadZ44g*C=H)cuoOFH9ZRn+S z+RV%>vK+U*mu_eloor~->4{Td9dDrhxOwE{$%x1kn-vHR5sAiE04oTGZtN!XUyuff zKsvIaS6IK05D1OJ`h{p!_Y$$!QtM+AHID{ReDV~3A9KX=4PGcAyAWKlSS+;(al``Q z{yQgkfeccVf~A^t{ba9zzr>cY@s=7u?$jv_2+=?@emZIoc%7aRbPNE>Wpp7ZGD%ee zc{^pZQ8_ z6DO4D&?kvM;2l%eBOuhN5l(foqdEaJXJZ$ecxti}s}C|3dG(L98pdNy>;^+Co@4>? z!wUCLn$#x`%|MIo&^Ug;#rZTuyUTT*Cs<~z!F&$G%SeKzrtF?#JzSPy%Jvdwuj9=y z3wVYpdpTm%rBZX?{a!NFxRWGpk4h)NOVa^PWnp9DO~THFW`$-O69Z`_R$zRrq-dx& zDU<_dq95j@)n5>mWfNs}S}sG%o2<#xQ%^d-$SOpJInx+3dB#RV`C4e9ZewbQ3>L@x49`b08y@n7gIeZO$B1cGHl3h5@` zr`FUDhWFx)Ym!qCC?*YH^*Z%jkUl|dmX`OXrhqoLf7m^^U&ItepVUKj7({3M>!}_S zM%0I$AvN@59f&lGn>W5bZoYiCrggj_u*346R9Hal{y|iICpKlta$wK689SkwxjUMi z^P;)_?zv@~Pv4E#1Vu41LNYah+DkM~ljdIIAL9ObOMl&Jn+nzSYvokG0NS@B?~nWd+Q^Y&6>J zzFe}l7a1=LW@pj>*hnqy(H3kus}L{-#S)W}p`4p&Rv;E7;zVKNNHy!FuT_FOPzK%o8E&^vs7|h^oi^Aprpg9;8RPrj$2-}hUFi2saY4A+dgb6nP;grrJf;I z`KPhwNR7%IB@>#J*a2F6qFyGE>g5ucn&INayDp4zT4z&T)Xk*)_beU_5^fX;HC>N3 zW0UA{$k*ofbJa{YRif+EujV$(QU;tr+bQj&U29&3NNPi+9^RoU`U?d9Z#8Uml>sMp zWPd&K~ z_C^4M$nPw-)j}h^ye_N9_A-+db$+xF0jcAqM=H@$2tlNqex%&7R!BrTWFx(SED604 z8JHCMwN9u(wS{gXR8zw!TMk!{jcP^1-86x0ga6dwB^oNGcVOk}llKf6SfVszjK1Z~qi75s>Hto)8T+y>>3gPi zimIvD+hjlWQdwRoOvdF*Ysbuqv~0|x3=jh71SzhCM6+yVbs!^JA=s)OGZ8fr-W!{= zhk6t^j%!A8%k}>XxvmR_F3gyzS!u zxOy&2!OK|)MQ7$r`7G$9CA@k0`d(HYC@IBo&+xxfP(-DRp%=heQu@N`g(Qa@luW%0 ztC@xOk4n0e)fW*=4M;#bY5i|Takb$ysXjyCreh8B15bZkBR^z7xv%He&z zr8}xgm#pjK?*X`30EVADfOH4|tgH2laT{*v^eyXb&LsK`rFVf&cXX{pF|%lNs15M2 zY~ey*Jh6nm2LtFWU8fSYn+t9pPyrijS&adeb!Yf-VLJrR1Iet}88LBcb%BYxu9q+W z2W;GY!}g6A_VQ-YRQ0SnJ1BWxkI_0qsdc@U1^oCmRh>_Db2QlgI2?YQ6r8M?n4&`q z?B9ZQy$*mo0dS`e_{g3U#{hVu*Jqny-g2Hj^13qxua}6qF~fh+W&~K=CgV-LN5FQA z&VYOm?%`chFKXW{+_bTmf_-lReN1>5s}~%*9jYwc)O#e@m2JV2cT4K3eWW-U6;kpM z$8J~e0kU<=MjCQ;xvBRksxGFvbW3j$<9z3=-OsYwOmf;@iQ8um@*ZUo}9qb5VJM05;-8o$aECihH?gl#8K)~ueaWlsYIQ!f{rqPD2J*iw36WzhSgdTor? zMEO2>P_kO=cG#A+(Q~#dRqIc+MS_gPO8r?1g8D@<(2tq%p4TMg>U{g!)n{yB7BhA0 zG0BhV=kmwXhQHHZP)ORvE#(n5BGas5OmLG(rk>RlSB1@k8mtXj7fTAgi1-A4gN7#ANaoMJM+h zzD^0QX8IKv6L4I1$5&c4A!)JuxPp3|VM9~JE=sZPJGGGOv z89TYD$W#Y1b35T9P|=iLHST0wHa&Nu+ShY@GJe?E&vE~G?;fk8;<9-=+LK>e<4OtN zRn~TO)#yZvP&RZnn?#>70>DyJ(6sd%J7j_Mf&|JZ8VLThZoA;tMGeNRZ;)Oadh8ao z#I6OK{tE#ONZF0mN$DEUPWV7A{{x;lnB*G9E#zI`uM)TMaSB1?nI$H9ieWo&a~Sngm~7 zCs;G=bC_Gsnf2s##KiA(ploldBfrVPI^MBO4lEZmE4iLcoy4%Vsm8dnf(X$_jHJ#m z%~b}UB>79QO@*Rf1l@3{Fk+3D^A@79B!N@QuT1M`cyiJRWy0%%YMy^{d_Km%VXMJf zH}CU2Y%CT-Oo*;>*UsW*7KXXp46f2$ahK{x`&HnsACo7>&BZV`%fjePViK8s(oCD1 z;mYZw>9*t@ojYZHH*1-kO{WM)HhWOwK!lq8H%%W=0|yRm)g5wZBZ^|C;*did7dI9R zdUxNU&Gf~g4elp0Ly=H&Xv^a<yT3b;lN+#P3b+0ej^p-L* z1#sJgg7S=aH-n9`Uc2I@+JlO;2c=2Kbfpx+Mte|jM}>C@Z1B4y?1h!aj-NmvkxRM( zz~F43YbdZQAs$pwY6M!Mwn%(-%{7s=;@lKRAAHb_;0knU9C}TKDsKCd=Dw0%fye?U zjWxp)soSF53X2DjTYPbeLR$K6FP_@fsS{>!jMms6zX$&mz>u z1_3101@R($U_Z#R&3J3d6sS4&eK9>EBnvhsMOPqU@LSI zh%YNJF)I-Im?dPAJ!#It{PR*C>7-Snwk-)wP1mfH?!(^MRKs4Q$jO8%*5i04#z`$G z_(kK`&Q+FyU@XOx%}Ol7W(JIIH}=U@B&h(1*YFIX>$CusR6}Uz*zLH z+E%Vw#hNui0d8%ijhbeD_}!J5Zu<5y9OrGHA%vD%l;fj^>1v(mCVrIs;Q7Ch&W0+o zeLFu+VY_Qpqz-6_?hh_g4%od!BEXL@mbJPUgh1;Xr+KKs_=*W2AH9aQd(&AnxfOZ| z?~_20B#eVPpRr2!v?~MsQd#jDlT3p%L?&dM7{PQ{qmb8z{HmZzlK)mo0zK$mdsPDA zY|KYVA`051f5|xx($Aj#-^|^nG(UA7(}-r0jQ-#&B$cy zA2nuKffn6n4Op3ASnOr`DY{Meo;L)&ejTFQ5a(@ln~j-@nx4mxmSvvh-?G`lAywYmk{2s1WFE>dmwS2O990HPY)7BQg!lWT4N%0%k-{cNbXc3W55@D9^D3|As zw#?>PYT7l0B1`dGYIe2`B7f6MgPUP_C~J{xuj`id*6SCYOR65 z3v5BL`G1)`<-h|0e&jtiNn#VUBkjj*49_p}UVAq|{#)cy?ZFPY35*xOVFlSkHpU$G z92gqVKCq{^y!z~kEW(`t!|i2n%x2I02x)#k=4}ppn!RD{$pDBwS$m8<*>m>9;>R1x z-rg{#wS_^RYkINNb99*Y*c*jL-Tb~m8XF+yn8qOWRjidT6u2->Z_yYJxYjot-n!o>8GUJYf4B*weam5Kjkd@9PPJDZPqLEjS{G~Kc!Sh zA>Yk4DWPWp1mib7^tJ&?^{;N3EFNEeC}a$&r1@q6A7YQG^3EdegwTwPzG_B>sJKB# zAi5Vw44ZAUYne2{Tzf59QM1E-6fA}^<0hKDvSl=x!iXW~3EQzqH7WAU?VTQsuO={Z zQRdYLE$*Nru8~JP-y1IM&t9)|d>e}8QiPO@-%h>H>8v`{>DY`naMS~ zu4OtQOu+>jlBh1gG}O{8F47P4g%GZu%z7S8ZYnoXuFXJ0Vz~dBR#ur`c@St#qS;~* zAfMIqYG*g`oCiUqtO^4k1S<4IO5@7ZFDBwfWdMi%+k0zT<6gZ_i?Is!LZw-h=&_ZD z#?8bLRc-r^b*GLj5<&Ip_ocC@XSga2Gms{-<5HAA(^IItH+`$~{Y$^Bs9a~z6MNO+ z90r{??0JnH? zDEP+BFg)+9*||AAn`QlQQcpMVXHJ8I0_B;cCPF*2s(Q|t^}bfG_6^R4%EEdFtd7tU z2Z@=+grgsG5ymg}#@!LYlFiMxM%B}!^39w^4kA%g1>UM&>$>qU^T~%}yaxV=kVi*D zqELL;+;?qUo$0iXLWy3yD#H6Ev7o@Xw0ezm6LcEg3mg2L8zjTz*mbG~dYT!2(zSEX zhN?WB^UQlAHkfzF4Vi>JlnuiV=|?XWKPeZy#Ycu-5LQhS!t)x#vyf4zD5^?$i2cD> zXFB}T7+{pU1UE-;VG}1z5#*VU1+n<$xE|=7dehvGRQ7V6Y_muN8E-Zq7zp6l7|;sp zU)d1n%5=e7%r5q8G#|Xcg)@;hDDWY6IPsF)l^&<4`h{Z}_n+>!r&aXJRuKrG-ls<> zhPAdOCswk}S2ScBAp1+#rXFx*7Aekql>SyfjMczD5EKR5-SIUIjREM{ex{NfBRPV8 zangRGc6etxQ%LU#20EOI68&(I5P5B8l#K_qVE#I;{x=Cg9l!Bt4WCW$;pqwCj^7H* z$U2+bGJ;s_C9Cjw6ep`?ph;V6L!L*=UIrVq1ttt%o8wer`)JBG#4xWY#Gn|I2|+Q} zZ9;7v1Vk&cJv7BR41z9>im zuU|IB!jd+O5#9eR1I~#Ptu0acTo4jUAVNE$&L8!XZVU!u7yYRuk&g0AL`Y{4I0TI% zJWBC*^(UG)w!DOwJ5YXNg}JtF<$UYpj)-JJXg~yG_CM}8RE2T<>-Xt zY_3_fzGr)Cha(19a96sODv$TyD322k!mt63#m{gW%03#EMo>K1m27k%zyc!^c&TEc z+7_d?DkgvT#~ra=fE&Z9p^lm_2kdY`#kj!)Bc0NkC`Qrp1O1v68=A+Q6xx5Vad>7y zK{(dpv_wnWHn5@%aUX3MYR$bLm*AsVqbx(eN+AgAH+E|Si3ns|ZqvTHfB}lj=MA65 z7~&Z)9X?B8g3d3$;aCP}69+6&#?K;A-*W^R8gznf+e02w#>^m;`fPF)xu8|?ue(wL zv_YnYp!!e@XSnKxybNq}cPze9NZo*$H86dSS5IKJsU|y8grxRG>SL;1(TA)w_l;-b zvWHuii4L9J!BHe8wM|N%8AyT0!4o}G%}89Tj0TS#4MvX9X9VyItD^+KKizirWfJ;x z4s#%=vQA@=JtZHY2U3<(tV~U(Dtc)z>m|)?A2*qlG+VCo!ihji*DRPMd=%nqH0Z2W zIr{-I>3VSua^Rww4P`ZlA?RfuLfYJNUEI_aS5KU;6BjIcSO&HXvRqhvOoA1Mj+-Ek z35!;D75gfftF*cabk{XxPf4UhW~cSRbl(v|o|yABRpJw0Jk{JhasmM^u)S>BpZUn+c?_3@MVz2n)OUzW_R_)7`#SJh#0*M z94hx6%+F+khWsG_%8RolT)J?fJ(}V=1i(U_B+GKEC>igC5(MFYsr=Rft91QxAG;wD z=4kx@q{K>5KFBvjmbNG`Bm5yE*hX~af2W+-%hc6nUOhswIKY9Dlv>6bg0FOkp?)Dr z8aVB+23c0&go7jU>b96&2Vjyxdt=0Exo2REnq7TZ6J^Z`4$XLJVNH+g{F0CIZ2^YSieR#kg*2VEA=!ZimlExzOIx)HZjILV?X(cc07zYEpy_cQ= zwmTT`sqF;&iD}X^#LE!eN31y_)}%1rcU3HfQOZJdKZjHP)FX)r*%`pMtzFN-{y4#96!QDfUjq_ONxP&Z<87 z+BuwYlBX$HaM6gA6IM(`_$Z5**X5^2I8l`v8=u-M*G@mXZeyl-PkghEm6Zf#`q#eFmApAF1hVegqbDDMm;@NlA-Ir0*Li9k zJExWe3L(`aZJ;Nhj-Bk$jYP6*T_*i)lhC!76V$7cLa!kJg=OiC!* z?|s|6trNOkkJ_JSFYgu0iS$gtq~OR$7_7rL>og&`~E~}x!uX_cAT1Fdt zqN6PkH(hHo!2-RR{>==*1r{%^&0RA30k?d2NKc|=U{8XABsnb&-b#mPHQ+sKMWlxYv<~!_9p5!WkHr~2LA*lg+(oBMQhjZ&zS(&)=S?kmDE@^ZFirUlxR zS#%JzIh2nsMOyWD6RyHo!WQe$yn1l8){V7Rhh9?jF(;w7*6tNOw;ieCUJR-?bJp=$ zbpn0cp^Hv$-Zm50Zc5SLMAG}Eef@S~=QV#Q8kIxj@ovKM?^$eo<3gPOKsFpuW?NF; zQ6O@_f{W-GeQZ- zU23tI2W?9I+GJyU^UNhug#rdhzd)dF;t2ug+CW%792Q$wFKLd7MQaKzBxRijFlz!(+Xh?V+Im|WEp z#R;bAlHqJr)p;M1I+sK3wy+M`kSQSx=}cxX+ANS~Y(c=3 z`-OoqS8sJEo{@5~h>YZmcr@lH4>z%=+%?I|`C%w^p9?>B2EB&}KZR^Cy-*f6Yt5f6 z*Dosz8@w+mzZpcwE>zUO3cF)?K+5$KqQm&bV-W^k2OEfdCvsXUFRJuPmZ3d9%%Zss zHAQQgwi}wApEdJ!aR#A$!Nh=>%od4Zqji`Sn&M(9#CfyhOE4Av2o2jN8^TR?wA5}J zK5GS9nLHS7g^^qp9Yz}f7jv#d7Q@`y9!i@-%vg654hCXyeMqI&2H26t?a(9xA4+{LJakX(mENNR<9k}Xu!i5d&rMVxutx0$Kr^^#0v zs$q(YlGX4a9LVylLBJEo(QH_UUk!0;ySBCo#VVvN`aV!e#8B=K$^{QbRQ<8S3s=i? z5zu-DVmI}=QYIaNHKUIX?a499kD-G$X$`mNXy;O1>mhV7hEOi?@F4+k4i8~Kv!f^U zU2cISYA~R0K|Ou1bX@*)-_(5a{M7t)3AqXe-qDM3dqmF+u6*#t*k-eK@^L6bGZj7> z@82G@^pGSzaG1nTm`mbk&L(k-D5x!bus;z+|1}}LCMa#@F*_l{slIVmGFS`)8lwYMX!0o=8WS-P$Lep@nH}y0ve9J!zw+ zVZY9Od!oOjWa3LEgOX;CSy3IW_H&nN%!dnKEJM<<4qy1<0H`{admoxVkX?Y?h4pFX z*N}N|=6%q?%mXuR8I<4(qh)Ea_P^=PEaHlYFY&plc|i^m^PSD+Bl47yX5c( zX0U|MO1E0g%iE0{JI1#lzE9Y$67FrfwCGUQ z7$~w_>{iDwEw702xtSTbngE0YQ8!`3da`;H@h6y`@~JPgyQ{SEBt7X6SKHvRBB0Kx zEQ0$G0^X8{xm42+CY@Psu6ncc?7-9_p=vVZi3*C);j|C8R3Le-^sX%oNI)2qEaiur zf0nLE*faBPi3p^4otCfTp6Fo15hJ7cckdN~?+>A=M$9K=ybK>4HTBhAbX+7Q!vG_)Se>Fcz8YiR2Lb6xDC zxZEF5XF!Z+$XRTV;YVTPRRa3)5GsN62~KJm(M%zrzQD22`zudI9tI#?N#@Da_DwnM zXyBM?TdJvL?-C_J@m5oOFapEu~2lpiJ;Wtyw&TYhBy+M6He7XB6dh+Alw9}kY)tfqbwe#Dh!S0x}HQ6Rmp06%Er4(keR zy=b?7h(YPcFoXVj_4ne~XTq_+E{g@NYhO6FN>|IqPxwvQ*xKk%2+zmb(QT(l%g5$m zH9n?^Uz?AmcJ7;xzY%*^2P%yvO3#&;M#p`UU|k$eJHB^pZ{8J zU7$Wh=z{lTL1l9wFq5QI(TCT^QW+9i2QWg^{Jy*eta7-av{}c-u4NxEl#O@?QBJ1o zO|3ijLIt2wPwNx91Oa0A$o7(6tNl-wuVpwN@K*~gJITu_-m%;}qUI;ie|ZV0^4R}k zM=fe|ZZF@YUOLc~Qzy3J9k`ZFVV~zk1((lPL0hg-8_c#hxB#EUVBmrlbOY9Uw7nm? z{NF{oOTX6VwdyPIxx(hrbA0r?{jiXi@(xxLgpi>p9;GoOI_@*5GkqLERdJje9k{GI zEx533;$TJqq2?SVBj$A=9~AZi+aPGT)@tMWpx8K!oD1%PFlV3o1#&T4h_;6Id z4eV&)(0e2@l35^V?AKGg);0vgzNkDvTA~jXpDtMjtVzZh#3-#P6bB!5bv-y5tJ%U{ zemQoG(xwLQnQGx+!^`IPZM|uewI&3cL&xFo^LBzvlV=lhP-Bif2LocbMm|*LxO(`> zYEWkjN>RQ=TV)nig=V^WZS)sBO`}8e{@9wVKhqy-(9PPNu7}gLvxH3+N*$-X=Y~=u z%TOupcctaw;k<|m zxQvBClb_t|&=ZP{HlCW9OOt0Y)FdV-wCp%37ti^{-fk7fom)4HA28!$p!0=A6?8xZR*SDmGx2&2{= zu@6ULP0J()nV{^ZvH(CWJ>km@@p#&e!2z@Znl;nJJT@$rx?MqZ#qv~HtiGhVihV)u z3`KO4!+=+Bi+eeB^+ql}Wixxl0=&+e9VnC<@l2XLd#o%m)#Gs^T#0)@Fj+9IY%L%> zfT4VpjJqJAk9VfD-^2oJ&nXkwp1rxu^>hRKl@Lh745aNI`#1!(Q-PpIW@U^MhrXj&{xZK!al! zxp{lcWr(IOD;sXH-7@tC*hX9O+4FDi!V9iTE~~F&#_Nc~?Gd-gVto)no(0?$8q5Bu zW2FT`#(SNVWKE-8O5SFU8Bvk8xd{^;1$(-2!axFO6+FTosxuT*Pi3@|&`$t1Gp~&& zDW(2e?1RCAv5XKJvq6DYd9rtcsLt@?^$Z5gUx$bUx4@pubXRh@HR-#g!oU#J7&@o6 zh6Y9|Z*Qy~Srskq56`OT(e>E>GsCk?qqAtTy2C~%Yxaluzs{&+&7LdkOCDsZh~1BS#|y z6Y3EmEY+f%6B36QQ%Ky_E*oWLM2C<#RKc21ID#%LIL_aHSEpOMwpBD768D-|2>OLl zla#fxA2)9l@&Xk4Axh=zAjP&Y`xq*Xj8WYHBIr}KCp*3)y*twXtn-;q@lQ|kKZp3A zgZ)ocu9C`y+FR3ORO}i8>u7-28E{CMSL)ALgBfuhRS4U zanL57PX2os@S2z9o@zLQ1J&SArPxEa&1rlyQba6|jdJ@00~)RQi&SofePTeV`cPN< zat9vj4)m#&+Pt&62OsJV_9@N|uJ)-z4t0n46tSG_j|$3@4s}nWXA|1SaoS;oueiTJ zhD6Qn7x66YwRl)L^P{Pw7M#oWyB6y}M7T`x390neHfs(gX?az|99Vl zYCRZkC14{$+tjdfwzaBt!>}5l^^(kRQnwgJStSeb=Lv>(zN?%_KFxjHHRyhPHJ2m@k;IZsCZ+R`_ z8epwnT%go}$-W!&N+&Y%H|poB=l0ViHf@XI3jX*F`uPmWBS{b$d18^sUo;O%898Q` zW`buecD5u^0$WSz>54Mg4VsRuY*UKh2x=u%1D@!EVM<&UOrw1n2|tEJ1n)0x2oK=& zFoxpl`>-nS#52Q%LUdNbCmw>Hz9^JnZ@@nP@CS?+4GM6LMrpOt#cd;wQK-@JEDs^} zOogH(Ir#Ah5}7zeq_MOn zm8c@R=*+q7PgLTBf6|VD8mOb_6^lqi%8=WVMc;eDjq5QwXzSb=m19{5#LQ7QLo zLEc<&tGPgOy&9|8tnk1IC}ofj)O|TRG^=H>1rBGZF#}E^3xv}NdtHxEi5eU%#vxX9 zL$?BfGzca&=@G49BnWioxk39=SX>N_{=H@l+Y-o3oUG3r8d`SOp zb%e(XEa-4SgMrl+j3L1=`%C-6oehJVYLFO1-;#=kFZ9$5*TA8EsZ~uq>xwiNI>x;& z-bal8TG{-ATsSbNJ`|K2y+oBP2sgE(}1&^!=nrN!3iCY8Wr zElYv$yetJb8=Ej9^Rg5ao7H*EWNOU%UYSLJSp)m#v3-B9Eby5BUYYTj77KaaYvVD{ zu+e5g@^vduBO<%Uzk}+%3dJ z;eu)I7DE1QKy13yVQ$=86`>8Y-7>h7e42wP ze7|DSX0a|H$151&`|81QX>WvV^OTQx^RbcdYlgcOIlHdSdMqef&8&x9R^)FYq|5pi zNn?&JrabGon}7tl3{`%J?QAN2P&309$8oa!MBCn`q;5Tir}`HgLtKW3(O`LEy*$t2 z5{hscpM*$|c^GNH)rEiaf@DP1Dq|r~sw8gociw3VYH*7%X9P9eng&!PKYayz5(1#B zHs^1{bS}db#X=R;0@V;B;VLf^X1>Qs+hZ#WHvN9G{5k%i2rz{;%>I6G0W&N$C<#Ld z^|(fEy-vB03db1FE1!PA^Gd#-#}H3K7-|kpXD+DWD9~>#gsHK#tEGsOuc~afc~}Fp zgs{0rnEJ3K*s8cz@4jRe_xGRZr3$go;}%D0@60NyAQzlJiYl?~P`aVn$f+JLgbfcq z7B|mAZ(;kLxeI;Lzqz}#3wlc+6HUO)-M+jDVUCMwe$g>6gsm%D=qbYtB|ivZd!dEi zzZmn^^9JS{ZAUk&N5#*B(H&xe*-W3*V}a@Sssj&=!TE@9xv!iKD$Je8M_>Yblb~bg zc!(3sOdmF(A2l1BQ<&5Kh6gDl#FoQ5LM@iKJbJmlgJr>C8T)=1R%kSw*KRr|Nf>Bd zMAV=raGhz`zR0DkGhJzyb8ijv4xU^NYpFE6!clNrefP|+(n{5;Rw@{uYP>8gOnNrj7azQ0^;xg6^~(nZST0D`mQyf6|4tG7!LC!su9 zljY?xJ#rHVa0Nzl?sbxYum%b5*=%O6(@jqYxaw`r8xhJlV%Y&&m93Z@Fwl`+nKXv` zQJ#|ttH^93AL9@<6h*4@TmWbt=jP0r_+=p=OeJxsgHpdLCarhDaHD}5io(0=1hkcuv%|$_V8y1MABmFwp-AWsxWicl=P& zO_m++G%2`Agl)Zf_EU8Rr`=EG-XFOwu(Bd`!`e-w44*?Hj0qQoKj2IsE`4(QLEv-9y)i;c(Sj;xgxt@Tk}BLwZJjpJze|4 zDm6IEMx@$~0OMeNBa+}w>1!(Fw}S}7qdJ{HXEp7bNlXJW?*+`Cd?OVPPQHyctA{~y zGSq`C14wqW1ah?Q92_BttpnEhLzV34C><6dVx-bX0MQIBCJwoSucP=XL2Io0;+jvaGir)+M`!H8k< zA2rz>5$uzXiuCK`Ebznr|yd+nbjAwDR`3 zGv_&B=Dhm9Hgjt87q&C!VN4tQwCd2b@jH_6qxl9O*0eE@LzBUSghvH(*0kAY$%i{_ z?8~K5#pfh``%|Xv%9y(HFsF=ldT7dcm`oYL{1sCMlW)HH@}mr!0GH$pzI`95%#v^l zfulRnDT!Ft(u2Tba#fG-j#;8R;^1(+M9tXW^+w@l>AIun5_}LLt`&R6V!|%5rlz8N zEYAW47)X3It{ZDA;l~JppCd z590@mCg~$TmLXOpGEpNCk06G87(~|%!szOSOl~BUR_q#?HYH(5prY=h(#LT+fb;d{_T zbj_*aXK)Wp9$aqXy5MgJ5K>)7W?Z^+r$BCxs%CeI%4^C|O z@JNKf2l7-`3pL6DFY^s2wiq(n8ePXw3FU6{8^&|Y!#PSd(Y^nrZJ_h~@ zo*VcfIyicIqi=VDMAE!KtOUz*#UyT7)45jLE3wPoptTBvBbcwIx;1Nb)%4>cbp6<6 zmj|mMJsr%?{Gc@bu}3XHm9BuN&Ij3}hfe>gE$-13>-_lf6J$N%Zfh`vm*WAW4XQ^y zW|~~}WRpdY^dU9v(#QqA)3gmvXERpXuhD>zSb79|)#z(<%(Li|4Sb59oQ34VW8@~(am2A=d^9$=Bl%X9bZg_Ta7dkIpeVYxLO!erZCZ{l7=ZLP9&lsT z6A=H(3WvO*!Z4%;&%Eq96bNe%V7IsD7+5f%r0tYaYTp=WDpz z>R8+ud@19OWpb7GDpo&_b>E^&Jaj>8l9DCCJ;^i^-GL%3squsaHr+YSKqgPD|9&Uv z?1Z=y|Livyc{rFwk|hJFCHLmE_KN5<5(t;QR#VLkvM3ofFO#IGqpo?KZ+H0l)I@Xk zd2mM*Zi~g4+$Fx_Jf}H{kW3U8*f|+bF^)H`Y&cm3kbX^SDIzW!F1;ZyPk<$aAIBHt z(I%*8@rCMGov?0t3hVc-+k<8$OQ0LhkVGR{pY=qK0p?^Y2a5RxIe9gKv~_dWZOo4e61OM;8qM`zuz8*!b9fp<*howz zYo({Xd`+@d<9WNvsMcjl4Asi2|64)-$R#AL{TxCmqNbk2&&6M)FkuH06=`!FH(wH& z1Q_isq|Nn*aW}}yWsOD}_E_5BF^vK~C;&m94Ec%^*q3Q$&U3ojT-zvYpP$Rg z7iCq4X{*LR-g&OG#i_ZgP5ih`P(X#)K51s|Pu4$?-+T3rgL}<=ZK0pHIS;fsYG92j zmM^i59mzoA@@$6p;IKM=_V?yul~i6_H7w^q0dW01lvyZHJIJ1fz7WMa@dei zjj{5Tftgn$RkTRbAg3u!!09+28@jq(e3`Zfsme!C)qk(J!u5Wq-JD49k%JkvBPXqv z_`jiLgvPlD%FA#R2i;O8Q7(~=NpUbgi1d|S`$jYygq1CXrQCT$^T0T`y8~}^U!V>&Y3C5;p-mGYsecex z-TpOKAZM2pV8i@vRG#MiU2|RqXzsT_HBEbjd~?Uw4R>LNY}Uv|1uw z8)tsQq!79yRO9X|1~OS0ad>tL(t9E2Hc*ZhUamoYLiDm4GD%#rM0jauI|hH;-^es= zh3MH}DTWCUn8`w1MP<}eJ6~9qKXfji&UH(nzj=+(7+Ritic&>Yir_@T1FsYgz&`~)gP`E@Tt+~40s@##pBc@(hFCZ(O(PpV9e4-yd-Jm#o z)JFmxa9seV+4OgqzI=L-H3>$>?4kfD)tQA}YS4lkLDm;yL1(%p%dJU=uSK(@_hr}#wAGuUyb{ZYH-9_;Zqs%I zhe!O$TaN78c@W(~r3;UkOE5etoz1aRu-Z*zcy{vKEfZYQ)6Tvi2a!;+Mi6fJSz58- z&%ThUcbG3|s{u~}f`t!38Vb}3_;9GqCY0$4GiN{9=YnhJ^ zg-<(^T72XZ5DY0JOpa<@RDMl#RX6zR&PIm;<)h)z6Wa)Rz5rl(-NZSk2ex%U(q zkIB(S#_M)iVr7Vom)>M9KAJ+bFx^owfW5`wgeC&iUj?gYFo5^#=@|mv_Q6a?DHHAK zfV4dwV6o=IrvoDGhKCz(qsb}B%3JIM%ba%BJ*HJxFajL11k_Wi+g|x%JT3nwhZ3KzGHAh`cMzt8dZ@i=QzwI( zq%!cnKZM4Qg>@@)HFB?N_>PZniZx8LAe++aBo?=9xwg!(=ffCB^SKGlrEbdb;)~JY z7k&GOb~Sgj6x$aRq`PW;0-mbF&sd$7r3s)`q>Ql=3C*}TWH>{bIA5SvLB8xV0HCF8 z#BAXPkmw#Pe+qu|x9I3<{uAW&v|dR!;oKltU@uR3-*>3ZOq4*dA89I`@S083e!)ju z^C~EFfS)D)M-C>QP%!1&CPfdLCH>UWeriPvN}X8WEX74ENl_d6+t;3ka>@6kjly`% zZKyJ7JLoD>b?ir{X?Ri-tf$busRiRPI3Wl%drut48=n%{|911`9Y`M$nu4!CWbT@# z4t|nF<{N7E6!_h7Nwih`+Xwci$OHQyxx9IBk=`@dQFGcUoH`2Ss>q;hez~|RY92&$ zP^s`X@^8<039rt0$z<*dbp`8ojs6u+RVxHt?SEeA`%rv=-DD#OrqW{d(`?3*+|;T?BA;@HO| z@W%t0>i(-UvD_0;d2QT3;AS2lQDe+a`2VD}hkye?LK5&Z-*HW*dJ}75r96%KYx^{- zHIA-&9jaaz;(BQE``LjYXtK}an)qY1=&&%r0~QOG*m?#@$v{0sGMT5eeA~dz%&_%c z^RhbD7rW%q9PWbWVxqlx5jWpf+`s&xvMud9k4hn*M1sMoKNe>!P69!+Ok-LpmQde( z^cz7ajvo|2=7Box!3Sh7%!p{95v;-?r=Yx=iiu=d|IppT+(L|AV8Uc4_7 zDd=v9MDiGV5=r*#MWT*KG%6A)q^CzzGb9>oNuyvgudr3b#Sne zWG}DI2h_t<8W2##v#)Xze8nL(BO{mM&L!i>EHaJ`kx@2lj>E>b&4>h-hJ~1d1d7w- zW=wTimcG}rwhiV}>N!zt$OsQ>fOX_uMnKVhoCA)*suaiQCvc2-MFt=OM+3Z<-pUf| zkAg8MMgpWG80uScl9b`3v%iGZW0*zSgxo(O78&n*)NH#8byY@qbv~Z`vl2WuP8g#Y z>X%gHZ&7c4_R+XGlYh4)&8;7es~FjEzkL?1i^?1!rW#N@!1+saVg(_ysSpB@H4}T> z6yr<=H%o};a?)_%kyg<`{f?T8uS0`~dR*?q%7<=b8s-AvYo=#!1eEeG}(**b3PA6~aF|6<|-aclp@i%_rYY#bLb?%bkI~P>fT=hYev^g$Mxs* zS85s3V#WCr$#&%{?Ic z!b@R5xGn?2tU1^2g^!yJhmtgYAXvJN;YR5uWibihqVlX9&164zd7rk;`)zoDPp_If4#c5`$fw}M0gK%vLPwMg9Z~X}w^*N)yy8Qy`lITQ=6=$K#C;?}EhR%OC9m+cl-v<& zZMizsnjsNtDH&>=sn^h<**aYAG9#nq-F~;`jJm5@`Zk+zIlC==7Ks2=$pBT!JN&39 zsgJv<*14n&)Hx(VEhR%OCGR`i`mN-dp{)x@Tdi#*LMr_+E6it5ykB<((a> zUq;%hUrHiWS29#r^2|4R1|oTGsP$3OR_h89p_Y=NmXb4XwpvPF5NcgZ+G_0}5o#$J zYF$tAlG`F}mnrw0vkbtEV13Xs%hA0|BGetcH8{IS1UO0tICov`)?R{0*^$ZJt`|Ez zsNEiva&+&OKyA4ufSMr@Kq(nODS4ac8YQm}TyrLALtrb3P)o^BOUWD0HSCq#8ETzP z+G?FeBGghc)KYTW+pLz7w}o2glD1mskO;Mu47HTpy3J}SxhvGVfV9=xMk3TwGSpIX z*M(L~$*q9{FD7lZE+P?XDH&=hdGAG5OUbiBt;Qq1H!9 zTdgZdgj!05T1wvjUaO_#wovO@(pGB+iBL<)P)o_3|7Nw6yeQPVk+jvioU& zy%$?8B`*!NZXs>8c9ICSlnk|$Jm(UtrQ{W%*6pON)@>w0EhR%OB|rK;tEJ?QQ0orT zR%;iDP)o^B>n@Tve#B}icjr4Ssoa@&_H*wFV}CE%25UEo087aL>pqgZJuKzkcD?~n z?$!$|sodQG)|Pffm?05hDH&jG<-7IUKteCyWtEk@FH}C8v>|eq-uo3v$x!(mUs*Z3 z-ffkYoCy@UfV5TKMj}*JGE`P_*QHiV$?HR{i%DCpi%5i8N`_iW-u8a0rR2^~YuASv z^=obYy@Mo=5|dh4*Oblo$srdpFYQRcS>uRN@RtEKyLn9!RnQVm1#;TL98sNBx;#6@ zl_2ehZ`<^^R|+=*F{u%Hy!peERneF^=g}AC9~YpWzA#5I(s&op0A#U@Es)|xE~*P< zC{ZVNgaHMK4C0dlvZ)%wdcqxGZabi6M6tB#9_UdLSAJhR7f7LJ zTVp-sN9aHeYf7cDgs2D^I4Xy7LnT$#Zx6jnOc{T+((L}caK&8%b98g0PXhB`@#$`}mcg!`$+6XUA9uIT%yGHhygWX81d z2_eN(Y$NZn$UF3OU3nl!rIND2vgV>2^~nY84C^SGzkyU^1tAn+s6*=DtvWs~m?D?X zs)D0cO0KSQu}Yb2QLl4b@0Xx*?jqDSM(5lb>mr_D&o(<0Fblfsw%jLb31_iTHvBXK z&92bc^GNICo$}OaDDC4_Lyd}asR;yA>Fu)-OGN>F`N_6=%~V)zy{B9K4?*D|){#|x zFA5(M-Nv4!=PJh@fL>tS>GM(o#xA%xWB~8T7T)Ui!&1#*IMxq!M*Juk@VinTf9aZjiXB)RjR;Nhqs>~Q>z(m!uZouJgEk@y)Y+Rh&T7&YjS{$^Z)O}u zcbHS`Aj;+I)Wvn`i(u5&7rEsKn1uxE)Dx361KQv|(F;#hMMeVb$RS`a!8#1!4(o&C zvu1+#k~#3Ku1Xuwmw2E@V%p1K6A1=^BzoEiV!OpV+$?4I`UXt+F?#KXwiLw7Yl%qq zT-bLr$zomZ_pyEb&~-e`H4P+=;{JS@#gCriY|gavMzaMer_avI*=e$rSzuAi3ZJ#D zd!`@sl&}fkwIQTUl2x$?^o*Hdx5kqrM}1sJS?#YjR#ZY{!FnG~`&Q=|GaqZ0Ms4N; zTnhsngX@Y>>H^NQn2&{#7h0woxsQeM7{H?M2%dfBo2@NIOYU12II8H|Q51d6EfdWQQTAgpu)iMHC6Oh> zQ0b0f?m0NAy_r|XJN$oS-^T9O@BaNl=tif-?wX>#Fu49c;IBn|IvWHzWWWAt3vm0e z8nnc!b6JE?Q|CZXA~b1@a}SPK5!rR2vIHwD0jSxjtEy*Bh(}HRe|j=J zQa%6e&4uS6H|Nd;f094Ug;&SDSUXzA$C?YwO9_ynxu6`0Oh1z>u<_TO3+Kfyo=z0< zxJ@Am%v=lHiF6K1encIA`71T2P;qlt;E+?2# z0&&f1tAr`ee`FA&j*y`yd#qCzZ|oI(^t4!~Fl4Fux%m#Y%g(MF=qM%|!KaS7wbRwN zT>0LFvk18Lo-2N9?zmhu(V8qDF~8pH3_TOP#mR)N2|YWQ=b9(mP3;ITdySJktliom zn|?*@8ig!Oah8qWQ@Bf!>aO|NFYf(L!sn>xD`C`5S+lfabwSZX;CK2JEf{dJ4^}aL zVCc6PL4ndq^JErag+WTz$J)ZBpA-U7zBUp1M)y#F=oq~TS^nr2kulIqeT$Y!QxbG` zHj@d*f1sc}P~J&_<@}#g?4y}`+rHJ#NXd0gwU~WQEk&SY;fSb6R%yy^W?|bdXdrCJ z*@-`+qjvuYG{qer-u5s$**MYGy*tst{(sY_SI5VZ z<}eI6OKtB!K*BiatH?Rr6}}v+521IsYBxdm2gS$_=La;LLje$WOklVs!>WFYJh4w9uM4S=Bw7Ub2S0vK~fs4m7cn*XoBpt1}D<$)*m)`m(#!ZzPkk z=Vj{8me@jSn(MzIj#9Oi-5B|S!Otue*D)OxSAi7g<$*G4m0(nq&lft}dKo-Gj5$1qdZOm-i^&ta2YqSv~yq=}ng zIoFpg{7zdEQXXm{388KxDEC@7v4Y!@#7Rgz1d=*|G$xP6 zX`qPW5ON`)G%u%h?0$c1{r5iSjAo<}k6y^f35Xj|Mlm3-g49q zdeKn1MRS|uI(BRCWEpp-=rNsleRY!W@jSwo?!iPGEKoG+O(>YFWx-q}{7qna`9mMm z7GY$V63|FH16oacd8}G`rF?ttObu+ZB1DXr(%r(V$P4C z%fO?fqy{O7WLb*t?6xI2o8?DI-EutbVIJ)r$DB00OXcqfXAr-9t|3~4)vz3sa8IB` zHKep2Qo;mSJ|tog2Ztn&ksvnu$mcaR-efcu#>oI|au_oBp>za<>R4Wlo5fP1sex|9 za>n;Ts91m>jRbaVb=NTxI11XAAH;mS=B9D)8!Atzs@_1w2~n?DS6+MjeEHjd7%5&8 z)_^7*LILQlpZS6PJ?4iKh?CBuG+845FzQYs4`5>Z&q7F+eX}<(Uc4YK zk2wNfz^?4)m+2nzkQeK8OCI*?M7J>={x>l_*_xP`m~QEJ(oCnPN2cTH>4u9>VQZp2 zF`Z3QhIK41f0teJk+Jo#%+_>wcUoW(*PsCexE#9OU=a~9(TUIdR{Y(w=!E#RXYs026!Md{y7Gf~?Vi)6PZ%@xPj`yaylFMZi!NbZWq}u!V zgk$g0u$6r%A-5U9COPCAYTTCqHQwGIE;*T=O9vW_feJ8bn51+CDU7sY=(vB;*~<{b z8{XjDk$)f|G8YxohkDaH&h?nRGM?>M=69h*8H1UhYNJY%?XNBvbtm`-r z;4lipPv}i@jTB4cT7(4#F9E|+e5ePZQHQt$Zg&D!nW%aj?2CZe9tXW-97fgimoWF} zZ-NGuabvK33ES7xi8{lagvjxjZFV%DLl0y|gDP?P(~YS@5FiK~6))nrYYYO`!!KY} zKBJ-4NgBPcJ`qV8i!sI(A-|{KE9%8GEse^(iajl_;$Nf_FiRAPb9i7@l5PMQYk?ep z#uD2Ys;y`G%q)96O%lJuoE05wHrdUALq#Ro z|DvP4G#DUDi!VA<)IXm2P;^Mw8pU&s``8hA5f=xgd{*@)kM<%96PM-E@jJ}#(Rcp0 z6dgn*XMR?VEiUdpgjpEXmQLqhiH=zI&s=;|rJ1S`F7OHzt{8mf(65(U{-{1M6(H%+ zs?n#OiH=!A)dTKUr_(f)e1rkLYMiYdd$#@f1DI<6;&1FkyP4`yjg?(hlS|Pt^wVZ} z&)-A~T&*tSBq{IVLe1tv{+8IRdLc(ICcpj{AUWf z=QqLEfdo~u1xi#|9{e~J6eyB~2g_KmW~VlCx2vjK1{Ag=ICcQ_IJJwKQ__@%1p>1dn(k1->vnmUK*H3b4}r;WYDD3^V)O*kvyatK`BBs>u4qWtmA z4uax;XD8<2tXjW{d{TN3b8=uFfyc9*I^#L^+Cmw0)G_Vj-68YTl7xA4#-O4o5s$Ow z<2%XwJIjG`RK(}S(#=Tw*)CFjkMzCs`ZB(YCR(qTuR=K??nIr`o>tHGaIJGX%~}4@ zPKo&?y0MTBlbt7W4^_q8ixR3D+P9=phNy5m%xE$G)P z5LcrqpW0d8a}7wbYQl|oJ5Y^rY5Y{rsm_m@AaA;+eDj6srlD>}b<=*`e|b&$V;8F1 z4s{9QgevWR<$rxm`JQVSWPhx(lTwoSgKy>X&ws-966IUrHyJDWtr$&&6Dz~N#+`(` zICV|_k9s(UY!6J%$*AIKO&~SItWq4mIW~X#n*6%D^lV+a@aa~UHWoqZ$x4?cbP3N2OxoNn~XhC@v#{w!fOg zSa}3-J%ZR+W$h!-4M_C}EbTzHjk&?NG+FbfOcFKh^UCPiK4RWXYs4CM_F_bqN}FdR z|2xX-TSMP4y1v4@w~0*vWiL{bC05a+J!{Cz{NOL_ad#$HsVQn_Tkt; zHE)u_d2k{(GITR5!VrNqKP_pkpaQf|T31d8P4>%s>D0e5Sm zZx5fCI8O_4Nbl!8PEyQT1 zctqU&`KKx2^el_M1_LpR^t4Ze{C&!1QpR27j>S_6LX6gek^VYbTw{4bIp8VBvYk|t zNUWTep2>n&mYe`^rft^%aH`xURY^G#NqG28AO(O3KM#c_-r+WdP6q#nl;xc;^<8OsSs*zYXoCn~7 z<05UQAclAp5<14ZI*YqLl_$~#Llq=J)4Rw08GI3N~e zG*umo>DuTu0C-m87w6);5sM3Cd7Oj^9lMTLc&cXj-fza!N;-4?Z~}Acr4A$Srhf#c zls`U*!Nb9+K~lBQfdeROzHa3khF#>Lh_qlS5(Pfg%aFc=1{<0^)YL5W#m#0G?4fs> z&r0M#O^;NmL0y6TGz^|1YrpW$9X>({Sz-Z^aD34rp*fTwi&DBE2Ee?=p%ofLazo9j z&7}8$?H|&P6zU*jyEb|k#q@cLU6Y4)9%&t%&0k%eE^k)n#f6&cgn6qvVXnh^3dZpJ z=h(=ArH5{yLl5-h@V()pI1Iu$^iJIqSTJbq#QjLHj6vi`ec~Pnp7(rd5145Iml@m+&V)`Q9 zBdO=*6O{l5Y}|O@Q6nvM?%TeRl?}yM&$e4SK7HG{19yh7NWMBk_meBVz}_9Cx90I| zvd^Nw`szz!KqLk(6;QnN>*+1rYO~&PH z_SwKR%h_!88lSu98h>-qHNLP)4e=v()5c&oZ473Utg5F;F(#m|jWE~v!h~V!ZHsmz z68xkAXFk|awkaSxqx|si#1?*};7dO^Le1IatZ|L(4JKStp87cR$(Y~jU!6$6;?&?3 z&E-Fx!bgzdRNPaqJd!^uGAk7W7vUBZQLLq+2t$t2RC1YIx{vQsb&#B66$pPWLGg!yvvJTabP1kq|z`FfKD+a@Rj?0ZQr`0_E zDI$;PlSySB06A9$LpU2{FvxjOL%6wyum})l52QK<$UgtaWPLd5o{TS?-JGtmuRU1C+>bQGH)@dAPY2*^dw~&#RND0v1V9Kpeha-c3AjyVeo%)tctF{j-tB$f;eECmhl>~h z*-TTpQOend{NmCtp$b`r+j^shohP}z#DZIHRqnhtD<0K!_K!|isCG+lq^?HT$JTTo z-V91sW2yRK3x0%tS9r|5h(((uZRzghFk>4b)Szg*>hz&rHWz(2z02j49_lrY?K4o= zUm6+Gcx()sm|f;hVv38RaYJ zX_Pn~ny{?4>fJ(`Kn3D_sQ;bb|8_@oJ@8vBP)d+6Bh)2G4FIrI1IaNE7ibW@()@s2 zEwh+#-w4Hx(iZl{nqMQ07u*uZZ63xGePVoQmy>X>gR*-WC~#R-M?2l@4*21L!~@7V z!$pYhA1kvGQ>>#*pmsqv^Cd>rAwCNPu@kC)Y&0Xc7>zDBFB01~(2~I<;{l{q0j~0Jiu!y4>j|dd!Ff@WqzTI=zG6b7Nnw5VKEsO%1P~#^QD(?KMzA{ar8l> zKvL5s1mk)qM%rVe**vtwdT^16^WF9QZa`YuAR%Sb}eEhd{uW$L$k7$9Ca(m_@=tUyd;~(K1iL!V+#+SvD;?#zI z(y$evBi4rwDV-wi)3B$k-y{i?(hRTYgMBW27y#@v%UVK3_-%t*@%!cb`Ob5ltu7z* z?;XC|AbM<+3UU!ZD-rQafXOSCqC57NkN?!~|5Wq!dTxW@j$yZAvzu8rpl--9fB$d9 z`TrhPceWJN81Z|r=g^A2qGgmu}dG;G?rS-3j3qldvQ>j zGXKjjBAwA@&X;$upPDfKil!z^LTW;YtL&#HW9)-lZrMMuG+kd1cD^A8yGy1?a$-`|HyiXpqHRPmf+gb5q_$Vmw|MIhMf8HWNqxHBsA2>)BP1m zNqBLn8689oi@h2zMih?*tn*Q`k>65RvAJt>$q*RpPNe7a%D`Oy9lWj34PYEzpYi90AJs48(27 zD2YM40L_kM`{dH})gnV1q@k24bpzrgOx)PyeM9LdL0Yn#2#aNn`%08`qk-166{&`3 zQp=GwshxX)k91-#5Z}a8Us55&y)R(g&m}fXF?L;phgb%IMHmN5ww9Nh6fqTifigCK zFOIVRTb8DGtVDi*)=L?uj~obWE!;`W?Cnx&JCW{XwGi>0+x>9uz)2*Z z#=ckQsRqQ+RjDKuAZlnib~r#H?9e)b!Lj4!kDL-UTMjn@_oa(DwUtZ2%4VTepxt9L7d3{n}ut<`qdKEk!oLsIdTs2TBeJ0^wH7IUxb}|LY$$;%d zG9$P1seD%I$)7X_V|v6F<}P(@F$vlty4R-5Ny}$xTk)LamzuJ?EmB@h*%E~RN@j(e zm*jegv;6Hg>m=;7&N1maQq~Z)Ax{+FJ37ztL; z&=S_9&h)%qP0vtL4;fPaZqZ|U-fsQL_W-dmdSjmMk$rg6s0)usPu?k=5dDzBFfiuT zP9_c$wRIgz%;VTs2}`q?50prEQ)%XUG0qHUTU5>qSpkBO#$i8WD~j!z!O%{$Uck;a zmou6u^eJ8;dqEtM$K|_reL;IF}E2o!Dr~9pfVJLZK`78LE7|)ruVpS7JigHb)?%Em`y=H z7az7XCNUNrN7r|oj6x<$x?5iaDpOy1RvDDpOJk-Nv&JSR0H zG-#I>7O_}{CY!XQiPO_U+7KMJ*7NDhpq@}4QDV_&fiz=1oJ=VY&?N-;Nr%Ml0ffJ4 zDdh!aHF#G&JbZtQSDJNT%X762&;ka{u0;rzOL!R|JxHq33;#@9{_{sHb2H^dL$g_~ zCbO`9YeGiZKOwcSY_j}*rtH&s(xHKz^_@8RaiOlC2KdOyUh=(W*8xd4Vi+_6GUIoX zKiTTCK;=mfZlf58q^wTxWO zo>xDqAQZZoB5__>>E`2fqNF01dw%p ziVC#U*)&phzNF)e-qaH5(^hJ0)*Jlhs=<2~9}6QqrM78r^sg|9SvmiBdunXijT6~kFI_LbUa z^916mpS|AMbU-ilPY~%B+B!*FLt|e`DE#B&efE?B{OyvF}S4bZ0=KERx~25MEP`t3fd9vSG82G&~xOTW>#L>h`V%PLas=2=K)~64Ba7TI zx53*xK}ahXg7gv4hi9<8WfV55G^W1AdzeA|1^j8ZVoZmOu5f%drh0bp*56;D$)o9a zMKs0%TrX5Ve4d@dty;2@hM0zO7jP(dppAM0KF3bz4m4E1*>1;m&uuMCw9!b%iI+Ed zh0mMD)RocLx*-6q-TL+Oqp_(VB_3k}j@9GuL*1W%jj6F{jQH{uJG;V3)|es*pf3Rf zY@{mvb|7n?42`L&Xl$Zt)TC0yN2*ovLBE2{%s{ux$;J64RlP-R->N^2sV$^eq!Ilv zkQ_0VxGzexl-sVW|vR8#S*6{b77GCLnpjq1s*#Xw7*Od{jq#-~;gu<%L zor|Hy)Pz@ST~swgY-1|(x;mVpd0Oll$K&?sulUUhpGwL{ekH8WHsF9YZJ=+uCI!?a zEC2GBz3|84e&I?iIhLe)Fz^p(11sX@0Wl1Ef-m=IJ_yEV+GuUrOJpmd0ae#7xH1x% zmLsK9HBoBVb92R*>m2?^0QG2E{-CQ8?~0{tJP~!1WVciq>Y<1et1TF4iwJJO&MqfC zQ35>njNRpwRWRI6Kv$`KNB7&q0bwf9%t7uVcu8dcJG-m8o8h~6XL(xwyzZQ)QH^sz zA3^P~fm^4j8ky%sQDX4yn{22sWH$jw+LyahyBl_J)!LDQwkb-0(RY>6X1LwcR9p5< zvzKxv?!)M{I*n(a$|=v!@QY(2Z;-ERZErVavp9R`i#>N81;;sXhdy-V;*P?sX~jk4 zTp9E|wG%nQ&*eHd9yo-F6B4hPYrwI+Mky3jydCg`)d6T|vT|E>W8Pa#TI@Lb&)Of~ zpju0oP~2YUm$Rh%Q_om#jrvoLcQ&$JScd(+Y12Y$&;}WnT?#;h+tzjyb0KmTy&e?r^C<-~~*=_r+cOFI27#{dMxkXe$M86aiSeUqG&ZVDu#R zBBbmn+o%A)V^UQ$OvcpUTegqk0+p#P_SNK5R1?y9l_EevxpSW{E1x|Od+3ATMPMlG z#+njl8Q82+Bl7DD9k3t#!k6X0d+AU(0PZFVF_ftYrq<-*)=t=xfhcZ8^oaBKStr&M zHx7VeZR4sF&ELA~{5{&A%)WgsBk$v7+4!?DsvAo3cPH5!hIv4|?i1Edo3#*2{2= z^IuGO^hO!EQEs`x<&1cUpa;A$HXMEy3b#=Sd>m+Oh^qBAX{@P-y4)zy_c@g+y9UiES?r7`6NLH`l?4se*QG8nQhEPrWoW;~;z zRa;Ed;#iHIv49>u$*!Z;C9>=$`Ii)9`7Qh#M2iq9FuRvx664y$-7HuXOL>F6MIBe(K7h@vyTPH%VF@9$yH0iJ5VUUSw@|F>$|=B*igk{2 zf(FgC3n*GHhnpQnX>ZD_7@63jK2mU2HMsd9fbpE3aDmwJcSfZwgH1R#mXR)qq4IAM zXz5tS@e#nr!HxU%fmQe?ZY6{AdL?FCBM zCHV)EZUi?;*BLEbEOBF|CHJ-zvD{2Q@S+I0ulq%3S1Y=i7fLfTn*US&A!M}}X(7PZ z7Lvd+wZoGt32eVzI|tdK=Jj5?|7N3lB=tzuZq>#XT4k(^>6iXqjY-mvbUIQuvfnz7 zMBeaaNaQ6+nyWz66nMnG6R+vWNa6lG$PS5=Ao8Y*2m-wRjj|=n5Nk!@@cLtk}+!|L~is_Rxt7_b`TIm^s&LAeGz4K!lBBpP9}wFN>g-AVw%ll ztk)qi?ZZM$Yb)k_Vp82S!kJPu7*Ael;;u6lIy)(qIvQH;x@ks(VR=?aM3&|3I@ttT48r1y=u~KEG`8+ zOFCU#;*;x0EtMn8uT`b;uYUCsOZoZaPMpr9slIM!0#ZwpaZ|8bg7@y?P@}Q3`3LFdP8l>WM21cMQ}v z*2Le8!mzAeQy9qGR<&ETQ7H_9{g=KDVTT1d?&QowRy;5zq0^9g)>~JO+|^x=ERFe> zNbq+@t3{eR+Ny=Kvhox;NWO!Gh*FK}y*_!RP~OWgVF$Xd>q;zJ0j3eWhIf_uAyXX01@^B${6ewFZ>@LNK&|Msa)?rH- z3JlKZdPR2M2a$}s zW)&p+K@;}&t*fCSm`Xe*8?{J8pD4d(6O(Lo^iyF{HcRDl%>(p%hy3>mq@VV@*=m;2G0qMo4%|Q8` zl07mVe*hJ6f3g0~>vX|LR!q19g|Dn2goCJ}x#NlqwdIXqHSEl*=o_{4XkJ-qI}M`g zVvocI{kfttVc?8kak+N7y5CnmnZ5v0Oax+5%o4HvV~v z7ZUipy6MRi<{%?jpyX}{M-n+A+({*L;BOA~0s8el%X*^U#<>iePpos7FK+wl{2wJc zW(arO0%n0?Nu)A{U>Hdlqpip_2K81rs(KEHGb|bQ*qa@ekQc+ThMWMfO*rp&0MK>H zI=fP*L?|tng9-8v<8DQX0l;xcw!z&%Um-XOY4uAlB zSLb93`BJs4Fh_lLi506v#~35Q|AP0(ydip`q*7#fvS@`E`q2Cx3Yg*ZSPTe!F4~zh za)p-1OfOl)2TPY$qRTpfw6Q+XP>fMnn{?7gcr+SIgF!N4B8Y!&1ZrCJvesSBT}1nu zht%ARXN*HxeMG*8ni8-h`5zAN?FZRE3Rw7&tYbGXLm6wjU(1A+Az{+%}Aqxk@ST4 ztM9NBz>L7yevley$6Qe^#n^NXb9zIjN})q2*jhf+vI%f@MysRus}afgL8WL=TvvTl@NfHab*x>s%#TUw60QYEnnx&GwVp}sGEZp3-74<9} zbW{ax2xM1Xz;l$613>MBY!t7DTBx+9=Rt_E~Ju3iw^JJq}D*?V)i< z5O&4nN%Kc6?9mc$I)YkMwyQlH9kI29Q?avP!VbA(Pwa>9m=SOO?SN3*W=|zchFyUi zj5Bnl>}{8=#W=gI5J?A(GmgWa&p6X-H_nuD!Hu&=?b{d)?X0Y`+4ERuzj|>N&N)_8 zZJmWTeOt`$F?u6os+50OXV*q|!NJv&HCSh%-Ks`4nPr`Q@aqtEtg|i5N82U-a;&qL zN>*Nkb+%TW0AFIZq~joRQ=%C#%ZJ>QB(Rl}l8KTj(?*nY2|Fs~mC?rhUtWa02KYLY zrI~s`Q*jL-)vi++ap!{db#27i@DVDjTXB?dD!C1E?ZsPikYXjXrf%4+IU2qw(ahT-3-VXv6d8 z*md78bpzF6qm>To?ndo3oOcq}GX|B#s+)6qqp8xtLXsVE9$U{lw!)U&$YF;yyq1Zx+Rb^Gr_ zex++=|M^}9_Mf%_q!%+J;8~0PhbQAM7g%2@8}Qn%t_`?lxefSj7hwa|GDaSpH?C%1 zq^PaNB-ktJEruy8_Pglb&NKC$&=+eOe#mx5*S=b_T-CPW5Tn=}V1U?$TfXYH;UL~n z$j@sV)>MLrS2hq4y?B3CHshUkngwgH4mU2h4v9lG>rnUN{V%c(6>L_<<+l8Hl1XP3$B4*1=ZL@Cgp=m*<<-uY{{C?6DLU z3tjj>>RKGsMZK^p*l5>A6PRL+Yol=vDcPk-?vHwQPsdH zyj{Z$Jm6b0R6*;1avS)3@2n1!Q7Yso^9w5dq&9z0_n(w^>r67@+Lpbxm1 z>!47+Xa-+rkGn_Wn^C6JV9D7c`xckQo$PGs*J!zY#b(`~Og;c_mTQirdBl`&0h^#8aFdcU+}ZhU zck#zl(vt0@G^glYQYENOBFmcRLSSvNLzrp9&=%1`SqO%p94aFU1UildI*t|G*JoPl z@|ykev7p>A-^KT)dn~zGi{1uFGg-Ac9M}okL34*|GWpO|m^yQq>>j|ln6Aw|h)4?1 zw=~!$;nB`-S%8!6Ou-o_qKL){ee#5KhsyVKmK23>xQ4aYWrq#khF1uZJC{!Ih9O;N ze$l%CA}!*I5HU_}UA0V}EnJ5qF8)3lE>hsMbh|nvt)vLMk#d$Dgg6-c5%O2K(691W zV6iBFg%UO>#fcJEoSVO*F_6E4jb{FLH`}#DA={CB!gxt)A9IG2RAzQCv+27Aa>Vh5 zWfK?RIBZ%*;FR;LECY&JXJp1-$OOxC;qn|h<@+LVXTvL^>?S7p+)+9uArF0WC>spe z2iG=fL0PAd7sdpZ%asV~x9FR$kg=U|O2~7nB`W(wUpy&^N-O_P@_#Yq^B=lM@q|cQ zGIzJ~=M0M{U!0g>S`#l;JdGfpq@yoyb`%~K2UD~TtpxFDXihC<0gPfR=kaV4G{YQG_UKs;SQHjSEW8dX%6%cdZhj<{SJ>e^%u z6K$DXTD{DWTyjh!mxO5=K`sr|>2yko}!iVd;& zfP`D2Yg^1v0ix`S4NvBECP7_dlA&CY0n$R6u1+3D(aLpau+*(H>;e9$E=?hy7iy9o zeKeWReGY+Svzc%gq^S|`l@oCYcCE~pi2^) zf!Ip1{iq%Y(?SY=P^sJbeX%egl!UF;L_k@A~W#TOTP14V#khoZz&?|uu$0kGwtOS-HOoQq10*;!=n zPm<=5M5#N8R%rP0X~*3zPY8nppWTjqvyCLTq1f$0i28RHT>runjG$w@+*(9p>_0(; zE83QuggL5jTu;=g);7*mgje>>Uil)Zl|Q_)Z}uu2;^MZ(4y%@~aa43y1z=CX{DcIN zYg=v?juN5oYWVDq$vtW13R6tH)Sht;7>4(AG{rwVB0B1M7)JzX!y+rPhhybrIp{+K z$;oc$tqcQI=iO!>J2g^3BjXTbDC>!EA(-{2lmCS>T6)kM5_}w9%fQj zIQOqwAe!YiEnLzudZGu%J7cG_7`D|X2}Ed^0iAElKa0R!hI05}0OiEBk+am<#Y`-J z&0`d3?0OMnP6tV=??>o$4z@o8=L6Cnt|%r;md~tq_D9RdVi_y`7mlXMp|BN3llDhb zYJL=L%V;`zi+n&n%2FdM8QBB9XaO9C!3mkR!AE}5h9BfRF}T((BJ?DLj#q1)i#*B8 zXIRyKEauBsb$L5(%iAKtRDR^Iv*qo0Sl-&JE^jjJv!!#^w=1J(gxR6>tz3LdoFDfU z4y@pTg`(O2Co5c^DBrfy3U_>^74Ae>;m&+L&7pK~29X={0&@sGDBYj^Vw}W&>vNS- zt(Firch41QI_!)txh;Q!yjjZx8Vc}`Kud>3fWKA}foi6+_PI7^(oHFm$?+UA922|Z zZ|7wB+W*L(q`(ss0*&m^809Y>kk%n5&#EgV;-MDDK;K#h{kh_}TD@I$x4{iAeaJ7Q zam(Pl`xVUimVw^>E`5Cf{8#eK!f<#Sf45Q^YbbYWK_NVfmWw^d07@JbXQ5#wx4eLIP!Rbf zw+rzJuHcD`DpH5);5K;p+z|l&_qh+GQJVR9F6fzq&erA~Lq3p9IXp*+;ZkNSyGsLU zimi2i$PrI6$?&8oqhYL%8ghBq+5QVT2L~blh9NDM1%xAw|CJTQxGcLw9rI{_2lGEp zvVYS^+D96J_3&sUyY(OB-lEh)DC{^@$Kyi$oA@GFl7olk8?wPNJU4$>YYAPV*aId< z7Rsi4l;~>PBG=Ive3MPy*0>aUn}CVy`;^vL<;@*i z#?oDByZj`l;~ux2e|U%TWiF6>lZ6ownKI+7JIc4LH~L_goXFiorm_IQ)&_v>Bu%%S z&Ji7p=4xkrmO6HKnRv8W{(;iQtCeQ?!RpOT46a%3;Dv0Y(U(#WA0e06-wJFv6N(NB zs^?YDim}5zb|@a~P0Ss+m+ROu#wQNqh}0mGE>YS6+-ArvARQdk6}SQ9sMAUVHG-au zIxBYNo|Piyy7b=Iz8R2}c0=yQ>{S4!7dSboHTD4AwZ|h9f1xUG4>{%1B761FI}H*Y z=D}WiFL~*;i|dAbk!H`AjzTPz5=wOALP~a0-v4vbQaJA~kK%)h$OG_LkI~=$Rmbv% zO6bBML;nTs4FD}x8$BEryADv5GYy=iQl(Olx6?00e%84xY)eMWm0UN@4L{~IH$p0F zn`X>2kEGl z85tUfsda@&Q{5XQrgyy-41x+sye^ZWq>-NOm4)GLgNIDI<031l@$vaS!qUU|FIS&2jGR6o#V#z!5$*Ag2q4%QRB>b^*!Ewe%JF!Xu9-+*+&Sah$2ex*@~mX?NK-4^3DHjuo>Je*56m~x zUf(Q-)78n9{CWgv3;+2_M8X7>9>Oqds?uz7^CmdhTzHXkdqze*DCpb`h?+k5fA;Xz zmqFXi&?UM^Aw~u@$zsX-IK0=0)43@BUYf9^zq;m!o^Dg5v#=ma_yA33CD<>pi;* z$~FRcNx230gaOLqZt#}H+WVs|%900uVxBo(ka)S|EE>bnJ}(Ld162Vy^kFwENeL5sQiO{?EYTK7v(h)9wU}-K=T(f#g3C=~d%;G+o5pCu*#&mV=8H&d6mx;no?bjdM~Agw&meu3@n)dF z=c@u~8G8W;gCd7+RkGkZN?IBykI{c@jB)wA{bjnRM>xKnGGjjoqBLfDS@}l<#YEsX zE5Be#hcc2x%fATb_3uU<8id>0LN0Z7#VffqkfV!w-<5!~_6PXeFP7;OaPS*AcpPG~@ML&S z`5$cFh~qeG+OO1}<0RuID2hUNn4)#lIJ-Rs8M6O8LT7-Q+R@cr9$#d3Gp*-LHW|bW z>(I-|quIWWgr;^u(>n74ch?s=$x~Zx?X;I)MBVtbsm-YD+<#TxljOfCjTWP$;Qe1f z9&*y_XXzi$)yLKG6*}ChI>x-f_FrI?#&C7!A+KR&oy_1wr-sjO5xX&?&>p7cHamk+ zegei|V6<{Q3d*R|J|>QS_Sm9)sn9*}`!KuSK37v~QcV$`q^5{{RqoJFh^@vjwzhR+ zhtN)XHLRn^fRejg$~Ej@ph(GSm~Dl^B&d5Vl?)IaO$HddrPj?2$Z5LQj0R8kvg_?d zrs|X(+F*K&T2stvxid-h5Oqi01KX-Ru+9wtyM?Y9ND%riy9LenXf?*THVK0~OW?u~|G$wrJ34!f6ya#KM?VRZ-z=0xq9>g$WLn5KPqVc$iV? z;&PP5jH=jqU=OT|JWv~cM4&VNwFB-=sPnjd=fD5VM|FHw9o%kYr?1mp(vs4PRJC<; zqlcMyjniEv*jZm}IM`iR^>x8Dz5@3qKwmfaF8ca${$2KJ`#E~Jr*?ZAuqbbVGmY)c z!4rm!76&H^5RSr0wrZAfw-xBBQHY3>bORX);BjzizB^ulw;JR0xv?UIjJsmI{Pj=& z`A)+{!QnelQjD_{Qkn=CLkX||iSVj<)ycm&AZC>{_@{qpJ4ElsA6>#-1%jo0LK^_y2frO z7%!#{oQr~Jj`-)(z4gZ#{yHv40~wA5;pDz!U;6N2w_<~MLA0(12rcMg%^0nS$}ptJ z%h#}7B5aP7W2}6YdO5JxLHu=dN4}Ht^gsGwZ~eW+`a{Mg(rM=+atC41n3HqGl?w5r zwJKuKIg9YdTT!h0cJ>;v!KDtYlRAI^Xd7w&EZJ$>km2WF#Mh+ewdAe#8>z~EqdJ!W zEuT%BEOJsv(5IBB?fTxR%=b1kV~kJT2}GiH)()gZQx`RyO2TZwHx! zqORN$ELhh@Gpr$-2`(vT*tO*26#EA6i&?D>qY1&3q*3KAB4EG;WbsS*A>~vv$Pvng z<;;YoL5ZR$F#8X1DI4ZLApZmnF{@D(yk!(is-H?&p|kM@BQP8=LJfvJa~onye4yaG zYId!8OxDhbs6f0KksewWgj~Sk0&!>r$56gDVeKeC(L)To28dPN*N5? zb7Z6s?exb(DoBiMl{UaSd6y8su2|$D+W|_I%m*uWGJA0Z^n=zb44KSNv?BH(8Yy&! zzAuV&V3;r87Kbm)N`Jys%d($Ms~c8`b@1K%cwn#NXs;Q(%u7qV4l%jp?dC>-N0y>P zuY|Vo+-1ifz#|jw<12!5GF0fi(#v*UK4XqHyVrw-$!r1-8`LiVvnD(D+U1o9JeIn6 zzsf-b8m&8I-z7Au?)l{nTmOolk>71`@#*%RR#o4hYSVr*jO7sk#$^kZ^-TArHp+kT zbc8lo$f*t-)u?wJt;QG~>nULIo~NUQ{AFl0(kJhE1_#SR{uY>u#i9Rx#!(Dsr!suq5JJ<$*S*$8q|lhM zVCU4>MiCO#v82C!tNjCbVzn;R%31^2g$-slcYINBqpu}W#-LOA5frFMVMeB}X$UNp z58B#*<&KX*y_{xeYxMBJx$TE|5r!5I;72C9RP)Lo6Yx{@gEc(&GjF^15B|fie(vAI z?4r>HZG+mh#`c9;b9aJO6?Tj&A`|MHtk*ewpNCL&nzGw5GDKSY-w`aRmC!j*g8AFZ ze(qb+{7Cz-MdASVm__2S2%#4PD;Esn*GD~C#Y!eP8WdWmXIRRR zcdboPfmMtX|1ugC$J8v->%js~WR~K!X40398|*`m;1?)jmz%}bO`wU2YL-(p0yg$) zisAR>?xuC=Rhip^I4!vpxc%>597T&q-thtEm~E`?M@N914R)ZOdFF5I=B)Vi+-3Jw zR9xD1P$DiJcqXZK45p^qQ*GFI6D*=RrgXH_<;Opx(T{QF|7CW?RhO%bv^(W&vlQK1 z{t(hBUa+fom6CU?n3g&$2FgHdf`*<;Gc2 z0RNYuxlmPY=_N;u?Y6@qHkRjVGiRW-oRrHtPBUw`-~N#@WaBf60*tySZgPg9L~AKOh5NmE zlU>urBSzI2XO;uaboWy6-iUTY2_kQn*WkGWGk9;?|3LEwHMMa-hf*jtJ-1oUAQ5VC z{@t3U^TlPwhW_2of2X^h<)arn7QM^#F^gHm2luvbO?T=w*)KW6s}+(z8}nD`qtmrV zQTGyc)X~(_{7dXE@4+q>pYbksFI3I!Q~g`KnY~@IZQ_mP$?h)Km$(nwa5hL+d3Kjk zY=BxJs?NgG#eULSQuYwtpOZWBy`>@sOAk=A_L9??OE4FwhI{E!du1N3d<2fFi2eCu99R70(^1v@Il=@x-DRIAI0ed2WHN>0;~<9FGOUWcgoXwm7E6 zaV<6#eAA^ona+#weU^LXkt5Jvj{?$QkiSg2bfa{Z#w0ebliGNR_V&^l=e|?;re>%K ziyU(C`Oegt@I(q6vd*Y*2LCRvjAOYyPqX!KL26i z1jB(TYXB`-OOGZ-o)g~fL-y=pIc_#-N|h&*d6paaYle@Fe5ke))N7oy8mH{<3H$rb z#A=>(f-l-LVjk7v|7+Ag8@ot&GVWapAq6RniF1Ox*DV&pP(<|&V#EjXKer~%1orr> z*khouut!;EL*gfemdC80$C(uMl4vkLvDYWupbIW8ndB@@f1CKb~(UTkFM)6EI)(#8Tlz!A)1RL&GjkcLxN21k?KYD{{K7UXLG0pwv*?CB+Pv%?(tkTn*y zr^Qm?7K?ju){q@{PxX0Gg@H@p%UXg(ds2aJt>5TmkK*zfTNd18yo@rhPe?%6fzu^v|^%s*3DowDJJfk z;b%k2LdFuoP6ty{LP$~4s=i%+cIr=|KeNnGKA0)`P)ZWkfWxmnT};1XNH|dc4D-?3 zBs;N6->N^iEnjpRq%78pefo3DId7#SSYLa+FJEt#t#PmtGQ&I55=Ki1ZvL`_4GEWq zEvvj(wAaU%zt#e4z1^+eM#1c8*%9XsGAkaV;JWvHXXDM$a>QJQo^%l*0>f&Pa{7U8 z2lS7ZBOa?Zz88FV$|>2y9k|)rmOymqCHsu7PJ@#^7(^j3KWcv;vcC_{#yXkG1kfgHMV%n>z%dEpR~Vc?C)pe z{H!(bSb*elgJgoi9bz8OFl(LHoLfOp;5b&-iaq$2`gpZM0?Zj}k#&{tkJ;bH9Xu_J z9l`b}Mh;{!*jW8kaLEcjYJXWFdGfGTLf=UOlH{dIYhnVKwx%V3Xo~44!9EJHpv(8+ zoi?ALiI^C2a)EsZ9fPY;DWOS6VXXpcv$WfcL0meBxL*6U-4-QA_$Lo)Tz9Rot$AV- zN9+tYU)rzhPD=?8tY{ydp|*)8D>uy9p6l z(>ggMm$k%*bE`YJtx>HcUF0&GeG80)bIdg?Hhwu{c+x4iNHgL?8+Qn$sQlQU{%zxB z3P~Z=*d!-{QCz1}jh#SH6W~n&i{C*bO20LU=Dy)RqFs8^bNA?m=U3C*H0z5YXi-YD z-TN$MZo>oS4Q7V)Jl`SW2-hvbiq#k93~!ZJK^nkG`izILa- zVWCT^0?`nM6?4xj^(<|vgPE33PjV03J9^ZF*9uZeB8`0v4W64#=a&68~m&9bCIC!Vn|K z$v=MA&%bp^wg8fn-F6>XHAQ@mp3!q8C`Z5$8}|1se%Gz(lTB1gK0n*^>2{_GiTbe0 zJ6}FVWfx3KeAD7eg~zP=<4qT7k5XNu(VL|v>f0y^`#dKmCvkX}%(2qd`LvkW3zIN` z&qgFIqpvw!rs|L<=-G%157>K>|UnNhnm<&P?eg04#U(n zPg0Z8Dza#`k2mxCs9B!nma6dLWV2^jKh?y9!3tnG;N?b)32L21!Ggw(K;uTBaRUn; zW>#Vk69j0jV4WvER_&Wfx?-O_^BX_=1v`C!0YrHKWb#mYMhF59jImmYd2E;LUHa!C z`jqw0G^77C^e=mj-)B+_tHY>T{7ssdx($;7b=}lwLsLsU3{5>|LwP(5<Zd~W zlT?=?@kMiZ9bfe{>BV=3{ofhNo?E>%M=0B{&ErrG*plyXOI zoX4&9g=k*O7;EqKOlVwz%)b59A%?4pybTsCY=`n7_8*l2OXFvQuJ9x_yDY{HJJP}} z##yn!uSdaToYh;DVoXMqd6|s#$W*O;K8k{nC1{T>=(;aw;j=O}Ph`Nu8Jse7;?^jO z+CbaL43>~JHjT(9oK5FOnU$FD#C2*dX_uSyk(8fQkRYFOKW@S@l|_ZNpz!y~hZ#Ug z%B`GSGKg04#e)EZU5ZSl0j<%=a+JtVodJCC4A{myDmeB#(i>)sgzktB{NPIcvK?e+ zPv)HN&J;wvgu2$mVs8X4+jW#6hot{wjA`4rw_+pAv7^MCG_-pNlg9fU1wumoNJi~K z`FGElT#{x{KK)EgFgz5+V>!soz0uIFy#B8&27iU^!SKE~)}4|GEQ4mKfn=zG!Czs| zb)bPlivW$pLml0FY#$h9J`A*E&%jz;T7( zT{@i8G(Tm^KEM90+t=&RP$x9hv4&XN*}Km}Tc={EPg^Hrb}gxX0yx%HV`eXSdT#Q* zBAt8w@ngMY?$~eq?SFjaGavZDzk<^b^%?{#DdvBEj(%k&9^&AM9-YNfrinSwqE)cFD;k+)^u+uynCo{Q8&HQ3uAv% zcs3L+1`AisZdAz@>O*@0?|*XGJL`lhk*eT0g>@y7+3IH;Y)kjD!@UU@i*Lxx>fPkw zgW#z+4)rHqY1>Xn)a>vY;Mqi4S%;Y}sK37GP6NhfVkpa5TrpEZ>FG8b)pb zl?y(e`*x6B;aLcd=blxg2TU3ubju+$fF>_YF{wurRJU?p1ZSWwKh_&lDGYG6-4MAfp?!3m6*GJ9uD#8BuY&@sMI-h1JQUlv_Ui7!AXiIFw=3=yFula@t0Evm-01lfH_M_;j%u7t^m|6w@!CfwJiMki4Sr zuA`#0Zw4(zM~NB*$5Xy^+Db)VRhzF~*5<2MZ?kA?GyR~oBy}Qobz(~D1a}Q64ok6A z3OPj02>olxB<-iIdNTthvqus?>hzfV_!+9US@<~JQ|#?5w?7calt z`aimOm`yoaeOhGGiB2lA44qRkE$>@AL^=N6I8#1Ft_%4!aQ%8~+qGUpkb)8WXy%1! zMhql4nT0m{W|+lRk)E7oAUQuox*y`1a@g=NzUa2LMXR^N`c27COLc-2=gSpC)ZXw_QJ zAAWT%FwaRNg4K%H8wY`LvsZn0@8bZ6Z~Wx|JY%6NYUNV~b~Z9ebn+A7$$(Z<`W6ZStcr zX<0PG*rT|dU3RRtV$)Cu?$3@{}Ws}jlJr*jNosHO5M3B-2N9Un8o!FCb7f=Y&v zJI5G4Rp7Lv?S%FEIe673WZ258Rgb|l2&$eX-vsVp?>Gq9hRKe{aWhAlLX*YHviNz9@ z0>j?EJ>^s+6!oc=WT(@lQdg3bgl~IMq(T-u%ws%M;=h#f^AsnyZxv`s3QIwe|3ZvW%^?P6 ztnN}_+;&=yk#Npl9vcVmTTOJst{bmTbep`Dw#&N=fwR5l)`WO?6&5xO#9q?eN7$46SuSf{kl=hO%$5Ri&2H zin$Pblt-R^7AvXEL(MUQ{-;o>>JhMrx zJ)i$&+(n;3d5b2n? zEA?ly(u=5a5#K4xfk!(zK!c!VsXS=fuoj;inVazfWv-2GTvoS?kb+d(GS!GS(SVf8 z&8A}!!Nqe_X|4%SFVL#cj;$rSusT<&z;+@JECqo`q7`7~K>6%9WH&F@vrHY5=U78j zGcheSpZ#>i@Tt-@K3F>n?ZmAoKwMZ3K{|8So>ikEvEE%!Ck>Qpw zP5!2&2h>}5%itR1z$pI*0<&D~MkOu}E3mtwn6*@-4p~Ruo)4CaWJxG8-n6%@#RWbHigG@%jj+t$m1;fU9<|L{A@$iKsDUuB{+bPpG94PK zyITI>UK3`|e@|z0+DHoguvk&R;0bueRcf9zMi7Aou>l_`8VsX;z7k4Gq#~=TCs`uw zyP|M|f~1X!qyrF!#@j6aUHKKnSET{M43RicX)2NX$39y}pT45LhVqs( zE)(AbA@LEoTSD?ajh!k=2B;O$)O`A-lOlO)R0?dfvs8X+NPIgf1bqc0R<$LxEiZ@2VqeQEJP9j ziS4ZQ$#-Agrjb!17~ zdW89ED_X*bZ}4gDF@ltXm~(^&bE=uWwLuy@riT83M3rnUF+^8yj9eOsHt!2$kR4}$ zsZChZaXh~*QjWq!g7s})5$6_JdOKN`<`^iYA(1^)9fWS01W@kB&n(xOO2He0J(@^S zCtXXB!G0s9&yaqO7zGW~@ZAtNge}xBVXXRP|Ecr~RiT6ErP{Fu9gIq1A$D;@t|Ytp zjW;bhEFhhpWUTgxItb4Q%U%2FiKwWh_Wq*f5AIZoGf57N_IYtYvwRXb&nmh`8_Rmk zfl^0o7@l`7G%Bdf5el)ELvnr)(g6_04j8=Kq682HP=KgmiKJLa4QK+0`U43i67!xo zae&oH6=k0u!AavQyB)nWs_h>Bi`u1BeT4$YG^L5Y*cM66N~KJ&wJq~htfTe4$Gl%6 z+JqPFnV!<9bZ#J06Df`~hQ`b-p0@#k&`vHnj0(7X1~J^opWCx@OVl8oPbkIzaHB8U zJR_wBm=l+@3ih@Iq7l@<;(Ln@S~iUvx=etSNz4?V_{eIwMU{1p09=S5kxs$7W3MdL zi@l->gi5MH!durkdI4Nq4QvHvte;FP|x zA2mam-*bDT&X{CqwAh1D4O5fd4DlXU&xl>5`S1;Pk$0r0bdsSJfkE)3kwsY`2dOmx z83Q)RI?7a|@i%S|@NMDA;nRH@Y?D&}wFJ0E3;-5kNB>BTe(D{waNRh=Ft0z0B-FDcMS7ylI<#TbCzBy72dyA|QuXZ@ zkg5Rz-R={Y6lPEgDC}$>?HO&&c@((R2)iPgt(2{@ijXiiLKpDpJiIy6n(rcU!;mM= zWtjX6gsmtk8X%sBs4Ut7zot4YY_v5Tinibdw-gatF1C%NawZP8w|1H`g<`CuM$<;1DGqVnX`_lYO|=#{HHK))i9sA>6-~JyJo5*1{n)ut{@5Lg_g;B0o`s(!L%=oH_JMZ+|>$U{KsIC zL#D*3GuKQZSpHvPUQkAtWYG+L(>{)c-%WhcW2We}No8h~>80`!o?kD;30QCd^&GvF z)CEOQXtlgxy#>7#c9g;?%~YAuq_DEJnD-DjD2cu%Kt3A`VWA0Z${U%Mu|DG3w3NUS zItT`nt%-qbzd{HtI;?(bKwS-7TDvuBhNdZru$L>LYPhQw224x!FI|lp?JXj5O-Vd` zO|UM#{m`(foviF&KcQOoGnwCsbCzvjIdWMOpoQiWSf-SJ<9kC#q>~gu7D-n|@h{*1 z-?-cgQkBxNCE}>e`gx#i+*!Wk)3JrdlJge2pwKtHMc3pjJ-(T5u|cDXR9ZVIFs6ut zYXfb9iN`PL@vg&zq)LP5xvTCjZ4|>KAo822k?NFA`QKiU|D&21w7nuR(kn40C8{Lo zZq2(|woxITb$g&Y|QwofL4ozSvP!3-LQiCjKdmzFxaXdhU2!n_^sy@2Z*$f zIrRn-1wz*IH7GFi*F_D+!d%wghTgKY+l-U;> z-=YTT2euJ^!VgvKgP1} zuie2~CTN~1twQ#VMQf~D-%y3}9-$yqmu;`)UKGWbH`R<169r>E9Y|xC+GtQxE9+Gq zvu%ZE{hKsqE%^-jpG4Vj_BRxozC|e@i(U(pO&S>sJIizaZVLdyc~f3BpZ~fAf6!f1 zZsk819$8jMw!9TM(Y2zMiJhj1C^vj_`n z(l1D*?IoELEzWgGCE-ZyOg_tAftK5cV?OaqaX}ibm=5z}Y25M<8QC(77-bQ<(Vi?b zTELC{uQ*D@L+NjPbq^Q=v=J0K7bUNknHuOcf<)>lJ@Xv{KxfH1u91$>2MM3IUtiQ&fIG>508(gCBkh3-6B2YGPinc}0 z6s;YGt>zBfHEZk;CW~}OvXf3(R8yt0UrKz3@GM)<^2XbEHttAg{ad~x zE%+8~P4?|b)g<5cDwjZ_V7f$Vkk-BY5oQEiPx^D!&C;6L_tKvi-H7|jZ2qbdLFkRp znHr&H{vMlFSdqeSr>C6FsLaOt(z7WgEkV2R&{FXYDv1C?0w(10`SyT}; zadO{EF=K#R6w2~8j2-D2z;`T`f%H%W4t*m;KmjK+*;53{R*OQ?uhx;mha zMsdU_;;`o~@_M*P)0%aQR7)pxHO>NxPS&M$Ek&%(J_+7&CWsP+lw|LSvHpq>8tEL? zOE9RJnXI zDWgZn`P9;Jzx}>8dY65^FecFe|IN}E*VWkft;v(|j^w@e{@Unh_@swKaZ_)$-r?=* zVgUx~q7(X5nc&AGcutCw4<~eRy&S#b%+2%p8^jyX0)Ne;kjCcz zj&v!mWm`g0aHFQG2nEIWn4kw&|F{Sa!qj4PO zeLvsT<=ew2Z8MXvPVNt7miX!B#g-z%KKGZw)@xu5HN60N#qc=D{ z_U%Xrb5)Q3&_DL^9DLo*2fFWVJmljw^|*P-BQxoTX7!u;V>}opb#Q$^0CRnuM~pGX z;X(UyYGSMa5NCl9uU!i<8*~`0L>gp!k&oe8eY`M6fs;(SN+U&b>e3qHfsH$omw3U; z{bM7~DY%_qh-x(XK;+m4JG)$hy{r~sF9}1vyneFLR-)CV7b6=QD%ACC!)^}#Y=VMd zmm2Oy??IiFF6UA$VIm7Izwt{X&b4?&cHg0pWOjrQE3wUin6FrqP&zt)0`LNLTi z;4LJ6U_gt!nHanzM3p+Bno3!DO*U1_^4FObg&q%*@r5sa=E#8%^i%E#EMWE7)A`3J(o7hG|(f1@C6*djKhe(I+%ilIIi! zto%&$I@4+7NY#Fu^xdY0(;z0-Gg%2 z1ZYpkFkDXCojxk-yGYfKaXU~}W6}AL`k{{{Eoaqj}S@0OZSg0}5P1tPQ$ca5u2SL3ts=0yb1@prp*5@&%R|)F>e}CyApZ zV}uG2AXEyL6&C<~M@E8FU@el;7J)VIf+QMe(wi3O??Y*d6*f*R2h_HX&jq+MHn{D@rw(8#|&R8#1N;i37&>fREuoXkB70vcqGJH_> z$RbAp83Rr>Mc-Hh@<^e2xC)3310a^i9O6>6jA@H_D!yrZfbD-R)3hri7q(HTpH_WN zFdWK7av~_gbO@09$y_ zXt|m23-H^oV&9O1sLV!pH_B;{Yd^7X^o+GoqJVF#z;LO);c1W@^`NUNAYBbDvhF*GB)&1ief6X3!V@atQ(|MR|yWW=Rq4ie0LhLfR? zj{yo=JS$2Q8hA}kXbl2HN9G#HC;??g7D<#pZTu!?r#OO>2EtBQ2UiqMF5?fzrRj*i zVA)Y*)u<_(wzgL*h!F#VA=P9tAq~UsF(!c^98=9&siI zXNDcw+M1%u7a&id+4i9h2q1}xLa=h=R7aKwB@SpgDpEFUxu50*u#@hnLCbIaPxjsh$j<7#^SmGZrS6t=g#?z7V&A^j zY{`5qtcPIMPR;1eOo$y%l1VmGwKbEi_0CRh%}Uu#V2EpK##7t~#a57F+Cnih-7(if zV|tJV?g#}sr~?-v8wIuDj!;Yo_1ZT=F>R2|wIZ7i>OuSaKj%E}`?f%U<77UnhDP^& z&NZ>nkEN?hf~sJO;h*e!ZR?7|S)_-rS`qJm)zb{kq~el%1V*aY;zrf^~nGnWoA zLUJ>8V`v~$(NJX6WTPlmDjFtc$t#s|g{c~g*q6)7NqPxHTS5~fMfu%#4Z^I=AjK$z{%&FqH^bl6 zwghC!$QD5IB6hxolqRb&j>wU@hxLjbl-1$f^J{satNIoN8U}wRa1xuQvL zPHuv^R#Rc@9JUpj@nX8rWphu8E_*lBHzK(Plm|hCNk)3`OO6Le8oOjVkXmvpRh~dqY%<{I&}y}IHi8PV z`w1-m+RF4bSlI|`XuWBxRR{8THM5U}mS!K>W}@<@ z!l1JhL*M;qag|mG81Gx%U)rEQEqUKvl-6n_jt5S@(Q8OLr|gin8g;9N%t^hL0_r|e z44wnP`qHm1>nRsXMQsgRs#`4D+QOvmq2FDZ$pA$zZe0Z-beF?)ugJAw|V+6(xsJuVTu}mP5(H z1J<+q4GJJT1h_bc6#3V+9!taiHR9toOcr^yAiXqsaAoE5s#IBMqp_?^ac?#Li6=7> zw)%E;;iH*n?5|5bQx7cOZbRya80ls_Lj5EsTR=;iE0Z#z8GRtoY?`#3x5g7eG#DzY z-l5ghB1)A^VIMI(#pLNdJN~%vi`s>SVePNkI1dk1nVHMihf!aRF3S3{_^C+M6XB!E zmd|n+RD~t=h4M|>n}+T61=X-Pvf)`K-PnyumGN5DW&PF-;@UkzP_;zV*xIG2T^o8L zerQG0yS?lJtQEEAQFCEbc$zzl(W3W!1JUXcLb~~p@u}ul7*Y}3|HGLlNjl(?GKi)2 zj?D+8MwEPDSo>=l3zOUZHYGx{=Y48D8nY3{b@AeLy57iS~JN*{>ilO~jOJA2bF)X)q7mik`NC`EeVLq5#iJen=rE*2><3y68dR?40 zKy|||0-I&B0(FC_$)Y?A>5q_B8cA!7WuqW(6G`pH)Zui}%(76?ApeCQ+FL7;bfLm@ zpbDiKcoL?5j8h}WR3mAeL#7r&ZAB>|&({AsaiPq7k-i8$k}{J3NgwT|x}T7{Y+**9 z{)Fg$lb%RIZtmrtC{g zG-t?0k)FzLVUgP?((4;VioQ`K1@6&C5ew~CC>3#|h?##iShGLBeb6N4~?SMvw)(lA*yH)N~0WBU{$h^Mw(7yg$*-l6oPF17nhBef4tL3Jk zw2>55?}?cfcj@$a;`b;rMF;KiJnp%w@V|$p0vg6&33W!?xuH%0KJq&^5DoPTtvdrp zc5cuI9f|Q^z7*wKJyHzg#vXNi)lypqttNkZls{MLqe4t{8MjBkwOR_Wb6afCqG0QO z&1%opg{w5PNX*tJD^YH>Lb(_Oq^hz>^#pBinC1f>owkS$6FT{5gB;x*2*u=;X@!QI zB?arz3gKvT##==$M21K!GOHK?)2XIqSf^nl$`!-YZW=0co$+OeB`1~xhzXfRgnml% z4!=T_`1}LSdXPS<#zsoC%9fqXqHSV{KJMU(IeRS`j4ofr2SF?JKag-36Y@%wLJZt? zYcSjfR3}HZgAIDsNP%?2kM_I_D>PmmAL%P^D4FwG9WwYeTLo4Q&<(hRdvC8UP($cu zm+GL#W0;q#L)KFLvuq7dtjR?axf;&&i7#ZI8qyjSj{BCbr~=A-m!fYiBh_?4_DCVw z`uo+giSB!()U_;j;^Q}d(wB#xjga{)_HIFutE5c6ONF$%YAO>H^B z*x9d@^1rgm+qB%gM=(4jD&dwz;fTEk@C6etP?>N=30KMsN2)Vbo)?Y>x-S&2loPHP zgtJpFnQ&^Ah=)?^n&MgjuDuC`;BX4ta>D&UM84-1tclsP=h=l)Iaq{krzJDjD0xiXBa zK9yn1GHtx%zb0)QxH>l$WY)ooJQ>K_I93WxNx2E~VoF*a{6sCvY)TqsHYJtJQAv@x zI!FopYf)07Lk*Ocz>6wrbVRlqnZxq)D%yto({|Z zU%ZW;Qa7{2YISpsl0$l^%GMeu)$_*MFue{eS$(vrvRH?!ZPg4Xtn2me0G(y+%cKg! z<|^6HA2ArpA=|KjJ+$gr{WCSYbP?2Q{ByNB%&BU3i+%V~ynYs78bVth(|mgYjHT&p z6d1pe!?;BlO9O^|z@S}Z=z}j?LZ^0&J?#5dauk9q9jxc9iQ69Q3)5zYerQRN3O#2! z7Pv`Y4iuQEwa(2Z~Jz3sr^-SB<#?E zwqwO%VcZz5Jxh!m`DMVdLZhEj92J(E&|&l=Z}Ip*>TN|uS67u(Tz(~deibeo1;*0^ z*I}mW;xR*g2KD)9aUht6^|_vzesfzJOg|A!BYc?jwaRmK=m={E{K(Ss26ct$t*=t9 zkwJES4?{Z}nV7H2xgwR_6E`F!jk7bHwbfPXWDJF+L^^dEEnO03kL*l(ic$cg#H|jY zA3V@v_qy+$wcQs3VKaX+$))p4E8B{+!1T#9Wak(>HRrWV0MUz}VIT;mwD_#%RT@73 zfd193VVMdOy{+p@t)eWs3NR1cRfpE}ofIg-!nyGL=RVQ>R=>gRvL{p<4dRh^K~=!GCptYp@`=sS)L%a}eYUJX+#m52%ixGnz@`rbKwF&7mRA2wGjDnM4~( z@g@|3WPWKiCD*Wu!!S1#{41SeU7TU$1&wyndvoO>IK{$;Wa$}U5Jwu1EF*Slwl60= zEaR2bi-Ab^o{^P{a$Z+Aq9NSq{v+o+DQr3ac4K=wA#ck0A+BQAu#LVe!@wmvP0!nG z+|*Fx^az*KS65~#!Ir05#S^ZG$6UfyEa4aoNg)QRL)<=gF@+ei6U$tgzE~lGqF+=Y zNM+5~m_ncze{Bk(an`%j2kRm&D!hwzVR_|Wp$WEWj|8oJv7D4{MDq)pIxbW%2~)?~ zQd48^H|0IfH=r(>GU3D8F%^@oB&^{0oz(a}>6Xu7&EvdPO>0waszv?8RyzBGM%e5R zZ}^0BJ9K;4p0=oNC`f6gw^lb;Ew33M+k?H%RwUlKbF-)gS}%G2857VU*mF~vzBbH>!(EF4~HAHFVSupqajnE zDl-hJmWJdZvX$SYHR1XNNC8tV138NJ)}bE zBYZ=Vtk(@`#AIMLWoe_KpW@bba_Blb0UX&-Yh+g)>J@lal$12o{kmh#ZZe5?SrpSd z)`}TB$Xcqh86GuZ_>4J_b z-mMu&UUV5P@+dBEVo?)F@!!QcUu{liV>dzgzq3W(;N7IoE)oPnf26>h5utZgOy+gX zgK8WOUli4(>G%SRAKHq=>4mbUOCjr!RXLAqQr zhORH2)dN8+u3Qf#^L&x!m~wYLR5H!tQQ?h*`h~+dbSaP6!jYzVm5`rAmn;eBFnvSH zjCmlr0j>C$x-?KoJBR|)r(-7OlQrGSiLT(Ju7Mbc%LPIYs&FLjcN=i`uQ}l3Zy9if z7v3ZYS2d~VD&|QcsTb*&rByYe)JX(->*mhjKT-8%*K3#56b{zPx+qmieQk0p#Z(2C z)~Sb?j!*>HUwWDHplgS#nEhlib4_i9dhnNNKhr1w%}>wu-+JFj4}r3OO=lKZKBIh4 z6t$4NwxoLFLo}(hpVUihwX^9;t;N$Vzg3*;*j_%QUKshRB`zkMc|FO_=!&Y^$)2C? zv$Kf$D1cJse)@kJR;;tFgk?Qe_epA&L8_?`+y0Q5gSwI0ZU!ZG+#kkhQD=TDJ6M*b zIx4R&ZOH%WqQEOr3L7&p9lb8$iAq>$;{3$YrZ*kG(|mX6l~#EVNO(Gf z#}sx|ys^)!`<;m!TPNs)avK+2j9OXU4K!7o?${~4Bp(TA(pkyW*J4F59G8=~b-%E* zzp5*-R7KNM{{`+h;y$aAT?kj*wCwMcdwR{nBiRn-<5J3Xl`LN8!a~8qc(qGU~F`~%AL9fM2sep$i+FfPry;Wm! z_gM}?Yt+Z>r=%=xeeyp=s+_E2XQ_JnY#{js+d7d#l97ub7r6_PYJEtURCN&(N>{;x zYWV`$lbo>!!Fv)SRzOctK5Rj9H+a_QBmYdQI;8p6y7xq8_XWsHA^1CHRF;Felj z_h4>cH8$fvWm+G(rB;6(d10wSk7S*Wvrqyz)rNFTWvSAz9L`y&3uPx?*0aM_o3($F z!4xmjvLRb9(?|qP2Z$`vIiq$YirV;S_cJnZxFx;VbtwjIOd_bO6cP3{*&-kXb0}QF zsuP^@VvC$gc8e!5M%$?8h=~rsqEvRL)oWK)*leb;yD5tm!IC5je^xUEy;RRlm1ZdT zR5V{N=)kZFeGv_{Sp}rm>LtD6byVPniRMvFvIrFwkOGVYmmmB)%AKxCW2kD!Ik>4s zqkP2!KO`raqXeaq4PN80~U2Ho??aBmnDd8SoYeCeQXfFUaGb?qLNNCz-9SlZl zJE@#}*Rr&_BowKrbEZlm|15vsECEZsDY6&hb1O4Vvvs#8PgR2X5S zQ?O(@g&LYpRf1**w~e$J6*Ol=Wyv&*B(L_mhAp!^s)op^9nTc2T2_X6g!4+qg<@16 zv1RF(j#56<7Fo@|uGXtcTL+ErCZTqK9L#e@!4%GIl@wp{ZZF#R3S^LJ8e5l1< zbZf~OA6fgYeu8=eCb_DoqHe`6C#?djTdFv!;R4&_{k&A3u;s>fVNZkR3W0#}uO z-2=(>@Cs}(4iKyyg{D5|zjT3rB+GdxcVjdbdGAYum)_=r*TR3!dpT7O^By}Aq_4+b z+y64}K`%^gvrzGr$(;qP8Zq-(^?*rIiM=S`h!C1shVTE5dw$^`v!2?5~bgLjQgko~5icxRRIE z4;j{c|6pKPvaS%+U+KH5N6rwYW$|<@s!o$g;@7CFNeLaFtM%JC4f>7o?3}d)@c@gR zXwvqKa4k?^GNT$A;^-$tmVg&*!ZEJZdY~OuH|#K!SdR@9l2_j*W@)^FPk|DzFasO{ z@FOm?XN5G>aJV)%f5dd6q-Sc@G?p`y$#hY-y(>wGdSxUq=#-|KuE_muJy~G~VX1@l zOaMLxRgc?YLh3?NLXjD)4yujk(%uUa0`sDT;3y&fbuuFWrU=ev;-Ex`gX%@U5{I&* z5nz_3L`Sh-8|GK&Ls!*vP?FZ(Q@!jTEoFK`?lzIC8!KcOsL`#`NT0K+Z$5lUYUuE# z80b3ispyBpm%*%7jdRRFMUn^cWy&5>FW!McJu_T+(zgoh1^+C} zeo6&BNiEG+xa9^{_5)CulQ@zy6{o-NDsGewqeARVrcjTmRn<71raBIf*9S^EO`uW} zB|_lYKS9p;*#wvKX7K9|15b9I0m(Mr^x+uYH;s93*6zz#S{_Gqu zn(>iB)qE1yz(QD%!hJXKlG24HQa4N6qZDj~qkdJ7vLd8hbc|5}Y0zrNt)Oi7z3S6E<}6 zG#$cclTP%lsFr0^&qb$0lj6;25U18C42(>yv!%_1+P}#Yw3;4W&Pg_Q;lV%`u?nH> zEA(MG-$vyd^xu@sI)C|ElshD3R#Ppcz*kjSH9yim@q;Yn#>I7o5_KS`oD^a7djl(6*58skSlwgwjjf7~-3@@p!ssar-qG zyG6awd|Fx$pmfo+WY`wdQvGJe7^IJ#uPlMg2MF<7PP|2K3d>2HNGH2Y+GD*db|96v9Ga)z6}_?^&Nq==Ro_qp+~8Jlio!wWnIq!ikk$tv*# z7la8S1oRPt2=-0vgXg(oy#LTdq^^^04kYbus<+jA4kSmmh0D_`(5*;o9cnVt;$OQl zIlhg4*X7XY+j@c-U~P&;sr4*``l1xeQ6!)=JiiJzfID6k1al}6E;tq$iC%4=lVQ>7WRYt!|xiESYS z;DaTb=(e*)bd}U@4-mx?lO)L(I92_Qm#nkT;>x)E!GxWbnX$3SdF$nbmD;NcYf>J& zQavmS4gD7q><`!cO$+vPktcR_h>jju-0xbjv@LDWu{zefP#{e;#Y1%?rDW&jm4C!^ zQ8<5RZ*!s>Ov0y5q%2pt;_o+@AeZ_igJJIit+wr*QTI^$&9!mt9bYy8jUIz~>hUqM zB2(4Ua*7pk;Sl{#UmmXf-v8BNaow#+y?v;(u8$8>b(JjxmAlGxqARwXNMy9nf*-nL zRchQ*e_*Wwvmrdju(9$XRV{^}?`YzHEEr&kO^KobmT1bR6ji>63HEMTth}G1lCrCj zs4x>kTF(AK>5WSY1&-$6j-hgc7-#;38iS>kkzyLfWPU%lF|)?kc!*=d57E!!)_{j7 z03vWpPXCF8xDRI~LNWotd&9&?U0kaiRm#~K73}nSfsVFBT9_K|qKfUBG=D$BqJuoDKr+fjkwYlI?sT zCm=0yGeJPO*!zw^kFeK*XwHWGEF}{MSQReY@owxZTx{7qph$MG|9m-Vb8#sal^=4L z@c_2&Z5N7xw>{00?B#9xKa^xtYT8~>8JO={Ew_f0H)-Ps$a(x=A;<<=f-&=h!TjJx zmSpzIA59~COf!ibOJ`$4f=C&IUnd}7c#s_o-~LU zhc`t&Wr%T50s8Pz^89x=rKB?OEQA$?uS1;JTKp(>(~xWAIQgBTUr}2~ni#YwnH+ZF zko#?kU?W*_9>QQ>bEh9bocN5vo`p2n(+=>mbIpkmKqnvKjPu?1a)iAH!eaaT5GOVp z>^P*s?tD2$aEEh^iV*BpoNir0#sr;%u>f$~}A);=~q%Jq&5EQ_lXVb4`j6 zY%>o#;e4mv=P9>2={`H|b0+Vz?R>A{toO*1Gw$KL5ZhO-FR&G_kbED*=*p{gxeN98 zD=~iCUx{Mhj*U5O6`}amaZ1IW_fYP^*+RM7J^UWTogT^;G2G>$OkuE8IN+h|cTY_b z3S}Z6O2he{!r4MOyzCzS z9OBC!%6BmQTMy-~)3(X0kZgxIZ=hRF$F$pwm8D%>gu=-IiiUeQ05SIP z*T2uXRIZD6y!+jGLWJ-dIHh^9%lTfynLZ>98^jv%9e1Z=4$*dqBYB9H^WE{?2(blX zP!J35^twaLJ481RG3R`bIK)1PC4$)V-Iy@Dv9W|{h>+7RoKitXo$p&XTUj~|G4}9x zto5CC*QXujh@-UfD3i|j+3!V^^X}n4K|I^A61f0rT5{Ie&p20Cgd#VWhwV7ugARKi zgh}&nA)eiBuzMg4cKmx$=DVG1mk7a*;*`p~)%l*sIaH$V;p-63?lIVDNP|7>?1!AI zB|@;1dDy1&oyR#;qVC}b5YK+aV9!Dt>}h9z*}3LK2)2`lopHYVUM(iQQnfEbSR(vB z#EFx~QC)1uF&Oa9S7S2laK2Fy0^W*KnhbU4dlqK{{$uy>RfrQOX9MtI3#ff5dyB`lqSWz13!hc#rO&L@JA3QPPGE?6b1u6;K2KxuPH*n z6M5i<^Sz3*0e{Cm{5iylQ-=faDGUZY>mFWkz8Mh$Zs&oIINx30kHDXYu%!51h!dx# z1MqeX2E66_F)21XUtNTN=kvf_2Ywu9i}4@2hd+QgajG4F4`49heGYuT^G%2la090_ zjdwZUOE_B<+;I=H5MvMjF~C&8$DQw(JGVs$??@i6<$QOXiN$RT#Mr}Mwwi0fU0-*U zc}MByQRbZQ5l7i)C|@*`J!fK~?Z(m)w;@7t*@aUo+o3ulvU#yuQ|7<>3nf^5^y z_q0175h1)*9&gh5KKmCDuMS}mSTMXl4R~jr?~LPh9d9m=*KxjYZDTTDbqI4NA>8S0 zrO+#US~hZG)+I&>r&L7dTms)`w?~Kt`2Nh|e%9U2I7Zho=JFUF4B7-{y|@P*XAi_l z!x`Tm!?+tOi_0z%N}f@i(ztBJkm5Y=IMWa>8uMYtIpjDk$C=FIH1jy;9p@~>DZ@GK zI4?WSoa1!zI5T;i`+hg3&p5=N8_v$(jdJb4%H$dqA-T5Vl*(1dkjnL};~a+gwlPmR z&ZCYq={U_i&O{#PHODy(@si=3a-5Tn({Y@cJWe~0bI<3ZTstA=3}^f2qFlFQWpZs5 zA-U=}rE<;Zah`IVDTwbF^8v@%?>J4znaJZbFr?}8s^gr3c-e4f9p?qdnQ@$U9_L6N z=dL@VT-zaDF`O-TM7cI&WpdR;NUr%jPB)M9xZ@mvIBm@P9Or(=nQ)v2PHFn=!jQ`K zlH<%meAjS}JI*o3X*9j8>T`8>{3jxz=Em&Sa+arQe-({U#9I1LPG`n>8m zryyQ8oLR?t!Et6Br=7<+lE=AgXOwF@#1n?IWoMLYGgc;7U4-PC&*OCSIFCEd0fC+IQ^x1_|D%U86RIYD1&T)vZ8S}K`Jnc9~ z9H*7XnatyS_6t$21$dt_oU@K|#&NoiGndEdkjnME<4i;Ru`wTZoI{S&a-7LLPBV{l-f_-CJZ(6q9p`1onRA>@9%m+xbKhMt zea0b<8qUtUqFg($GPy=YNUp6orE=9Vq;fs$IENvojd{v(9(9~a$7$wqCh|D1InHT_ zuN%%O$2sXZ9mko;x)sY?GXRbaJGCg%C#9Q zldCR5a?R&)x_O+(9p?bVF=O86IQKiwgyS@DO4DZ-hE%SX9A_5dIm0>bIL92P?KnsB zIITR+9d}2$wm=*=oCU{u-Erm}r<=!_%i}!aIQt;}#Blc99n)twR+c^u5lWw3IHhup zVo2rsmg5|U_=Yi0JI>RNbHs64d7Q~S&S%G>Tnq3%Z#ZWi=ZxcY9cM0&)5+sJ=s0^I zW(;S1EXs8^Rwmaj5t3^Zr&O-37*e^OcbsX6KQ-pVj&sOyT8=ZB$7$wq&O6Roh!+g! zwBx+&ICGBE$>YrAaUNu(Y(v~VA{6)WzlfvwyL}M7ON5DqQzn-4J?{|H5GC;)cBexQ z(Q=5%JVev^&O5|eh_WC~yVJ`KG3OASJj9Ii-FG$$G7ixrh@EGnAUm+J{23J?r>!`p zg4CVwS%)|b(JQ_wcY4$zCLN-ghnR4_*Bs(BM4uo|xzkC9=s3ho9-{4h_xvCVvJ;|T z5Ziwc1-Ts?6J)ChIn{AW1(|nNZ1!Acn7ToD|hnRPWZXROJ`5tkI zeGtn8vFEjz7Q3;rv}lNs(=MD+K}MbLTMls?V!8OH-RWtEIN}hkJjA5)eU_8#CddMO z6+xVJr!x-Gb%?n=1Jf(aA&1INyDL8Pj4MVwE6v{$&(o2R0_is0cZ2 z#VHk}?tITW#9@d_#W&?nk2=JpLp1Xc6VCUVL!5@VOc1Bs>7+w+9AYL9(RRLjUXOz8 zgm{l2w!a<)xg8r5WUB}{)p1G%nRke%9AXNByGy7q9AdviG#z3h57BVGR~_OM#CruX z>rO8?#Ee6<^AJaz@2+!EknIqc3u4Q;D9C1POpv+=InC!Gx(@L;&g>m3BoDiX0}x|} ztYO>dX!pD0gb1NEa7vS9m-D@Zv!Q*{JL%-@@4> z{f2uu4l(w$p-ns2)9!dggwR@fv`Odt?0<@AZ@7mAp-mgwS?4{=$6X>6w^5u@Nw+%R^EjKN&$x$ah_SYz9d@om?${C`w8=bL z)A`QhY-m4p4`(69jv3l%=X%*4=R^ptlSi9zzWd&YXkUUbNyj0^jvLy}H=?9F+;LQd z(6-`~N?LcmXK}W;ea$@_h8X*Xp-nm0qwY8kxIN|`rXa>< z4efxV?RUqf2%$~n(HhS8D$a)XZTD~rV(goSHtSq3xZ{inp|$g9N1X4jIy=QxBYh6S zB;5`%)-kj#bssspV_k&M=JRM>M|&J+Lwndg9Do=*X=wW#?S6Nh5FxY%PHDRBa=w>v zHneZLhgpcRQ-*fjxsJJGTZGV#PEd9ZTD~r zV$23-v(EH_yUmCYSUV4P#QE;}?FjZc2orNV#F&k-w)}P!bF;hEMF?y@57u?C$8olp zJ?tJ1K#bW?X`h4L?`{(!1lGVQO|xCj_Y%$q_D%ON3o&LRp5xAR%-z}|1a>43)^ff( zJ`=${17Turff%!a%Yrk#?qKr{*3E;>Io~4=_JD)!6PS%Z_IxI$*=~1hh)~RS;gpIw z>U`hA*~I*YdpHg;X2XbSXL{P*j))LgD-Sm5e4qVn1bf3hEC|d-181G-jJtImY%UMh zalQu~>?;tKW_uvUtW!V!*(m1S?zT&WVm69XD&|(_dmd*K^BMOr4KcP>J`Ow6A$Mzu zkke!ytm%B`aW=3Yx`(q6WABrX)6Vp=yUmG^Qzs8L<9zpRjbLAbFfqp=#;WqMb88fH zhr5l6kkeM2QZeh!_bkp9v#+^_!w_RN`IvI1N8N2wgq)grunFgT4QB)Uo_jbAF}6-V zPC3&_ck76d(@Y+$?R@wAP6Yb`go(KmV(fpAkL|w`#k}3!wu+Eb9j8>xc?Ww6XN%cm z?qLdIY`uIOaIpRE))XP9i9A@t`Ci4@z`pGsPC<-aAs@5O^n$z1h>%k|4|c@)?z%mK zeGbCJ+zv5zm3(ZuJ&L*6-RdIbG@l3SI@selTg)DI4+kK|{zv)P=V14{+k^-?HE>GP zY?t%BgtLKt(>=^Wj9n`q$DQezyR}8g=|~=|<$QOr*~q{?D$pTMpY*dE{KwAyLBz0 z`qO&OYwTg`I@}9s5`D!T_sEfLv;_5_JMMSKrW_~D@nCf17!0R12JEKFvQFVlgg3+R ztb zN+2X*r+lr{QY6c3k^|-hnjMg{gMm8BfHxw{QMp1jB(bD2$2kx#yKMY3CFk|n8gmHAh$NbZ-p7xOO64_uM#m$@G^H+v=zUy(d2GpU&z z!Ti`2$&)fK!Q8?8)D_9J%!8QcF}JTs{zPU{IT_^`&Yxb9d{gFO%oCVTUXi>cb06jw z=I=(lrI=?h|3$=GhPjLRFC*S^%v;Ht^AWFtxq3Ui%fR`*?*?3MXa%)2oEhbxmmkohvqP0R|yq9Ah?cJChjqzK9c>?pZF@C&(mb5TG7vuL6m}f9Q zALI8v%w5bUV*K8Zd28RssME?&PzHxBX3WfS~z zvYX#!yvK75mkciFw^FU}yP~>+-%F~O@Vk96!tFTOC5NxzGttyra+b2 z5dFjJ?6Ayk(amKW`E4w-mn;jKsh^TH-pBNv58g&azaG5p5Dn~|`nJsbsC%DYwlPsh z1Q!stiDMxk)J4A$5H?4I+w^T4LfsK&7a^Qm3P=4XuTj*yqBsAfMg5Fu;_w&xb_}7r zG>UK<1lt&c6OnjDEL#FZNAza`#K{QpqP|^&=s3gz5S;mPIZlXWYk+8rzCA!3ixAK0 zTVJk(Y&*pE<%=MWie-C%Xo>z@fH)K(p44~LAX*MF4utJMzzIPP8cTp^irx_*_D6_^ z^lcbK(;@Z&(NRkpAohx7XMkvk{z8D*9U<=3w`mX!hnNClG)s#yvFr*EqoVH)5IZ8o zo%*&6V$>m~fv`pvC#i*4#sfrM^p^s}<_K|{zHNi3JH#vyPh^6e8-}G3AiAP=2Z%GG zr5E~k45B;idI5xO;KE6IA(lM>q9gh%0petYcv0W3L3A8q0f^tq(&B_zCIUoT^!)+i zScG^^-#Q1=5yv66b4Zy3dY&Uk#j-Czv_wA;APz-{C-ogQh?YZ)1EGN+E>a6|Gy_6Y z^!|XbKO#J&Z^ICpj<62|b@2njUU3`<2o2E>2ZY@b;a+{4hR|??DG)T|3kYN4m<$M` zq8|+iJ0ilJ`nC*V)DfmZP-i|MY!k;+K&Xp;EFf%-2)F6mHiWt(%z~iR_keJYgWyRk zAaq3^3J7OJOC|K}7(#c*RRRRfw%{U-5Xa$w&=LK$fN(M*yr^&25IT;q0D@M%1HuV$ z90>?*(N712V-evwed{YsAsk`*ijB7D9T1L+V>%$TL_ZS{4n>3~^&K^YmLrUVU^{UF z#6hvN14L8wu>i3@LOi5z!yuXtu@4B_oF5?eisg8KXo&tsfY==&?$x(x5DkZz0>bvY z1c))Q%mj#0(Jusu9TDPAeOm@G>JZaF?99r>HnGeGh`Q)+28hiO;x>KT22pp2Ss-?0 z5a$MA=>&+b=#v5BjA$u^xf?`x(3JuR+lUW~v_dSW0z^mjw*$n<2=Su6U4!U2!~zf; zcT3emEOP;(E&AmEaV$bSr*Hj|jr_J9V*4c+wzCr_RTN_B28gEUGXY|Mgm_5bhCwtPVjmE;sWU+A70cNG(GdN^0I@ql+^cWX zAQ}!a1%&ON3=m^tnGX=7qF)aXJ0irL`nC*W)FGyU`0Xq$wuxmSK-5LQ5g;~4h}-mS z8${h9W`X#f4C34pSnAh@eue1G*I%vk!)HWGFZAsgM0bhn1rWA@6DR3~ShfU+j_A(> zh?5cGMSZ&l(Q$|cAUO1$>V;Ug28g!k+XKY02=Sc0^_3g>Z9ByFl?88(hGe%2GQlh53a|dR06Rh zgLp+Odjdp9^j8AJ$q4bHzFmXpIK%=FU(O&-h-D%`v_;<^AdW?d=k%?wGQDt!?aU=` zaMxAqs95#|h?eLF0>q&R@ua?^2GMeeaUiri1sAD>IGO>WDSCfE*dGxd(zjs&*9D*DlYup=Vesc*{=Mjc@q z1kE_&BApP&R6wYUek>qtjtIBu+ct!{Bg}%Johbp~91jC0t$@%KeJCKD5iOO_w_^z1 zepd+)G>44~ad<@>hXX=K^w$Ey$%ycxzFkA;IKl!5A50NWh~r2=Xp4S2ARLPb&*@vg z)D*%IwqLq2(flSZ#NntorUODt^fLkBP(*lA-%&$oIl?#ywlgw`CBc4lxac9rX(k+r%;(AnKyO86Y-Ch}-mS8${h9W`VF>xB=pv-skEBh_2|9 z0pg5kDTTQkM7PhC0*K$sO6V(MITau}qQ4y=PDY3q_3au&#~~Jg_+kceLM(FuqAmL6 z0C6lrJg0B{GE)nO*nZi@unia|>4jKM2Z)yF?*)iM5#mXGM-8Io5aU4D3Bv$!P%Pa5 z(G-0qKc)VFI89fw!| z;@@QuC&aQfK(s~Q9w3fIi0AaJzsK~#A-2C~V{(56aa1hZ14K*o=K{o`2=S!8qXxlL zU=U;+h`*gC#X;i;2u;yD0>b`?@Q}U@Lufj}J`im87fxizUa{;95Dn2^2oSp?#J&19 z4Wi)?Q$W};$N(`WmR$j2RP@~eVn>9yQ{R?BFy$HKml)vLcFMN*C3eN4G;@JJdwrXgjgm5L|gRz0peJMcuwE?YEuh`*uI)rWDrNivM)fi zL_ZK94n>G3^&K^cmP3pKp>-ZykmH~@ngO9HdVfIJ9}ynXw_ym(VFx+(fuL2~fUs8_ z2LeJv^uqyRcSN{X-=-ln9AOHCpGpzN#4#BVMnyjw5Ozd_JN0cD!l)xmgP=|JxTvZS z$5cS5i+(I1Y>o)G>DxAhx+BbjpiSWc;ar(-D?#3*Hgw}6 zjS$D-fY1^BwSaIkBD|iar(~xY*H>;vsz-2GMkg zeL&bLL7Yg7y<#~YAR3~-5g>L)hK_<9zLF|o`9h*8lm1c)6G;!b^A z1~KXo(?C3%L2MJtY=EeX{$_yK93gJgw`~x0hnNMzjyL0kAm_BK*9j0^(I*4M8PQS; zb2kW=+Zve1I4g z{d$1d5h3o>w`CBl7=}np1M&Z5X}L`-3jv}o`i%gwIYQi~Z`&a14lxVF`3!>BT}kd6 zLa##f<{Lt?$vw6(_#Csh_=*%BZ+qCXQLPKpNNMSZ&l!P00DWC4gL zGKdpm*%~0)qHhln$0EdY`qtN&QaHr+HO$;(5J$zbJwUWXe=a~A5=|_g)OXY%xc)V2 z1rR$kh=axwAb3NZZbg9DA0Zynw_y;h0Y|j}B1_G^;@BAw8lt}t5O#|u68GxcG=zpD zOo5<1ez-_0#IY+N@ZKh!ih#hYeTHzSzAZx-b%bdUw66>o5Vnb9JRsCXe<>hr7EK&( z)3h;WE~%kP)upp|g4c5Qfvm&IGH z8z<3`)o@xd-4I)24+U3D50y8tI9%CeTPk|9XK}R`#nzQ;(lb!RTP>tpJ9O8o+_8zb z7h_|$7h@CeJjSLPdEx`j*jyWJJ`wIb#%4pb`6sE(Ka4h;Qkzdkn}40!{6@6d7GH4% zsBW*g68>0bH|lnKGrNY{9n9>SZg(`ZYq{Nt%&zTr+>dClVG(Y}?Ko%Sc3rn)pOV|v zd4j=GjI*?EH|lnKGrNY{9n9>SZg(`ZYq{Nt%&zTruVi)|w>y{Fb=_`TIgLxb?D5O& zM%`|2X4i1LgPC2^?T%)4Ew?+7*|pv7mCUZ=cIPs?uG?*kuYW0j?WJtxZ)P{@c6&3s zhT9#??3!+OG_z~D-HFVu?RKwZb{)4nm)UjQZd-hXPVwvY^vmo<-EMDY*KoUonO)QE zj%Ic(w>y#9wcYNO%&y~h=Q6vl+imO1^0&|9m)VWF-QLWu;dTczyQbS6&ForkcOtWE zyWK09UB~UtWp-V++t#1OuixXB*^Rp0-psDyb_X-NrrRCO>{@PjBC~6|-7A@0$L-E# zc3rpIHju^7-h`I^Wp<-(w>PtExZT0buIYA1GrN}CoyhFkZud%N*KxaZnO)cIwk^rx zx5U#gvm150y_sFZ?G9#kO}9Im*|ps6L}u4^yH_&1j@zBf?7D8ZZ7_@9pvNz>8+E(A znO(!}4rX>uw>z5IwcPGRX4iJRS2DYf+nvkox^A~EUdONUJLK`p>_**gZ)VqUyMvis z)9sFCb}hF%k=eD~?v>20<96pVyRO@98_v>i*yESkjk?|5%&y^f2Q#~-+a1m9T5fkD zvunHEE16x#?apO(UANn|G>hL-k6>>UMiGyN25x%08mq(jH#B8DDRu=}8G)C(auZdcCF0KE;tT9WU$)+=nkywWy2m1DCp5 zZ0J?b%zV{&8DxmhH!0sVGGJyNwo3*+#S;PSdF@U5J|&kys2-!lS~6<5yg?h2^;c!L>@`I_hFHF- z*7tFq>FBEte4NM0hKZtayX~-S6>&pz+acKwVr!wf?VxOzU~93dm3Wz%UAC6YJin~B zf~!k@aVcM}hi`8k57$=Q;&KfU15lBDh7M;iY(Gg3f0Owdb{icssO^91_RaD zd$!Li!erYq@4DNDYNaWmTF&&`Dw92fV0qPBEe-LA0O^QxwOIKkyK2b+{$aMae+az9 zo^2jGLkoVBvvu z`J*C6h6U>iLzTh@(CSTk3d6R74)tNgz6blE)rI7x?-#Es6s+7NToFr16r7b9I%NOHUe{wkBGZ^<29=)&_6JFX{?^ZRqBa0WyU58}(Y<5{U9G zyjzd=)f-3pRM@UAT)(sk%aDZQy#pRPMZI{YXCNuv#2Y;*)u3LbF`FWf+?J$`jJL0& z1S|?Z1YYe|@FDQ(0KwanY&D*|r_fNKiKb2iB!!EWrq5e~gn`$_K0hmtbSeqSZkyUEIutK5%}=BgE?$H~_R>*lZ+r$KbPRV5RSsc~p)Rs3ltEFn~{funfWKv8*B!$~DCk6u}rf`UMed{KYA>=hd`|_Mk$~; z3xDiV$wkr7#8*c_{tWVwN@BB@%aVe$FbUC7BvMt=+wHULIs0?R(_{sT@qfs z%}XM{z`IzADw+qn`AYdMV^~PDoV3_@LJ`AgZ9M8(&|6Ik$#n}uRQswaZ{Wj&O{=H{ zG4bMUl{_N}tQ%q(AJTv{Ub|wjP_phywT5n~l9ysgGJEZ5wPiLgH=5chGxQGahD{tQ zDG&WR6%4Q_H?P8F-Gs_B#ZX5M>&-7U*iq*zx06kHkL9(;%Bxr?uLa5(Py}0sE!0Vp zl`=`htqoN>c~`ET+@7|RA0i_z9u038sHTuD2tD-Pi+C9tY7~pbSPILOLQ0mvO??ZO zqhcx`_RX@Vz$;;kGlFVP8NnQvGJ=r9bEa5QEgQ3E1gRI}q;98WLwF_?Q zqYNo4FEC`RlZVWm*C0}No_>h#c;x+w)Zz52?jUd+dG#W7(j-4DzFcfYV?z@ zA~{ubM-WQ0*QE{Qdg+!LjrjV~KSOu$qsmNq(EJ*&K?y|0UaJt*8^dBnK~;NwSjOrzbZwj3}umHgtL61Eu84j~6TNO&VX5wkLb+Q&~Na2YSU&uNOBZ=lQSv^R)dX#cQ<`8HZjyj-C{HleI&t zme7Xl6kK?1jo_si!nHT!I6UwWuOL^H*(J~H*Gu8aLmrsxTUV&u%_Gg!g8h0{dQyE~ zIyE%0;e2RcwfB0e+fwr0PbJH5s`aSOR>YR;?L5kEnbh?^T*^0bz-(E$Skhyt9Dq}u z%V?0N!iNQ{;;Fhxx~uL|;7Iy6CjXLW_0ac4d><_Hequ#6*xU16SuQ+$LwFqi9U1@U zaz$gT(x<3N+ex^}H;O~R_K~GjW~Jr4_Vq`+A~jV^PWB~#`bWh|u`tvoX>Kik8bxUF z6t>!A-bE+8o}}=`dnn0#Ef;homz)`*qQin$g30;%?f+6)+nb<%C;`uOa$nrX@JwZB zIzc8=tMI~eS$3wk)`LNFSRuM)V@S|yUkyGJy7cJ~c!g!?o-51EFubpfm;Qbs{x?K- ztcSQtqJAX$?I_VgZ}LEph$6`gH))X^PmAO~4watd?8P^Q3moY@uh?H-TF=ME28@cO z+*bBjZw<2WF*WX0%utwS5!rfUJjg8;yuTVWT~z`P_oU(TP7nH}I_Z{F%T?)82Vh^L zT^_FWFj7+gmbT5hQdV)2v{JQlGBI7Wgc?vKi+Mofah^@YyS+)R0zOhy@_wW+3FDK82u$I&i!Gj@`1~T zt|j)#+#lv%W5f_%V}v6)yQ5gy!U10Fcwi12D(qxB=XECU6+`d}M>2=k&77?bUa^ta zshrm%d9N6PS2&WLAynBBDmL=EFXweK?-fJv3P-Z=c?(r`c*RCu$AedrgSV*CiY}6M0Mw0TZvu445Q>?7+lEnA-!UdEJ%wiXnJ~Bbg4-ksV&Kk=KREEa|uAyt7B0flS3%;Q%spDHT#?K|oi*wd5yKvZPJ|B^ zHe`U}cEs^KZp|1svW!Q_(k$a0vY2HS=}tb<7%Xx`8o2CrQ4Ar{U@nd{E*5EV5FOl; z4pF@_nSy%Js97S7y&^4qxUh+lZaAJty8d`b&=V!4=uAFx7(8-#%OZy%L=L};BZrGc zP8IhWVsN+yuCgr08)iCNb)DffR zq2`R*(kh{>;v0o(8Z{2pGHL>LKr;Mvdx1HH=z-Y8thb z?;FOL|t9qI>0?SgvUs69~UjcP)DhU`Pjphk^4 z0=3Ji<4|8VssnYuQKz9EFlruZzfoHrD?WWdGwJ};A){JQUo&bN z>S?29pq?@66x6Zcs$x2239qyx1*X%4KjLZS8s9h=68^QKH2z3F;W2o^<1I^g3?bq1 zyIA9K3B?f(g2g?lKO`O82Q_ZgB-Er)hoNSSYK!lH_-3K@7&QmgGU_bUDWmFS)mfvq zLv0~5u1I!4?KEl+)E=XnPzQ{ff;w!}VG@P-NE;;=vBM^6<1UxO6Q%oy`9x{u69t1O z3f{6r!4MJ!zl#$E7fTdz5G?M=#C~bd0@Q;>ZG9A7Flr~%V@5Tgju^EM>OUGa2{mKX zVW>Ydstxt$M$JNf$EZ1|?;3R$>ib63NyZ--wH@j&jhZ4+h>sFQauGXhlqgi%JU*FL z+PpuBt$I!L&kD&FYu5t3z#f>*Oi{>w4th(ZJHcKfMS7jKCCP@380`GC^>D5#EQ#L% z1<8|{X^^~{8H2R(<$c;wV$_7Fxw0lbEurbUF&z1M#%G0US#ypop%)k}=>2YW*XcR_ z0-ZUoe>wkT;S)CRQ`~4>^5jtQ<2LQ`t)gD@raQMuGX-=UuPzipXfa=|VI5t}C55>-PYv0%;XjMcC1&~%lD?Ffn9l6 z(`0FAJ?dr_le5K7X!S{P>iJk$C@2TC5>x$(VOV^Nfp-~K^%hDc#%=;**PTuGU(34J zaG%+jFvQ@3(1utTa6!uqPVzKD517#Jm-Lt1!XTqtxXDr@8NTJ_n>{6nC4)G{J4j`T zrqPjuX*gslI1EOo93lFEh-p~_p}bMUP{vssNBT)sM%LBRrlCL6^fu!mMx(Zxq~Um_Y%(ZsCL=WBwE4Cg!yu^x6Rb89Ev>LM5T@>KMJ{PYqDkqX7k!r_qA5mFVvUkI z7v*3CpSW@`;zl{hNGV5_W<5Y58taWgIas(1fXsy@rXIMtYJh=i7)D9g04Wz)HX_E9 zR~vKC7^87TKwUjb!~M!58SBy@WoH&VsVVG7+Ogc7$^0Lb>EMGr)(uotGzrs2 zOc*HEwcbrh(dr6HPLb)20ff`V_e5Om%T+H$){<9F=t^KEM6GhSiZ|mUrUS{9Ig^~^pOg05$5ox(6)=j(wx~~-r6ouHGc+pbu+{&B z_E%|Cda8Zsl4`dLnis?Un`~bCbM-*K%Kp1-UiwI5TZ(&&Rwlz_j!l?!Fy67134qcG zDd(o4>9`Q~Zd)1E0HqD4V2j%sYdokrwSULk0cnZuyHhuWx=TBB}< ze%oH?xKc=tKGbB^NULd zLSHE~JU_cs-3F4@dmW1#%3Q-km!L|`tA3T`mzp8=ct{y*G*$0Ub!fR7_Wqj?>XJp> z9agu)t|LOz%7KD}bKsVnvG}Q*=+?B(6H8iwn{EF+^=v8D?%?;|R9$j&QlFF~b#JJo zSgTIkGS(d4qAjD9QT>&?bNxkE`lZuZSDH8MV^{k1-Z1IJ8U9 ztr^QsXqBZlt{14GC!uYoV|k*)QpE+WY1WZoXWT8xwF&_yjax!zfCLU%lcJ&cVt~;+ zT*#=(Dl8*fS1cXWF<_MhBBj1Q~rG##s1Tg!30?? z^GUn|57Q%CQ+ZJOFj)CN;86$Dx_&DE%gT(-w3A`PI`p(?1N26hXqQ;2+Rs56YmSx- z{a?j0YnAF*&_f(4h472&sfMwSwsaDjg&$p6!Kj86hH8m`!;Ppc*|JOHR?41wngwk{ zV8@n;&BBJ39&Oc`xY~?W#!3T4`a^ zC)DK;JL{;oR&7X5(>EeCx!1IWrcO61p)M*h*ffF^*h*SP=1eHi8SV`|@zT(lzT$8k z>|H{f7$aHMFi_A!41*I@@Jk3n%dtxYBO4aylrt`ayx4XXDk0@)%vf$U{a}d|LmO|w zk*4rKNZ|?rR;r8)hN~5&a3!ShN^Kk6G%`d-UyP#zn`*;w4hI33i@moxi~!Z%H6v`_ z)t@wl9@cLrb!1ypTdLSD*AF%4r)q=MrN20`0{XV%&y&m;KfY#ZvAm%=R9%W`#hTh6 z;c+MEFfqWQSb3>bV{bW0KqQt{hiNcImM6E4SnJ2tq18dHKbeQh#v5xZhzHve2c=(u zx4P8AS+Qo5;!;#xif@Vwd8xQCR<_MZ;vqs7YyAw23|hi&Ae`kywTPZm&2i0ai8|1v z9w0-OmHG&P}xU-QmCa0YcL8#j~xLRK`IrntPa@% zY%dznV-Vme1a90RBUYmCm7qVIU$~LoMy4`RBWzDe0WFY1SR|>SEk~=DD3et*Dtk+` z;3}U>iUndU^;FD5iO_UOv07r_Ng+k26}zz4EOY0&S6t{5kPT|NZPG!zJ5>nqm($+? z%D+MYGls2nPHYcyfFXdO%koTARNJA%DhhcZIya#p^m;)kXmfIi6deT#V4)*WwfwW1 zTDc@7Q-MlA@kI=I867OHh-Ge-l{w32f*K5EPJ`&`ApFvTL5VM$w<>caFv8`_96LNi znWH|v%mf};8cN%x1a)b3sfy2~%7{xtX^O0INfZ zhDug1hdBTk;L2bEqBc-KORCE^5dfAp!^2m#F7>2rV;G93B0~j3JZj67151)JsY9MF zA)LVXBgVsIz91^<7?{unqImgVJ#rSa;gJ=g4q38kWW^9^Y;!j&LWw75E(!6b3K&@` z-CxNK%G`0b(lq79+VC1~v0hqTv61@I1RS6=6yO=APDEpvaMMptUq-wll*3Tfw5lT2 zS~?O>D*!$~Mk)Q(6eXJeRq*6$55ZbC;WOl}(%N))3Cb`sj0!FxU?C5O2rnVJ#1Rw9 zN|jj2ReFlCReD3Z7o5Vdno93dOM;;Prn1zeRKJBjFhlJ}9&VuUs~S){NWBA$p*O~+CQ(%DEv@!SgJ~)@*_>?XH=wAYf1yN;wIh|5 zN2p9psI)_s)#FuGs2vG*L{&UB;>cx+kEzjRi)%!NPmkw@PY2TB(-H)$9MJm1|5^xD zMuE(r-=RXJUQUU9H?ccWlnXUmIGIzRPN?ZX&d1rI7`kVQ1efP4MzjSXBE_NW3J6lH zmTpv$hgGxILgu{0&#h5fuqkDuVenDU7h$xnf){Y%8M-2mz!;l^mA|t5VbsU{ZHTPe z>_UrVVQHG;)}&k4kkPE--WIx%L&8}EK-7whJ=m&4*bT!>=1^Gcyhc$03__IuPD>QQJhn+ z_$@#0&fq?Y)JM+u`3C6d~CiJ(e`ijGrIwna{rw(qBU=e<+x)rz~O9Ho#Vm+SzN zV1=#%WhFVZig9~YF3mg<@@e)n1)s}c9i>F2qZB&Nq9A*zzGup4HpN>uGPhCH861MQ zDk~JUu*>@IleO|p9ilZz$0%M5gCt>oKtr#HrK;#gK$KW2dX&llqP&g~F`Ez(4U;sB zRHlz=YL-(HDjDV(O-WpWB#l0s@NI~-!FDYY1pn7eOnx{mmK1*zbyHp4Gh#W%`2!?U z(A9$Wv#HFp&vj@yX0eG==2e*3u2+2HeWm$FfT6DL35&CKkpPPIR8Fy`QpLJ4)|%9f zBw+8=s8Ro?q){|ZQEQ-rCP{J3+J1T}qg30W;H+75*O*4MdfJ!r zuoc%}WTWqy;mPM?(i0&sx1TUR3CvKL@ISmG;kzsOi30JW*?5JF= zIj}0Bf}l{9(Nl!fpWJZ=)kfw2R#@waLCrePDhc=?mz9tGBm@Reh$SSm<+i$Ia1G|U zunV~z`fNojOC!TXS2?{_C!@Er$74~k-HJrNR9jKAX*xxLu?9P?*+)(QTm-YCpVFP~$t58d!LU~n6AI_J}Yq3}# zQt?`)uWd+JUpidoK=2ZFUK4tMS`wras?=n|NK3=q;w?$>=2*fm!e}LoW8%rR>Nq3E z;WDU8Q`DsqRW=OiC|}DcUm7$n3n|W2kW!oyU1hB2ts_+i-(0?)accEI95E;(EC*=mg=Vx zi^tZUw=Eu~J?KXsE!7@Vz+%;gUbJTxRH}d~NLH|x52-FW7#oNdL#F zk_)hY`NwD=(7Rj%v6cox{nV_H0H4I=vM_!hwBHBpSC@Zi2oXz2X7lJf37M#NX2(m;ele-Hhj7= z`BqKCul?vv!({Pob)T%Za~7qc=VH^)PJ1^OHVqxE8_h~Rp!i+fG;|RnnPbXAO+y!z z%9;jq>MU{^3{3CXG|Upx1x>>&D`A>fdHbf}$7vU4)bi%Lb2EtZ%ib<1{Kf4;^}=>x zmaf#Ib^!ncZrks(_WO+elK2!owF{^Ml-h-cQEC^)q0-`bk#=F63pf78+J$j-^50dv zKyv?Bje=&dVvAs@bXDP5D-_RY{w%f#TZCd4fLGD!z8tEv;uES*0>X??{tx zYqkGKZ|>#QlmhunBPxbW&Zuo=96$psFebL~#E~v&UVkdmRS+IOx_tIA`p04FiSvRb zR+`d!lpefJE|=6a4uiz##WuY4$-;Ub=EOA-a*i^KfMzfEoUL8B7 z8qQSObPkHiwK*$dPPJWN9*VYp6$FQ$fj3U`cl+|+n>({wK7PdLzOc)%4(-MK5(X`Q!`=IMhxawrVIY=;X<#3_3 zC5;%FrKGFV^9iQi27mD;8}OCl!id&ak&O5J{)|itsl{bHA);`qzhvQ-IS@wx+3;-9 z7;>Z>(tyQe#IU(J8z#M#q&0OW7sWq|Xsu_H_BrSs&I_5M^i+F2CQd)6n{QTUj1&Hr zcsWQr$!V!&Z+mLPuIY~Z)$vR^ZGl6_-RLV1Y$6$YXgJE%{>mMU$^AGZ{Wmf8$zjtc zh@BRRndqf2xk=NymCuzlHp>N{W)(F!DQ|Zck;Gv}L<*!1V^AN`TvKcWAZ0ZNQ*fgc z$UBMVIv~Ewbrj#q+g3ZK{*;0cnb6l%Pi95I263%8 zi2F`YSY+?^csG-}qeHP#-7&}4>JBw3JP^unXm+R^>{^<%_GlF^s6NyfrS-?-MYM?q zo$Lu!2(DQj@;C+>Nf-`W5FG|ikI~~VV6*Lx;(F#V3y%~rY`LTO!2%29oU)XWR*v6C z?YAxrlF7$aZ{6#ZuWTaVunmLRzWzI9ZG6LTYQxGnHw}MClUab0+~|rjo4O4NunWm3 zNA(^86Pa^$;c=yODY;rR(VBSD6rcutBRypgqQ{n_akXi02ChQ3YPC>#`Tu9{T;R2; z%KX3ge&2I_5AZ4|DAerpN_m{14tKnaosFP)H??wRnn6TLE^^nLE`myFr9#F@GiRit zG{dBZNt-OGp>&GUF-oT_NSU-r|592~o#OxfJ!|d#?sGpNWz9$QIeWi*?Y%C~de(DW z&svLbPNL;$v99+z7t3x?HPj+SfSQhThQGz~Pt-yli2KY(ZK&2F$L3^Rn76|92pSj& z?~&4;DmqHr681@I);_5@M(vK&WK4QeW5a%NC;7r2%*n5+C^E7r!2Y!#Ho`Bv~hk z;uCroG>q0$W6Wd|W6rbbFfKt>&mg6#Ft76CIcerOv!t1ZhjD#z>`o=SPLQzVaA#tT zQl?*o%L_>ok~EvavVd!${9ooh?39JCd|W^+V9-(xaeSs^{D5*3ObjSSw~E7`VuiT*e}1S33pJ6IaA%F(bnQAzWU80wf%v637E7{tX3p1L6Pu49fN1 zQv0Fj|LcijaBc>TJ-CaFJ#iV0J@J1HA2TTU+l~J-T05(cs(m*8)(92kfc@q8KdDvz zzlI-<|F5$mR>OL24Dw0J|E~`Dk@Ejl6vj`-_}*{d{5nYazq6kP!vEK${Qn6He1`vL zPxh1fujz;Rlm7u@{%WzqL9x6GbSz*-WNgsbiQ}gPn&bHD189o|_Dow^CITkbhA)QW zueTTg^t%4BE_)PcXX_yk(M;s5yS46PhKXp{hpkp6naSZ7w=)=0+3) zzaB<{dMZZZ+5!VBzaZw8sf|`e(Y2Lk_#o4;^xjbQUM23YLMZ0>z{<6ZR49+Ac7~LF zst4v|`Duw0XvL|oUF*RxvwD1Wi0dFiYMtlXc2QrH5lBr@%vY)m^O(WcM5Sx4ct*B|Z zn6r<`qmvH`6&N8M1YSGUI2(N+6GFRm_~|8@X!0bGq#DR$6A^mRtiAGLklaK?t2IfY z^4ppNp-U`O5$?sMrYjT1E-L-2Q@B8$kfuZ=a*N%tWIHq+qHLbJ&g~8|g8QBRzRdlj z{+`}S9`g68o%loXRc1el-V`cS2J7X@0Hn}TxPomklD}yHE?*=GOeP^x9s2n zeeV&})N3}xZRPM>=mpQuL|F!-y3~Wcd2$)_)=_B%(C84YU9wQ5PezTs_Vuw@6^veT zojllmpEA2pV^@*Wa3Cm#A5d`lbXiv{0oWo}he%XGKuzo=#HFmLO4y7I&(RRMDk%2> z3X45!I;d!&mO=SwS=1UVmZ?k#ANJ&pRW}{pG{{$}0MTkWS~i60$-M#vXQKtZ&f23V z%#yevGu%yfQ%%DaV`F$}fhy?>GwQZVQf-X@2DEKNRNg2}NfY-@7eh!^0vb+ex@;^$ z4?qha3NP+an3No16}?Vksno>oUGjh*5E@Zi z{C!U&3Rj$sa@Km0cSZ1;OW*Sd! z%wfv+GUnv=VG#IHH<3}7yb8J{R1tYyKH6t$Go!9Lap-+Srb5txh@}$EsY^Fb!vf#? zv#JOA`Jahci9IW=@TyT&U!nI*q9f!rV5$;5K%&zi)!!ax5Tlaz&1^GeInHLW0ffw2cHv@HlG>6hZI0WMcFa+m#Lv2#!4Yf&?H`FFo-jE-@ zY)fZ?A7auCGR1b_cqB(m+cILh$}5VLn<i>OH_xi17Kk8n;-w#aP%d#o-g0244y)1*? z(A~ef*KZd6sC(Kh)`_5=)x9&!dp9se4<}b?3!#^avX40)7^sWO^&p){ic;|uA0q?ucO+^fW@bAH<(M&`y<6@{E7p4;4e;wK^PG|zZ zlK*gdfYdIAl^aik{CB1a_Dd9fYl720x%OwDe)vDXbHjIguV*@bP1(!J3ws#|2U^+t zDi#mRK3w%RJ~)Is`od2t9m1xs^_Ki zK52Ak?~g|J?H8@lso4F{=)TikvD!yfa=-;cEjf+u!R`ew_!DV#FosfFXMMTL0Pm!( ziJfTPyS&6SHs`-A?FrpH+e7#gP18@la9#MifD=5nNiF}pXHM)nKeidWN2`Wto}Xvk zM99@JGly&#n zQV=4<=0ims>5Q&39Ncraj#c|CF?$=Wh}p?vQ_TWtR40y%L%FL6eAWjKdEe!=KA3V- z8X+_7RZ|ML%Pu3Roe29r|?XSom0>*2kJh?JbEjf&l@#VXZ&H|v&#e7vs~ zw<}Zfl}uAB<{7oIHmwgBQ+*U~O(D$Fq|?bA3U(s{8mLIG{n@DsZ<%U;AZAiSZ{Xfzz}ij!mA+<10EH!x#erN@T9G6(h}$Y*JYnl`MYANRB9wi?kLt^EMX;`a^?-%>u8N6YbFmwYuZ>GTC+1jZQ(M{C=lH8s;{jeT&Y z62e`jHFh!(ZBo`&qcZqHfZNAY+SH1fxf#R5>@}|DR#QMus_At7fx{T%GMA+&%^Z~Q zb?U>9v_6I>C^S!LDV`{pp;V=`=fbc?5n`C)#_+}VU=?^sMP{G6E@Xfj+q=vzh9BOo zk>M`RN1Khs8Qzly9hAn|Cd1`lb-{$?nQ;v(W~@IN=sRIG`4Xan9gm#b!DEe4EI()! zYg!C0caIOez-ePnvQNYO;Iow)y_zA-&4H&xM2Cd?jOfep8nwkb zTEiw&kyk!{H}%=+;V3(TfRUuE&tsybAUo1fie}e zX*2uPq8T3L#W@3*+chX%Vt=KddtFz9v9qrG7Mhrp6!HM|7xzZM`|KxwPDM}t-$^CNbI%DQYok6O22LGtllm}JP^1SsIg%wRc}|N zK|JE~d-TR0SaFZ)Et)Y3g*5#EtG9gO)mw5U@7~nguJ1`EcU5n;Eidk)dTWLh2SzBW(jrvt{c@fUG z4{Gi$LMiR-tmg8-skugT15$Huf#%>mj^+le<~oYoS2b4@2blnS)Y+vv~Z68z}t7Ng9Q~3H(b^6k5DObUBy*Io^#dcr~ z@2c2#YIy%0++C%kvYj+|xoT`+IXmXhvV$G#Y${!zDRVC7k9m3yzKgMS*siQB8_w?P z7p^g>)hGkD1W1g0wB$l zr=YYSbk-gJ{n1(P3boADmxj*%cv|%Pgz`Uy7X44XYtcT|(`(TZwFFf4sYU;x=wd#1 zri!H^$sR(*ka_W_JXY}G@=?-xv$%~O7Gk^s(_s~6_RaXU&{`3n3Oq?YyWI4>lnFPF zO3~^EA1T(;VukXNu>!`@SK1`TEPx^^X?-K7&B3{l$O_pFG#q?HT=J+n%5V$0usEt? zr|5Oc$fDBpgq3>|v?{2#xHV=qx~+Q4MYSQ1kBkYH$(jN#x~#iUQ(|qSkiOKpF*M;` z7Zt)LAguCJ=$-}OTIe3Z(1zSJbWaKgyAe_(n`1~@h6A8`%kyHc2SSIfPs;BNHK8kX zq=9{=OX`@u1?3}qL2a{?H5}>A1xR2L+V~?8i1H!1Nnn%8Ev}kKeMSDCIS@czpR3z&_J&ErxNDfs1j9;$T z5)nR5A3i07t2cx!{t%|`*BjF{<;NXufh12`k%fYe4W0NI)wp&Am95Oo03ouH3pB)OTO4%a5Vj13qU4N7g;FQ$o4p}Lyx>`eWWyRdd zJgatHkJPzGYa&8Nn0)STyqmSO##89-Jcr!rDfB5}NmhbtFSf@fOZHdUJRyYL^WrIV zGx?BHp0V*03YB>*3a#}N`jqiGhE_(QoB!-7baP6fPYswtZKoj?cnSBLg>CjrG74oU zhIAEcmGLPSSzVJ-C`jr;q2H}i=(dzXznf7gb5&s91y8FJx>BeXx|6Iq4ck~(Kj^Vy z`M;y1AAwR<$qWW>tgx^N`)$G(h%0 zK#`UcsH+C32}f;wAdZ-7fZ{_$D4PP$-;^QNb=Lw@N&UkrAKaeu!5?})xNrQAj^IRw z@(&}6p2)ToFgEHrVE+nZCX!`=NTKjjK0O+gWC$P7Nj zo{9@c74R%hb$5K&>hAckg*%)n=&+~h&bGgu9!H(GJ0`mp^DMHJ@R;CC=UF88>E>C? zHe{Alh9?P8*_h2W1j;f8Eq73Ta{1DvsC9XP3`m}EHUpI_e>6;uKt9!xqV{%$t%^@1 zLcK=$6kvEd#VK?aAa)+|nmve;!X>BhkoZK~JcDWa`Q%Y?0qW$le&~>&fy=JvjwA@LzJ1~N7N7Q*mnY_Rw z7?2F}G{~ejS*fz+5Y}ka>QC;Wbac~$YN2=g0-chmLY{IQLBhztI)H&a)O2Uh zbmyIjHkGMzM)|>zi&D|jK<2GAnk;xFiy8w3R})X0i6ecGmc&vON6Ppuzm}Mv!wC!5{KwCO@{X`mOYo&{At+oe;oO*( zs3mS38@x`sf^VSo0iKU012&UDH6_bW@$odKL5(TUm}XWv6`h);YDvwiQB;%fERF+nrFB({3aMIT zc%v?<%91j(9@HX~v^w$ZP8fsDZ6QwAFqS;v`koEmsJmwBYz?97d$-eD!iCnW@BJ35 ztk)3QY8=`?hPse8WgTBb3pfbZwjZOm4pr)GX|EC$?DW$KRWzSHTsYEBqQ^Si_xJxE z(EiqmW?lNbF6-}_&h=0GyRPT{?x7JzKXy{APUfoiHybB(>2EERaN4VcUnC{90LluW z!3_x!Lw6-L>+wDmVc*llzu7pq4khHAk;?c;9{r`1*JQ^pt+$y%-eMhTBYnF|kjI}NCocwn8Y|FOZ}`*j^Z2V2 zyq#5m$f&`KB`-gC2aLgt@~&}MTGJEdt#)Z#UJA-{;|%%~v#esy;|+uz2u7TvJXfBW zIfs=Dg!nc&^xW-G*O~Y>x->2?CGq7^_@^Phfg&-ZzfI5B2)_H79ys4dm&Qf(=M@|| zEUKK(Gy*Rnkb*`iUPAP%45VC7Qo&T3D%UGIX2g+6qCYKRgzbnl5DFpNT|t>nxg zsdheQ%936rKRS#KpNI1^_8opIKChDp>DbP^zl6qBl|fSojCWywJnE3K!y(G#Mn{RimVso_-XWEd2#8a(#L$b!TP*`*lD{?g&7pE z{arxJvledf|Cl2AY3LjRFE$`X5$@#Fe?ZJlX69j7WMgf$neWKimLH zD{TQ2`G^=TIpFk-XTi~!;QtBZF6yI)h?xIz#vfSn#$V(kVt!toXWNy|v;91aH`t$u z7`m*Fh?r^(iITCw{)EKHahZk0R4Y_J=XEhLZfHuF?}aJesImIT;f{qi6fX{( z>)A2;m&FeI2!wX*uxlL5m|$-=E~serayR$vK-k{_kA$gq%DywcHxYT2)8e(+HVP~5 zAF~T&#Gg8{8HL+ig^JxyJwvvXOzMCplI&bqbZhp!LwRSF?aS25=ClVS06UARNm=J# zBK7taR`X)0_hmABnasq!{G@hY!89+1%>LG_QU#2-IFw4kxSvJ0=p0u3C71!`Ie|gS zPq0KYCKdUCTwI2%1Wik`gc0_NrNPO$MYbb&nSfs=;2Z(>6_xQ~2>8!6DnrM=yojg_ zR!sgeqcZLscvMCkQ7BqMn#ghmtz23uBqJ`33(MkQd2_(r zIY)cQfm14dzu-dPb+U<$7c{3S$KQ$37;8jbM66H`%)#?D zlNKem+et1ltHV?h2^4g3g}kY(sqf6JYOTuUJdRq7l5LdW;|mq}qXosbQ94?&D#+1G zSsK5Iyps-Z63Ye;UYp=H{&hP6TR{J%w|yBnjrmEq-}XO*LQXaNZcWg}M$ zOXyFKP_I80rAe3tG(;-; z7tCk6l&elZtFgIcj`m>{Ir!uvOiNVrlL95E3nt$6g-jZ{j^I`+UM0{WliB=Fm9d!= zzF6Wi*9=5~c$fMGcAg^(To^Z=-V}7gjb3g zPKnM1_rE*%D7HxsG`0!wl;#wUBjJIaOqalRxSh(Q znK5I_zsorS6`7TJv6b>e-9CTRn>(R1H;=7*cKo&PEx#L?@*`eTFl=^d^g(3OK~%lD{` z2u&)g<6V=x?5|RGDy8<=;9qU5P>inY>R%VK;qXS?uT^N!$qjZc-`K_ExWvk+fY&C7PO&GzlSBq(Wpkp zWg3%5AEHLetB#!|wO@hm-0Z4nz9(i)NFeI3}gpdphf; zIVA8ArZh+)f5!xD1+8K^Vb7J0LW~>%`{78H%sb)=HOT}2Wp#q1omd&HS^ZiIQEM>m zM@8G6wYH#~2y@@_?r*edJ(=UpkZzSxPE>hh>y~XZm#kfHq6ZuE2)na$7 zQ~I54E9e)5RGJhgzag=;z-m27dH;n9PVfsFF9Q3Z82+_ zU2JBTewwG$ns|tnPDAMcFhl3m#NdIR%<^|?N(c@HtfuH=d3fCxxUeM@mh$AFl>E9R zrA0zi`1Z^<6QW@(ilG`(*TbCF5V+ioL}EuNEzra&M-#R5qeuc|h!El10R^D>8sByd zzK=2>DVM$JOAV=vYMdNx(9j+kj2A241J` zXmSj^&c*QCFs_P>bvT9&NRgIrCNyAPk{Z;V=PZdZbtl7BAn}p*hm;!k-mn3_2bKnu z-vdzvCYRh3&9`GME%w-#ES1ajF#lV6nXknr_Z86s=4Q*i(6i#EIG=TV!yK53p}czA z*5e*JIoXu5cs=Jn(3zaH-8LE3xh2Q&t#Wv*?;M=K=p~28B8R{AXcv^T)^A?kZ_V9T z*SN3t>`Qx}?z^@~#NONcw6%A$G@;%xrcL2{#n@)AVDE7?e`?>_yVHI3&_KUZ?`-Y6 zwkQ+5*LEw~!`R?j##tZjb*f1({d=uHtaT7VaZs{zmmO&dD;*@p$|Lwja{;-@ng~R- z6QC@Pzz(kmYTbhpA4jnGN|D{kQNcza*d(D9x@+h}tjLRroTV4RwO3XDQZY7sSxi*ZB z3k=9Y^8Gu$cSk6JNW+t+g($0|D@bkLlJJi8Set|omR5~`T7U!|b#b#8Z<7=Pa@KdY z?lEavvH&HcqvW_p+GuIPgP#Y!Lv{LqWe*kJeLl@wW@3|fE-#x3%wPew>E%2=pRMu9HdtJ4XjS`>ql zQrPGVD}se|65E2#&9o;)^l-yZ8xte!YRa2?7uP)yeE;-xl9F{kKPr#S5j^f=sm*C;QDnJ5X%WslNm=WhS|DSv%PSIXR` z^gry~yLa&v?eSHdhQ~q^O-jQK$J%US5 z?sJ@xlcV#LV8%_-@mbt3I)H@J8Ut-VUOP5;XQh6N0;E~tMA8cQY0b!T3qvruYiRj{ zV9YXO(doUReXm~Sp+a~nwe}^E<2=-=+@gKyrVLIKVeqanr0O`=)i8XK_lG5`5)Ffo zm9LbSo8DbTriMa#na1{S6S$Tag+$2x4+jVDa@*32v+@Ap$HB(rL`7|kITNw`MV)pIV|La(azh3hPkEI3 zal1`JlowSFip%e=l&7uv=x^%YESybS%N@@$(>hZT3N%$FZGnq6SKy8L=iM9isrte8!|n-sNcCd|313cIweIJS6;}3D zu4lrvR(xz5z*DZV!@4&z5dmA=Ti47A%ny;1&{S*HrXycc8+t_Ei2{NXKP+SZx1zTiFchx7C5uq=e zm>zVMIo18H=M)l6bCr&Wl2N!QlaroQK!^(xjDKs8BM>ca3G3ulxB`aY^M=-cslaV?rSmIi}E!N|% z2SEYoMq+kQuX`sOOi*tBgQ?RPGK;&ihiJ4*pak>)^*c`tiqA8aq6r9fZzq<*!zxSZKFJq~`QZnHn|Q|8Tx(oK1yqdv zG93%|BMSJ+NED}6p_xI)1cR*+g=8>$#*5X_g7cw*Lehvr>(hp~H2o_7okq0~P5nU! zY(&;9J9zln85kEWfInc9I&TGJ?OvzT;Q##?zj35uk{j!jLb;`4>W#@l3%FtVDLxhp?PE*_K1+(GrrFS>!LF3uxDsP?L<^bRA)FY%oYD zEF=@Pb9y1!@@@1EZFy8+LnGNWX-+Nk%Uevpnp#l}TL!32yD|p5GA2nW^ktZkgj2~z zPRrn2G*<>QTs$lfung&J7d4}r*_t(qqqy?X_g-Q>;%tmbM)kdr`Ydq`GHb8}}SXOfLScIC;n zV%@BKFqVVn#&k}eGWD<+H%d{cm$AwEZ%u@18lqwm%({hZ%Cj12-Y?`-N&LqlxaN#8 z^B>zPl)8-TV{}!yew}>Ow9L$LB)uZ4%7#fab<01mGX0XJv+KgJ~+U;)+pIpfM+^#X;V`WAx@*no0JRMS#6{NLJGo0kBoJ%QlmpA8p0SpeXdSQms#=DEW4Z%!$#Uo!$qjb~0V#+ex5F zukCbr(K#e)DIeuf;`C_R=}{7@BJ4!Wi+JaR68Br)a@9!wISeojNS=TamKvv6XaNgo z-*gv!C^cQ^r`KdKr2%e~Zs@BiO$x)6T0xoY-XRrI<@BT7$ZgfiSNrr0VN79ilTCM) z9@!@<92=w!>wyZxj0#^o3Ceymd{^q|eiZMxuA`Az5D@EVv@CjHF)hkjILbSSEWaB_Ijyk&+L zN0go-Yqhlx1lKn?Zn1r}M320ziyO|K9&4-gxM^SL@gNi)Ig~w##X(A;1J7lGk+h-& z5UPxE+J?N>j4!_k+z4IZ29Gg|X!0-uHIC8ffHd!Bx5YH%R^^F-)30_X zbF%v&cqabH3FG%>Fk69b$e*4?W$MfyMa0kIGC7Q{{7K;TH4{lcM zf-ZW5PEkl+Az(uoxv-?(Aj|66^CND$v-z-TLGuV+LNAyEr5yI&c*MIZBh+bf06!HLa-3T+9L%242ox6`OY zX%y`_6^gW~#)n?oJUm$$AG#u0xxBf|3>)(%4*L>lVyR8MV*{fpE-#ITGb1FlXhWV_ z+X{sp8u)1&4~>+9pqXi?KtqXkz$%2`&M#$6I@DaaW8%TQFlZ!M9xRb4{A!Pg=#u#0 zQ?#`Qt<{!4^tL-7Ij$#QRUhe{q+ubgS5OC2U5!);CD^*sFafIKrce)%0CyJje9_+JC8WxCF3dt%CJg$^MGbP{#7QH6LWn8y2H*6$3 zKUozoXdaX_TBK^30F{P?ntH3Fm(u!JC`?mQFI6m88+wFEPvIHWU{M9%9bcA{kl9hN zj5qMak*J7%T<(0mzuBGM?0G#kE}b~iKj)_$p5dhxp2elO%$mc)r-vHRLE8!brM445 zbhvb+sqn)<iHR_vZ+oun)J&+;4cMxS5i0K9m8G7$vedOJ4N2-W;ACh;Qg&(cFwrJv%W{SQK1{rljP|-yc=XOw#6!_p@olb5 zE*BFutxca*Kw0wk=2~)V0wXFy9jIVXC{*OyxWsOo)b+L0h{`RIuSq08SW>NMQRAY- z6UJRFQ;8YXF}`Y&Sxb{|1b8;dZx{z&^F5;+>V$9sHmQZn#*GY)MsmqsV&{Qg--GJo zVaqDRA#)s}PL`+~h*Tx5q|FQp<*j%p&6@qyB^5#e3d`?|hm^17Y|aHq2!knrUu_&# zo3u(B7(z6764~hFIs2p>9M^a)VL>uBd5yB1Inup(@B&rhp!qR}t%?qiVx0sSOBL@?OO^OO2zV8`wnmNDqXHtOTS2>6=jdMZ{gu3SfDt#8=5M;%>j zADliY>{4_092d7uRMYJue}?uk0XB=e1pWmcY8N0}#o=JogJCm) zfi~(5>$su(LU>@*`C*3Rg_ z)F!d#0b(3Un_Hru88ugGqyc@z*LP>ae4R@T`uGDlpW!qzYCL%tqJX?bjX?U?wCHb)f0KY}7%a$Z?Iq zwkxTHzLW2QGL|}*s44L2-ozA@S*kBB}kCI`?eW)EfA}(JnY})JzbJ-SR zpt#{!wz_^YF!a6)W>MU{O|!O$m6O0RaC%9O7d2X5F|4(NN&%h{Jk7LEI(0Fzumr?; zu22%Bd{d88c}2O9$Tuo|#C&Nmu6hczw^{Zkmka%l;+Bt z&}NO5tcrLSK*mIj8oZsV5ua04mB9brrsv%PYpI-r0=j}JXc{w+ro}@(brou66i21k z^0oh7dwMC5CoDf7YWjJ!?yUekS)?5kj455yckf`4ax`4pJ;OmovJc%e{QqG0h#U0W zJ@ktd&(7Tg>Ga<{zv{JnO7vLr(1UU_msUk?-K85y>XnJMSVm(>oJ(YgptS0>qROm1 z>6l=mScT5Aw_3CkSmOp@)TUao*hCj*-!w=xocNOtod~*h&*b57qX)%ga3P8UGUZ7t zC2E8m<}CiWfM`cQOl-KwRiFWLy7oYZx~0=#v@l;V#$hln|2s8@VKQn~Hp4DCCQtb$ z#4Hi5BfmLOIL!=2)kGc{o7zD#Ugz%u-OZrAJyN)+U*??QV{|3#MEH|b|1n9!8O65p z@zmgo7mr(p%FterJM=FIxoa}ya+kS|90|tskwbTPirpu4j|$x6cJk0&QTf?0+4ebR zx|8*v*N;*$m==_FM`4|p8uB6=osLoS%PJEigmA~Mh@>(vlWpQ>Y)PFkWU)yfy_bD6{`cTlp5eyq7KxxF42~n z8jotr0*R+WDxS_lJUREL5bi2^8zDjQHMcPW*~OYynXNsTxgz0=QasL-i6Uym{Ny;F zhEf#=BTJ8mA#YMR1K+xk8f%u&u_6|91Sf$S+91ysDA!b*`jbu`0Y@lCZBd)6N50P* zSv;und8^uIa>CMIQn^w*$@|y3G$}7v(~S%2rD6Ds&^xSsV?<794eA@TW>82V9JqvA z@(ez16KK#9tV>%sBQKG-QFBq#vBr^##*v_^@{rPC@*E9bN7KO3#Zp~xM1&iI5yWit ze}E71>+_BYrb{h)bXT_-;YgM@$F(o=nn5kz@mP^r0aQYu*OH>wHM-knJf+rItVwDjyn9`vMq=qVZ60WEe zT_AO=9+rKg$(oiVAWsHfTqH`G6s>}mqJnQpfaNJ4ZZnI=k_a~leR}y)bDv4cOAo*i zKVUSX)L{8YD_a9CUk(N} zIaeEeA;VxiTt>m9(%M+;qt(W^jg&TK&mgCQq%4Dx&_EDeiLfE&mp^6fu2?aCA;YoI z24TSNG?5Jz$MT72X$bL}>|_Ofx)~m=;nISUism^;RY$2)yBwUPu~w@yK1vjZFGpQ# z9b2hcK;OyhNX00Iq29*3bTz7@W|9k#^ypxS#bW<73hPBjZPY*vLqSoH4v_@t9vUm| zQS2^+jN%7(ftWr8A+K+U#ntQ6T@4tI!b6>`bILKsLH z>Skt&kZV(lXnxxQ=A|vp#V@(GFqJkJ=VIY2U7x$RANUTemQp3-{M!!}oIGXJ%L;1) zgOq+2qKC`5vQ)XwG}{V-ghdgFauXw0RA43(VGoWFdGEBi2F1yB0#Wf}HAxT`w#XBO z9i(Ae{vfP?rrV5I`75$rczB6Q9UELomvI-;KDiEkw0I=JWpg@Er!tXh>DGI?m+YtL zk{YBj;|Oy9q~6rM5%S&Gu(?R?8@pR*b~yKSR77T@!ssxsk-7|Am!A&7fnF@d%25T< ztkWQDGs)A3E(qIA9?M!}!WteUIc@pG5)*DG1!c?hn|y#pQ8V2_a0i#Lx*S5JtpOHR z0=GMXVcyI~iA6vBBvEYm%?(OhYr_T&zqL4FH2#cyA!L+!ku-!Ha~B*Hoi(K}!rjf3 zM!3kpz^kNP@TAQv(BVaKQPgEz%jnD&0K<^-5v7eI zU2gd36q;(j1wuB&PN5ojhsL|rM%GTDWTa=cvds|+#sWn&C@OiP5tkRy)IfRJs{hs! zVuxX&9S@31wN}@azY)elq%gp^cXj7(VfkZVU`%kVi#HQW+($iN++(xabz_3JXP+(9 zXZ4AnQ`XAgilR%ZaiD?9tu#J+sfo9D{UptFv1<^SUg+9WW!?#9F z%P@nS+GpaL+MD?fuV``{g1e$|26o zw){0mXJB`A=*mnz7Vay`F;VGN6TUKzMTz25mTHy@JBqOCOgbocsSawY0LAma{BG%& zJ`bxa@5cqHH<4-SP9(1Kn9hkr6QEt6OFiHIlWywyZ^xmYe=3TKZW|zP(!jN)3{yQO zP95_JZ245hR%>a&n9m=L$c!KO6H6kP;Z0F98OF-8NM$e$Vy~iP+qLIKqfbYy2Eqf6;Z~5yp*_D~B#oRVWlSQ$&fCG&y1k zTXMUQ3H@4dq%Jf>gQMUO4q^$6mlWVew1NaHmR`Y7vp|&YX)O0!sgF zC`jTaW`EOCr-eA}3Jn?a!Kh)xK{dQ@;ymTPHCtfYm0Hhz3CJ5+o_2T-n|67%%N8Gs zDa(j0ouaKvRQHM*J@pmMY9hU1IZQ=5WRq-Xy0h z-Agnpt<()Nk-QsZh-NRYMa)$pn;&?Ql^?4TqrIqZ(T_1EsGSnWHae;|6~@%3!cuUA zJX1%}wlp$Ca(XRQG^JLQ4i)~~;MAbw4&C;w(mQS2-DKAe$Et)8TPf=bF={gj741i~ zC~Y@t6P`tF)J*;DSUM#4ZafI8ig*g|oJBjhoLh;+{JA^L%mdT%W>yO5q_kHCXAw=0 z4q=lQZ%Xq_uUBej+JKXfHjX59m0hzO=LmA1Azu|tsd>PXV;tA`c6VhQU7we3@VyKL z!(f@2#@;Q6jL9zXZ`1YkhBeWMTBFETlc-BfgN*2z^6jV(2s90{$a=h~e}-VF13em( z0j$r6`2V7v#G(XY2Ry^?+>sva|I^bhY&@zg}#8#~b>y^&xwW z-JWcH`4wKa^CM*ns|xbgyQwN& zpO@|oqi|*I<*{=x!a~LAWmQWbG0iB3rNPHVom^TmAh@)kvTzaQQoEy~sZ&@Mg6Coi z4n0ifDNMWIDK=+LT%1CLIjm(0bcm~GK^&P_mP<%}8*Dzlk&wojqstgxHl)ZUrF_(E z^G{86?DU}@IWf|eopya*+E9pUGG$8|D>apt<=JKAG=oSA73@w5l?14nw5CQO6+wGH zYLw&B>84MKuLPgUo1GTHx=zZ?N}~P}+E$>2?#uayA&n}=hd473O$Zk&UN*l8#}GfJ zU(&G;`xj+KU0F*h5SB7ZY~6QFvPX!N4(6TMsAk|n6d+HS-TE~pf$Ybyg3QP55K*~Y zJQY9Em4vBd!&VY%n^H1y`!Oh2R{?q$N|G)ZIaSXI=>3$;(K7AYu^*CIHA5wE6!rXL zJyTTI=Y0!k|MtEJ=v%A@Kq&axUjaQW(=v@iNNFp!C3slXW$H{wnhSm@+*_4Mt{BZ8 ziJy2^lRW>Avc~l>=ivW+Sei$k)QZouO~AdSMzB=oh~X z%8pDh4cDv4PCGBzRK{c7Y^60vVJmI%rr$$>-%ysUo9VWMokmQ%gnr5wN>iR$(d?4k zFK%9p1gI-ok!*c9lr!5rb0M$Thqk8zy(A8V?v&iF-WOZd$2KzM;?R%sX9^Ar+PF~< zMaw#q;CLmL^@${(Fk8>+UM z2tC>~W+Fr)GhQHi3@WO+Z`uh$=gN;2X$k(R>T_C6A1zfp>YM1&4;nGIV4?g`W4rirYQN z4iTjZwrpi2WvT8d>EbLK8%(VZWhhz-5VgaxL9bhU3AB34_tQZgwW%JgL6eMTmQw3D zb?32QV#xNe4NcV0SMNa#wL!vou`sf171*bl0F}CTCnvpe+VM}m?_L4GLADi@$nLbLw=tybGQY}Y|3?;GbEyfvs z7So#Dyb8*w`72E+l@p3_!rIzay9-K_g9+T#cyFrIVobqff+<{}d2%~TcQ#8ilVOTp z?J~6D&~t6JGT9zz46}NOU8y4V=lP5dZ4!+fg#b_eV1i8-*2_w;b2o+% z3>E=E)~!i-DRYBNV!F5wE(+%f80D~!pnLm7$DPF{v`Zliv3_QM7UIIlE9yH?4wLG8|@-#=o`FYPOYyY zmX+(G88#Xj;Pr7u2z4jiHV|UrSK^ZYVFjL9RjOeEFfC7 zGd?4;y_#HCdEC=;Ad7^tfv*p$By%F2K9U+J>jM3RKc&(v^8(Ui6(g0d)lui#(j4pH zdODb|RJ(E|I@S5`Oj+??0pjAy=({6auswR$z}(4e$lL%DFd9ucx* z1IR7oB7{m^Q`=lqnzqs+(~HT7r4?H%PY<3*Mr;#y;z;UJBWbISV}tN)^DWk7Pzv+H zr3D+C8%j}|{)-DlI0hjTaae4&4h|Hn(0X2~SEM}FGbC%jAgu<)akI7fyDHJN;2er# zsoop8=xf7BbQZrPJNb%W5i(#sry+>gdC{hlWW|{vqY8Wo{pfb=0^1u z`w2i~X8x8=cj}SN&w%`Ivq*_0kNcGG>(o15;VVHww=YR0wX4ngGkX+G+Vb=y}%V5*v4RD<5-JlIni zaA$maU&hK|a?CpP*Gta_592UIGWo~wJFPV2uBlAn~phh~_B{e8$O@+aY7j10t zZkTT%B)yvr`p_MYDy#~nso)Ofjs~EdynFKrEejT%(LPmt8x+|0pbk?+*&qP1=3Fi} z!|XjyUqKDc=))?MeM_Fa%KtKzOV2cfjWTlNJCS{%qzZqE_-}RJ963>C;z}J(G-4{W zOu?aU`nd# zuKe)2>r~xU2!}%#)=DC2!-_yEBwNu(WrGsSQ)#BBdDMb(YHhT`lR!YW!79}hn@a<`|17~=6;>hYB&#rLi{;6p?i)g?8cBcOK%weBUuIEwO~Pgx zC8sreqVo1b>P>r_@F!xm_#;IcxnSH{GTa1I3pW#UK`BKiAX?+%m|&I@5cK=GM&zl0 zQgL4(g7RPv18eVR~lim4R@~JZBI?nM5i^S zxun)L#suzeVG)9Ma;Qnx{?1x-CQ+oiDcM)oC> zyNv$u49)*Q(1A9~i5VJf$x|pH5=$_7ec71xATuvgwrs$Z|_FI-^X*H6**!A`cq#H4tF}{hAwS&vm@GCK1{l% zx$M_<&;CD#ll{-ch|u&}y*rztnr&%Za{o|m2#N`*qSuGzQ@IP1+lH3^v0@4;DxN(5 zU=fWAr<3>xqukAk>s3~{eP?KSM)r0~_IBL)?Ub3ue8kin{PZ=Q_$i*yDnB(BT$>cj zSn3YLaAam7m;Do5K?=|E1Cv}Wx=fpKN*#hmr0e{mk>;B@ua`_WoUsOvUC%gVUo>TQ5>!osex3I8{55JFUuQ|~D5#p9YYdTN8Mdaoua`tDYaYG+y=$htV~eI60+Z z+<~6TM*$cp55{Eml8kK^s;f#U6(nl&)y&ww{V%1iZp+@Q6!mEw!S<|GS8Di*BeVt3 z8;6gu>j)N~smF1!BH4aJv{X*-AQ@(}49O_8@?`rhS_hk;a$@jl6Kc*bZwPQ{tX2Um zi@ZO#Eb`uLS!8Y+w`=(fH$MAP?z2tVXC&N}OW2T4_(U$@rYzyB1@^;8*4l5Jj(3EM zWWgraxCg~#wY!nQK$j9Q!E!{#8okSpJHmwvk`W6n03=ywZ@MLbWP>rlyY9`J>YG~e zTWAA;`^=qmn1_aWuprs}SK?{h7n^wmAD7qO6QHj#g3Gmml`X28h9o9M%-0-5M>|fn z@Lc*7BG)(mJ2DfCPQT8*FE>*1y`Y)i*MBsh?FXVTpkwa{o3ZCXqPVs;p3BgdB2xQt z$d0k%AQ6?~;+fJnSTXBRtylFhHiR!AJSvGU)uvUTQ@JOre3yU%4bYOdLv%b=6N_dY z!z5LedY!l=hJr@~f|V~Va?BP&x%&f5Q8CkvbWApW0RCf{k+3G0usWac zF5#AZ!rrT^Sv`MsE~`g!3ET1scjXc`2UT$@jLc6BwYU8{3h-JeUiH=l58E@53h;f1TJSv`GK zn$?b4x6V8DBI2GaZ*ak1&De%EJZ)IHMca~x;ItNH{iXHQFtE^SRpWu}hcdD!=R2!VyCA7hCjW+7p z6t%`uwBpjv2XkHTyPbY_AwvE1y*yGPiLCGSKC7|);*r3o*utJrZg&LwQjC#=aOtj;GqxvHAgW25Vtjj07@P}$vPyZp8)q}Z&t@(u8atXKO6ZZbTn$`2a&t>&UE@4|f;jUc5 zhJ3=+xrC06Tvj_es%31?C)}M&*qBdPlS^2gPk8co)vO*f@2*GUeYu3q`2-xp8QPsc z*njctZ>tHrew(ZA{kepDvxMK)x^3LHhz-fOF5gyYu5ntB1;J^cu$>M(4jYlBk2b!B zY4(dzT+duhn{JrY5En0I@qX!>7VlSdM;X+f2;0y)W@kOZTG;QcAQtcb6XPB2G(qKQ zAtX_96AQ=-ij@i_5fFDK4XSK`Cbn3x2~3D&c+N4wCt-Hlw~9Fkwv|aj{M^VHMGCRP zIGqqVCioQcg>2j0KBUrw`PFI>#qjxrrOX_~?cBjy#;!WiRN8J6CX#jb#07G$^-~|j zak+V@^T7#u!gZC4=0!9u#epBvx%2t!vGRAg&Gtahcjv1;`W$A;+1so);9IHR4lnKt zt&yZ5{sotr%1HYljf(dB7NlLs)EQqDFuv^D%QQ``i83<@eACiTyYG?UK04n%@@-1- z(fdc54Vhk1*cRe~(r({o=a?3Ruw)Y`P#7G4?h&@V*#o*YyMT#2nu{56v7s-fcUog* zL(KUWbtM?EmH#{#SR=>>AE$PBLeY0?Tbb|WHk)kYF3VdH=SouEfy9fX2#S@u7S)4C z{-FzVhQ)q@z%9R^{U*P@VoS*EdnRda%?-+R*`S1bzVMssFn;9NBp1*+S1;=Oe+ zMBz+sqdhqZj|uRX`lE<=#r$ma(wbcBR%fjv;mKcD@$uNNbBMYxm#{gXaAPjv+I+&Z zzp7@n>sPs~?$0IMn@_kkm#{9M@WS)ete$>8m(_#0gsu66+j0rFWC>sWi|szwb@(Rf zBW8;;5$Yz1y$F3Im$1!dkA1>jxr7b*guNfF>Qm2uG^bBJl1tc@Pq-_WupystbuOXf z=3G`gZmyQGJ)dxQE@5LnVNEV!b(YYifuwxp0}-iyq?+$zAITMXUoK&DKH8eoGfG%acev=_?%c~8vzJL&lS^2gPk3@oHT%cbR%PUtUeA4MFm+&*+D}|ES%*H|(fy z43Z!JKRv%P(g!wYf@{MhkJ{kXyJl$*2WEqWW5AP9j7IOCiZ6K2gCKfZO=tmPNY zUN-l_SxZ(dn>F|1B@1WInS1gXlis@GvPn!&$dAYW!LO-wU9bIFQ%ix=^=tJOGa z_0~%k&C$cj?)K!fPNcwbt<}n=m7I9S;tS_e^f{Aeb*U7Rz{`8XZ1+?Sjf#gdL zD&J7nXC1&oFyI%@SiB;h2gc`KJa^HGxfjNB7GJz%@gnXs1Wh<0ePk#PGJGF*?(xSQ zmMmGkOak8b97AUFg!l*s`}mt9|$FrI#8}rajl4tkULoA;qH?FPb&yqS=eyHuv;5F1&O` zH_Dm_QJv^B_hY5M98$!0A?^Xu;Mu31!2lcAI%Cm_W&d=}irFhf@V&KMBj@C-Bf3;; z@;OFvbmWB5vySf4iPoxa!|a^#v(ho9dW`R0kAW5TC!pT6H>bR5?y?p0=FDDr!s10M zX3tv$<#uW6_|ELAhYvCeWhD4a+#sBB@sbt)#9;LggOPtf?$}Aw-Q@&#N!(=`mtgeL zcxk}RDZor*+O%MLpx0hMe$qmBxhUX`tm@~?SvGg>qLW46v*Cc3iozX2@*fE?`+}CV4hI4)i~2-N z?`(PEjLYV&aExzi7Xla<*jI!YfD*Ex%<9#hdv=FOS4e8n;> z2ma2Teeub2Xy&+as71?WtyngD-iqZX&zaGM_IZ%gOD5$rx!{tw?t2bB7y^B?<%Drm zXTq$br_V#9UM`Db-niW6GHCw{wmVi zV?{CycP^zr`8M&a#miR+*;6i^y=>m>MJrA|C0Bc%PgM>wm`-+jsj;gG$)b4|&(_m( zXD?r%MjAG{3hHTK;~a6VppQ1CHLx+4uSJT&GtL>;LoH^F>#Y*|i3!ZmoQ=Q$RR8Xu z!0$P$RNd;#W5-SDY=1c0q<6!j4@{1mB-U}-;>Al&Sh#pO){bw){z<`JbK771P7$ef zCLD+4NnHlfz}Vcl-t#*kn(LsTF&KHKG;ZKbsocPs(y)OurI!O|&g2T5c_LSVy?mB# z^!6Kcqu0;Yjov>;H#7J%ZqnuYJI?-&x4#qY??nEdxdOOE=~MLUQr%6}oizJ#N9*qG z+>LM5-DSG7d`{=?4B$*abx`ptS%sbpyb*X4@Md7Vm3E%)DDeQQ`n@;+Qi0b=)0sGJ z@xlwcu=+kdKJJ5*0{5k;NhdCzbIJ03Da(JcKZQ-4Ic@P}`%;$sV1J65dh()6F-qs| z6B?@@rA*0L;_0t(6Xg7wK6lRIW%9xe$RjXi+1$4-M5Uc^wnW4PA)qI#z$7FCzO%b4 z=Lc<$WGOt=ozq3J$=@pzx$z7Y7t zH|;CU*$2VIsmD$_R)5DIi?|@xg=%!Ndu{go(k# ziNS!N-5QK*Z4Hhd$7Nh_^ms1ggQF*KnGhU3k;}y3=t*2A z1xHWjGC4SU3YRItxB>VOunuSkJ`CIl z+ys0CxEc5;a0~Fyz`p>u0_%Z~0UrlG0c-$13498;4Y(cnG;jy-8DJxDC-7O|E?^Vz zIpFiazXF?qe*?Y%+zs3Vd=dC};7h>0z?Xrq0Qb=*+S#sl(#CeRaW(KB;Jv`rz%{`8 zfcFC*0BCPJ?QN&M?XU92ZKu8Mw6~r1w$t8r+S^Wh+i7n*ZEUBF?X9eYZ2SFhS76VrmgW!F@ z2Wx`h%fNjezRLA$z*gYv!2KS|wLx$=a4IkhSmNRPTpt5=0K0%Efv14~1)c#8s&mlF z^%US!z$W15z;nRwJsiqh&aFz*yjKfxid73;YCl0w^?amLYH)a6E7( z@CM+`zy-h@;0oX>;9d`3;kp&LA9w)x7VvH05f6`ZeFFG{hmZ{q3czt5j^{cJI0={u zoC=%{yurf~u1kSSJY2!`D&SrZU*Y<7;C|pgfo}od1|A2V0DcSX1vnR(tw<=>!|`0F z11AA9fm4Cgfj0tg1}*^R09ShW3fHdz-vAx}z6pFAc*H}{6a+=!cwjnkA}|v;1vnje zBk(5R0$>hs1#lH`uZOR2-3ojIcmVh&@NM9G!1sa2fhPclc|gQ%a4c{fa6B*_ARJZ) z)9Y+;?VuOD*~0}~=Kxm#R{`Jj@F3Ui!1p~o%5?|uOW-+R++YV2xgG=9PQzFuCE7{0;_@d0#^gq0XG640qzC9;o&u9+6KG{_*>u~ zf%Ab2fD3`Q0T%;Hffc}&z;(bH4>xoDXW$=(GQNO=hX=thU_3ApI2$+zSOzQyHUr-U ze&m6OonR2~9^k#er#-}n1;J~8R^V7*_~DE(;EljP0_Owo0#;;-)2M=-G z4Lmz02z~*q9P3~w*S)}Bw+6xMfR6w-1B*WePJk7_yMccJZUuG&zW}1!9n^9alsp{4 z^+;fhhgDp!05$_(2X+F#0QP!#^{3%Oz)8S4z$)M>;9r3)!2ftS>W(0o44mNMG_I!u z?*!frZ1V7VuA70ofqQ_j0QUi3_3(49&jP;!ehobF8F(u2H1G`Y%HKH%{tyI1fEaik z@GpC5Kk)l7G}sx1f#A|Y7`y`r8$(rhKIpxfH5P$8_;?fc>+^_ zslc(o@j#o0XA*1_j^p|_!0Uk-z)2q7&-Hp>E$~6$L%@x|bFU18Ujw`6 zhr#ne>jLrv&Rp!^4P37V)&MsEyFBdX`U~Kn?+t^00p|W!7|a7M29^Qu1g-?$1AG9u z1Gp2I_Avbj1V5l0;8HmZUsID+yw+Xp<|#P7y*m~nt>yL(ZH*LzXn== zLcYM$kB7mtz(Y@k!S{jbKMR9XfZshA2E<1PaWFVo2?XKb;8`Fz2!0G4egrHLI12b{ z;Agx44ed<1>AQ!`J531*KXiF;2XgC@Y#0(!Nwr?#3NjPL%zR-9l`q!16qNzfpdYk z0v7=bfDoQ|KClz`sjgk3pr2(sVrRTNo)Yauuw_MMw$4K7+1 z1bcwB%gLU9$3f@pp&S%}8ekE{*K(}`mU6!gSPswGs9Gv2GfB%{;U~rF64`4mx<*dcJ~mAl8@^xwRa|* z2k!Qs&$83rS5WSxoxGF8x)8kJ`0(59ZR^ZB4aTn8JQdq&v(i13)s|T>8{BQVh-IfO zb10X>T(}sxIX%B0HHIWVd$6tc(CJH;HYS?;@8yfrziCNv+(u?JInP2^3tToM!{l?@ z>j?5E8@c{l==FMin|xi?yw=WidcJLpkI78NO`beii!w_p*2j2#C{5-Hi}j<%jkP>h z@p$Ts$M7-U8Y3N}X-k?9m*zNWVxM7Otmi=s%(E0=c@VS-xO-6Oqt@DURw|%_l>RdEA z4ZCcAxPoNN`2)dFc{mb{RjjC7S+#1hZ_`5GCVF|XuWO;N%S&gcTDMr$b*rq_1V5Ko z)LBbB1&a$jqx+ORw@=Wh(x_bmEsRR{sCDn9?osRPr3y`>MWe9{eBd69?mf#r8l63> zDAzXYA#60^yBSUqmQY=iQXFoab_Jrw%aAYk9FnP;lYJ|dDZdgj}?VSkv#^^2AUJ%nxgR>Yw6OabTW}~_Ts2huiZDq z-n-f89wNU4y=7pIEV110`Do<-CEq>-=m@Y6UHP^XeR?T2F3W3YmwsXxbWZ^Xl72f! zjUDI6HgH1$_alsWLqYCHq_&jcdqmxlUEBSz#-$rH4L{wD5b}BmpSPl?#OATohojhN zP7Firj2MCJJm#`vQO;wh?WM#sl`)}ons^*Lr;X=&mmMb_XY9K7J!hP{_q~_84>|o5 z>K|yQx$}e$S3jL3F0Mg1IP-0uep0UevVa|(!&a&_mECP0x2SigC$jIgu71xW3vOxO zFtM-ivWs>6Y=-ABHi@h5`)=b(ZpB3Fmb>p^y7RB2nar`uVFzqyKYaXOeSLR*rH|{_ zT%zjbCCgJVs&Mp}u|>s3Z`}BjvnEWOGRToXU4fR&pZDW7hLF_HT$BRz>BSa zdG7z?(zK^=?5HuLO@FW*dg#g?wtWwEJ!4=juvvOIH}}xrJ)FOK7(+dr6?-@v_HgR! znFNzz3Y-m7VH!*aCfa(~4n0hwX@abWNv|F=k=1hnHz!@!yO8Ui|mszZd_# z`0vGkFaCS+-;4iV{P*JjN&NTXzn7!N!(2n7UxI!K`Xx`QNzY6ve7kaYzwHlmRYhIp zl8p_k7Dqj|dG4nsU#h8$SJc!DtYNvb;hObTs-axBv9@YMb){WysIIlERbRQTrlz8S zMas47>Z%$lHe6$utLp13R#(+qH5GNM9rxDyb@kPoID$t#eI6c{8}i4S7M#B!Ylcc{ z*|WK@=X8HX$A+kDDFX_*1q39{s-#3b0(x0PW;3;Td=J^McZMg#i1HnG2 zG7u~Vg2h0vF9dXvs2yJyQaYIF@=OViwh6AX*GW%L}t$He3XApcLi;#}{iJ%!dWA5Ej8=SOR6hx!vOYp<}JZ@yz19 zZy$g(!Xglb7%YWLU>RHrm%-(*94cT1FtWJq+_E&VR>5jm1J$q=t^keBTBw6{upX|2 z4Nwmauo13;tAUYbT?5y`b#Ohr5?%#y*bM(I|F6c^9(WDh1UGvMZdvjF+uusi7md&a z&5(pGuobpJ3T}YykcJj$g*Ir19gu+z$U-OVgk8`DyWvI{Y5V`T{14y$-Iou1tw}UC zH7B>^zT9+eTDZ7(&MIxE&H6%GWAB&joocdGTD`Qic4=w7x3s-<4Mo){Y2Q`< zXx~&>{ppm|531Atu-KF(>y#y{_1fRGzp7m8Dr^7pg6i!cOj-M=Tb{-KB-x?s9a-5c zt=Z!GYG;)$@ll}z0cj08`-TGcYiIzaZt6BtzRJ{HO}+`PfotJ9xE@{!uL7k>=)@^+ z2H8nKBQ!xXBw-6|1*K<^-$pqFlD`4ALmFD36_g6;oHoksAh{iofey$*r}9i^QnDJC z8lxJUb_MyCM7l#|jdhK|G-wPv>q}e8N}J0{wb|@G*S2!D<r!RJgkUgP;J83;94(W9nz1`$D!mD8qyasN9o8cCCExZn154VEx zQ{I%_-JY!0{E>6{@3X7yZ>u=g7r6kwbg}Q%$%=%!9k=o|)G1dwZen@^6>7_Ea69aU zH^Lq8CfEnYTcn9w=$dwBtDBnq%$&6}GWVC|aY|P_0VCo>l#A(WCZ_xH#PqZ)rcIn& z)lYYVVtO;Y1@^;R;VyU^9Dt!Qt?U>Ul-&;@ov=x$^!J0?=VQj_+Yyk@yWt&h54;oJ z1@DG?VVKWUexKc^@j2ASuHh!^xKF&e4QJfN<242YfnysV<5bX60 zBdm9(ShIuIn=vQt+_*ZxdL_D}zdxOEWqd|kJ6qaykG<^_IqeUJ2iqNxaZQJwFfy{g zjq-bN@?Ow(c^}*d?+2y5tp5Pz4}#X;4|^@Pyhre|GkdUjoIJAMTLwW$Zb z3SWa>coe=4-+*s|yB+)>VYXe{8EiY-%0TPcFLisVodesei+GfVwj*Tf z38B9o`%RtXyZIvY1S`J}YR8js6n+3t!4KgW{0KC0EBPN&{s}w{KZR%DXYeeTc1E*2 zsdUCWqisY}yH)nNGJ$VnU-uW5#zarhZ}gO1Qx zd*kaklp+?jbq={wzP9euI@8uDS9^aZ#=n5t`oBZtJ;NPQcbM862Rl``RgCB2Q!ySj zG2*g+d-!zqX<|D>`6Mg<3X1J-FsLu>VQ(Mc+wvSFM&5aFA^+|2MZ#=e|20eoXutkD z$p0z$2mBNM1<%6^@Neh?b+(Dm?`z>D7rV`=w5HKF=%!nHopS`r^~oZ9DW*x}N;2n+ z(UsI`S*gdwDj**Pg)kb%z*yjAI#w}^gAro#D<=88|3!R;m=IAvjK`LImXMzX z6JR1t0{&-aYYLnVQz4(vU8W!8bA~2aNNQKUc6J+|)37C<)5*_)8E`Jlg!ABhcm-Sl zBlzrZ=e`&5S;M4{+IbX+mBV$@`m zNq;gi&NeY#L_Q~PjAw9=860E(vE^|S<6aYwd)qzditzvwXX?jN6XRU+i-*N{rUw>% zjj{XDHsthU2H)z(MVh=LxntaC>Qo2vppi?{e7;~rb+hu&X`=*;Z zEh`oArCWVdX8iid{Se6KH+R`#x93l%v0LBCttPvz+BQ3D=uCEK@#*^#yC zlkM4LOJg!)t>ZNk%In&8<|=q@FIT{-EMg!dQ!*kOG9i6wO3Ok)F@X9-eXo8|S$*hi zTeU&kq|wyplhO8f^kh?gpi}|v;B1q$DoKvK<3lmXuCx6m+4MYPV$j#tTgLnXCxVSzanOj1wD>S#}7o3_QXZSkC-l}%*04sn(=O+iJ+ zLce#}rQWLA_>~*0Hdd{SudR<)@`G%=wqjGfV#Dfs%Vjsy*&0u^##?xCRGhMXjh-_e zzoCPlMBFhbs5noW8Rs}ywXv=;USGXhzv<={u+PuCbq)3Nb}YWkc}+tVkDqsq1m=b z%k6p$$sXJa1?ezd1q}oHI8w1?DY$O>Oi}m1OnZ+$?J>D;9SKNj!>{DD9q7zhQ*1K~g<5DmnFzMwxC2nK_pV0kbcj0B^>SjZRhhXSEsC=@CW zg+q~0G!!fMmHW#B<-zh$d3kxbJW?JlkA;0e~hhC|`3JO(bU9cjBTJR!8`<=#{ULpMWH_H$JcOK%}Z`Z_9O?c zCbsi-T~2Ed&#SCiS9yi*BUsn4uCBUrzIRI^mFB`hR?KTf+z#=20y~A|G5jsf`Q*(o z!=>f(sPP$(H+3cATRA;8V{J!gDwDMG)OnkeSsv5mwS<{u6IVFA>5RK=Q`r>5{6>3F zTBRK(LT|RsYfO1tI^U+)(jSJ%zNdCk$^B-;gItD99z8l$l^U1es?rFIE zvApse8QR-Ydb^!lL-vcLrLY1jVI>Ue%K&doC6?xd-q*>#>FQG1d(_0D>yU$#Pr*tq22?I&z0zjN@>2zl zpH-BV9&5_2TkTr6hH^Emg)2bmer(A`4LCL=R||EpPPuyw*l#CD<=d?GIM{NU$MrJkIe;QH4uts zyNW@F&GAqIGP}Hxsg%tFx9d=C-Glr@@<}imroh=S6{f*-(C+yNx;hQrL#|W+Q4Z9~ z_hX}AhH4oSl+Pj8;<+#r&V!-1`N(G3=v-V+Ve>e8GpKtvbyF$tAXhp?SxLTTkqiMlEW0sVe$w>AqKkL;1Y1(dL;eD==2!OtEppPdHkH-gfP z6w{vMeeeQP;EMeP?8)x$$qQMp@)MLxC@a~yhg|`bBvU|n6coZ}7z1OW2#P^zFLK%@ z<5(UKCBTECJXXNI0Fz)c$lrQ)B4?X?N;?$ku+g7_%-Jv%ronVL2ef0J3)26wOFyPg zCl%e0^FI@r^MHpQEgoF7cxchO5WFx8q~DB=<6k#kDy=d4vyr(7=0GXTg^OVx%m?ZJ z!KHtd4g{pVMt=b^3t{dLH!hbv(N)I$SogsVXMM_l?#IAAWfEpSXsGev^TCeS{v zpKw%n4a?U;56ePz*Rgy(JcQpFEH}V5*aQ1vIV^&wS$`NDAMWQI93SrI92_6+=Nuee z_kHG$oclg=*;CT}-_Eldhly9H&UscteXxmk%ZJi&;^e_vD-F)`D{Yk9!TtP7mSsJ4 zwG(zh7s!_08n9dkQqr6jra!2^5nc^@;5Bd)+zhwCYeC0_22NDc{~7w{qo=yp>*Pgh zX8Co2aw@K(4B z-UbKY?I2r^qT`IM1v+4oj-r1z>)&ByuBTq-2c?qMob7v9_fB{hyc_O?_rQDMeIVPn zq378Cqp@9M^zTFF{qOr^`C>!gKQrnm)rv` z+cVm7w!gr-FT%qh+hyRk{Wo-+^YC(XzJ%N(@MVzguaL|3*<6G;=d`S`-NU-C!q=b| zhT3jK$FY4cI*%grb@&Fz_BY98`zDv|BgXb&*17xSTP(ZdegYk*Pvk@W_-$mq1CPPb zwrU*y8673*N&dUYxqS?czt0ta8Xc)Wj?VYs2s{DbhbQ4E`~cLRb7thOzvSxxdQVaR zLpTO%_m7O+8^naM??<73edeln;27jPWZPrrm;f!jw49cQ~Wpz~|iKL@`7+5RoLY~Sv(y%#z4 z>F-!~0)7vFfT4Z*l(AjHh3rI_0@Gjy=xrnyz$};p7sCQr3_b`#7-FytE{9531#6)e zu7n2I1lK_v8et2hpat5&Ni`Y!!E8NrZJmU_!r$QUa0>nb{{;2-wcJ;)cK?}+@0IAO z?hfkqVQe83J4VT$M`vhy!PNbmy!*|pE%X#}O6c>fAMFzD%cE(pF5t=x4&5cq0fiyr n<7|tY^z^cl+j72`Y$2>Frk=a)rT!19-ARV~JVmxY?x^`cB!(y| literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_checkbox.worker.js b/examples/component/ftxui_example_checkbox.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_checkbox.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_checkbox_in_frame.js b/examples/component/ftxui_example_checkbox_in_frame.js new file mode 100644 index 000000000..37d0ef819 --- /dev/null +++ b/examples/component/ftxui_example_checkbox_in_frame.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_checkbox_in_frame.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31504:function(){throw"Canceled!"},31522:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_checkbox_in_frame.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31496;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=43976;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_checkbox_in_frame.wasm b/examples/component/ftxui_example_checkbox_in_frame.wasm new file mode 100755 index 0000000000000000000000000000000000000000..1254f8a0581a03cf4978f177ffa069c1108ca1f5 GIT binary patch literal 279589 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

    +F3iN6@15PpuY@HIYokYg%7#b-GCNQCu0 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_collapsible.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={32248:function(){throw"Canceled!"},32266:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_collapsible.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=32240;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=44280;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_collapsible.wasm b/examples/component/ftxui_example_collapsible.wasm new file mode 100755 index 0000000000000000000000000000000000000000..df040488549483ba8e87842125d26ec36136feed GIT binary patch literal 282717 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%0AL?<~u}k*=;*SO6(AEExmcnd}#;}w8tcGW#U>n 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_collapsible.worker.js b/examples/component/ftxui_example_collapsible.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_collapsible.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_composition.js b/examples/component/ftxui_example_composition.js new file mode 100644 index 000000000..7a6276d7d --- /dev/null +++ b/examples/component/ftxui_example_composition.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_composition.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39104:function(){throw"Canceled!"},39122:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_composition.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39096;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51736;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_composition.wasm b/examples/component/ftxui_example_composition.wasm new file mode 100755 index 0000000000000000000000000000000000000000..39cb0939fb861db2ea95889795ef811a052fab58 GIT binary patch literal 296556 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�&P1uZftIY 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_composition.worker.js b/examples/component/ftxui_example_composition.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_composition.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_custom_loop.js b/examples/component/ftxui_example_custom_loop.js new file mode 100644 index 000000000..5464a2aae --- /dev/null +++ b/examples/component/ftxui_example_custom_loop.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_custom_loop.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={29608:function(){throw"Canceled!"},29626:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_custom_loop.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=29600;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=42216;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_custom_loop.wasm b/examples/component/ftxui_example_custom_loop.wasm new file mode 100755 index 0000000000000000000000000000000000000000..d998095929ada96337c58df8d835bb2681e24091 GIT binary patch literal 263531 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_custom_loop.worker.js b/examples/component/ftxui_example_custom_loop.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_custom_loop.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_dropdown.js b/examples/component/ftxui_example_dropdown.js new file mode 100644 index 000000000..4c9d85ceb --- /dev/null +++ b/examples/component/ftxui_example_dropdown.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_dropdown.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={34576:function(){throw"Canceled!"},34594:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_dropdown.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=34568;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=47192;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_dropdown.wasm b/examples/component/ftxui_example_dropdown.wasm new file mode 100755 index 0000000000000000000000000000000000000000..e241967d81e8f0a04aecc839c303c49d3c1649b4 GIT binary patch literal 308714 zcmeFaeYjplb@#t#_Uk$KNphp8F~Pd;8$1n9iKZ>^$=h&8D zr1W<|&VdAsiW(~_Dr!`eXaS=|jfxr&H7aUQ)TpRY5m9-GiWn5h@AF+V`#$$c!i%=g z_3Lw8PhRdld-lwlHEY(awPwwly_4s@=$~AYByL^SoZ_Yv{=4Z@{4^ zSiv>AW`N+5POq7EYff1(Tf|axDgm`K^qkwVp(^x5|CY+Z70boJ9`@uO5~_gToEZ73ih zj69tN8)(QS6D_$W&_RQ@#%Q>PtD$=~rPsK#c?{yy`~(W0W!e0mMV`Oj_1$yb-zO=* z|B#IG`@G~ReosyQl;8iy@}Hl0(l1DIe*ZCX{7xn#{7xk$zb~}kf3n|ywx|CBdp*~k zmSp^{vYgW`{UZBaomAw%*dUx?Isa;9&a}4v&GP?WOE=c;%A`m6zqFE1wEQR8?=c4F z$(BCWexK{p89(FGuU22F$Vgn0d6#+b7Wk~|ob%ZTnDHk~M>3Zu*@&-3UCQkvDCEYH zk*>@5>)l9_`jJC@n))PN;(b+>?y-gMbc!VRx%a+2!n;ubCd<7~sgN&ni?}=d5!CZ8 zPx(vDoK~DaAUk0Gd|&!p7|>WruTq!$%qKwdU<8b@G)YG2qRXlzJ7|o5qYrgm<|&V> zqp1jfqX`ufRp8e9EKi;=Z!~v)?7)0vg!(>D(goJPs^e0?QZjqw!yfstlnRS!nno8> zao*Uxc{%?bm=)P*@5qOiMfuP&&+~`=xhq|gW{-LNiqY;Px__pM9*AHqxT6ox=#-mC zb)P0VJ@UzjcO^tg^Dzj+zr;hdNT$$1An-ixrX%TSlBS@`pkyh;bqmx#Ke7Ng8ZQ3E z%bcY8Vt;5bNvclA^WRmDZg!HY%E~NHvouj6B~g}T2HZ69^X3(gDw0RdpYP@;`soz< zqu;zJsy}%2Ln{A}s;d6LIg$@?DFa=2D^s{a|B52zzbBcER{UEaz|h0PCZK4)bf!*R zn!yMfSdFofEnS!`%we+ywWmp?Cy!>Vc5Z2t8%zQZ+nfS+>4J<=VQd?9tmC-2DIQy|g_ z$xBN2)Z}HUds^}zxqEu@tIVC4d@*%@mE2OfzfNv&?itA)l{+bUwRg`&$pRN4gKR5YV<^SQiNzXs;xyhgU zQ=gk$nO6Q6)yOO6yQFcQpOrr=Usis&xHui(n4fy;sb9;UaCLQ#zr?+|I={LiJ@w1w zXUb=e|H&zv%02Ff`P5B2Y(%aG>q{ol%NVjwM^J-UhYjynikE$P5E5>iCzE|DI-B+tG za(7+znd;Nkr>gg-?@!;y-)pN+R@YRU)6MDD>J!z+tB+MzRUfTBQhm7EQhliUVD*9O z%IZI>_gC+$HdpVhuBa}rF01~ddQbK4YEyM-^{(oj)g{$Cs<&5ft2S0|t=>|-xw^P| zQ}xE`4b?@}>#NsQudObuUQ_*hwV`@d^~&lM)dkhdtCv+Tt=3mBsm`m`Rcotrt8=QE zYEOA@`P=fI@;BwL%e%|n<*&-S%3qdumcM}6c9nOOx0kn-x0XLGe^UOqyruk6d2{*0 z@}}|!<@d|)l{?GtmftDAUEWxJtNdp9jdDl%_3~@wSIZm9uawu9+siMNUo5{+URQp; z{9O6ja$EW7@>Autre#m~6eRoqeBUX0&X+{(>Qi=Pxf zF2-*ue#Fhq#Se>{it!&5-{<}Sicb_*6<4~O z-EXtsWcOsh&OYpZ;(qRb=0E6uUHie%4giTvaF$MUQ4kK`ZLqb>P|X!Zm7mHB@nEZ&!I zrtW+5EAq?p@ptE&@^|IWd1rn}{`UOk`P%et`Ca~({w?{N^NaJ3xOMqC>6`LjdF4Il zIp^kY%-@h-l+W;FZTh-=kH6D@#Jx7ZkW#O)yK{K*@A<3q@eTPa^H<~-}~!P*#+6lvrGL;v-R2e*?HNz>^W<*bF(-3U#Gj%U!}iHf06zy zeWSlS{Ze*Ac4zwYbQkh!{H@trvNvZJXK%{hn7tu;J#b!^y*9fr8-J^RtN*6^0DoVG zXdFK$o5{ZEp7WeN>BWBhx9L5pZhphf@#A-8zs&B;jvxO;_Ves#+4!#P_UzW|r`ebM zm;6t%Te2TzH)lW0#($7~KiipoH{0g7`R`=k&Th=Um3<={-;sSi`%3oZ?D}kb_J!=a zZ2a@t=d#acpUFO*eJZ;)`y_C$_19!qXP?MEo_#F4D!U{7NqTeojr4}}d+E37!L|OQ z*+;SuXIrulWgpCLO>aqWO23wVIsI<>t#pTbga1IL-~Y_U-|gP*{{HX({v-Z5=eTp+ z-nX0FCO!Rde7e`|`?Jm2_!ZgZ+4yDIdjOSf%EmYOOS4n?eOGqskE@%joz?gcs`2kv zip->k;JQGKDhzS>cZf2sO%_4R6eJ8OflRpU2QWA5Rj_kOqg zmFl-+uAKH0b@HTnNwfWKzcfi2zbcz(Zn)cb|9YP5)JaoK^;0g{)DoZcU32EDelpq1 z{RGuq<5tZ}xTLF|G|$y(&4Ph4RA?@_%acBiT%J$%k~(cRS=N&?)!XBq%9Y|(->d!^ z{j5n>H&@-|Cy!ZFdp#NJyJNuQ!n?fw1FTt7XaBltxlhK@4n^E@KUTZiFZb1$@2JMY zUI9{u1(nrM+rUs!*HM|~z{$Q~_A~HLo9^sgll0t}>!cI4@0E2%kB5soiuP!GiSMdv zr!E`TL0k(6&^CTh-#31BbM0CVetPeDPh_ z>%t?4=xd;52Dz||PFD&-OxjabOzZsVkS5l5jBi5s9Nh6F5XhU$tOFV#QgsTkOFHTb@4UgZ0)9Bm~r{%+(MmHm;(Xst<8u`X)FtS*%k*aOkPm~a^rg5hHF z!gZQQQzTuP9Kk%I#XWmU2_&Q)Z9@B*dyk%Mx@R=isy;3G+BY*hA8k3=s=i;{&+4q1 znOR^tepNqP-7Gl6(5SQ1r@-2+rhV5uZ1N05ia_yc-k$cWO;@p4Ai4d zHAL!A&p3s_Rkl6Ly06qcr5A@Jb<#N;Pz;}=J;?y5kaYi)&bemyFa5n;byR}$fDwV| zbSp%*>l_&>Rg-Y6rkx|4 zpCuOXm>N=XJcXYoO^!y8>ftP9e&*2efyx=ALe6)$IMb9FsDN7yZ@>>+XiFnECRJ}5 zF>5xvRZV@&;vN%83U)-76Z&a09h4e(2lXRAWRr~(u@*5ms>$Zc@B8j^DOpQz0r#K- z(xeBwh?Vk&!UM{hC=(5#xkNAUPUzGlAXL=|#yZ{FeGzER#m<>%Z1U5)AA&)P?rR;* zMrL@wcf~YR`=;;t(DU5*3!xCl3|^r<&HFv&Dkz`h9q6Zs0MC=*aSdG8=@-aipJ_N5 z!hSl{_!moLAD2xq6q-|vo(7^{PBJG-O)X7XH!op8#cY8Im^|@G1_^+f>cYgf`ty=b zr%CcU>nuW5n7}F+NQT#x4ghI?2tCP@%;Z7skECu$B4+AzYVVGOa&)c3v=lK>R^6*i z@rr6KqrJ&>-s`+uBhFQ0ho-0X-HA3c4o%Oj-LuUo?EV57(@Y;9EJP4}K{L&4K}H*0 z5ty;!Jh*{|bbIE?>GRG)xbjR!Nji1ev-Om|Upmk(_AG zd$(&ozaH|VQ6f7m?#m7a#Lkzv?oG}tF3W+>Tr>8v^or z)CkEO)67pb;nL=D#{hppFSpsxfGl`&ocT#F?^w-L^bdb)wN9bOQVE*m0;CkgN}5k5 zRE0Q86Ie_M)$VQ-zmfiwrIqhYS-!;e$fm4-d6*6EY&Pzc!0so;%Ys==8UP!qg?-wB zE$0*h#%!_FL|-iDCz^v0yppA&uyJH_;Y*?jw@Ppa)@ApdVuc*R#VC>=;GvzgAhNU>r*u3~yEX(J#qez)m42sI0( z8AKmM#-VA2Y6+=@G6pQKdjvKF>{2r`n)Tl|yDqTQpLcW*xjG-t-Ds4nqez$OdbAmv z#E?VCHP>CEBE3wBo)=EdHp@~5qv+v9*gWeca3!XpCWOc=>~2sM{Q`l1R>MX{8E`?R z1qc+QXJi0O!k(1zn#2o2WvNJ2CtI83*nYm4Bn2?mmL`k)MO|2SrDReU$1U!6Kt+nQ zKLQx!ZnfB?ltyWB-Rb^eKeu^a7f&%JMKpz(pGho~LJ-NMi>x~YwgjI?uF)IFlF}QI z0fyGqI-v&D7RHHC%?zV_F(XPgwiONcvJ|q-{#Az$l<;GE*4`@61=%zFKd#?d+|Pk3 z))?+czk<{Lus&?!k;`7opVcGmEejVd=3+ zyQxQ6XP5ybE7fM4$Q<}c=wi_5E-VxU5ey=Q(edZ{X8SevpC?Qc>ULmJll3>dV41k? z-y+6OLy3vb@O$U!&`D~vIc-%x?;b1(!*I{==S(b78Dl7CI7?Pv)I3OG$U(_0$e)@S zbkC?HGg*V_&D4N2wC9@Bp01@b?YYpNRyt}gi|xs>4(&1C!4hSHVxMZjP#0=1$~wl+ zg|;w}+qM>Tx+f?0|BW4=PcK-53fP%U^>eHrzp_5Rb}Q@k>v{|7Y~|z5uhW$WaD!R9 zQpUiZJx8zY&s(`b`F~8l7TMW(D}|8#nO@r)1<0Ui2T;8O>UjX^Jp>rb)?bPiajSYI zJ)EXwo6#RZdo{ncrA?E-8{FNy$KfDZL~l+Uzyxx#wm(0%xRtw;>fyV;T5PNwpV#Yp zqndQ-i39ut06z!7@Ld3q4FQ04Wpy%c!wsFc?nIk2sjji~PSEL%u1qM;EE*kZ13WBS zxX_nCEMXtO0D4`|t3>Vh2Dcwj5gTh+jR6&%F?>6}9fD_pWZrB~m^ih%z(hTy@Qw=GyE5DKfg3fnC> zAM)M1hi7TMpnW!f%~|~n?ECZRW6I4~J@2H;q00O<{fB{Fr!Cmw*@1Ppy`?xAU8Lkg zPr6*a2gv$$XVH+aJ8Sw6r|JPTm#ynBpqzTDmJXnihZu-*t&L^1t}i$b0m51RN1TP- zTGk_zbukIECs2;b+^OfS=`RGV0Qq{MVMp%_pg;NYvv}m|1M7$Jpj#h!(&cASOxaE~ z_yrwcSaog!wl++vNrIN)9_mrn)d$oMIr(z1e>mXi1Axv__rOrya{+L-ekg?=T0cUM zMQUm@^pQK0wPx2AT7MOiEn_Q>UXPS=E8Y34Xo|oO% zJKQG956MH*Wn#A#>sBUzeYsM#e!A-<$Ve>F&q5H?6~jOmTgL}plaQ;6%U3Qte;u=! zsauapeoQ};pFkUar-Pu7v~w-x5jG;zoMKFHlSpP-)f88SwX-$Q4YfNWO}LC6k)n=~ z#aeIt8!D(ynmf-mbHVgz3LQ~67&d)>OoruPig5xzV6)_xPa&0 zyTSdwJyu7>-}~)oUoLTR6eU7eu`1M6qZ2Jc+1S~95=+hq05eZP)7E9}kwUUajCV8; z>8!^vdX(WEoB<7Tb9JAMik8^5VAFpgpaJRhoH{8h2igfAs1+{YiEm3@X*^QFi>^i? zd34=j`LLo4PJJ{zM)ZEj>mqppd%BvKC9e~C-7IIP3F{78>&wB0)%)WEf&rG8i6rEhs-)n!zK%6{+c=o`zu%wmF=&vX2PbE z*E<;C?zY6bU6?y8I+VzVuRyt2q23NBSg|urNvF z6$uXc$1$?;kC(we?ov>+<#Cub$dgPvTq*pIjG{N<$rKovwq$F}E0%yz5C6Gb=Hd=^ z=6G1)j*vuI-GiENs!8Y5C0Tr3t_EegjkGP0s#+R``+enYD-b9lfgmjsefCff}4U@zG8mN7B~aNGWZ@{D&+7GvITHD0FeuSDBlnuJVON+E2t{RMY) z@oRw%-g?GVSZVCIL;{IivJC(RXNO!vflUeVpo&r>(h{>p;W;lkphh73# zV8u`M(Sj@jY)e$Ouh|udEO63zvwR*HH;%P{@+8nqvq%@Vo8|&wbAiWmtU|b9U=<>n zhOpWgv`4}m)=s_PvTGq6*u;-p`g9dktXWy4t)12Ct^qiS%eh8$vo3-M+s9$A;g6A- zi3rM{ig>;5Zc|+eZC@Lbj0G*#PR1%z6<>&^H1>1PwdQzc_FAG9X8X6rQ|_-_cbnw{ zUCrF^a$lKf%kT$0Wu7Ftjh-Z1v;Nn_v@B|p?kgNZX8IU&+WBTCVl8tRAt@6cfiVS4 zd9Tz1+q^~kJ(U_BuMLv~*!$@azDRAP;Zl^KEsv9<(5pE{NDlsNfJ7vfL!5;{nNnL0 zY7H7dG8(4VHT`6h$3Q5Dp!XAyn6;yat_(0;Nm}9qvGxOCE@Dfckd?I0`sfw(UHc~v zWTgizpT_+Zj~2<-A{jjW6y67Wvs9}$~*h)dLPs*SBl zOSFkb`r9%K-uAtj1(5(v`vp`rmSK{^CiFkrw*5q-4?6O=DNnQAlnyIGTG12{Ov|>7 z?`h?1VJ3yOrS9$lTcMLO09p*Dwitv$wjeSApElcA1qNY{kdm^fZ9hXZ)Hh3H0(Q#Kt;SvT1%VX4?`2BQm%$tfRPYj7xiLwOV6Knm-? z%sl2!fulGxpsX2KGlo`eLszY`s5N;3Zf&fOnr4=Str+-M{lat(yX48zL>-W(9tcj|U${K}& zQ52MeDv=76B-f+)wNE7w&L@q*t-2T(zQVNB^2aRn5wAqB8O$itkYG9t$JfCxGTaoH zrWHk8Rm{fMAp@u--DYGmHAsy)i$RO8vj(h8Twm<70+fSB%f7H43}$wWuS2T0@pU$4 z=F71aq7+z+ufu%?)iC>_jVH{97k_N<-EVx|eXsv){97|`?)uL<|G;J*3^roh8oEF; zrYi#y9HjvRLp*$d*e7 z>o7R=!P#<>Hbd($tg?0;=G%1`Gione&Kf_c&i7->wM#|yNj|7SSQE1(8g!Z@;1A*! z)|B3-UFVPj?8J+_tZP!~ZnNuv9PB!TpxJfsL+d>db-F-DP-CkTWD(Nv;J0%)t)%}ZC4ELh>LwvnKZjx4N@nrKj1SI38y)|5hX+u<$f9pS*T*I#G%0V zgIbc3Wa`N<=S~vk_g)Dc?6F0gWnxy=1p5#5BTDBd&Si?1AR5Q96N?$B4!h>NnvgJy zQz%BN2WSf{aGMKaR4D-Jg($%~QKVk5U_CwWQ$oCJ{Y{#kcgn`sl%RvA6`OnR^p^dp zl+}|=XFZY&g6H=>f>Nr39ZISEfTRV%)9In7g3|qTx=0JKP<|-H4ymO1X3-*oI@P(k zbXANE$?2iQ?Fd8<0*SG(eSWD)Bg~z*Yj~Pnc2T4m#*Ck6_Q}@T$qYu;bAhlG zfhcqgTb{W+bBBQm)dWVK%A)%&3w)@=HFAs>`@)5t0-A|%kBr&9$XkG13w9Pe4FPjP zjv)y+x0>+`^;7G+28sSag)yutQpXWSsF-`6vRJA|7L%uFM@2%Ar*Y~Yk#sNy_vx}6 zj=jhY8D)*X#~3@KrEfOe!E{2Hf(xA|(S1EDM5$(RkuJ;^;_3QY-E(VlQ@N>fZ3Y?= z!~F-4RDl3iawO22M6(4$Kt8L-e78;n&VwK_R)s+b3l(}IrEz5zR{G*bWdMh&_S~A* zxOd+!WvqhzSZNL=`s^iQaWlh3Roj0=@6?HfLa09de!mm-3|FOL2GWF=Y{R zOW*G6!o#3etjn`Ku}2k~aCF|Vr-MmLX{D_NyYeHB>%Laetd-3SYKV67JUfsb5nAFPG1HiE3}Y_B1Z8jBtw_t}!*?XzC$bSjh}!Ep?Ht9TrVISl z{Yct#!we{Qj`16PK#V*x84`ycUTkjpj_ZCn)s_k+`fh20BTS+}k#$*jOX?@+IQAF9 ze%mi4$4D_&R0BoLjxh1s`Deq`Igi8b`yw_w_mCZ07WSR^*I1F(69r((8*c%Yu@?k) z(}eK+w&7W7VW&{8uJF(l0Armj33p?FQSO1bJEAw6h+&E#({wlq1z6yKpmXX?a~VAf zvYl*Ol?XD9Z9p&>z_D?l6->ZRL!c~E2FEd5>09K_2|^d{MB-q?#~|V~NORu_I3?ZN zJX3jacZb~_7vje^-Yhz*DbCvHQZZ+c1foaxJfzFe19_rqTvs&;Lu2Z~p7aRSN#E|< zINV*nlP3yOUkdF^TLDB6vttx!Tie+vr(~P2kj>60aJoNrLUkcY(Y2P{U2E1S-L;;m z`zaW%sk&u9>*syE58pNH5w;FvU zFbA=y3m_EhwPI z>vx}(_I?rw+3DkQ#6{0I_`?uV0;f$l?wOMUkLMzJnwpUeP#J|h&=SAII5V;?&QbNq{4jX#^vL$!tr41M%eWEx7B8EEXczNg zBV%he;l^D|O4S*|)x?G6tE7oGDlT$3CrLtVSt@XXlu{qcGzYD29{u9j{=JRIZ4L^; zv6dSpmBFzQtY||Tkv0&Gi2qA=NgYwFQI^fTZiY<2s=}MlXke$0Uu=T7`&DgzL{cG{ z8uz01M$lf=InlW_G@3SB6G>$uJTZCs`8~f9V465V&D81T{p@@?u@$_gE+?vr=~HLt zO9a!m5E|qO4eGo@$2OQKtPo5UqB1O8CS^5;t(zi}IXPnlAqZDgSSk$%GH`hVtSP~S zE4_4t*}x;jUNKE;ns=u^f2z5Dyq9Jy(DIafljA zzv_!g*y4BHYh;>g_BR{8nEZ3!lR;OoI=`5_aH@Mf#EOq+uKD`o^!$_Ixo%&m^C7X? z^=@u8hPDYCTXIq)%@a5e0SD6Khv7NWy!~qEK5K%8mDsClQD>p9sr zm6g-!UY+8v=`8BJGKJDm$rQu_xq!{uNt)4nkM#-M0lOL*j%T!OEi3@QN-_E?Rl^!3FneD8koZTIrH>>uC6W`$mN644-DnlBn-m{ zFYzm|%8rZM|pJ~s;0;ADbp2beSk|A z$wIy5TTT}07e+YrlqrIG7Yhz)nKn)u5+?*hdmG)A?(BYN<@8_GZD_PT?du3vhuF*T zSfjFM&nKvNa*S6EcOlR)jWGV27{YYFwNBcrmZmF_(<5y>CxB0ybGJ{dG&W2x)eZ>p z(!&9pC(XIrCqg<4n%baL&iV=+5%T~hlHHpypoYpA9RC4u* z#apMuV-nNJjuhb5h8=~qcz1*|k507dqwKKJYz$qebh{q4pTAn%FBcQgnSn{k$qozR zRlKK8?vYELAH<{+ZqXUspy1&AyxB=8^{C+Sf8@SGsb2s%VoFcxaiAcEPJ=Jdh1zVJ z8E$(6s`zXiUiLpb5fuLo0UYA9OADh0OgRNU0DTt9m&=Lr2xKc$MdCkU{kk?VHB(gU zh_XkOZQbge*Bc|!HYFFsR8iLb5<)GajXepQOz5L*rD-IK=SK3N<7v-AY}rO7V-Q!n zBD8MdwUFb`^jM3rU8gY8mH}o!0s_&T4z&;!JpDKHlAfPU^CNY3Hl$8ZzWnTd7DLuk zVIU9PVDh9VGw3-A%^DX1bIHOP%zg=e1c)iV4?LCx#Ok10X&{E!Qgwvj=By=9wf01b zSYmK#?P&DwO1FNUBAHnn>Btn6Sg*+CPFsOc-?emZ5XtQ014ZvcY*06?NA;&=gfm|* z!;-jU;cRisqN45^nwYXcWnzwnF}`<2AuB{#?Q>HJTnF}am*N#?IhQ@J&JIYSQ7i6s6G7I+^_uvxcRWSY%Rv*=_L&~NBhKS5GP1P}jcYJQrygds=( zgt_Yg(0Ez(zFB6r0qr#P>CJAAEQ6WLNZT0LTtv#IXHVG?Rl}!L|cc|fGRr$*p-FrfA)=&#rvM&9L z<%31cD^3KB{pjw&YGN2HC)fx|xLSJ-H0xg6K%vD{l}*G-jA~?airH)RAJ?LA3_dqS z8`zepZI;iT%!;;eaL7P$! znr!TTe*7^qTp|XD?MNW3Q6mH#WCNjXgFt>+J|T-9kEx<9!$Owa$&uEIcM8vfM@j4K z18bN@9#S}qzpRo8nILAKWu*Cqi7N{yer<(sKBZ0vHt7Bd3xD#Ssl|7@_!MV%5AUZv z21O`9WR`;(@8g0yi_@vm{mJ=PT$vqt+PV|+5SX(&KJ1ig;m}3HZiy}5wpC@)-1u$R z>@c^)Kf09o=-P8+MiNvP1bk563-&&ll=E1urNccWbqI&rZDF0NAyc9j(QlG_!CHYl ze;u>N{G9LbVf$x-rJQDJkWqG^Lldm2^wI&`mR?I&&Z;&Sd=HFu{*HS*{N^reP)0mj zNU&7%hxdq(_-cBImpWiQ-EGAGX0emujUnM3p4egoiXLEshfXi?HQPh7$Pg}V*`bmP z4;TY1fGK&{e4jXYljK2w;<7|_L-LT>eBFtDJ&JOvZ*Xb1nxAs$rwKzRr4uC z#{44_n8QSL=OGM{M%o z6CDvKG~5b&3yJ2o0!f!9E2sx>ar=o3J+noda9MM>xk7BrG4 zxGZBXsYdtBsh?02OGF$pOanwXdbf(;gf(%@Jdn(|JBtUbwxAyOfE9qPsY6@Lr4wOD z5l3xV|J23UmN_2UOl!-i-B+lTP188|SS72Qt#Rn(ar0Ucu}=Q)aNygcz!kY z&HtiN%t8dd5J6un)?oltQZ$x3oO027lXM@iIL&49+C;RTim1+lb(d>Vnhv2ud-7#+ zF?3ik&=B%3qN6QfdFtibiRfU>B3L`~G~ ziN1DPmc4I(rq^PjDYVFB(L17%HrTE+vB{W?X;TgJmcxw}ZUBGa>42vETPAiHF@vU* zlE$*1Vg&K99E&%~%0vG$yzD`*9n;Gms_wxE6MQw%9V<35(Fe{Jl_4^a()L#o3=YC< zG5HWxXj&p}gIc9HNKmpk45L3ec5!W+C=o3+q5Nsv2B4tKa4H+Ja1W@q{h@cm{gJ6A z&oS&aR@3A_#8jQ@wM`K@3d31MAo{mSU#!kz-CBbD3~3VHd*PpMlQLc1Jy;e#l}ZA~0c*NY%x@{y9?UUC(UF0kpr?pVG+9cs z7}J!OO>GCMLM6nlRZ2r8m6kg|=v(kj*xeN=6)KGOx4@LlOg|FZfSKvV5Z;+v!*!HHdMRASZW5OP*W>81dp zY`Qa7Phvq0bnP26D%gdJlEw;=|lAHxj#;Og(gu}_0zA1sSS zTkigFY)!eAjgR_W+1T0`Oo+h8ic4sxNXy6OnKwSBi3iQcGG_0ekH7DN(*=DVLqlaa znLd{?LRAO-T${R2U{~k73|=gP3SSbS2C*O5j)P$>Zu;-oH1BF$)4n|=5=_5 zC9|4M{0W#(u1Q{dX>axmw&UDl=<%=|S;!*A&aBOa)crBYdR{WwTA7{Y=v|byH;oJV zXw@uJGz5}F+6Xa@ia`@g?=?x-c|SJ|BeHDZst`>;Cc_3`IBlz%hzwzk=;vrVW-1CA zP!jnfDVko=Py4=#L)AN2l^U$4&;bZy97`&U-c=E%A{te<2*bm;5NEI?gvrXV6oe%$ zgoU^~XdW1cwL9<9t9Crc`Wf|lc-0E)I$?)DP5s5TNNY%kvbK@HSHvACXy+#Gfg3Pw zK)C%v>pze!5pd&ugVt@4!kU7H_qW(5M*R@%`|dG%^-LQ!Wnm_Ug^UZ>+-xM4Bhj$Z z2-wz;h%Opyn4xW;5FEoHDr2Ynv3!CjEVO*Z?0lr@<{mkZL^D}eyr0ngVQRt_!fr`Y zE=QTQXfe+MT8ia>X>3g8&r&>I_ft?`gZn%(b_tSvreKJ-`vsO_2PK(egk<)gc7$I| zIs7)Ki5HGc{skIR2j@)~y6C=pxr4L;za-AR!5e!b*{q6@O*RY2(;x&?=>ft9Vqt(( zv*4oLCE@Paa5*t#J~7-K6)uN|%VFWt?W_bB#kBrmDEufjcVxn;j+JZal3v+JQoSP? z(Z++W#vY=};~gLvd4|%z5CSXG2l|{476(X0R-9`sHoi@F?1Y@?#3qSWinaUa&KAeC zw>>AOaKa$M;7pK7Fd3t_$X+kZrj&GZa=5Q;-39w-wLn>XE{A(2O2RU@W(k7W zG706o*J`5)+~776s-|sLPDUj7*5&&$|;nsd*eso8z({LNqvSo6?gPWYe6Zv1h3WzR+hYOBFUm;pC=7sCl(KZH1U+T$dhV}#$-+?5tCA?zEu&Ec} zvtu(+V2RmVEFxO&O-b`hsI#~OsLo0M#g6W`m;XyBZoGRS@w?xG3p7t6lXt@%4B5e& zf)4mq!%LvmCx$$3wRJxVgBWqlKJM)C><0zs2##!3T;eymKEN#&a7bphqVB$YsOv+m z-O2Cdc|FaV+WEUxI_UwmMCiz|27JZugwQgpQ$NT$;$b2$2QJ;6w`%IhzacUszD-ZI zduTYp;VTLsnP|Vs93bCv-c9>84ciAonjHp&uELh=500O_b+F(DI+?95$(xxOId1-n zU^K)lHRigCilH(m*TZ*KgF5SKtfF;_6|pc;CjZ)%$+NkeMilV;q?)W}=!Y8cLhaAf z&3Ou~z+)9lovgfP#!~R-a47|RWSyhQm0Z^5t*xx>Zj5f8yK!b_r>P;HJV|TsL~<%= zme?j6?I3Mr@UjJ+jtTtck=Q!TwB8^d zbcE1$oj-lsk=e4RX1Jm8K-y{sm-i6M9xiyrJt^?;B@ir0#-fVCGy1np?vG<0mup4s91rtf}C z#-EMfO%BIakUqIgX%HsB2^&{^P)Fp)(nKib+`?2{%_uh0#N{`rQ@vftY?rWvz)P1l z-{D2~ylLAETrkSIUvm9|x_Y8r7Xf7>TujO1y!kd}saQVOWF_ngE4sTJx9|JSl+l6l z)XLTZ!VMVWVUkHKNO(G`DdaVj3ilb5wEN)R#0Hy4Iv1n^89PcZ@u^_2_zC?r6Po>e z0!RO-Cwd7>;vwJ2t9)TJRQ8OT6&&e9E*KX_t7G!i+Tu;7rp4NKnq zItc?=PBm|ZF)-RdUD@!j#et|dbi!y$K4EyxEo@Bc_0ruNal7hl-;D|HUdOM)(WyM* zj`mXoj#mT@%PXEM;ta<&?NV}wIntq++GcN<)gS)P1~w#xPFf1r5~bq}#Vk-6%QN;9 zfX%LVxk*Z?zZQ;Yu%x|2agEt*fp%GH&jeAOQ6~f7_C>^~M~le1$s%9Zr-PMT9GJm& z_uc~|XF`9h9$A_!91PFW^?j2O+LQs`fiD=^(Mn!a@^>y&rU=NZmVManeb9lx&|`xG)XA)^HA~t+^pN*SAaCtXBJ-wQK{?b)-UE zRh%S&)yrY!6tQb&9BiMg9G$@`7+rJrrOh&_EOI0x-|9}rJr>&-y>9O_7KlNeu~^?@C1~!=c*X*IxaMrd`OImZwg_*o zt+Vw#+x;ItWAQWZi|Ilkb0HAN)2BdPF1(a9n5i0qesC?3i-@JacGS!KbrTeW>!Z0iWsCl3`4^4lLmZ#7IYHJ}Zt5rUU$kCOeI#_t?0RxEdNG&nN&{q;M3V)&m z+PrJlEr|o$?@_c4p0=cod8&;Y7NE!U$_^?BUqumo0Y$St9C-u;ySV~6hC>45H_U1_ z_q1Ij5^@1e(9$Vz^F+z@#E8i$gwg;-22}1P4ndg%gKwbeJc1DK5=q^5#9G0)AG{dY zVRoH5guE@-JM$B2GI-d~SEq~Yi$Z2yrI>Zit{d$91=GN@ z6WBR(V7m=mR{PlzqdU;K`)b#Bcpm5^W8Ov11qI#miE#l8QT5rq8`?7i9jg)c%%TVA zp9c*~`kP(F>vy#Bx61Kgjrg$p4B%k`G%vf9mLjZW2bAGOviIMZ1{?71ckAbC_U@-i zUy*c{+aGK{pDN>9ZU|Z4nx@E-C_~T@65C4?7bY-K2|E3xxef~aR#G$+WJ;DAC-B;8GEbJ;hTuJ8>V zRG7a$xRGtuheSLc76ql^t6bduU-n8)qP%~CQnwd13K0&0z zm42|qf%u<`#DP4ZibsxarP-Q#(*chZZ=+E((q5O<9MUsjZeQ z^7ONmvNP8X5GgX}K)nD4_}!*EET1>tg@BS=;?WpOa#|E{6dr?&&sj9r4$v%ca~DV8 z6k@T-Py$>ct}AM=TYzJ)+l$?b1kxbHC4gi(x=*0l|`kD#=(2hZ- zjp^fKU>S&t5w8yGiFx0rv74Sv0NKQrZK_MokDl#viv0m9EU6itPg@L#7 z302SrH0GLK(idRBSQ=iVh|M2M;dz&*3$`PkUE`^F8PzZoH)>)`U$LV-J;=UCsB(3r zD`Z*j4+&3~XphLs9Tql?D2Fd$S;#wlxj#IlI4LRnil;{{_easQ3Dh!Vn_#xpdetB_ z1z8+IbFd%mky%WII%@I8X_Lvl(2@;Ga8@9btE0`@i;}dAY?kZDQoP^+-KRX_byKj3 zJ8{-Z#72Y;a&rIU5rb7aM>GD&NVZS$^vj#22#6Jo2p2T7tsZ1>Eoe5#?ZO(6AoTe< z&TR^UDEhqnnmz`b z(aX6}E^YUA3E(v6hH^TvzI-T#*{IbBI$x({AqgG^f|rmXCgI2=1vmz?ueW~mM~2P~ z5e>6dUp=DL!!%!soU+hS3I)dqp*~`JQ@NF93E?F)pf$9Bg;PeP-0Uf%(Pr5&NRBNA zkevt;zm7nT*41GN0XDOZ-&e^>$CeO`%(U+Lh<0QM!Dm)ardDr^Ebv5dAvx-Tlfe*z z0X0Hc+j@V3w#VhT*^8`3BoxR?{jTqrGd+4jHQNxXIp# zaK{s)2ssEa+w*xX%=wW<^Xqw{5hnn3fKcMTruX5*CFI3c_!7FJq zW3Z4Xc!`=%C(X@p?P7dc1Zy=vv^1-$tCQw?N>hHF$D~`-d?smrq#SwrEceNs@9aHw zo)xDKCh31=>eOZ~w^Qf$m^b#3&7pY{oOAG_nZ_Eq-+A5`$f4N~K*FN}IcMJ7Z^_?# z-q^P<6Xx3gj!DyYW=x&=JtvKIduY-Gm`obMe1J)#)%$*C%+GVzky4mpuP_8eq7}|0 zK1~jC0wXb58e|^RtGgV>iW0pM50A^GJN8fgQTSOV%P0ZUydB@wI@*su!DXtMtdIuF zGw(S=iATZrT&i5fmZTHF8l?rb!4_iI-hn*0Q~X>IJ28F^VSu!erKR_~X@SDUA_RHS zh6$E7_FsCl)0@XBU0`Hl|=I<29-l=OmA7w8YiUMl*FMzc+J1U2kW%+oOC3o z130}wWp8jMkFnk7$F)H307@4K{R6O!`AXGn|M<9-Y+TpVv5oseiSK|C&Sx*FniaGW zM|sUba&*5)%4qZx5CIE8!L7K))qkiwq8<^Xii;vfMEVdK6o=4GC-7CLzQzw8Nwj8Y zd4#;M!$O?4lTn;52x{v-IzW3+5Q1twGp8T-i@f$_?*1Rf^G}O=j9~^S*6#P^d4{61 zbzi2pHOYf#dd`RZk7Ih7DaP^hv?DXb_gf?5tB)N$`@gJzAM;kM|B=~4ORN(RAWT2W zCjKHvImrq0Ia|#sr8PkC?aiL!oAvf3R5FKvm6yL~xG(|`criyYB&?5^?p-ydi%hxT zD>m4zJ2;fo(!>rFvbq`u8ju_Y3fQ>x1Z`D98d%eKdenuC_JU-zX7+=X^?VjF0icR9 zXqtAj6Bg_>&2r(t0MIp6Y>E+9Ol4gnq7rmI3!08QNn@EuC zK%VMJBV!ftuvmS1iy^VpW}pY3Iz8hgouSY|w|7DUdMg;sh_%pkq0+&MS&JbIR04~z zMw9e5pKR9ov%w;E-~y((G3dv*S;Gtol#DmQm)rT`WBdq_G#D{EIcB4wF+bG~sW&w4 zwRTPV&2A(cZ&?E-PjW9-A=n6nOqmI+jOlSpL{ajZ`F0vtuWgrLD~6J zQn!$|@{`+N`=$?mVaJDd<9*u_3tt(po8eBJMp#fWveI-HC!#TjmizU(jvbNCKu|O9 zOJ0L9*}d8KJB)tPY+zB&bZyqlnQ1RT$MMzd77pS=`JO1;!*12C$$>nx7e(?~6y5XA zbkX6Eu=E#Y6{`d)`sM{J6T*_1%10*h|AGf46yBr{0!gp){?6O>3UAUb3;FzT-pE{& zI=vj~u`8r0L=85#7WxSd-m<>ElFsDCGL1dclf4PeP^yuVk9Juo$+4ig%+-_~%txMT zc$R534#Z=JARgO73?W~FxWXVF8%o{>M4k%bv4$;&dN~L!yqEZsmMaoUUR2BAO+iPb z&kD_+Hq`8CZL>Q=7@OK9sji$RFsE^(YQJ6KsTw{lc7+JKS?a8}qdOu`jHnY-l7hM( zE?UCxeZkdp0bXx1i~-odhU^9xFyA!X%BDdpdh=f#1(Mou*<`J#IMkSxor8hUbG5RG zR^oPw@!2i#U$gNxN#VeFyOgn8=PksBI1p3|9?zQ{WQv8^(oK`Taa>M3l{O7HVL0RZ z^I*atQBA6j={TaK+sf$#Ll34RQ?7jI6Ow%gwryX`=QC2!v#m-Dviv~Bw!V-TE{bdW&8+$0iXW5Xc%Bq5YGx5OCB0dd=IEo*5ay(i@$ zS;Phgqo^^4l;Wz1Bhno{Qpz?&)ZlWzD+Xd4bwmsiZYKe7$mLzg`-GHWrLvZ4p7$%!UI8FpLT-0E)J0f*vZxuj^Sp#)1Hc^6Q)J8 z^CzYOk|?^3ZU@p3!`jdIWDR;a5HD$Fei|hBvydiwM_OXCo68Pv@R$tf#+0XKl;N4h ze@liV2bT2h9c#2E?uSG5(*N+j1<5F6I7|LzB4TAsd`b+#GYKwu z%UXsUNN^qM-VeNEDGa;`$slPkb_k@-$kZa+>vBkKl;TxeBA8+rqFPL(-R_$<$UW1k z`_P6#qb6<9sKrtc?m>6pkEq{h79}Fu2u9Fv*udJKfCPN{STvhM8w*50%NS9kZzHNU z1NMT(W~9Ic!l zu?(#+2%!!U?N%6sE)V+nz;%pr1B(J4{KvFsWYgB6EI=+8iMC&%871>uHUdQ0 zf;>|aXY^HyQ#4Z&33rua51s24hlow-y=*d*{?b!R{H@Ao>u)(J`agWQMkahRnBxga zg=82^nbF)2A~*Ia1}F-yPfffs;UBbkrPi(>lo37;u2#?_X2AssIY<4VV}mH*S1M>A z98nl#Y0jAbgBE9+T1HAP@n^{b;O(A?XfOzuF#$S*F|pp$L5f}EhJ@Y5fe2k6j0p+5 z4MEs#1k?ixyN#^~-8>9-%K+@gS+JV|SPb|F2D_yd{ae6%s}J%tLyB&Y6itE@O$I_C z2#KV*;b%dr>Rw-RF-ZasiHiC#kffMe*Pb%!|F94uJfM|M!LX;L@I*6WRIm>3ytG+v zGc@pX9A=3+MCY+^c{mRaHxDe|cFQLyn`0$D0k~oa;3<+f0=T5*8%cOUJmo<^JVn+o z$f6!4G44_45eWLLIeYkg?_D&cH0fY>(% z1C=MKx-eMF7#fNWC{$bLMfb0GsQcBBs zk~bL>;6B+)mIG4_XlceT&X4Y8Fc+xx9S#pl;vlklOC<097AAH66g;b8YGbFFW8#odaG|wijohqmIlf8s zP9Kfh-^uGLjS&ar2tiRpx;u=^{z2gw zQIM#eV4^Ej(yKY_HbAHU)RtT`lf~MBD+F1YTKo_mvY5A&(uO+M$4zQ4WK-}+LXY&N zd41La?{Kr-cHoFoW~}UuI8d0x!ege4qv%-h<~~8*4`|1FN0etI;%nX&;t8kG4r}B^ zok#G1x$sgKusN0spRhfl^Bf$$DhSanfK5V_GN?cc%mNd6W^slsO*mtQ4ETlK2^`~4 z@2jAZosu15eA8*r^L|1NYM+CNU;~^5?o@kv?}6rNN}Or94+pQfISlcIKb_t|iDnuM zBsSr>AbjiL+4V2tjT*ZMrP8_46Y!)anrlBJi!q#ARn%UO@A7`eYZRCksRHk+Gk7}? z5lFms?+g`?+R7}&YNg=~ujCaeu;_(*oa^!;4b`&%K6R{4aoQtAtR(q-i_wu=gj|C} zZXR;;kZUcGn}uBaCNEBIVNzFoCI!MPmQ5OxWt0dSGPqiA#3f!G5lxZMLW`3Tphaw* zP!imNN)f4$YnU;+L-*RUhMD}G5vfqtFeAV>AVpjm-(wctMBNQ(5Ih?g3Ebig2^@}M zZf?4pNi;!XyApbE?QRk}AIK4p6rtMB#f0ff9i=^u<&4I2hsvndW+jGd<=yj~4gyNy z9~Lf$Q;eX-qquDPHKoT$RPs7p@nu9MvC06FQszC@WMpJC8f>VxupxTPrF!&%_-Lq< zrafhzhOy$cN8>GUZcg1~Zr!$m8?I0@(B04Ozf%KzTbdk}91$W^(W!?iLbYfQnq%K_ zP6-yUb*`PLWmFmYV4F$;PE1J?pvW}qJAVwvm>?8;bgvQrk;;_XPwX~rb&O5Gz58sM z>3q-meE9HJbCb-^!A{2|>zQx{QfENS`3!4lKZWxt8XbvEB%oqaOKo51gGAV7J{;>v z?0gDrs&4(a9qYiY0{&_i<`wz!<~rdyra@39b5K}&ls+VS78De!$Ua?o9N5Y(hljhP znDEGyCx*Kd!v%OMiKfs6>CPqTQS#1nMU@Al-BsuOpFz8ugy((GZfok;;gbLq2lk;I z>qZNSHGyrc*)J5hi|2ti5i0N=J7CQ};n(D|>r6nT1BL|!7_d6GxOQN0=oqC!9`*%B zF)~=yrEw(kSX0<}0ALZ5$9{l>hP}Gn3vLdF691-%7eR*=VLu%M?&o&sNgsv)<5EGz zqY{K*#HR>srza0Wl?#&^l$bR^@*s8LQwd*imZk~E^LQa4Z{;Ph9Ybcp07Qb(=8BjjQ=-}bzG!!^>c|CY|9Rjaju?T#*ee{k_<`N7qxve>NCU&Xj zq6sczKe$^)CW?&(8vKtgSQ-vDpmkYEpc8OQ=yBj&vr;kFP|gug{1w87w>N4|M|^yX z50U(ak7RX=Pr462hPy8y@LnnhUvD%YC`t(CM8N{5|%C|N38J+_YWKjedn`jR& zJpime=o-8S=i3tSwhv}1%cN>gM`i8lDB?6QZHG=rC5nO$-RvimQ<9Z8cr6*Dy0x1zLzV z!qB}~Cv>efecV&6GTUGs){tUl#+OF5QlgG{)5@4Kh*l9J|ASv7+iLD;XTc`+B3ZPR^pO}JzB5f2CMdpE)^c$r`1`&{mgSHg|GT*(mDYLr zm_~<|I6~G^H$%8MeLJl^XaznA14S7p`V%z`CY$aO=gQZly-O2`8c(F0LbCW--CT7S z-elJI;woI`dR@kaciDex;wSO{s`aMcyFrnK7FT9$L}|el831&NHFO-@CI(@#BH>kG z+z6NEz_6Vm8-qK&LrlnW*Wmh~kT@T+h9&ZxqGC^RsTf%12_}xL7uFAm9P1>lA0+-+ z&H5|unMis>E+smyxrn~-KlCLFeIcTQ?Yo9k*+8z7V;19&6j$T;pqm(Gau)-dX#+6p zirF<}8x;=hTdaSLj|7Z6V~XELAG3Hh zebLE}UW&L%#a@|B2EBL4H;+2QmNibLU?)CJK8gRVt019%YO+fWAZ=_jN@zxciF^_R znnXrS+rt!16HQqJk!nQJR-Ml0E6&ldbs$1^|CE}XO~rmW*emFjqpZ}zb2))$$}de4 z`?`2@!`;67*H{1yt_FhRC7Q)e=Q!eoX@+;I!*N-Eglsc0Mv!3|b(UYv3@1^rBJ`T@ zI@9p6mZXQQeb*VEaJ>Dg_OdQXK&CuLO+40AU6@g&l`T_DUbp@0v1{W zrj59YuN8{843FKA-Tk8RSve#Cqs-&fE8uB#{~%$IxSkd$2}*HeV&YR`UffGutsyVb z6y+XJnU(Yv>`92fy6VDy(Ut-Yn6k)MMYTXR#0Yx}67?p`LXXq7$5s|>2K_`ddH!?U zT#}e!PE2VCm|>|wNf|<@mukqsk+Y2=CYLF`5DBVr9z#3{VW>GYozd$M_IDP-)L3YH zU^XTMcS+G(19OBh>vPU&*;EHxa4F|VR&oEZ5SBH-%)y{S2v>88+F>sXzLKSi5Kg0_ z*L%hUSgjucw$4s-IAf2-H>DUPXQ}Px)oK(yn%H6~pQQYu+&`>$_qcE7t}KLgglXMH->d zZ2YFv_hTNPAnG{cYEV6oSvl_ewDT~PO7z+9#?FQ$`c`*mndP!%J=Vv)<;L4Lj$tGU zcCTZJftaP-Je9L&*&=DJ;yfUpLMu)El7-i07sbg=J!K4slX8D*TX=wQA5 z#ENO71v=6zlg3OPGwWkHBNcu0wi51s4o|)Tw2rfqoN@mWzv-ZoavbuO?9c>wvT11> zlzg3B4JLyIJA9p(=T4t3zr%TdR(pD$kW4AB@b}=fpNH>3^X+Cp>#)XA_WiX^*FQ0_ zKf9(k_OcXZzDsmRkFMK?&z`shxz^t8 zI{JAmoa=mX*WNesS-q=Pj*Pjrr+I38+jPR$C>Do{isMW-Uu5%Hu4Wu*7teQY(P0+_ z0P(5;GkM`%?X22oyPMHf+J*}+DOiHyFBP0w3xQd?W9xuKTrm1AJHGjd}(B3F~-Fwys;A(F`~pGBubi>CRSwDYY6cN~7kS*+Fup#@LZxN{1rO@Jo+Y|kx$}1Vr3Cc>wM%>E zKR(7h!q{it*Nn#YPgbBTB}OD7pSh z>ywhV?DXBkyMNYPM%s|rL?YHwGS*UZQ>dlnu2}0z(pGCTiC9a?SnDc1MvygIhRa=I zWVF2N*2~4C?iv8bLbzPpmflJtLRB(CRq}=~DoS1!Yh6d$Ky4!tYbhCPDS68k)^8=R zinVSaZMC+Oh_#fAwUpcu@ZE8%?><(jD(~7@{U*{@eJ6=nUCCHo$$Q=#7>ML`vDU4m zt=26hVl5?OEhTqtwpvQw5Nq8@+G_105o;+KYwad^#SUJ@4oi?+{~iNy4_F_%$a3`3 zNs;%$+ajC|BqAIoBbdv(uUGz5)qV=5tNeK z0@oju(RYdeWpOUYPE$?aELEhV?aS~rrmT02O@T1v)RO5Svh z)lzb6taTGTC1hx_E_sq(pGC1 ziC9a?SWC&RpR!s??ufPSA#JsGlZdsHjJ1@!>C;wA$(^y*x>lgh%nDQ`V=X1uZ?jrT z-V$qFK-$_`Pa?LZWUQs+WuLWLO74oaE+lQWHjs$5l#I15B6-zUt(J1Pe$euU~MK5VJR75ZMofdU&H*; z!%r9-B{#*&*OIo%TlG9>Bqd|zZK1Mqwr{n{N^XvoZy;@zx08sKm5h~@-2OSMrR45d z>qgR6YX^x~OUYPE$!(vvT1w7DDX`)HWA9y{^t!G(&-?gZRkt2jQpqm6l;nQb${;0H zP{3Hm331&@EX#H}QHTldbb4WCvKHHL9`o8;}dmj7jv(G+z z@3YT7e*sE9D`l~I7mxhZqgK}M%&Pa2LMm)t(vd1>jYF{V=!VrvUXw)yv_w;YlsYqN z(NJ!AUFfAYk(1d1VckE49f;Q9%H0 zWGuuj3EdGw1)uUBbe~uxHjg$ES1%$J{iMB%^}Br+g;2>%u~rJIAvbxcb8$h$B#%2i zYEa_bE-xbWA~yL15zF9iAsC*kLh=uQwPxiCsnW0922EWcvIxyds>DgHklML~eQr$h z6F$@#1{Q8cQGDyBcB4X6X&KY~AIVQ5SUmR!C%_w>mc(fGOFNMUMl6=~$D;$f;T4Cj z=)iU3Nc9as3CJp1TJQlyhom7gVN?nz;o%s5%r_Kv=~z;(1@-m5*62SsUJMr;uX04w zUm-dM7a}Sn7c)i*B!e4mCM4Hz(Z!D%21c#0zn2DKUVUS=O!@P1k8qk04wNO$AKI6T zR*!zE%%XF~7M=6N0}Qh=LXsY-3r$5CempK?SIK!Z#-^7b1!*DgI&nm?g%Na8jVWxZ zS=yKmR=dX$_0a1!D;SLxvx1bBvqBrkHY-l8niU}&ICJX%AG4y+r0}rfHYuLxb7HLt zanZs*>&dWHJ^$Lxg`44`x2w;3=@&-*kxis1@oU8SV*sDzaxrpEpunrzkFXQ|ZDDfO? z>T>2<5d?6sgZsMyiv*l0VKS7&_O$TOp|Z^#>h1lC(I&fk%T&XnskqIUf6Z-B`;J-* z<`(lmNwQx^ahgSId%YNN^{&%e+t5+X1R!12j0)g0#Tbyz+L}<>j$cxJm)$Y|^Rm~n z?<8cPe2LrhoiN^e-gdOJKtu|@?`C_J;z{-E|M-Q!O7C1dhhbYcl8U=^0nuyVd-2Y? z8ep<(Ea7Evmk~6345;WQnE;f#TSDIio(xV2y$MO~RgOyo_)_1Z zOX2@2sIYVCY{EZ4kP8d%bo@_eXnDd&Yu1Z~HiQ`|StckJ<1?nE2$0N=tdb3vLJJm4 zk$ba)$xJ5y03Le=gHz^}q{(e3ER@}RmK~XCB2a5Xf`9*6i9|#sK80whKl@+<{aKnl; zb1fgPY+ugl65)o)WwZiTgvb>or)6sc2w79nBt3}#U`=*gUu?Jau`wY(PZ?a4BWEWf z|3K{B`&D)CXl!QP>d|Lx!6VO(ZVV;jSi*QiAR1U%F#`ZW zSb2xm!8q^+Uk6nr?^+f9wcEd5s;}(m=48@cZJ*Ft3t!Cf#b;pl%y+l&b=7<~ucB@& zx=dzS7<8Y9o8*eIg+ifbFH5wo6}l}{^?M~*pgOF4yP|~9R_$(FjB_WcCLb>5BMJZ; zK^i6j<}U}5ajtU#3eua#GxXzfD&DW+Acg;^$ad#6frt>cOO!6Gh zGi_-eOlaqftWi0k({Zipc{tHm__yO*TK&i$%9a=zrUW$e#(-AUot`0Zb&K<(R%nin9Fa!6L=#o$8Ez zmq>2?z7?CsTXbj>f1`#q+ZaJshn%dqmGDvQVE`$5kyQ~I9VI3l+eu5y(H-5kMh}-~ zLQ4EoQX**Y8#m7a@Gjx8Bb+h#)r$<#8d!D9F$wjAv8cP0_PUfX0akWN9x(%5Qq)O7 zY~v$4?WS>#N@!ce^r4~N5OXA}!@IsxB&9Jm&~31s@VyhtW^{x3+{m%j-AqrQD8|0} zuP6fFdE>aZ%_vW(sNOJ&6B@l@b9MD?^VMUYkLHc&nax!PcU{JmUbm_(vhU&|Gg?e~ zw5J9SY+1OMxFT^*%8AJs=B#=JLlV23U7+qH|3@s%f^I^uCN&}>f)nDucAPk_Z6@ds z9VnR}K0qAj(MV_2>CZ>qN%#RoZ2wqAS3Ow@gcmP}%45zs6_6{2|0>-}DE4BrZec|e zn&>vB!haJ}ldXw~iK&);bJ}leYGf*&nrb*V6}BeY6I0m~d02Gf>LctmjErr8WOk;r z-6?^^28cS)gU6xREEX}*iQ*(}T-t20t46osLXhX!C4)cM3-mV+vA~R7T>rx2H+E6| zL)zBX`iE*DGSNUGz#+h;{%)LM^tmsaIZ3b`g~-Zvw}=jU5pNTa%c=crOu?hrE$43f zV(I~*=ZP=cU>D=2xlPSAj+awhmFBz&2MPs|RO$VEL$TZ$26Yg2G9j!jD|OEB4OQ+- zfGTev2v@aC&7}jC#y|y_RLr(#LF`Jc7;-r&I{WB?Xu~U!=r$qh~Y`7g1G6t1nvlP1ac{__!+?L@z@dd?3rVS&L*z_5^S zYC&k!i4=j`oq$v(>edF^!VkRU)QZ%Ms7`-5bC32Ws8A8u2J08Iy^}`N7>Wsl9FGwb znxZeH1%l!-DjaKUZYl%;jKERxQqK0oAYcph0#;>x7+Req8~W-KVHPUJ=vM^)-UMAy zE~aV;SiYfJYIzm?!kuVXtVonYg2~&XtlwiTkmG4Av5lePTHSj&*`36#0yLWEB1n|9 z2@#LekxntrbF(TPTi-Ne;`t9JKEijzqvq4WUH|#J^>KNSWxXWh&}S zhC9YZ10w>|5lkeWEPFCdk|VaC%ZiR(l+1FFNZXh8AGa^2L6luydg|yQU^MUgc)0M*DjOboJv+L%&{QfkXSi)PSV-)|EbUHacn*)d^3Zjc7CtIUl1#uN#l% zJZ<;!2N3#y{EK#o&y>EXhm~vUDwm_9$fwQfo-alV`KuulD5AQDyHT49`A^2C9|}2A z5J848WJ+VMlxf`~d1?q@M^|DjnTzYL*Dx;ZGGKj6FfPe{=^C7l0yymsL) z1S!5cS{J^*F8uUA4ix@3=J_CLoV{O+W?WJLApA1{-4F5d4i2jGrR1nj!1{>_MxaO* z9;#x!+OcVx!?Y@H$9%QjnuARpCqvAsXvw!@W42?%u~*KuszIh84trKfL7ToMk9;;M zT6`(32QSl+kMG^n1|H8?|X8r=fas}t>lmUtvyA2^mX;^*BIF5>(xqdqK00Pq{nmfCMeM=H756&bxL_Fm6qWoHl{CGeFy(Cz6r_uGQkVU7D&R+N zd_G6%FPyh@8cO5fiGN1F^gmMi?0HMKLus5c7^Zf=_6nV&TsjA!9`%hhFZ8pq$}XoY zQo?Uv386`9!xt(DTe_no>S6f$xNs%VmmD6-bxLkeWHYORvSejp^*b5TNkt!sg>fEjX zMy8=OQBd41yKY5Ntd48}KTtcUW?j=QP?%>Mna0jZf^)h_{!?=4QdcxG64&aQbRf~- zC5KhSnG*W99)8mLLspZusz;0Wh|W| zykn%}iDt(SjPrw9pk9FNv`Q}CDZEe)rX>n&7)3Z0{bb^YIH{3_HBD39bXjn5Ph?}s zz1RF_XE}N825?;d6)z1`>aHv(zepE!8kuhmXv2+|P=BdW;>+;@xT0*vhpb^j`T0_~5R5ST7vy(WM}JfOWhD*A7iFQY4?MQ&1CP*F zsx4-}4vr%TaE74^;gEj(Lb!4`E6QtKZ?7fn`C2k{-t)~Uudbzm?UCLAP#`${c`RKT z1HSxLH8<)j(VIsj1XkU`(Z80ihN9c(wN{@K{2?W%ZDuPhZsse$%$au{7>0)0ygFdqb@lguoVpPz@96pS=V68q@WCdO{zH zYmI5}91r2SfALT%g9 z)GgyJ)ui#9>f}GH7@itd??Ltr+ygvfG!4$vgX9~y2P|eA=t1KfxCh3&&pQUKZ{Qv< z9X2oqop0bCAWm$c2iv}Zdq5PD4fJ5@8@LAuX6Nrg&pgBGXflM>haWwqPWZuQ&7NxNlFT6h|_7fi2S zI(tG&Z|UR=i4Og16=#!!rL(cl(#eH&F7))5PP2WpV%GQ8x^QA5I?@r{ZS;i$jL{9L z@OibYFi*%T^%4Zw(~6A*c6O%49uswW;_`Dz_B?SR`Zj;MY7hFluxNJ(C_tBG*tdtf zLV2?59PnxBi$7sWrUYK$Zx&_^_PhHBy?I5J?ifD1!1tS42B$!AfPr}Pw`y+X}-xyV*jmv?>0X!K~q>1UN z2jhF=dKkIrCCF1fqDTkCQ4DhfM9~^1iaKLoV(it16o|x#MUSIDCNVluAP9TN61vbQ z3brojz)2-gK35z%)BDp>vs1*iUnR%oe$bro;|~d^C1N-_P%L$?T~> zG%Lw${StqD!6m+U!6iPsP6-h|ded~!o2F$SLv4~)rHD5I`s!%5VBToL+$MYTEG(hE zd4^+G_C|Dkuv-4S-DyPJ7FDYd=9E*#aWdhcSq3V$T@$WxyQ>Qx}P9kz0ATa}ZHSm-P3men_r*&~zYk1_V2TT)4f$AP zWS^nC=kxb~s-D#rv=_8PwLInQSJ_=)#_|V-!<^{qL>~@8=fDuvSOfW_Q^&?e@`+gH z3_+&&&^CvkA`*KDF)3oR5R*H2xI$I}3(2Tt3(3d|etGnLJzjp33KibFuB)Ps(6fvA$LdeK1~P%fdFtCD2y9HewR>oG_fMQ{m@phkx5PR+(1Q+TxD=^>uKL#DwC1r^9l9BQkse&*i zZl3zzv`eQcQyR>>qWi;nPbT{PaaF*m*`s?#6ho2YdQf!W z>DGpaLMjZ*I?pX&U>4Sd5j(#G8gq$U3Y!runclIu-!X|5y^c{0QA-8eSJo#__Z1%TDOhMvwqc5jSfv zUJd-(bk16s-WA;di-{MA19NqBgJV7fzGHfEK{+U?7PY1&F6G$h5V+68RE?&Yl2vdw z^C)L4S;7=eQG&IPNMQ=CDF`iDk*9V1TV#AA4nabLj<@qx(UcXI1o8l&vLR2n3I`D_ zo=Q}GDqezXVtOcPzDr+eMSDURmIWqp-xY@h{X;Pk3|hR(0SzUSKTWH4PAPX`mIziNBN#$Ym))mth4@F%X^*i5^G++raj}7f9aM?5=9d@;#;k8 zHPw5X?mca*tDShK~!?MvGY`~rC}<1ToY zvuk3`uF&9*ChQ%F8HoO7K|JhTYdl}@A-r)_sphd_3aFc)A_xG9tid1=($awWOGQ7U zh&Y6{HYh3EzvvSHoWp27O8~NHx|BTsej2R;c%;T5iCQ*Mpgg-$jrP8h-GtB&Gr5a_ zWj`Os@u62l_TQOnx-qat)l!EWJVWB?MFZpPqiz$uMSqRb*%+LeyHR4kFE<(K@+6#lt5 zqHd7M6aAWJN)Pz+qEp~7lTDhtaxXkhpGKWO&5(A1Zu#kqwfzOubD&1%#_pS&4#QJqDUwXJ#pfY^(MG<2K*!4;cv zmWa=#+(?KJ&3Z(NexxBAAwVQum{v}Yg&l32NdWZtw0@AqgSZkcrN&Q3_@VP`!)`hk zibjS}1oy>OAry%ZuR>8rDAMUpIV;bX1Wp1)61U7^$bId_*af3#bOnltV;%b5sb-;F99PLPeltTzH zjXJxcwia^5p)$3baJeV@^GPmhP@>3imWL2pSfP9i78B#AqKsD$Pz=(qC`Mm_Vni#7 z4e~HH6Jbx3F9s5$;I)@73|QBi_iG zkbg8rmP?@&&3=iG`sOK`NTN8&s?Yp!Ts`wgarM!(`t3iC^O%YC&>0mLUxy!ER{`Q> z$#w4asW?Y5N{+`m(o8HH3ZNt&Tul*vD$!~RjnqOP_Nb`(Gpn#f=1*z3WS$c$Sn`=> zdQ-3IFd6xD@jbm(zGE+#WeJ2-db zIiMDt1=PZze}Wf&Ux|9Cs{&o|4QJ96-X!~9!g_+E0tky)^2nPYrsu!hJs{0zV3GNayY?Cqu54nGKq5k`LMaNpbYr8VpJ z!q~5PdVX1!eP53yMNAYwz{U8Dg-1>)b^6;8CNl{t-oj}l6I>5d?CnUvG{s-KG4GA# zgoABQs*4sR%)_GC>-_mL99XKyU9n0%72neaQORod9|Ib73M{Rmd{}5BGF5T!+H(Rq z;h6DndeE3dZhtkxCq?D8cGyxvXe4v9(G<=9Q{07ADD3PSxHgO97(a(kX-cHo4qw*a zXQ6F0kfxWKW`WA7@35LTc*^#JByd3=4PVS4d+H5jFWr`NG>0(2z4R6Nvj@b}z>!B( zG8A@WsEuVrQkKMORic&DL~NT4B(D5jBK!~7hfLL1S2o$YrwLmVtqhqOk2wEXYs9J| zZW1WQG14001H~XTo&S4DV%f_!((^uER`lPlkTN9X?@F?_4%2{U1A_qo9@R;1UUVHC z!1!dtH&a8S8)+8OCv;=)enTP)<&;XWa9>7X{s@*D9;LeCC9>6g#inQDEJ#*I-GV+B zv)^yWqd`8|qD974uM{45pnDMjOjTxdSuDnT!p}JEXvt9u0*DmmEu2Ppg8)y8Ezl-* z?^6j$Z=+K{mOmgFQhfJe9BJXc)*pTrc7GZD}RqG$6lFE)`WbZ`vAg68Tb3UoIa2~3n6?L;rLVm$6Eb24zwMdv`tw@|8l7avi_ z%I1KT%?18<96CW*=uTQqd1J9+L|WDE0d!{Ftqx@lQ3#{m%_>8K;B{-ihGKI!w_1{7 zvm>2-Bs(bwC{ja)s~yH^xyg&zIAQx*EHE(!k(&`Ps#6M*@yd5LOj!nDVekS7#iW^n&dLIkzpsEPZ(G5XeLEPYj8^d#GUZ*&odGsKRO9)W^4671 zc?dB^Vwz|d!Ia?|Ycb_bOkJ36^eVJ2)}0P4LgrGo;c-3CvC}HLPG_>6Q8P(5#Hi8P zHmP3&jN1DJqn7@4E=DaB!}}nS-qPn~dz^an$|{NxQW#os$zk?<&hh%HnKO9nYAI2( z?DH%df92@o3g%pQeH19q!JNg}%UrR+C(pxh^9x|kxx@}<&XX|bdSouHu{%wxnzqx$ z#eiq=m5PguZ|BGQj5*@e>AH;hSHAvCEU?yL#w;=zX3R?Iv)>Ic=1}iy#{9@Xt3C}f z<~_aTRnGFr%5VsmdXXh$)(Yages#&<`eWp$GZnz``~C3=dwiZ$F-h+E-zH|U)UyP5 zNjo=uwFUGTy%}uV*P^M zly`k3W3yQY$?krHvB#Pk>ViqdW71Q@CR6^BON+5$bp2LQ-7z;Q!~)x6TEG-upX@_D zuxd^HCEg>0Nu{2fsja$)G7p&rRCi0A?sx1w)Uy)QewRdW*7im^bis`d^`YP4UZWS( zVV2bua?h~%8|7~UqUZ!QSKp8Z-u40b`Ir1V)JJZ&!#jzK_O$!1t25BNEc2I%>iRL21>b<>+E*)i}yLhnRwE35`~0Fo-}f z8pEB$7}z6I)LRG-RNZ=ift5uJA%)+qo*#}24GiZ2ZWNea7Xa_!hO@QO5|I$ST5 z=ghFdzC*dHN30UTcU&K1`k2tiCVd!LV-yY+eaiC#glPYQiXU!>wc&bJfMZEVz!w{Q z-z8mHiUPPt;e1%`>}u8MRy8PZ-J?Q1W~_V|gI zTT}WwQvkpQCa`HZ3>=-XG4~E_=78aY!pdSsDy~#B%yH`l``-dx_tt-m0K{f_RtiIx z|KG9VDcT$D7$}(?7wfbF9Q`@kkCY|b4I|PDM#okJq7J^$+BTrAO{T%fhqfmOE#jR-CAf!2Q@T2rO&0I>9uQU zPxdsl$L(p1ims|vv>oSA(SGH^)SOkSR8K_E!FtHdiWKt^)C1HGI zs$`;MoK1l%e!!Hr%cJT1R(bFaayK!=wRJY2mphau(|Og!4M5bhpGuKi1=TmT9%sFW zrL3>Wk;BKx)sUB7xH88`tfkrXDt3jAiZ4jNxuEeCjZt7NMHMhEsAn73>I}D`<#iCy zYx#n@zIqm1sA`9%X7U2MP{NWgkv1;YQ0C9*EGSl|)q@p!GUzceQ|$JF3EGAvfF0$`A8S%u5VUHj z?kRk$nqEUjUZLBd)V)~ud-I7BEm2|y?6;r6e)dN_zTWb$*WhrLl^POYsY&XZ-m(ets>EZBg8IK5Iq z=MYlxfZwysFV3nY%|-b#^Z{#-UHq_T0bISMjLx$^N6$Ep0yU6cnv zP*6-N=q}(k3W`a+?KNamG!guxCe31s7Vt1GYTvaZIN?O30(LkFig~OA$W#ey2 zu*P4EITTe!)qhMB0+AmC{;bB{vQ7n2UBQDGyoM`yARefo?G-Ry-d9yO)SVA5rC;Cz9WHw>U$~FVY`JERo zOr%j9VO-;y>1A_K3SNB>kXcMig{>AT;IFSQNE+{a%uQ5-?Xx60Yy3*YD^*zSmW07m z%n3oZyYy=m?=~GWSXr%Gm~q7SYKhLw?FJjk*;eq0wguD2Yg>1Nx8yy5+vTNr_3ILV z>-nbrPvGI&x*m%^IRtdexFxHE6^mCDd-XVJ{fzW*vEZ(WV2))~H!GS_?5Y#RlLkq2 zEkNz}Q90Il)5er9CsVVKkrh`3wsP?41QpWc*$-}aG0~H?BZrEV`s9<#nOIed%UN?Z z2v!;UhMBezZAmRS_A(6SP#z6I7|5|OkYfe+44B-yvSh!5EHBs3cbO)-e}jnNv^F?4 zlXacLE}!5XJa@R>gD+j-kr|x~pj=ef=Kcoy3;vb|>(mJkb-d(^wGkYfoPsk9i6rY9 zeKL)3LS!I+iFB$i4VSR`y6n3_+>AQjbB6t)fr1ze>AHv)DU3?fBCZD_#_FxhhKT8o zEpfz|;m6~i7kqnr|_Ux$*MrvP!yQygl)*UJgrc*^-0%BV3EJGbNvC2*5tftw69Zk&SYv4Wed zpJ#}hIIiI)!Znq^O@>PLyEep4Mv75!lYvng;3i(D`znHY*a)Z4`rIU)O=iv8mRT!z z_*TtN;PLA*2d@(H7MRXV*oc?tW4wC}Jc}jR#oUAZK%z}x1|2bj`T&`zY>3DQ_|h6p z+Zyyag=BznoKBE-m|@69g!e$+)AW84IVnFNqdN2AG`o2JA%@p+DKb)yl0KZw=RXaH zs+M`Tvqazu^kmx=11CLocro8mNbjz*%-UXnNG{HF8sdZ0LruEqe2j0Hgzp)1o&lkZ zHfc-FEE3s1Xd5Cu+C>|%0an!@Q}J%pknSxD)XfHkF&RaGufD{{bC~UhM zYjmZsjgMXn+9jwvLl-`1JE(yABzn4(6$?ILds(#;Rc-#(ZW>fTlTr0S5L?ToA69}e zEu`>)MBL6##KM435;jW{brs?KPvhPx)sI?W4@)yYRG^R(kE*FJ(qvcFRyOfrUTejY zy_Xh+T$Y|z{s+d!2O*#uHfXN*=K0i!ybQ|cxGi0%68ZLU0!4jBV>CZ4D=rchfoXdy z$zI-55&8#)fr8dR5n$N?DbduAKY(lxZ26z#TS#>SSHQnFNjPPwd;jn_;GARvG1<|z z%M!fV0H)iqC)*10RgrVOaM0cg=?|=#a5?&0ZJV!>{4Wr?iuO*w(#@VaimV+LBTh$z zSN3GDeAUuY9bVa!y$T1ixE7+rlBN41|>{g6dgC! z&YDJ`iiHcotdCCqw+dJ0hd>9q5YYwEHg(elZl$m;u(dzf1rudFmv_P6zak3%bzy(0 zulB9%5rh2jR|9!84Ee{CuQlW^7vMus|DHiDYRsJ)k1#1~ocp8JhGw-(YnB9zQsY4k zo7l%$1l#Hl34@^EDX`ub<)4J%u0T2TFo1I0)3|8L3cL2=uSrJYMJ?B0%qcoU{j5kS zbCCUEC?Amaau*T@oP7k^*`KcLOD_t#QP9`FH%-oWtN|FtJb&6qqD;7(E6sUWb>c!6%MRmK!sK_Xzu^} z6|O%h*Q~X|9bapOI}uj6)89;UC>@+ZD2!nITyqHTj`TqGU*d%5M14anxsnA;A#A4oR{Z?So7HU>3+^l#VvvArTL)Nvzl zk&@=Gv!@E|B*9~~=HD97{5g!ue;yeG5TyC1vqkLj0?_3daTXe?LF<=l&zGc7;XSDP z8b)R5IoqJ;Kf1aHxC(`k7mYgP#Y)gE??M!eLCBvoB*j8J98UZwD~K&M*+sB%B@NJ^Zh-!|M$%qv1VI6FMl!2^knwhz zh!NN^gO10A=r{32up)3Y%QwRY$&jARg7wxivP7{LOpYv6O<5I@)pkWLqaj>0@v~}; zOQ5%jKnuK;{L!KigFnBxGnFEz=l<_=pdllos5oBw?EjbMavxIkLZg=$-07hIyz=?<-O=VRvyMCCy$e z83k{s9mzv+7h(X$r26n_NhzG&mkID8STyP_vy5cqx1Z|32i&s`0vY;eyv@4h(Z!gi zTu%(Bk+w_N)t4xhnwn(48$C3gznw^1@I837kUHtW7mXWi zx_kga?0(p46+(rbJ{#Q#vKj=()0bf{+?3wBWAL_h_@08oApkD;fqmj`;>zw zts80qGdCTfjiyhp6t2OrTDM|jDeH6%@^e6KlnuY`2}#wau!EFcQHZ)iToR!QQV>oR zgsN(QJ%$)`+Vt&pnN1tCY9W_-03%pUM8XCav&Um28$*PTUfpFV2Bm!g4M#NN6hlY( z7pR6fNU;d2b?^=ltbk^LdPt_|HR3u(KGKm^WJ*-F&J^C8rQ69VbSDg_PYs6C8N(&& zDRjF4XXb`IF7xtjb5DY6)9fI&G*dO%24@lTr%0Jb12qyC0z^`l>fsF*bxzL(%ZN;6 zQ8#8rVGy%**>+hqFz^&f4B2yO1ur5#9{%B&qbX7KxW3h}BK*9dx7PUyNR*{9@|>}_ z{$`x<-QOb0{@ruAeZ8p_?u5ny|kkm7v zGMFaEMPy@C3yo(?reaF>k4_o0WjRY=kq{@SX1x!0mIGem*Od!UlDlDJDb{8kb&;1l z%qQlV<6KS)zHgkNJK88CY>h;J)oXXn+ZDn54A=jHEI2Nt)*Vxepu`)sX!p7fmN%HL zRHXu4+8{>rg22bqa$nC{msF#-krsCuDR!SQ=`yw^KQ*eqC2|f`Aa}C+$Lf6@-RD(| z$b!kt>b4kzV7W>q&G-K?Gm$$cu5OI-uhAIgzf>Qi{Pqv~_O}g=J2ppS&)7(K(-=)S zeZaQXd=ZI^;_9hrZ^=#1QFTNMHaAOK@S1@Pe^X~jtJpKJ3L?lMTXBhY%Tdx&M@dHh zu|CGtx9aBd5{G(49EC>jU{D$}Wmf$uJ}nVxS@l^9Ae2>~#3%OHit8( z@{if`*JeuiOtLA#L?U9Ok)NdwPYKCR$wTGld;u_R60%w_o66Xyp%!(@(sR_sUEB!4 z2}Hf`iosd^1N2>S!+3xAhM&NJUFpu%%~($P4>E7Wahx^nS8C}P$y$(3rg3L_wr(6} zqo;@uR(}^EGccOkf+eO*{t0F`(|XQ$lR-?k4!>qR*9EO3GXHi6jw35@cT15^q|H`a zTjSN|kVZafVlyH;!Kj5ZNB4O1v+}PO>Fdh)1v;atGDf_>_AyAM zF1LE0cBKTpQ2Xsvt)nrRYLc` z?;~te`&<>ft*Oqc!he;xS=0wvae;ZYs~bCnei@%N6!{Dur6|HRXN0B4kDvT0mGE7Z1MH*X`0uJM)J3pU9T^)wX*6^2h(HJs$x#doJqijs5|Pqa0|ui zNS_t}b~{b?nZ9#xr#5jUsLj}OAUQUpz%y*W(O)+VvB?VkDKY(N)QNb#N=?%cC3o?; z6E5S*G%WThFaXzVe!bFtkgD$s>X(sxSiUw;>}T$cMF>@XeV9krLT+ZF3u}bPEFLE~ z9q42cBP=L2=L?*HXae^{qr)xd2w?6h^NyIBg|h(xu`bE8L?ca2kBh057dY(3Q7T(@=J zHNFP-MnK;@_a54MH-DGB-hPfADOGQ|6^-&{DAUN!3_PLRNO4f20O2s3RASAtctOHb z4}~RC1@s1qCVzo1xSRS zEi|^d*m9)YN)P7FqQhQfdT~;0EiM8>g+xPR!5asnq;j-4aJ)Hxqc+4k`@xFnG_Eeb zt!my?5!v@=&`(hKi8rx63hwwSP=I3#61w_sC>Sp`9bAoqXpR%Cr^+qI>Hg-M#v_p7 zSP)K*9sSC?54javMGG41UI!TqTG%i~2WFQ9c^M3Li-pY*JdBmE7B2_ZItG99+~RlB zF71y#RBpMi*mBqygk;*eh!{Xc*p6ItrGov~W#TM4XJFn~D~io8W3Le%T;jlHi32cz zwhisaldEhSGW`78_&ZaxTJl!=jTB|SQH_g%R?nkO7C8wd$Wscrc3n9t^}Wr^7~`90 z+Xo4+%Gv>!XcDkBeJ}~L0ozP6+h@+_ovm6Ec12y8C0MYojtJt-<}DvH>{{~mAo~XY zDQ3Mqf+Pe{E-I$Q2rww%a&TyqQOzKSDHj(15|RcbIt`85f3S-0K>Y_~4kN-FIrpTc zn3@qRF=IZMutI0!4SHZWpoi)Vd*;@~mgqp{&s zpj0t=&|)XEmq$Q9sJ%jv$^1ksVh^H`GR}9;H@W8C}6sB61{YpA;3Apd( z#{+vE_m<6IWnNys<}i~Ba~S_EKeiklzKOAo=Po(^02Y~OKaViZ$xxtkljrTc#=@^j_6DnCNc4Z06f`WcS{Hi4S_9sN ztWgIWun138$#t?d2ZmgbA?Bj$+%*kk62!y<%S46I!Do>V`E zcrJ?x0S&9A@H}BXkWZTjKrnh?;st!jlBBs8i(V4!kf2+X%6se_H zt)&t-bY+ew(LF}Q?ski<>DdjPC3~uNB31f0(XiRPR;E;c2vQ2$BHS5Q)39^XZ%Pnf>&T;lDK@DvPs$_%bv0-lPW)NW8U2IKZg0;wFaKF;RrslROjUhq|&i^$J7>zC|w$9mF2JJ0>`I`L2 zMo%KgqP#?3J5Y=G+O3bP^qMG^9KzKK$;Wj5z542OEh*|=q=q^`*wh-5D2m`v6H8~k ziP?p^n*Az&vsbgP%b8@Xv82p)FRE?OhO@zOm1TFuhz*RE+jI&$?;;wKevz_==qk4; zU2|W?9C$=*6(#l)!xYmKB&PbQ`~izoW-SmVVdz`2i=*Xtq+n@DY>J4VFv}ebDnFg@ z(&sUss9_}HbHbc7g7zjvqYeYD@a`gn0@KY9=?Ah#K-164N};YKXk|F~e&7{R`0r=) zJA|;?sfDk*WwE=s;GVFVx#SoIj=AD+IRzC>E}Z(F;T`LwI*CQFZIpl@s?sN8eLfh^ zE!NT&oXluq$upd=4EL|jpbMEDg5$cWhu}4T5wpcHC5mg=!dbbqJ3pL{tXn(Nr|k2I#Agy7-WTVevZSYzE^EQg zlv_p=I=xz^6zATM7OxHHiSpw>cO4)W`wp-K&FAkDPEZ_}PX^Gk)%18`!*jx$C7L3& zJ}Se_rJ7RJ$z-182Kt)ei^~{iRN4pBOPsV458CGm`@BD~l4pFtmn;pRN7eY3Hu`5` zX9-+WdNBhjNFhv&6T9c#p}|l@@vS1n2l7u^6{iDvJSFlN$PAEAkk`o&|4DV=32Wy` zCPi;aG?*Xu*UR?$@s+Q4rVocU9(4no=9Iy*=7hP$$@SJut7dVL?timo7EZ=uB)yEa zblR8HoFx^%5@RQ}s0>a^`P1Mvf)*@YmQm}rSL~}L^!@~wX-(>Fko$FG7V%vaD`F^GjyA9c?2;GjEHm)DEV#a;-_{DWIx7Q zG{x147K*xVYIRK_ZWYyH#ok!OmYGj4RjRG{Muqw5M5}K#r}`J|Ek`PG%^+~km}HF^ zMYpQqbt9g&wM!g&lx$dP``WGD611tNjO%hfcA#OxWEhAP#KE>Wk{rVkvivrM(zy2y(l(`m=Y$ z-EkfKIVV;JaiMKR@2IV5QjLLx3VrNghVsQs(U+o%um&7?)2U+WwL{E-@~4@PUZ=zZa^IqlTURbR z4I&Tg#eRL{2iZu>Wf@gSRTEeIa#?2>7*bsAR*s{utC3}5*;C^-IN@5>zJp*I)lx3gXg1#FgzgnNQXT)yjez_nMa5);zw6BX;PT zhxVJxe7=-1(+H&AkW8kr_lKpjyD$k!KFP!b&mI-?ng@F%fCgIynU0 z!84*jt#079O0|-7;md6HEzlDV9`|6e{>vCcN~hW`$%rp)+`*Kh>JR_wOO02{C52#N zT)Bz0o;7Bc-rxvo47@2|u{)?o>31a2+;fiM?NUz7-6Nd5p6aGpUkpJ@5}K8IM8e$G z2h1AG4Ds{CaCiQ-5%}nJdvDpC;fIDu4O|D_-3PEu3d``wDXK`#s-WHJ=PYyyE}${Q zV8z_CLb~0(9_^HSN9R?O0ZL1BF7zO+vm3%l_mgYj+b&G(FH^O(8GZ_~gi}=rV2+6z zR<+O_0ZCdhJJl{|#?fm_nH0Bl78+u;v+~+qwFRu-5HOHx&V5ffp_k*b+OfN*ZAmHF ztlkZ@dsZkLEqMha|J(Rz)00fS>VuD2pCT{Es2)VA^F7W-tPu{LA-z;O)!O z1>ltIwhyp9VDdS7TIq05j)1{7?DGtE*PZFpO+-q*pKAJaJKbc6`mi!Ijp_*sJ7Zer zNsB85p0MIiHl3wCPI2`{ZgZ=(q8+>?oJQ>GPjta5QaEhhFsBuwBl(JRLjid?Kk z7k367&4qLre$8p4xT1AecO0*q)B=tqnyCI1eB>6JW5NpdU8l9fK* z%zs&wdxra_!i$s5(y;zu6BPz6faQRf(^I)i}47&pQgH^LY<(BL6vh2k(qfYb`s zN%6jF-%Q*U{p{@T{>o?V^Z^PG`2mp0L+%+N2slv2dP2+-*GS)`eG-wUtbKr`{WP>M zeU0CzQ**0BsapCys+YJ8kpXqDs;5F#%Or-Xp0KVw8M^X#!>d|ucvaa4x-()#0m8sS zC_NLD@zbHkrGAYktj7C8jmJZcOQA-_ZJ>A!(8+%BhpqUdq44JyaC=z9pqG(Mkkt<8ta7*IfQQon8wMq*c5-sb zAX>{7Pv>BEDLhrCH+W&P5+$-zX8<281Ge#w2#)>^_l6iFp*!LWJGf%C>;~D{(>bTR zGdU42Bd#^k*c*Y$uDKT{hot{wjA`4ruO=hZv3v13X=wKlB8?9?3WS7Sl9bwo>dR-1 zFG;efo;{1p890csSPl|%IU4Gf)&Hhq@K@L#4DXAhT=ImxB!yhldWpncK zqsS>aT1*@%uo+kj1+R}EJ#>hMUw7(|T4Epm&|yjicqfX6*Gu&nj4Xedhk6gu3F@KB zTvd(_Ras1c3q~5?>91GQ>nhilcxP9_mK~vE0XCI%*n|%OM|Et>@+_S8VB|tinc(BO zmx1gW&q8oK_uL+Oz@z~}vm8PLXhOmilS-PPxaIpCI0JS0(Q-_=KnR`U5r{a)hS#A6 z16*$Le&zc|9j%W+Rsf z^kP(1lntO@yo5sji^N>wxfdUU)Tr+B=>$F7914Tn*hri)d7U7GYBcD;KgGilW3_y13^WsP^}|B}h!2}{9cvucxMI@W z?izF5+3#M#1qWUpj52qAhlLRag4@6?MLT{W^=bHq#GTO%f+!7biAJoM<9HAWz7bN-l?p z8KHeGnMCchRc~e>XZBd)N1dK<8$Vsuw!ERo45cyMsViBc64zgMAh{w)7GP7p1@S(u z*+Lsf0=3GTWp$0BDRKxf=#%J_$RT!wP@5B0A7>k6lT3wo84t~FI#`XX?JO^zf7aT+ zcj?Ft*8Z~^HXY}uAj{CIf@yVZ=`gkPdBaTg46!a`*TD4awe8k=&43j2*n2ZCOw(f^ z!N@GM*^^-wT}5(o_8lO(9)teKGc_cVEiEOee?3v`4s(N`p6o+-84%6~pE{Y^7_9Gx z5JbK9U&Jz26Anmy9km5A;@4}iW>=8XQ1<3PhSv>ws42U^E}BOr@KhoWx_IwgL<9lq z;rX@tAYZJW6v=(^6>|~-sv`NG@Y*^WUP~NFv!@%iqh4-1L`A$4pAB5cII4DaG{rYg zh(cOZv>5M-rV!N61`YP9zfo=>wLwO^DV~ppo|2$ZZ)#ebl%qDIbx37TYC*+!B)ffI zfJX2n)~LhvvF%Hlr5H~-rM6q5{O&Rp>7%1_BA@&Elv$He1~ObDiDyVgsrcmGH&CnD z<5lZby;`rbTK9R*^Vho1px%+}zcRt|PNi-VRGj_;%A|^)eQwgYH1zD|J?YI3!|ekw z++Oz#!L05YkE(_10=bE31AV(a^zC>&P%*pP0cYHdSJ%v=YCayTYO-q&eY^N2IxU55nn+$in1H+j3@aORm!!*b4Eud zCl0JKozOybt*BdMLt=cvb?u7Quj?k@0tIRWRAVHvSZdS4BayF!Wx5&Y?h1l3I%YUF zjJ7<@S{$1>PM~VmI*8dDHd3ihhpthv)Nrd7N&uC)&ce+teglFolE?!sVdYW-jmB`}w23Lm{>cJ)7AjVw%zMnutRaEz`q z!ZAGOPFQ|D9INpTbq74Jesx8nHEGRPY*!4vsxZjkEl0o(Sf)3|vIjE^w)k!FP}#v( z-@g8<-O;+GUOfD2H83wsBhFnIEhW|OHg)ZK_FBRRbqxezZS==Q)bmUF z{%~JYNI3KIpJjxfNf=?#c{Mw)O?a+s5e%0is@?e;6B0Se=*7Tyyj>md7mH zOn%#Z^J$a++n5MLnqjey?sl@o|9Xan0N za30$b_X5g^qp8&Zy!3PNPT;gC4F~Fw4l0fJyX94_?oMhD)Gdp73f#fgv30Sdm>rMf zW{ArZ!=H6SkOUi*rj2TR&iX5K_ zckz^C!9)^^BrKYXy*-w4z!!ce;-6l+uTUt9VL|zC`4@e7@91;XZVNI&dE**Y=FCnbLn!*{|_kFG*TqohkC) zh_MfG9)}sLn||>5f{_JmiGx(o*~D@H^X-09kMOQ&`s&CWT{U!H$p~Nkbr@lX z>f9p?>sfn*cSRTb2=j1`5k48#;*E^(+ws8;+(a`m%0HhlabYWpo)J|K{k<*gsBTu7 zVlWuZNSMYk9nzl9KO1*h2axSc3;5L|C+s#hF#v28=1xjMR>sw8e^ ztKhj$9?Ly=KJ<6zhv#!&OL*RFlg3%vD=S$jz|r5w;?4F|o%u0oHmG<0kRMA?ZL6pM zM5!g|&X-?Fj9R9pKDH@TjtUp?9nykHx~h!C+*vCRnXD~7bpw+#ULeoa(G4rgRuOEF zV%xbBTMCUt*KHCM6WESx zU9!=BKHaULn*5Qp1nTYJgw8dH=Tfm79aT%6eAA`b$Fg`tG|DQ|7LBUE051_UN@l|{ zc6r2k6&K9e-kX72(ou2=9nA%<*Wd`PmU;;7kALBhe!=2F@Up>jm{w!AamnLlF#8lw z3oPKcJE#ch*unKn=SW)Jl))skvtqsymI~wW;<+3c#0TAg0tW^n1DZ~PFwM9txr zC#(xH>F>J67_6#|g!)-gWT;6Pd`VzNanh!B1TbZFw;HkgRR8eVD1U`#YGGR0 zzd($^U!Ov_JKAOM^i_gBSSpfbp~z^{-m(}M*we_$S=Tn)GXHm}1T${++omN_-z5$@ zxHK{h*dN3yfKj?bLuJ>CgeV%3_=WdfN3uA@zBFEJ_gse9^~# zR(08$Y9vg`>m z-&0*G*;V}WNkRB|32{IuQd|eVkACJ{@cG*SA9(6R*fCiO2wHh5JSz^PkOjf!@38sQ zkU&8J>`3Z8fJoJ~FJ)6)VUBhJ zP3r!rmkor!3+5a6Vu^S(nT>}z-@t(=@C_}Afp1WMV*`A{YQ(o7-^26^yd&3T7Z?GLI80I~YHS1m5MAPi^N!%Wg zK~gcSF-A>T)Kb`ISuiC4GHi;$Di4fHNaq7l1hxg+Gg(9@=Xf9c%=g$K>I`<7dggP~ zZfNEw%qv4>(U8A~X1>q+mgaqXaNdiIk-(UwJjv6$ehWN=43SR)E&252duaL&G=sDD z>ShL}Z)gUvd(G6-S4Z%)O^w^STr0$Xc!E-UW}_9jbCd_2s+qmLL0Cs7hyFmLu-sav zlP==efT<&LMk(Mzc07jxaeFR_^SdI&++5=DiOnqhHX{qyDD~2;1C^vCqT#B6&`cAD z-~;TN$T+85P{&}4##Gcu*8;wDJdL_mXJ3}J&m)%9ro0d*cFmy`ESn*+Y3_U%pt~o$Uc=;{24-_p=xI-cPv}U8Z z&x-__)ziRvMz(f2N+_8F(vH~BJ#SoSl#`?*l)+jF$+`k`$Kl6}F|&*GHXz`t%&nVI0hQ0dh#UF0 zly(k}61b-dr5GV@@P(T+Ld1YMQAw-7S3@A$fErjlw`ibc6S<+wF&cJ3kWYQMHPoWQ zx)uW}gq29HVCAt_7P`n@F}WBhHIhnMThS{*PwXp4>5HZte#62-yJ#C0=pqsCi#AJE zrkSDc=`JkxQ%7(F)D!!wGq|mOOF8OHQ6<#*brc5LoSkjc!FGHA}JLf zHPj+7a0a$vQB>2x(Hek^4jW`0MP5?>8`lf?w(#We>1r6TrT7)NIVnVr|AuWIV>t5@t+)i!Gpo!+HtyJJ6bH0jGhJEQi>u) zQHPB_kvUmAs0Hqms%;wsts(|=yFa**4K7gFSyk$@u{8@)pi&#yHHX=9**YtaA0s2A z0rxh=q%)=Yt|4w1@~*Krtmm)wrxWy zi{fB?8y{1qPz+f7*_di_4UehKF-@s3ruCE>98;fCHl~d*rdY*wL6Zvh##C#8kH*lL zasn1BSv{tW-k8#}u613b%amoGK?=i|i%7zGp{lDwvKaV7vn){`zcn7~icAr2K)35t z5baCiZPF0LceO$o{n1(Ykdibrf^5owRx!PSP_s#%EbU@Ml*`_q`6W+h@N1A}$fCetXhMNza`_X_ z4W0QVRaVChf%k)jJ(S`Y1lyByj zS+9{rYQY^G7*#~UzJWNw%;T3tc^BisQZ2-j?$W!n8#a6mhS@RtN7+##d1_NDr@xN z!2MzcAh-7N-?Az{P^5kAsW}iS7_!nAqQqd(N|XqOn$FLGSOfr>-c*$+)lnT%K((d( zt6rY{A!VkQl82NVdnvOa=)?o$^;yI3EbcH!4+(C%mdC+&U{(5_kIMZ02pZkMnxB-&Ii$#Png z>R(}^tzzwfO8<+Ec9Dnl10{)%@B^WW86AEwNn!8ogThI(E6Hrj7pjx3%)YAX2P=?% zV5QRv>_5ir$5{4z{Y{6a+3GB7QMP1&LO^1jWwp%TY5rwcQ>rWG^WQbc3_xwl(wpjX zdiVi?lWAaD`cQg|JrK9UI=k2)LF+-GV|Pe4EtC8aF$9UELorz4k7tw~7ZBA3iQEF9v9-)-8okV8 zb!LDRB$nBN;{!<11^DViPqQ-acCy$`XZTfk-^TcIbCcG04Ihg>14EeUc{UV2^(9|Y zt0(lZLp3PSy4F#6d(qg()e&q$)IV?FC;lJwStn*%ddu!d{Znsq@U4+8ll(_`vTgg@ z_aqN93e}T>Qf)u12Q?PpPV)O=#zG4eeqGgr|LFPj`wgC~A*$HhePi}(iEnM4Ved4A zmfxA+(zZk6vop!}qyQjtFRCk)Nob+%w^z#@xM zIeHtW6bZW^vxEZFH!#!G_2-LnCWW@C&m3(GO}D|NWYi;`_?t>6VOWUBlMM(-5*XZs zI;vw%sXCYL+QOBwg@GDPre!X$!Ba#)Le2cCW@cxowyA1?SN8jr)ml^{&O^xHUPa^s zvlg9#ZzR(q9)cDHMSdMj2Z5+gYKIT15d4ExXW6@AgyteRt$8oY1Vse;sIXqpR#KVR zs)neHmUkwNJxm+wuNu0vBtF2!_mxc3O2XX?DLK8%lE;<5O8m!IC7V}T6$kL&fNwPp z@FP8N2d*?K>N=I!S|@w&m|wE4s}dAfYj*gb(JiXOL@SDMpGvS!;3tH@Wc#A8hlZJv}U1F<9 z(~k-COL**r3G_ZGH%hy=pZ2s*s`dL^>o&bU>*^yqRzRF?tExWyn?^gfL#Me9xtMI+ zTGqNll-ssg0!Bi`U2iG7h%cEH^ORYFSZIB-1abLgdvVj60!(OGs?BN0`b0uOg>OjD z=JIsqym3Z~vTe7S`N*H1a~EV`+E!EZGgY&03IUd2;ewL~5Sct;>@7?o9oht7wTjiB zr3c0a}Fom2=a2IKSBEhks*3$8i3BKW*94VkC-nNZ3pskT4v}NLxBxO~NMx zrjzjTcqIv|E4bsZny4pZ@^-YRhA$2f_5CUiC7ggTC7Nh{ABT7!;aP3HGkjAwGx^Ho zy&(_t;AD8jz34%E1PfPcxZM$Q^OdY!j*tC&5_|;J;=l5* z{iK7h+xS9Axs^n|-q`CmFG(^j2wLpV>L2d+@lcr5L0e=1Oj|q$8>5fIopzRPY^(qf zCxPJXI^5~dTd_0{@>1`^)%to#j1VE7bcK2f=hWpjMg!A(l2>@f%lvDabTT4==(<%z zF3~)L99w61tmI&??hWxPLRT;ArA(Vhus-*qXG2|ObQL_z6o$P~_Wq>4+;En)7fX-i z3Fm5w$uxL|$Z|~oAbnqz?F0fyGJ((2jcA}~EoDYM^hieqga>Mn^lmlm@EQ_#<(3zh zdk~o`9%Vu?jXANyDWj>?D0>LCHg{5>B zpi*R*9hlMJH`5Ei<1t6#Fpq247=47rkZ7>cO$)E7Dz{1K07!}UKBE~X8IbZasXiUO zxf|1v>`5ienz>mv)tv?&jULk4pWxl>pb>>d?u}F*Q}nilYR7F-rx0|sEF`j+QX@cn zT!!I%+9&c}S=&Xbc8uJCvhIsq_j`%nm$cfUM%3^^b>?|0#j|(_;S||$m;C6x75K=T z>Wo5-u^}S-B8L(<=dEao32q80iy}4UU1U7v7cy+GTcrkaO6IP<-9m)gNJ!2};wZ`J zp>|gBGl6DB1wh{^V|{TD!un`KK?}0&^G2F8LtyViZn72DPsCTQHmZ=#7Vi|+5DhJB zql`om%+Tz&Qxm?uB}E;jCMgcKPol9^`!;jN%2YuBq%R{pCU3=tjiU zB7-DSA2vBISOwDHkv&`nM34p$#r7gAWstt93s)4LWL9P0RO>YLHn7%1Hu96wvXB4w zp#uz-LehA19gSxyL6bSyp{wixN)Vmr?uN2u!@-oKLmDX!hD}wzfB}@3EsXXm0=Cg`;SD301ua78 zz?Djh#;_jT7NoU9m2d|oN`h%D*s$A-wq#O3Cl?MreYIS(8WG+p4^Jc`?j()h)TmiI zFrXA-lhkA$frw7X;k_|sz;%%&gUN&gBNgz>>_zj8@-G?DiQ>tgTLobsp@T61i+~Xc zozt8|YOq)-5UwVv&t2Q;64>wp!H_yjX569Ly+$dJ1iHE95Lq!&&Yqn(>gnqzxpIvZ z2a($$W!6Csg+ZbLZQA&k- zaNEN@gC=4fz&*c1N)PvN<$!y83b;?iK9LyYyO+>pfI=`#m$054@?^8kuFrh<-QVu~ zL-4^P^bY;_AiM&e!d@5G)qFejq$_I>_8U-Pqf#k%u-Z{?bO9SHgPFdXJd_v%8g*aI zm5|MTHd*MMs0dc#-Bn(ktkr2aRIr59rv{~}>NV<-;bEZHFgJ6{)O(P-8VNuna|FE# z$e(7BbN@;>+75Z_U~ABWz)V?dOKtmyO;UaeR#(3Z3#zB(*fnL#XB)voqhlE?IGQg) z^s?$KP<3a)j$X1}>&{3NrTRDh^JPNphB>2!8$u~yHyF|wD@}8?DZT~tX{wP#Rsd{u z`ho=ncO4CTd(NV0z#9*(T66Fbh|!!!4JbxT;FMe$cNykXRtINeWu!$1iedFv7(#7r zlMvqp329(rqLcQi}|SjIq$&$rVeBM0TbtsBaY64D2_kQO zBhZtZ88cnRLaES*2Ng918C*5>DAzKo8JQq<2s)m2rZ5u1{#s#0?i*^OwNc zQ~!EzHTPGGuG;5BO2+llEb7l;TS5cC1Qn)K8#~{ox$tqxdT+CzjNRTF{F5W8Ty$C^ z(Me|MghVw6CH~ep^6km|eejl^@-HrD*;C zv7u1!(Ek+YK-)L7IQJXRmpGS3arUi{qoxl^pm+h~)#D{PVKIkC;nLJ$rR380|FZWsP;yr1oo9V@tEFy9B|dD7)mAMcqQ+SVH}_A&SaUm+A`1HslM#VlE|{Ah!QoQ|{W!j8P+cMc_o+Fvo{Darn1>|54%`V<9_ zl}m1FAw~W}wPb0yXr=hLev)M`EzvDazO%YKs`O!1h32UI)x7y9o{ao$spVa{i&M|o zzq{+1dSKyJ08&51NLSGj>c`o9Pi&GStCJ$38U0M4+0|t^Z_N{eXwXqqy+gZ1EmW+K zDQt9vC!ajLW6NLVKB7$`7*>7K##4Bx$jqd)Atgsk`TJPvls_z9)nQ}!Tnzx%#fsgE-8aWYVWtJLrQN( zLeh;zhCZa%n3LRIWV0XG^&pptq)Bde>qv4o%dup!UVFog;k=9UYMVHw$qIqQUd6@8 zupp?Atl|y9sQJ~Aglb8{BI39@-gHjq7MZL(tg2dHM~YO@Tni^)*+>bhj`vWuZS)Kr zJ&n+FF`iQ3S(+ZviM_GVeypN5Nt_t|TDl8Im*J2SN`o-*O0LB2AN@YLqV{pZMp1ot z9G;`PVO`Z`bF4tU*VJS|9)|QsNGpx27YOo0BB||SIzmgDSr#f98LxKL))@uSTzGT2Uf-=bK=rE@cXEX0DPbJSS#=~lrj>L>)c&eeEU zC68%Z6*JfES*^TBj~G}@gH#$w4Ddlw5l5;{YK1)n-8cl{7QL}>G!^{Wc7aub492jT z0BGdqpNv#=Zq(ia(lI2A_LGw^J!dA&qBl;Mo@~PK5M$U=@CFIP<336OZYNjUO;MRf zRFu6Gvn}pi;2PAhbD^Zz*7kL*G{vY}w1eP?jS zLOs3E!59x_CQ-lh2J>NTR?@V*+G@+8^T?o*nu0a@s2CGn#>NqFm1f=TXbHnR}2mYB0^$zYUu4Icz8(*r?5%?={3M9Ia#&yh3? zX#v&oHtp)sI_+SNbi{C-(rOI*N(iK%fsqaGctreT9?xY^fCF2iS z3uhxTyRmE~wI7!1t0?w`bxF~5Nl+`9atJ#}3oAJbx;QC*xVn60^=zcGogL?b$-TGq zYq{}{<==u9d#~W}OE^Dd_eL-sgOaK57pQc}Ij06_k%DH-RZt2sNpMbOkwQg86Q5AI zbAzxzt1c!~`AC<#33qV}RXp*vWCf=NNOLyql3(Tm7NT${M?Ayg!4P5;ZrRG}a)Pnr zDQC<7*_E7xTTU=qqe8f4Q8;3+L2}N73sfpxUcwc!!jbAsN@s=RP3$v;D`bSr2jOfZ zekz>WCE}sfx-h>AfVG#Q5bU2{MfG9#m=O8Wr?DnxkG{%=k8&#y+kQ)CZm7#8=Y)0l z;JqmC29?K;lnd{l0SU(W*LX+2qIY|y6pdfS)4V~YE9mlneQi8zWp$Zr<8oyfw`(fH zmZjQw)_+gh*!Ql?XpngaEAnI@&(T;ZG$rNo#WzyY%90OPqs*qHQD#$8$sCmwnJY^u zfj<=`B|6kV-4ghQN?KXs@0Fjaq^*2LO9x!dIABM&Dwo{<%8yjjfsC5ssjH_0^8fuG zqNmi&EM{8WT&3iY9;&jnnn?A$zB)j+154KVY&t5|;c8no4+rZ7y6T_qvbNz-g<-Qs zHgre~hH}W()PEORb*z3@%`RO8wHlvLtHZpdHj>zfFU9Lu0j43eg(w!_26JF6?aoJm z@u>{Pr-iXJVAux?+C>IG__D=nYRA~e{?=;FD{$`I`p%jhE!l1w+U(F1EhtihFO03_IiTiQI-MJO_z)jm7BrOF=mnxua+(V-h4nw?KnV?yipCIm;UO&liO(9$bgy(-e5nhx0e_s(6CjS|6r_y2A^*V94aY$EnIw9_X`*o5(a=$_H)2^B7 zP!#@N$xlgHs}A9!*xLCNH)6+qz}gZDa0++#U^wZ{>WP#m~_3ZVE99|R#18Qt?>C6 zY&H%ogn`SuF;jQ(fS^80^tm|S7fb{CyeG#RmE2YZ(_4dSkPq{|R(qZodcxZAJh-&D zPJLmz>*pxj$RWFCgu$H+P0UyMWS-jY3kP#aL1XO{XjSDLbu;?If*svDjhD^}Ge~xD zwhNO3qrlPg&=c-!v0d3Ws@hJ6zOZ{c8Rw?=rDg7tr=J#v?VQ!6?p(_x5d8?627+K( zi_dvH1;gjp=wV$E7K1R+-+E7>l~;F(;{@Smqyi1v`ee_MLivA#w-Sd6tGI@eRg*#Qg!O*S-SH; zsD#Y}mHfa49U!)ZEvO@M(po9*3SB;9^}XhTY~%B4Tb+3QZcaYi&b~wP{4SHxOr!j} zxEcimmY=9tLmXx{&+NmgT(1ptqndB!)KvNRX`WbYWg{pAmviNqdQx3prIW1bbWQ6^ zVK3LThh}h?=hdfF)jcv;mjz2P!#V zGFX#a9@3veubXS6g6cWiG$h*xslPNm34dHcpi|aeK_Fr_SFhf`77TnL0l8S3W}XRw zG)bf`ks0DdIB8G(7_{l5>YCHudVaJ}W#=L{8nL>e`6o+|cUP%|xra=N!XFOr)m}im z6p02+fvV6jxLO*Lhsc)y1+5Ba#UTYuy%aQ4o(HYM)%Kl5Sce2+GLwrqW7viF`Z5NDP-<6Vxc6jMG%6~`zhMV(7moq z`!orpwX{uTpb<;F18imLqsm{KuJjX);luQ#x zgI(!@X7O**+#}Da)bqSZtGl>W@R);9)4{POT{SK$Q(nnSTYA%mV2)oBg#V+HQV2T) zn^f9)f@;zo5C?r<8b03uSQL023QEu#wU&p6g6=QS%a*|d7I|vt?SL9 z0jeg+kMW|MG7!e!x9uH2SJ=vtlrZ(bReVKqf;h7Vu)h3B&7`iQ{s~veGlNYhNiK-T zdzr28+k2Td?W!dagI<%nCGN8)4qI&niK7+qN+_)CN+=d4?10(mFBQ(=R(@)Z7E<>~ zYSLNpQ3X*z*O-u2I_ieQ3koOoI!{j9RjG9`pUTr7Q|{gal}zj_B)L}->K9JH(6=17 zMI=r5Dj`3PE?E-vC1Wp1nKAcq&HQ@`A5^yn3Tc<1!1V2yllgen@6GSCzJVBs%Nas1 zQQ=5hKW@Osf64*xf8Bt~w-rqg?v+u|Rm_uIQp?jf>sHl>QX>)Qw#P(ZyBcLJ=s}@;sMDCUopb6BD7VY_6=XP+$H{+CKF0Kls4h zqAPA6ED@GuM$8ARp9Cg~W{E5mUsw2I5kp0uWX75BPZ0x|q^y-B7Az96(iPO?$Az7*GeG5s2 zYpHbRO*7x2V_M-c9^vWW8TaN^+TzCUvxp)~ z2t5`rr2-xnYp0d5_f(9@-Df!gtKlElHIlNl^~ujis+g>1AE%CCv6qX^y1-vGFE~xPEkLqqq>XH(b1TDRb`Qha)dxv#t zvQ9t^RTWJp_xgPp#b(@Op%2IrmBJ zk=IRXTnv}LOt-{WmjbT>(vw`QYdATtQA{qr)MBxY*E<=~zF#eWF*!^Quz)C7u70wf zW4J=7hy78;_{*Fs1m`f9YT612v;4H~6(&fPX}#o@TK(1Jg{2BTlGQpwLJ8bZ?bp$e zrAotMINP8ul$|!Yfc>o68vT2Wrg#pP?az85Mk25oUu2%n8MPx(jE5qqCTSVE_fRgy zpiN2ywMG$PkCQD2QZW0&jgdMwDKEC%sbsf!5@WQDYL1xb)G1137w~-HecE`Y@w+LD z6~Tfe3V&8Jg*sC`H`SS;;8W3jEvHkuD)f0Y)MgiuUhA0jidR#A8z!1ZEy;3JR6q(a z4xDN@dOHP?n( z3!=tE+XA>sR;j~#^(tG0!;}pHP)in)?^%{s7Kb7gb@{3Sy!j}Nvkl#=AaEMsZODWrc>ph*}-i+ZAKZ*8B|#^4I{}bJ+5KP zERQN7a%#s@#i|sQVIJYEl5zPF)kkbu7D-1bA8L!N=3iayQ6;W+Mo&>=xj0nhngdb4 zAmxTp#Xh*tlA9zRc&MaGTtMv6a9YzF2N({sNntU{*C@{4i`bJCsqw8-ZC?s#A%E`3r>U#*C&Z2DvwV5b2 z_|bvdUNt^f+Nmw?@gi&A*pm0R*!gWOIpZU1ztvArPrxKs^_15&-o>PqW1UMCM!V`Ai*v`zP9BuV@IJS#}ZQo_)Wf7K&C^rP;0!co{aATrT8hPY7G}isfXT^uU zn(Fwa^v`*@f^l4t+KTHii@I%6rC%pdxtCUfEyMwWHKfqgXZ#n=@Q-8}@8oWb#scrX z-QcCSnc%erAmhE*RSxqWI})U?$6i|jQ}019Ol{Lp@s!G)2CNz}^;z+NNm7ZuAmE4) zvM&vrbjl#8Nup}}70VHBCD#N_{!*EiM^nK}ud<85?%03z)dzBF?+ENto3duTk{nZg z$<+>`C`r){RgDzcVmfJB8tkx9Q@)C?9vim)v{BZdHi~UJ>P8LFm&Us)KaD8Zno?O2 z<^!xFtqUzbHdqeb`vG{Cvg+VUUQ|D1KokE<0>k3fxuE_^-*ZZGhA=HFQ!VJMnl*_e zewDhKl+bCl>LNQ8LBA0u^(L(?h{r|j{E#+kgySNC$&A+Kq-RDJgQr$VlV*7uuk-Xe zI;w8iVI*+@Hc&`j`5`gu#w+*~DDhI=CH)oMJMS z*X7ho5+Yh23=BFMsirG(KchSL?eHmeu54rRwifN7o*A4Pvvm|&q3T~XITX+Lr zi>%7`6Oa8mpdPZzPTdtVsb;6{7@As=DMPjYS-FrZkZQ7E(>;HNp2R~vMp1YwA)7Q` zOmB&VF?n_Lj94?UQ>XLi)DtWuI&v0@#UhFYT}iFd>kbQC*&2X`CUGcdI!=e*b=)W$ zM}^p#OrauEv#NnQZFL+TUl1rMHGxV`lnCM6osGp2(G@manjMi%Vc|vQ7^~pjnvey@ z6a$Aq7bF;FC1=S3MSbGtKRbMjW?Yo37&dVYEQAFq-TiUmC8Y~(r0&7BOZ3?lM+K`c zWm!m>=oq5{(x}x=H$mC#fpu$0SdB9l1WWxHqV;;7)YO4*;=LBqQb=Xr0YlkeWVL9> zat-__O4UU=HfMU-pIq>NGxbD=(T>pZ*`Nb-D=J0Jj;QOR!WBLiDm$os+H*MqTa&2{3q|w-?)eX(2rF8)cZEcv-SfN6=KW`PM)Xu~A6ja2lAD_yXz zF84KugRVgMQ-o6Mnd*HHmd5zhb7H3%d1|37vO)Lm4sVo8Oj{}1R*(%}k& zXtvCj%8OW1*gs46m9>#%ZZ@A>TPpYFY?g++AE3xq3p}BgFQRh1K2A5&+SHHP+B@AI zO%+6?JCD9d^ue5v=3oc3IIEr~+RA+W?BDq!g;b0VZy(bhwj{txlO~7XD|^lM>v^9y z_N=nbEV%&ROS3+qLVRlq_q&WGtv@u)%s-rmuTnCheqEnAecTDr&yJ` zfR)g&6ld#EB%m}ryA0QdJ6;s!vofn>it5=~B`YYQ6~!Ntki^&)=N`|8qttQnM$10s zT{IRZo#kD*A)_3uG>X=AbvUX}Tq(;EsiC)ws=Q=CZfQ~q04>SWC$-}>bd}U@_YuVc zvn0tRN34J3ZO|;tzB8_WFk`26=GR%OU6Whc<*~b;!?IBSeYNYc*9#YZQH?fk2TBoRtcxp3Q@Ek~J)y_i1{7wf3YlXH_)45H|VS0v%KwYios1 z(*%T8X6#0nRs#S!Ru-Nz-g|*`*Kirkle@SXpL%cfUHY^;VKH;1XgR||1v?Nv8u2o0 z(n@oIgI)9-dEYSC)9~xyf%497FF$a`&*uEy^rz{gX5QdLqwN``IW{iU8{(T!Ve)#A7=3RdWbvNj4CUbLO<&BF~H#F_1h=5LgUC zf4Un3?^#<6N>)3@O&BVK{e$XSlAvsbQPC+O3Yn7dKAlEISM9bV8HW zQmP-#RL1j}gN5Y5cb5N`!D2khX^&B&R;=N4ok&ZrfW_aZSYIK&Ji!#UzR>5RlCneO zScbiaKk^cP(3IgC(u8Sllq&8k%MlmuWB8Tx!>!g|E_GiEPts>Jm*HFcJC>R1nlC(*3a#$}ES96+57kQz2D!@=*~m&9t&1 z&HPEr1_M>wF7)3;QFygCt3FoSP(kQ26+2wWg>Tkh)bOiYBdW4eM$;niKN0$z#hezq zs(E!KKB1rA)y+$#->d3IIx({?Le`(;M2c9nH>~t~v4AM3MAb@(@v1h~!oQyFNv!C6 zf?kaZlS48~3Mh+cETr3_q#m|RC|#O@qH46+wc_t_sEsw1xbnmT8J@KG^nTVedx%f; zssZg!#>hUX3bT~l!jO&2qOjtmqPQp&Ma56vXed5efz|GkLuhUG`rY&;xp?u= zt5tip5|OmntEm9?!OHI^s1>wULevZEkdeOJ>S}3Ofx!Tkr7BRhX*z&gjCGR|A&jB* zthG4kgbYwch913gs0=WZJ=UC1WiH4eZTTS+2qxT!Yb!){VUF=zJ4A@p9yTtMn;+C0 zlY<3|8_~+=)W4LKVy1yK(j+sS4ax}cvHv;(eC($sKuB3N5wD~3HY<@$QKWuNin79n z+AGm>Nt?a%)W8~$S&B+g0M2pzY9-DgMXkZJW{CRxcXIt7km|z4@IW6LLZ&kk_RJMg zdwKRY_BVfJ^O=@Ro?A0Tq&A$8A@y%b-wfB%(i0g`d;(CrjfuJ`WMhmKFeMAXv!`3Va` zWYywLA6==jj#2&n+NLEh?CDNDF)FPr(s)MKLs!T*xJ%`qr&3@OW0{oZqgi}h%17va zX{>A?HfCDM15+Cys4}js^nURJYp>eGl8|EFwavtHQD9h%NbHre`cBL;%Mjl2mC-#^UW7G(~CGct2MXlD_+ln4OQC(uGb1J7zs33e?o7EPn zN$g2@v_^rxjm^jJibWQzi zNGxGOBpu+OrC7wVGnO4WbWzY!PZ}&z{!2ny!rCtoTHz`x^bh2IlZT1pyO}Tl z;&R=!o*$&vrw(3+0|h)Of7p($BaN++7Y4PwqPm2csQjl96j1IM)qHM(pAD?VyUX4)i1z`B8ug5BA|HFJ)w*?8O5WeN}rnE)+6f&^;e z3KpggB!rXYIigNX)xfe!P57ip7tBWfs`_EjU9v?BQ*p$L28b~hv<()3>hD3_bP|(~ zB(?PWHTM2eqqp@y-doUpUnTQYGo25slP}wq|6$6vG9Q_822SLh+0E+ z1urIWhVBP}L3KJ~;=;NxP>y5PaC3JNU7?{syX<2TVD3k^Y~_;UKd^XnCN9VMJ2Hq$ zQ}(lg<{oyEKqE&6ZHl>7`Y^Lam}ufuTF(iqWQMnld;Y!bO$Z)^*Z2oT*30WkVGSnp z$?((p^1qGqNwg>e>*J)c&OJjia^ok-l@oDe!FZk@S*WBG`hU}J$fMrC*%~gMStmE7 zs&s<-evb-Y`eA0JBHcWG@vMfL(Jv}Y1C14v|0|Z{>>9H$+*byS{cWKfYIU(7j#CX`xGcu zgG%!->itfdF4{{ko#T3GOPuvTBx%&a$Rv%X6+_ZMy*6oV)a-IU4|-4iAw*j~J5Y?Ce3isfhm{bi_&u^R5;}YIAP9MvP1p|0vZ03aTS}P zj!$k;1=CboC&ptXB zp>gop#+Xiz7i?DJ%*@Mb2D24uZA<*9;7A3pW?wI<=%<`f4`=X*7%jbGN8~gUqGCvr zY#{r2Cygi;&-5KtsmgX&eB-4kftVFhpTr{~pfgj)CYNw>gtNBB%6O$3B$(*QaHmIi-S@UH79MQJV9MT149$~ zuhpfC6_NhP~^H(8jeNLA~|Xo&aYi>iJ@AJ6d@gt>e~7Ir<2AL`Sm)esib1} zitb7!jIZa_1IQ+2ViFuz{x8 z?%-ycOaoi5bYj(sz&+OQ)51od_|>bWn#=V++Y>4hR#nuWDX0c!Yl-@a?6Hg8MLJ*S zzrB!*b<~q$uA=;A>n&>}u$=z>+p)gDs;*e2=%h*cwm8edAV8&n8cn@5>RP`*fKg3+ zzpz5JS$>T5KC6JqS1ylIM6}Bfk31I;I#30Ckm=Mnx|vB%=dccEmWWh7sQfsG=k4kB zlz)vFo1&N26FhYvr#kVAx~V7q-q=Y;7zCqSvEr>=cD=tsFXo#JunP28v{6Ii7STI) z)Jt(zvYX0w;~A4NFh#u-#WJ;m?NS~yBy}{yXDvLVDIgNLD-GZlgC#^YoTJPoe@Hj} z_q8V`SN=x0fPn0wS}VNrLF@m+O%jzzB0!ZOCN!`Wa?Bb@tAHT;I2l8$LH-A8t3k9c zQK{7Rz;uuvEik5dqEj^1v@|74M@^1#){`jNx(g#8#Sf4k6t;h1D^l!4gm(Xm` zMkq0R6|yj^3>aM6+$(RUapc6M8lG~=t})S|0xv&X$mwmqSX2QWG|_ZVVBy#8w4O34 z$#Dy6zn-dOFt#%3Cr;=Y9Z`}pvY|H4CLL5)+!lbgtHo5}*?{T_+oH&DtE=<_A(49} zlN5`9bHAz$zcywmt`niCk`l@l(1m130PFky`N*k2Eh((Ef|41X&+v%x{U*`X)D^ej}gUnNLp71Cs6~)^qoP!dJslk$dT#nMV3Ju!TV6H#!1Cu&-uM?iC)&~SXe%35W=r6eT)1t2BdgZa_=Zq0?a?k z4ZKy{xBp?Sr3hKzJMjQg-}#F@@D?XfxH?2oEsmAF9@Yf`@E<$iAJwL#ggb=|-jcWU z^GFYepyhPwQWRQZw!tGtY24V4Afw@}74_bLyfin!o_mw{u0l7(?#g$`>mmtg2Yfm$ z!q=e-OEZ`K_3*<*mkQ^DA+U2|^5VbF9+rsJ0BeElKL*xE1^C+m_1u^^WZHF61OjLh zfVLATvTR!{ge*HhE@%3OeLinWeQ%&@ZInP2*p;Y9mJbjr|L0t$t#T_l5*8 zQSjMGL2AWIm!2E&>g-&8b2b6e_+;_U$YINs(u!XQA*{5j%fv6Op!=`W^6v=gSz1xe z4N#y$`o2SjN5$_Qxd9GA1g5U#g}H$@JEs-1m@p;QI0oM2F2>$1fbYx=oVx(1>#{aC zaE|-QqQ!!?BsXxjJExHE2<4`dpoqs+zup-tH(-c5jCf6TPXB5EFihoe*9f>)p)K%WCG(@QF0FWb zZeZzuk=Ngr|BnX{jwI^QFc~b$C03nGfob7VTN9+jl~d-l*xb$*h@#;maBo`DHz+{*#CAmeiVq0*|AeY9WjkJF5y6#`aq)T`(4VBK0E>QAItTE zcQxMM6RCf_uD@JN?!AJZI%%PPOr}3Vw*!k9C|!;I{vUiJpI?1N(tLSeVRbJbj#8E< z`^wi8yCblIVoT?%Kp%#KtGQ%r+vd+Xt@df=e&|8bVIvUrbBJM|Ea)JM%{qDX5=ARe ze&mauB|h9TUw#{2yX@YPE3iGOU3lfJ92vu8xeVot#MpX40#u8G`EC@Go!{15;#|To z{p~{1{=N~U5J6`VEjt8;^gV~L|EWr}E z)|)_I&ImY%fZtaiv;JfuX*_8H4n4_GPXgkYv^$2e4QCT@1R@G(o$l8Nh^HVR#7{2Z zY$~A0iNCYZ4?!LZQpt8MkTa0xJQ)OpYrW!J{xW?qqPah0C^u|9NiG)cEe`CoO2&V>mN5T3Vn5 zN$8SlJ?*tYpULnVdAdQwIJ_qEU4|G3m7ssxpFDJ3At|a1+z(;8@@0s_L-~ubn}A#? z$DP-8AMVa24Ggw)w#SLx?zbs|o4%44APn|dcls{G;j0YxD5Sy8I=~aoH6ua*)7cOw zo$tnaguM>JV*4i$hc_DRFr>k5s>cX!bS}E70rpfDw&Sq(<7~0L*FF3>#NkZ_y9d%> z#~k(!=h`Vkv2EaVC7nTAIUI4mS@(I!Z4SE6Y4` zyV7#WcQDi|@5)&UZ2D}B-@N;N**%>Sq4;&Oq0Bkob@;SUu7NPDKZ3a4L-}J2H+m>z z7%UZbd^RTTcK6f}p-@I}>ZU^7`R>KpLfP#ez6f!Xhw>#1H+v|DFjy#4?)zc)G$}%% zw6dX$JKs|{TPRPshi^c9&O`YYhR=H_S8t)gRqD=T`>KJSbet3Jy(2>5&1J)DJKtSk zl&ok#SlaD?7`^9ff5Q_3xn$dxm`XRf^N0xH)p6>k(vb5#jd8m9?&z0Xm`9i^E?+39>QIm!#};d>B|HmpP*hcqoY>g-3Ht1Uv2 zo5{jXJKrr^W8`jxFlqi2;?eB}yA{%4hqp$VuW_y+5rVDZ)Rp;^!#;#_s6^evmmwbA zVXzaB2D`^$cRN>8gkX1OVH?i(0?wflbr0W#c=R@dJql^Cv(Em6bIphl>~t1(()n)u z(?ZfC)%`4lCBmOT96oXg)x~xgg8^^))0hk!ov$WBz^Agn9S6Q2X9NBV_weTshmXt# z;5`@&c+7$CaK4=)1l+)>o4zB?_bko^{2ll3ZHU81+5vbLg8?6M4+ouZT7-Znv%oFq zyY7Yv{KpWM6n_M9_{h-!ya|H=&%1}09r%<3ce229&Udc^f60NrDBz>506gZvJ8p<+ zyxsX4A{65hoVrO-cfO}^wxsx$d-w*#;iLNl@F5Hq<0<#>u=7od5O6CCJnno~-xz`a z5WR{&E5?{~g^?%Wa~yzwkv)A?S-*^1jqgZZ4*T*uw@ zIY*guly(+n#`$g^i74A3M(_DEL)khKW!r+KC2n1W;xdF&SGJn-J&Lo*Ht8PrLyX?@ zjUd~E^WEpp<06FD%;N2IzL#(|ypDS~4l#Pqw*uZ#=R4xgZ4tto$>L2r-=klO4FzY~ z0^h`!qKNm&M%4?a;$oC=>WavjxX^oi$svwIe8<8%>TX9IqwN?oS&V56^tM8G>z3Uy zDqA6r7|!tS7{)bNSzLxhNSqo@-ME~};ymOy6A(`u^B%|9?Kn-x*_p*@VCcr@1;;rG zanx{T9p?$hnQ@%yEY4&W=f=CET*DCGHJnX%N4Yj)WpdR-NUl>^oK6=~3}@bPUUr;Q zj?>BF%w=)zb(}GXzc!p5dt&-*$I8;DAwuahf>T$nI)<)XPdUyZi06!X%5ffcoJq%N zWpT!{I9LC9lxrT|V}^6maZWf+$8qMeIPEOXU5>K@;<({#`|~K*O<0*+BO)YM9jC5b zLm0YpJ?=PD5Z^QA{f@KGaaxWup2cZqab9(tlMv4v&T+?i&T-}(r=7)_$>Q98PfVX} z5HA?c)_bB{Td*>@>LMi95KdjWY8bk5J?c37Av(r9;W+m>&bZ?=vp74mI4?QQafrV$ zoTH9&#Bth=Gn2)c&f?s1ZKFRsVvSzjxz!AePiC^ zIJ+IE={P&HI1LQl^m)N?jzXL?oLR?t!f|FCXF7{BnZ>zrJjyi;@wbMvX*|lc5i66c zCPH$Z%HnjgIQKiw9*7r>dCYO{aGafv)4-{lJ|h^qay{!fvk)&C&LPJ+=s44kGnvI{ zWpS?iizwG7h*O3$?>H|z&MC*~WO3%QIQKfv7{m_@XUAW}^x2M;rB6eI(q{yxu3U8t zUAdleoI?;V8}pRoJnT4=j>F1WiZheNnEPurj$uL`beWPF=Z%Fm&a5+;OHL9x&$pj`1 zxZ^zMICGBE&f?5uaco`w1&Wz(sXK^O8 zI5&Pd$~6pez;HHwIm)#WE0e1xLUNtT;&ie&_dCuWh$&+pbDTRIXQ$&daO$Sd2!^g) z&pOU5#McbxkmDS5oN33I%;L1NIM;n8%C!mN5yP2xoR=Nvl;d==ICEK?dmU#C;!(rd z@s*f9+p)6rX^2qzjNsIjtB#>7*Heyj2x8ipryS>D$C-4TRu*SGi*xn;QLcG-ziv1u z9p{AObR1_ci_^~H+~qhsAPySNw)>-8H(_ORjfjw3b)33#4PofY^|<3qK|E&6`yFSW zQAJis`cr;v0suwH4*sf|bct7a_TZ zaO%oc!_bxMQODU2@l9i%aGd)bXWVg`S)83&oR=KuIK<! zqYzIR&aC4+;W#snGo8hm%;MbgXD*ir#eMkCTr6yYSRza;oKmqyBHu#}F#%B!-yVn9 z?GR0e*qMcBINu8naTKB`h*@`f!XaiHVmb>k>3lcd6a^WEC<$WIO)-KSu`xkvBII-` z3(;|i`yFBrM34B!9O4d#*y#`roVsZ-;(X6K#4JRwAP%|HL5G-jh{-HO%lWPwje=}~ zSR{yfcY4_&PB}y;3o++>_d3KFM4upbjK;Lsj*X>7Lxh}0aOw(DcfO|_;t+(*kx#kP z!wxa&5Uni4xbt1TEebLZpUu>tbf*&z(Q$~mEJWM+?sAA75dDhnwrx?6o3JrKMnuS| zj#F2VA?JJCA*LV(#JAs__Blk$A;z;1P3L>nAx=Up6~u9Odd?x{9HO0tm~p<_|8q=> zZ4k=@vGqSkLAGFHg49LGX$YsTAT{TE)FJjmEEnH|JKg6H;||fxLhN+DmmK0aL|G6= z-RX!!v>jq53o-3{x7-{B*$S~j5W_b|L9W5Z1Q`+`ry5ROK~6cuLk=+kahCY@IK*y; zXgb8sEJVZkUT}z`5N8Ww)}5Ykh#7~N&O%H&-;K9KL53mD5yYljq97ZwF+pk~ZZkr^F8Yjvk-3*#36S&=n&HmF`0#EIp1}SD99#= zHw$9konCf`Qx4I|Ld-eey$&%3!Q)cY7mb(}+p)2dyC+LmYy5i}0yVMbcj|KV%+(z{#+Df9=`JhanhYmI7G)G=CTlN=er9CPK)G{+aN63J0M2)S;MyN zb5W+7+;K#N0;=QGm1)TN9>>|x9&ry-5TpAIZNGEvbH|nlp^azJn$Gts&W84)dpHR( z`kfw$u4u!r9QCcMr!QMyCwzsB;~0$F>Ne&1BK0o$r=g zBiaoRCh1m)(MJqz_|_=tHSRbhLTELdx{{u9w1;rExP8SvOhAlI8`>U6+wG1`5klLU zMQb?U3pg9vGw$Ii#OOgon{}=y+;K*P(5AC!lg@YJj)-;G+K$i1 zbldKZ4H1gl2u@u|>(2KS&L-(M-NPY>(I*XU%DEnP$4L=FYh}^Ko$u<~BHAnNVP0r$ zLp$kQC)}~)XmeS#w)5TPXtzOFy6u1%Jz{9vZi|xM(ns9G z6vXIJL)-6M``oc5LTKYzw5IdDinF1;=pIf&j6P#%$DQjrcbpR;w00J4#`$i)J)+$V zVUlix7@ae;t+z)>x42_ngwTd?>PlL3zDIGkxIO3|_Ct(5XJ`}7b)P$qix65fi?-AG zUc%YXo_7z&Ax4iI+EM2^;*M<*LYv8=O*`K$J0sc+5GLtXh|%W_ZFpyt^cr^@5+Sr2 zPF+b)Iod-wTim|l9ws10JBGH$(RRCIQ-siVX3-kX_X5s__KbTt3Nd=Z&}N1#3Cqb$3Lts~}9yO%S6t z9GrKimmTbsgLSfCbIy0KgWc(1V*(4Kx;tW;ZFjeZ2*qp!r>>ZF=X(lg6Z4zy;Sj{A z4bG;V>0x)96d|xy7Hr)4uHF^FUU3ie0<$sJNoP9YZXE}k%YwC??=AmkF8@-%q{L#7a_1AoVsGxobOSb zEoKk8hy4(vHjJ2Xru*D&T!g@yS+JeX_Y%$q_Pl#I4l!z@fuqiJ#NFB=1U8cen|8ii zz8Jx7fG{z)LX29ce)x+~%xm0jNQA&@ICaH5+8C7Hrb_ZoD&sT?=7i4nvGqY$f=bD8+X2|n-T04_b@N8 zHS%%NnNGM{$HC^ZU~T8S%fW7gur%8NG5Svgwyhb(yvf~0M98U*Q&-F(=X)Gy6Y~-G zFa`}=iICHH7Od%fui|WAFS>`55Tm~!AIF{PId_{AA*Xg0Y{vO+XXlcE z-Rygrwn2=(TRyh3@5px0Z*jM}2ssVm)D^Q9`NGkbJm;A^UyVL%`yz45ZLZk|ghu$> z^~=sK>pENyX_2_W9kSYxI{$RDl)oHr@rC_%LCj`VHh(Wv**1^!PTWE@0Qov8_A+`#7S*ljq^q6I9X7#O0l5fj=F6I%;PhXNeEAyK$H!*)N#_!FTCo%s`jNf^f z+nE10#_uhdPhtK+jNkc~>pkm}zl-r(iFqgHKYU+^-zv;4%zyO05Wlx#p27Ub?+fw! z8O$BbfAYQ%zqer?>Rq3F_I)9K%I*f{KYd^FXYV7vgP6xL-}1iXR++2Glo#hoG!}!@ zQ0m0x9v4Dz3C7ziZ-+!l`Q^SpemP9ZFSls&%WdcU^5y`)yq(4`uZ8i;4V3&2@aWrx zTuj!>FE4NKyR5Q|-{m|lbRiF1l=)pzS;6mFm9zLgyK*+a=Ty$&_uR_4{JyF3CVt;s zc{9J~RnFu0EtR+Mdw%77epgmj^1G_Cir=?Z-pcRKRDOovw^iQ8FaPm7SQ+HETB-6& zZuhRYd##z*OdpqL6++jZtBC0>n(FIZ{vTeM2>?`wkCR$f=RE~sdv^~(%>43&Ijc;M zxosO_)@@&M+ovJS_i>1}J74)ggnGf9zX|cgFUR9HM=(6;hUYOHal>`)@w9s!b(^ap zETrq5xZRyNYMDIa5T`I4^@wbOWln~wjohxn_?#H4c21;@@wmC#s^Auk&zq}l^Sv44 z2{T%-+c0*F*%t5a#%QT^3xqN3gg9vowyt&u#uv?dpIVgroqw0}?}0dF{I&vi55|{` ze~I`HIRCxQ--4Joep{>Bhw&BT9}xfJ&i{b(KLWAw{V~a>Fx1{3^Yl??c^blmcmm=o z=bgc@$$1Yu?+ecR%mcI{3i2p~rNy((bJ}@M;ACQVAS^k)?>txUk72%olZiSHVM*|+ z^IY#d*X%D;OuQio6MHjG7WysDa|6UR9`~&nhCJ>!I`1y$-41cB^ENOHJMXQ|d$04} z39-d_$1v2L_b%sszH0-z0Uin^F9c1lk@J!Fyg!qIqzZTJqU5L^G;*f z=Dd$N@3YSPB*b>-oyE{_-lv@R`_B6u#BI(yhhc~F9&_GTo%cnEJDm3mdwd8^o85Ly^AQ z-EVRCt03;3%&GRXptfM%8_c1;!+gJ)m3a4KGPYe1hJV0q?sc07oOs-w?tplpi?I{a zSGzIVgXu53rh70w)a7hp`m3(nK1>I?ZjWGkv}>Be^tCSM)0ixlk3v{1XCS`bb$pUHtEXhwmSV~>}P|V2hJI_3X>B{x)Gz1|V`nK&= z8>%^7n5L-iTE>@{-m35HBg*NE^9>oEd_;M3QEs~o&1LKPZ7f@_*N$>p3!jiR0HgZ0 zqsO`oN213qG5~PBzAXc&JHXVk^@#@ixPY-)97iKYO@?P8#>R+orM}aKQFDyh1sJE7 z!Z8;yIx;*LF;2)pJif1Q+b}vyqaeq@unnj<5s_nJIUYgUGCUtajzo~B_3ao)+d<|5 z;dHf2bJ$oS$g~V6BFMoA@|eE01>~!#IHw0-8Hyks8Lo*SCuESG=-W1s4p)zv!XF33HcsOtJrT=r1Zm4~Z3H)->?1&gO z8E%Uh8zaV*`c4~0%`s-dP}ebFoYrMAJ0nI%hC3q02^pj!`nCap`Aa;HLC+Ue;PDPNW3@=BJ z-4Wz&eH#YSbdWJX?C?MU*(H|w2-1+@l?bvug50Wa(?A*yG6BeU(%!(RShywfLUnuV zGHjfV{gMcBy}m62sXNFNAa*PnC&bw-mQ4|)Cc{+`WMc%mQr~F!)(xcPAlm@Z z-cnqoCgK>07)=>&iWs{i#@+fh45R57V_;}iIAH7&$F_*kkm2Ttu{~nks&CUU8jdjm z#?N*!M#a&H7LVY96KULO@`Yd#>R+orM}aKQFDx0 zFtookV4PmWcW1=t$Z$u*I3a^nMBlbybQZaafT6W$T!_apag0TbwhVVhj3W`_X?;6} z(RPe^Fn+F!aabJ9h%qh0?ucR0c5XO#v@2mhWjGO?g(;CxcE~1x>=MgF1Zl|dl?bvu zg50Wa(?A*yG69I4;13|9VrfN?x(xdw$d(9ly>S>w-9e@RvE%yzWV2ZIN06Ef4@QuU z5#&mJrwyd$AhUqj*_r@ynimR_$q3Ss;o%5!LIx>`zHI~P^tzG&@~3I(Jtmf^2-23} zkqB}mf;_En$3WT+G7rd~r67mJG95vtWjGi?4n~m2^sT+g)WkuC-?Tm)@xe)YB9=oD zq$R^QBgno8@_@c|18F(PHbCtDfB>>rEHe?LDZ>*HWOoF)Ti=F(G#z9NkQ-8Qc8O&+ zf;41!GJV8*UI0(`z%my>Ix;*LK~BgZJ<+#qAgqMN_6Crf zQjlX}IUYgUGCUtajzo~B_3ao)+d<|5`9cbE*jOUSv#Bw+R1UVst z)I{I5fpoYnG;~Vx5n$P2<0Hd=Mj?>ju(tkZpiymj^CLvsWA= z5u+)?O%Y>v#JF4EhGDRV9i$lpL%X;F#x8Meix>?VZjKn+BgU=zHVvcU7!zPz(#04R zM$Cw2}N5cZf zX>Q3+c1Dbj40l9~6Ea9e^lckPr|2pIh7NY&A`KD8Sj1?{aA(9g5;30Ew__M>$CwAh zuEPi*hsDy2Ak#AJjvxmk$Yc7}-eMZ!Aj5B2pV;pC0CGSqdm>0nhI=B&z6kPwzI6j> zImk9Z=2JD>E0*yH(v;!82(mkZ+^uiJK$;FR28i7nfD>u5ODq!+q#?ssBFOd#a;v^g z17R;l(6b3ZzLv&hR4lCsQkP+01lbZnt~U+?sXNFNAdjXXo5iv}g4ASqFoJB1AXn-; zZ6GxVnFYiyJ;4caPHVHzWCZER@NfhxU4=a$jzbZnCBru( z2D^?-8di}}6T@JmO^{|A7;o)j>=nmM#AwR!M8wz~G49s4VHi!v7z5+|U5s7gn2i_> z8J>(7+at!U`Zf)t;TRKO*nKNFku{@YX-AN{3`Zi!mI!jazAXb`S5XjV3XpH7sk&J# zM3@=Of4w831`&-;RN>i7JRQ56D+jki*6jL8fIm5kYvG$3XPBN>W>CO5z~H zE15w`K@N!JWCUr+@L~knCj&8gK;OE7v>ap`AX`(Ay<#~PL7FnW96@$Rkh}G57zlgD zf;eMgT5j9|3L8nKk=!X|8*Ne^ta)?mS*O~ zFpNb1T+W}|6#f4~@c)Z^8s>kk>jM4XTF(Yvf}i{1;+q+XHFw7esFGX7A( zcGY4x3rM&MXAeu+IA}i|8NEs`)Dh!lw)-rJj_j$sw#b&VGMiT`Jf@PfH-wY2?&Rkk zpUeg|-^o=2OvTGw(vi;A{D4H=5ej-ELQE*KoVNsa@0U4y1N1w>zBLO}pK( z)UNGzr&GI*+im7LdXHbhd4 zI<@P#-R8w<{K7lIolfmKZnt?! z8owo;eyLsE?RKSh4Y%8y+BMzoKx)@=yThs7wA&p^?b>d4I<@P#-RAx@e*GT5)UNJ! zyHdM`+wD#5nr?R>wQITE;nZ&0?T)2(ZMQp}+I8G+^FSKE0gqp5S9iNzsa?bE_NI1C zw>yy9wcPG-YB%k6$5Okt+nrABI&QalX&S$!9>3JC?smIUyN28CP3@X)cObQEx!vK^ zZrbgRrFLz%JDu8f+-~!-G=9rGeyLsE?RKShjbNu9)*klPg$tqC zBU2@>=X3&>x>_8$fgx|c;-iltINXx`vHO>_=<;E(F5d;jty-!qB7`J2n8$bN!rZFC z9y^s}4->&TXity!B*n`H`{a{=c_02WyfnngnVzKgGjdr1RWeF14Ht|WD6SKbfpO;M z!h9L=iF6{6#z&`r71owXG*-3`H*=b=dkIi6#99Jh;+kH$(J{B3ne+g zKg{+>D1qyFT6>eX{4Y=f9te+002P&h$7FfV`M*#Jl);wi1W6B{=X6cx*V74&DCqyI zXTE1yd0!qQ!-Cbh{!;Gkh5kh-Hj(Q;SI2M0pC?@)%u3IZE@mirv{3%p^ZVE43hR=Q zqnQ_}FoYMW;7E>+<;&M{MhQFK*uh3#=bui!4rRS!2wvgf*l@ml4abLqS8U|um7));y1n^^xbV6|0gD;>=}%F$7@zC&zbLoMZhK6^>*i zgep6{Vk58HGG2FPyilus|?wX^I#-Tru8zp z@It=-3R8zH=19bpnjFt$7={oQ2m!MEbG)YpBrbx~S0Uq`%pA&>->cyv?e(Y z^_Wq^#0`7JP55wO6XQ1Rc%FRCzYcLbTu{OdWg~~dBZs#%au`D7@VhW_xLD-GL9n>9 zq^*RTfSNOE5^DJCvO5H|!>BgYgi*(#ri?lT)i!F=a~y~=st#2@D8JjF#*NwuHDlBs zsClDWP>sjLHwD!+Y6hxh)KREuqdHI_+(#HEI&-Iin6iyP4fDL)FO0HOVQcA)_|U z6_U>yRfoFCsBKU;8?_T^yHR_fZZoO{6~di@y2I>dpzbv4DAaDFI#Bl*H4k;4Q9~%k zSB%;UwJ*3HAy&^?!Yl1af%zkz@TZq%;_oOo=&6|Z9{+g&csGUZggqk#}_6&SR4MS~xM0_JqO`~=|9Wts3b=0T{ zsFOxbLTw^5C_zwLjcP;fFzPte9-~f@D8xtFD7lCoHqyqkX<7ADBJC*+Y;uzK;#F-; zx@@kYjicFw>SPlNgC`W;(uBeg5(>Wy6ABkgC~*)K+>;R!YE3c*b&FBsP`4SiAL>q{ zrlH1-nuYqRQFBm}MxBKEx=}Tf_8UeGLw(Dr5vXq)wFBxqMm3?nYt#hPUmJCtgd#pl zD9J_auu($wE1^!_p=LAC$Dyx@^i0NnI@k}uPiMvEPy3_6wyO6Z>B;w8!5N-TZbP-m z8J+@<;SQ>&&CKb?_;4QRclaFnlSejjjP*|*-c+dMd13jtvE%ePzcWlp|Hn#kP40KX zaDndLZ)>zr)M<5o*KJ_xv|7!>l~d@*#WE}&0YOfKNb z`1kS+Ko_hp|G(-?zL$wrx!Gf?*3o7DbOmo8t1~O8e6&0V%NWG65X5`+PJ9faY(bO> zqS6h5^syi+7DV~S3__9m1k=ELK3Od>q07Vey!Bb);Z&?X%E@>>zg6wQr6+Ys%Iav5 zwZwx@NgvHFGgRtBgp#c2rHWx8X1>xJSbE-57^s|qTERQ(>y={pK~jlSuI4nuERs(D zr6r!G?V*oS(BO%wYchaQfeutN-cr)pE2X7OBKDDpbl6wZC9YUGF;qJ9#Fx%LaSZv` zBk#9zf~1%X<&r38^F&CITZ12h>xRQed%!%84)6<%3T7a$UYpR(}*9*~)qi zy>@lj*W?z*Zy)_U76We5Jg!lrqUMTu6340rMYXc%*A4J zVu81f#^nKZ^(YMRICn7C>?LWkGYuZqS=`OD612s|lUY$CVwYdOAXY_Ff4Tut#fTLu zMtr4W7OMg+LK?Xk!38ST_Zk($CaYp;6q(ED??$nhiLPj(+wUsI1<9^r7I9OtZp>BT zmQWGymQQ>O*-h z#gLvzF%p{<)ZEq&R|xuR+$QrqHTV6UGg_M7Y)kVl>J-o8oN6P)tmIqNElYE%PyQ=3 zFzEB&r-3O|deJM@bZ0a*hWiiM)GW%>35!$@{FqHmFKMiX@by}p6f;jl0%o3e>PNLW z0Z{rOMcvRp)$^0JII0Z_>rB}ewmH_2P>pH^J#;>(hR_n-Tcs`u^_X@=#Ab&wB6Y#? z@6qIRA^+R7Jh8n&1l8RpcJZ>V?A^#^8zAaEnp-OO*w4u}LiDVq+j-TVR)aFw&GvJ+ zqRIO?A6eQL`c0t``qicCLXfoHhg;ZaW*Q;72Nh~z^|36!)Ff3Gn=)2uw%*p&q2+4i z7hQ%>XD#UZ^uTNL{)ATeG}Qq?!rAxf%dxoRGP*deSBWJp!sWIHhB~(pYkKe(T~=9q zc~TpfBOT9BVfAO)wZiMRYqU73%aR{mm%ZG>H1SW=ycLwx8g+OB*E3L514s5vUbx1suBZJI_v8P=bmO(XQXtQ|{(4qfjBct5@NjPUMNc<5{o zI!lv`-dMU6=n~dWq3mR(MhqcB(VcE5`J7LdP#3`iMZPn@SfUPajcwJjh@b#OT-q@J zbw+b;t5$hk#>d*z!Ui<$JFo=x>13@!fJsA@(Eh&`jmlOGFq(%m8C55RVXGDCv=>45 zrd9k9oy7$yPTTPhkmB7YoHC$ZzBS?2+p>1N=SQ~VEcsX>=CnGNUk+aRKNtExo6q-N zQB;+UhF{9ifG#|ZI(ZuUhJ!t!xb)IFq;61V^y=QWUMBU+>j#%4$ZDBS;vH>kf~EW= z>BExp{|S%!lvY=%m@g|bAY-kpXVCiaG+cdjKo_s4m(4v?>{zo_XL0|(%@?o06CDV; zaD#;qeqNo^Fuc*)DWO^T(N(iQT7%_NAmDI;VZxf%70DHpJ#__htdQpWqu5FQ(*7;^ zZe7rWzmoN%3s)o>;0|aWPu|Mk%2(BoQLi9(ev((GhRYC5p^rCh`-zhMw5u$8n7#{2vG>Hqe`sP~`f%@4%-=`6`IxVWgSVQipL zGUE}|6n6z&TtTqeMB zg~7l;rK}V#hZH_r>$4jM`{~<@vEH|#IsoTD5OBHJdnyA6Q0ZAY$U3?Hq$zZyelMvZ z+sdjF+W39s*4-v9h>!)vUi6!hh!dXsK^XNI%9JfLir~^&vJ~Cukp*M%` z0j(|%ghm+3hA`YxNX#pJ>#LS(OO$;CD1}<8b?+rnAo_9$z_?bafMum$D{(ekRx$|n z#0i1JwPeKE=zBTn4;zIp?bpr(av*91mm;BuXn_>MB1r{pIa)bOnQS_KbAg6h<#Ta9 z$FzmiQ!x)E;{RjsZNTlS%6s4WvG(WMJDCZAY}si$*K%7o?M~hIlqM0q$2}t-5oo1X z&N=B*?o(Ph=kjD@OAtR!MG_^gspTm-Kx;(qF(?+asPsrHZLw}KRTQkbl~&qvYE({( zLTjEQEwNI$zyJG=IoDikelWBA5aGD+TRH&JBK1>P1i(vsoDGN~{An&0=y|pv+X9Cy@PF|*gnwNN$`X)&PIYxe`^hY`JpvgzV?;v5!#&< zIT#O^04s_78yRnp%(gOEVANXUZCdZ_+Ysl3_8>fnDI`uB`3Q^$wF{n*H$m$5DxlFG z!ZCx=hD-~RRVm(qRTWZSFG3#5elu?4OLQhW0)z=d4d#5-fc>v>lpiGPkjM{54wVWO zP!H(5OBti~YDk5$6=`=hLW~M9^oyw&t@YtYMFE4v{G=lIgDM)zSI<%biDu^EsxRQ2 zN)2_WooWm$hjz4AX#|Ff6zDLfL)7E>jfi*!lr!5SBXCJD z2CJKXYWUJBS)*PwbHl1ks5ROOjzSbZ$Uq7H5>AC|z^a~6ZIr{rmp;0Jwc+j%$j}-A z1&63uC69Q6hiEQs@SiJ=1(7;dMrTUIXUCQrfLRJ}>5k*#)%n-YZ z!#BuqX-Sf1+@n7>RZdp{^pT3i$(1=o)*j3g-=L9*BMmlbf81TFEkl&W#?86r;te_U zTPtcvr;hT2d3D&}9nj$YROogIV|vH;g7NP772QAvD@$OlvL4bEWty7@W`HNeRBZHK zFc;lmw(49sRB$G(24@u{!**5o9}c)ee267pO+i>tXBd-YCj4(&jf{Tx#SnT7L1`9Y zWG$A??isSfbVW-8t^+Ce{blZka*JMJD5AE0t@#4@F}0*$vO3$GZt=Up&FQq?p+!%U z^&pGHaj^k5mbK|RAF#BW-E1bDYPndr59qy(-?&t>?1d&y`inff(mLGT*P%^g zxM>UB1GE=!s8FL(B(Ok~1!?rUC~**=av5Qg+(K#u_iuq&c+6rsBmu+(6i)}5jH>-SYr&e z3d%34>{M_DxK9;;m_=TO#Ic&kn#mnQJQe$d@9v5jGAeyJsOnuD! zK@03^(vy@CFIEOU!V)GULnuok_Dl*X`-&LyLe$gH5KHlf$RHrIXv%C1r0nW2V8w85 zAS!!MRLw7J6;D*)kC92cZDuH>5%~DTe!Pdcp^XExU;{ z^$&*UPlx9_!gWs90o!zoN8sQjUvoyrex+V#Pko!T-PX!@x32pKPa)6R&B@Jr`tk$6 zf3JM>b^n#m{?U8!Fu4l@5JzwTv8}(UbF<&dzg?S?`^X~4k9&ZG8Uz{_@3$Hnn*c8fX>u-Kk&?Ru}S4Ex8!^M`aLA3*}_{hhl0jg`1+Q}k{k8c7t}7^WGuJMZxn3_omM7E-&}6TkL68Gn1%&ru z5uHy3DG@lV(YK*OC>vCeJ8I;MBE?%aYI6CAVMEJbw1rdlmV)fsvD~Rw9;rXw0 zr9w=2nrpZ(0o$ineJcxGyL$-~WMYy=|W z;O<*KP3Y;a@@ZO6%pN?7z)SUXfBAF|ntXzvM|gR^Jw94K68V6)94HjxC)nejGHAz9 zd#nP1?7``Qqaez+gnr?62Wq46$c;rw^!Ta&E?~Md#pl8 z-E5C{m2Zg~#J3!Zyn6($}9m)WB*T~-4T+L7Rj1%nzh zET=wMSd0kH)dhUtlx(9^6m9j_ey;~JKXNQZon93+Lm_xU^UJ)K{#i-f$ibI}U+7g| zWclT9e6gB^W3cpbyE|Y0M3`%&$X5=+_GY`5OzrLh^Ev9tqt2*A$`s{kV(NRI&` z8>()M@p-N?i~(GItngqrU;r(f1)0P1gE2kf90LJXPY#Z02gj)uIJS5P^9mdji-Kda z0>{)+;Gpb+kTd*F3mToeFZH@Fuj+oI*S%kkS$=zCylCwQ$Q4H8X3I6Q$Z$|Tb{^G_ zH%W$$z-V9Ew&B(72oBeumK zu~M5-(B-yxImShIsGmfoU)DF8`e+HAUDk=3Y}1{#pZfH*eY$Gez%J}S;-aSy5*JpGxTpq+3zlt>L*o1u<~x0b`OaN7pWCQy1-rQC?a3)A ztk;%_2f;>LEtbQ>^lW=zBJ#Y$oWmBihWHnIg4W)QXSEw`TvRtDW0-(omg}@2C1yw> zf?-p_YPu~=>9r+reqC|rH;rI1fruiTGM_*}{(l}pTZDqU`P$D!T4mD&b;Bj?2=3z_ z`ECno>{xlw1n~)LMIuG1S>j<_g2uL*OcBP7V)qm2PLDSfZHh9_vrd;y(TV=_JT6!< zSr;>rWqt{=iAgMN@IFk0%^H98fxrAf{7P(q>f^{IZBDvuGvOwec6Q`S&ii+?S;d@S zc`Kc5uPQdY##qEE8RGg284gEgsS8nd=`7;xiKZ=%SH0F|67zOY*IVK$WZ1PLRhjn1(nWFsKtl zg-$49wGs{*h6fXq6b-HTPDI!=v(1=*`PU68OKAvblh_Myb+p4@M{5~&!DKARzBIQ? zr}8x7kmXj8-J**c4(`2_>W9^FM7`b&SN3f!DycP?m(d|MCFgP7^LEytW~jxMdsKY7 z8!uxW-SvxHXu^fMY)UTh%XV+VMSi)&FPH1xOX4f+DMfW^Y<&xM9PIIXRTk*`4!_DG zVqG{Ao*xd^L%LEYcAv)9?>zbBlfSY#IjDPVL3f3Bch=tB9^T!mYrHu6SymY88;ZWzt- zh0qiuvK$Mb2^C>EVxFW>VuoGg-XjdZy%pFpP}_-<)iLoOdzw%klgVUT?!IFy-2i5v zBE@_-?1{lv>8JbUTz_|d9z8!+^QnKDCc`A@7j4dV1F8$X?o4&7FL7x7;+xyFN^vA^ z0aq`yt>*?TpHtC~`<6T^%w0J!xB!&^Dg#bgylVo%aA|wzatp;ZKqKMSa!(S| zmKfa4aIsLQ+dZfdwt#7)5%#^o<8ug(?0kUgqTF`JdNZ210AmSKT4kq%?o}`OV5+(! zUl@?if@pE)-IT>fENVg}+Rl;`F*w+Ys29Q{Hva!L#t(EY_y?L-yOH;8jNa7lpR+}b zalN`6hBq*t{TM`8e0d@RDM1_xE8^@Ev3;-65$HEY&32!C$yvfAQWy)a`Vzo~a5Ks) zx>X77K6Psyo83OkGJu*y$3VCYGi7SyyPHxCh{=rgaoH_*E-D)WBN)$K)+;bMgZ6Mb zC9pumxKAeQ1YWxvTR0(NYCKfdo-g zcVxGuMrvV>(n+OXrMgNV4XdhsgH+o-Az%CE_S&u2yz5&7|4E~_bsu-6A-27FgQcPn z)7cn6rZxuBEK=n2De0h{|7#eCkA)oYf^(5R803APlKE9yd~rPO!->nwX35iU`pO%$ z5l^w&?8~jYuYcshbk|b#22R{()#v>z67*58@x+1uzyc7w@yUS}D>m0rlHjD*t+mty zEp%$K4q2DLGD67g$PTLMzyh|VbeJ<|5ucKd*^$P%h^`N-A`n@7ON&p)dbN>&p_(@{K=wdc=Rb_xwch-n`ErqM2)E-gDqU`=nQEEs(RA^5OB1w#L#KFM(5k zPs);;+8hC#k6kq0UVr)x@6>;P^s@g#{#%bEMa1F2>B&@@pY&?<3p_X=JgvImHNtp7 z-_yl7t4%m2xZ|sKrm1_l-hcr^75aJ}42-;^)1WTB)x>EDOzff})ea9Zj51=19VH-? zk_}u+VPYfTl-Nkam_ffW1LSJnZ_J?2*@y^U++U4>0JaOu`MlyPn!}O85^jyFkl5iW z?4S-@MR~pz7Z-j}JzyusHl4XI3vA|%@pp7g$Wysyy_?`G<0K^v(8>(T6 zZNAF3udg%Vy1uVIHDSSxrh|1uG$4DgygKd) z+u)hBXeG`DzLolnLccQY~QtGDXzuhp&1`k}LO z0qN>&-Z*!ZQXGu(8;K*W4Lcl_T7nRvNunk}4V5n!1G&JKz?^hoTBDKvs^pFU(LS32 z0in~FpV?&`3YsFibEN}4Z0ZbP6pu|%aJe-vl_Sz0%_#<&bvGDV=pG?7?Vi|HvNuMI zIz{7FN+K)wH}Jh~4~JWpD@^m8iw$XkR@q!Wv7Dl;H6uVm6*rcp0MEA~;+h7bS2wdW zwNzfoHoivzY8C^pH(go!Pf*2}Zoyl8(x_xa3=PUY#;CabG}1tqX`kHuL|;50VS9v` zsH=30(FV;}AJ+En23&+4{rK>s*JGo8RcknBKeWVS8$S`%4l`7L#i5jfWae$xJ0Cpx z4>94{Xij#M$rNOAW(zjWpOww8%*@2Avfl^n7qfJBN_&J<8QV|6$%V56?2dV3frUH! zfaab56Go}&<)HZy!s@b3=FC)Yh+trXTaA>oxH&!B+8UrpKf1ECC|H?V+Be=`^%YTT z#VAEIH^}y-%Yl--XBW?iyMlXLu_Gj5V_SoTEGu;FV@>2=!vW&;hE z4b)`9+9Mr#AkA^Hm90VG%H9t#r~%Zh9|^`r_6DG7&DYFJlGGu&=x1 zzrY>8;K#SLq23Ya0PWP83i?Y_9Kd?93GrNe#aS4&SHqsEHNq$kp(NpJo&5yLIz%Qd z&T5r4>n>^Xs$+jgTjmKCAviy+3uxBuWGMp(?o9q)|DY#!E8KG$<_=&-HLG_M{dgkFDy2m z*}_SOKVnJ=lM0rk_2t7subMI<=Y=$Uc{FL3R@(jQ5aza?$pU%oC4S-(7@F*rBmK3ogPH9?2=9tK!*?6@8|9J&+Qi!2+|3J4ASX<-AOv#$X&%0 z7LiV@pFVTa=|=gXu1Goo?x!T0w0S7VC4BhK5n>D#4+B`Jm_IJ<|?9MMMY<4$!=y|cz?&FK+AY`2pFO|D%Oc~kPfmaZIB6+ z8C@4Pq8PraC2C`$DM8Mp18Gm8sEqnZ2A!x_%^VTEMCI{=UrqM=DC0gc!@dBg=#m9K zu{1k6GfeC$(k}WXdri$rbjQk^UYSD3D|`-7Gt6Y8T@0(yQm_XycXAC_bEoV#F;>LI zbS;UNBO}=2AjM)G^M}SPyRK(w4;FOAp`izW=PcdPZ9*htit99c(OC{!Xn#8na>#t5 ziBKSW=uYen7&)4 z8-C?Zn_ZUHVXS%TSw5J3fkAR;5oz2TN=`F3sNS@x*vxjvfIFSSv2^s()?J)FyPgS)XIVvnqzYS4-8e< z6&=2n?H3F(c#^0>^1)fa&_F)0dnUV!dA{3M+3Np-la&$UPd+ev4z0t2$P;sube2{O zWPg%sB3P@w8Y&nyP4%rS`Jnb8P!(^5y^cP>94wMGT*zuK48iSAl`Pk_62~>m5UDva z{d=nN2!lm(8MX0t5{iZuab^8X6uZcz(9j<$s4KQoo7O}&W1I^!#;-Lzu)&c=snfzc z4nsEL9S?IY#5**z!5flamo9EqAXCXb=9rOou@A|dihq1O2Ah!E43D!A-gbD%$9X^& zlHs6LahO@!?=!uKNcr}y@npp6?MGuC9=kO@CBi~@JC*T>Fyr@+?RU4zU_{DE+`=lZ zzUo*V4pJ$f%oe|qDy9(MRw+ayz&G+IF@vd4zzwcwu;Fd=fHViAUP?*uObpJ(=;N`n z6dSd0p4dJcW^XE^k(O07ECc{=;cfI$z7XmvY&FUrE5_-TZGRK*qi3Xvb2dON+z`P0MvGOpNDF_gY{EUeq`kFLDaaMXW@!ku%~4%q zbGX@RP&xq=*|=HC%rZN*(m1j1#AW6}FQ~dJ*#V@g;S1;F%>GSay1~`~E|IADf*){FZHmmL7wy+G6$KGPbOHui_I zB89(jJS9d1nD{b2oF{4a$19OE%aH$pFafKg^QTcUcm#M2lkD#~IQpE$JcgNZbdr z6Aywna7HAF8)z5{XsOv!wMAJ|tp4mSP)3d-9>-ftts~+i;#_@1bJQ#Ns70EHYSF=L86n0A)2$#{`?HD9XMr*udR==FkfpDBNK4iPerrGek`%VL-eI zhf7xu8AnawZN98vzU3X zx4wU1{rdI8{9C_jb;j=rC+eR6qBu#@_3PvHgX`B1HP?@frjSXNnVD@7dZFeIEccvS={`C91(WT?Eemm{bL9=xGOTuC)Rd z8>q4Y?j6!ogu>WV*tqCezocq{;Y)3hSNZoP1CB+z3KR%e1Y>vrgR`I3#FmJcb5fUu zq6&S32Z$JXCU;fX45^dJ1W2w1LfzBG9S9?o_C*cma4@B$Sb6FA0U( z3b<239tZQBsWl8BVoCmZ18j4E4Mfe$gI3m2l^7%w+%^g7nmi!5X}6kb$%`2H44^ig zHq!*4CLL*E(5>R;8>^tD3WpTjXwCc0O#ULrj=s=u)nZazx>^x0;@RT5dc}W=x1H&o zrKvS~#wv!r)G8)uL~q5v46Ma;9rwFg-ns=?o)NOm?T<%6X#U?0V9Xx|;2I0)ud#ss z8VexmO~nFgEoE@}O}>LOx-p!&DyV%FU#Wd#^VL3W6zdG*fbf00Ykq^@6+gs zyEVTm{qChTKX&p~1N}55(nYTwrP{msYTfA^#JUi&RnKUBOr zg2Eq=$O90RS1ZkK>-+x4AH4rBK6vl74=tbHl(%J@xs39*?Ds2E-l}5KMWD5u@>UhF z7`T^L-j*$58Rcz^J$Wur7FOPV#*C9IQ`@lNHRsxi#q^UPVIPrvctRW|DS$geBqnKu zQTEaUbie#EUnjVec!&Xz5g#h^XJ!oVexjB^lPeHRbRXaAw1ox+cU=o zJ9=B$sq7O$Zz~guhI;w5>TT?N40_wkj#Y0nqN^0Qi5|s`y^4~KFI!r18*{}i2;pN= z+_oQ&;`WKBthlM#<51l0p07V0qsF-6iouqe;zq=-Ud3(5lp(p{&wiIwI9Nn;rdvVo zA@wf(OoCdj1lj9NMf3es&7-leCmzB^XsUhjySKzIir9+GK4N0T1vYh0jAJzO8QZ-{ z`t4@4=eJ-VCC|3Do^8V^!ro~|XOjKAeZdsP_8?@`-qG@;;-jzQ)G0pz^CPRK37Cp( z+TzaPWU=bBlrO#AUb&~U&lEh}!?7#WCJO=zvazGMy>C_%$TQgpCOr$sb$xIs*d(tG z&ak(aPDfi`usOX|bjzj$T$GC&Zs9YG3fXP3+R2OEGJQXh01DejfP~}ypsl0e1-OkI zGt}s=u$B2=tpn{ zTQe}fYfTYX@pM31!TzWuRE#G%8r{kFIn6kOmQZus7v-F0j{O1p}qj5^r(&Kfp~5J6-)n%*aD)adusN5Apnl)>~M z6_ybk)WA~~zl>^$gD*~nq?FW^K}gyZ&fCC&rNvx8J)xzx<1p$a>e>Fz z1J!8)kW!^evZ^bbd$G{6`<)m9$VT2tdgacm;sY>|uuDc=h+HE*+w>sB&v=&x*m+(dq!7zx6)e#bRd@Zlq>+5&v2A36+xhjL`CAln2a z4zQukF5fM<;CFD113847RH3lR#up;YIRVqQ$e*v~_{0R5+F&JXP`N=8gTd))E*vIc znze^!)sd-ckHHBHt-mbcMD37L2h$#l{TyK?<;L*E_FxrQK80q#b4v`+jO|_J?9cFk z%zc`}i}f+K#^Vg|#n9{7>dyYc^)j5ggJ!mk2qlOD4G0^74XnkVAS*baD+IQ7utCOJ zGU$L!M;K^*FL;>1?oHqMJ-8pxVasM6YQEav12vpP5hyiwZ(2~?{8o^2Wv`0^LCk5< z^2Q+LI$*edVK8tKX%`rT8Z|H!BbW66f#pqrpiUl+h!`!a$f8|W$0g*2d)53>A2aZz%2g8)(l2E#mNq|5z9lSiCk*53kS*m zTil{N+m_x%t8wnm9me6389ON3R!<>_P`<*l%)Ac;0_{EV~Uj)d;xtd zmEi4gKND~++0gaG*n04r8}`6MX5luFr)DZah= zB&~ZD-#N+xQ3~7%j!*GbFj3Qg)RamI*_`I!Ihyh$Wp`z%E57$}yvvFdUosw};%ieZ z0N~09y)(s^1Xq0H6)V2?;f>EG1{W>Ip!gCw8uB|<#aBB?Ocg&)#do)R7x~_gezu%G z8rzBQi1KEs2Uqh^A?H0pPNtX(>%j+voa}m8Ru3j)P;=cCe4ZZMn_<2lyf0wlvFpL? zQZmKHXUgT=%k|){cXd6OZA-R^Ygs**j4-%k(1ULjNa=649!!EzkJuAJy%p)fH-dUn z36D(=cEmeYJy?hb7uSsIxb$EstD^`1!!w`kL1r zzNLxh7?d7sWFxEVe#oqZ%6i_b`F8bu`5|6FyQ8&TI=;*~Mq57B`JNo& z0q_dvn&t^yrFWsdNtL_nq%+5xZF`7XTzq;MY3du)F0(~cM!;jhkOcs@9EL2e6c^7L zhCFkc@O3c||88i)dzR3IgNJ6&ge51J(}cg%a8J#{rE)0$uS2K_nj>&n1U3_tuv4VB zR^A^AY$tgYo*zekH!j|Oi{#8VZfAZA+RKW^y<1X%AwQeI{Yo7i@*Sgv^a(@$GN=VhD6~A>yPz&KwUKM; zWWj@!LrL;kmz^lgdD)Y)o~J)!Dfgs+QEpg0Qp2c&OJGE9_D9uQ?I|+k?cf{$Rv4E> zFw!wXcFM8$CK$V${)qQRY~+AVx{s*QjFTi;9!v^b+p+2V^7rtS0}FIZ#S=bH{0RD5;jrvi#TbU(`P4D=4#&_slcOFmRMTBy zXn(*^9Y$efR`I+$zUMLYjuJy3UNMGROeprO3HCZ*1eDO8QiXvd#pit;CdiVgbHae3 z0I3Hb!l_o8?t+zHc0RYlxkUXdbL3kB$E^5QOB-K9`uEM6CrK4!FGXSczoKMrsOV z(tHl#dQ{1$M_K&-N4P_Yp9|7K`R5RB!TIWQ9Pa7iaR1*k#NpO3pV!ePVVayr&+$CO z9_EtH^!YiS=R)=`uwh86d%Ahvmx2QUcH3%W)>wk>(QzQ?*I6xQbjq>xpp_u>rFQU_ zv6W8-I=;~Vww9>#?1}EdvJL?dbaFYd$aH6Ex(l`?Tb^>uqj}ZUJrJ}3%$)=w4y@pn zLn$Dzic5!5+qSmA=Xfs!KjdY;R|6<=4F3cc%kcUsl`eTKXdO=bNLeJc8>|n@URHOs_qbbakk(NKLKS!4GuZ;joEQ{UW5%(2(HnGAT8dubS9 zLF1{LV>>XOzb}U>_V$`%_XTt8O~Jr*ppJlD(Pd=V()8_!%_P2IzyE|%{^i*D&QmqP z%145dmN&ufH#DN*6&l_5J#XN;uQYJ&U*5oFXapqcHdr~W5Ps+zz-TJ^Cqdlpj0@Oc z4?A)JrGQ-J%IY_J_F?BaCaAC`ua(=D+|P@-tv2x}&X zsYnryrXsU?ca#x@p3&lz<82mDw8Q^O6kW>rurWFwBdm-Nl@Yenpw5i2GgJ#=Bn)%D z3Bs9X(tHjhJ8MqQq+0%ihmoZf_UXpR9>0)3JQ2T;|Fw*6>6TfaJ4nDk38Q?sM9ee8 zF~c%dhwi?QS>zH+^UflBt+7+llY(q#*x`)wpUCE^gezf*PrE&~GbqQ-44*@@(gWnF zuGd#4*plykKcd-ER@mpzEI1lHt8O7b5NNiP?e(dknYkw&egx}F^qc^#eA}MmY%FLl zWovyZC|8;L9qlmpf3I3!6)sqwV#jHH#bfrFw7!0L<sTS%ozlD^h7FwabEySXI^WmiVf0<2AX3g{4*fsN{ z!0_8nv+pErA^c^}OD0gIkA2){ug27qc&U=kJPx+eLKPiuPipsdgafYp3rhX>-sX5OlGYLyg zGE>t+Ua;Q5o^7R)EVC;oTq?~ELoa#q2 z==i=6VvsyjI^(qg4rzBJ=b^`xN;%9^iuko!tl-6V9e^s2Z|?aUvu)~$?I}Kclp!EB zYjLUrEob?LrWSd2rS(W*@k`j`D)ogL^||)2j;&?89F5C$*76JG>OI#UQnKP}lFqJr z3c``p64`jE=%BzypArrND6>Ba5}~DF5rL`B8l`A5G+F~tS7L_%oWYs2)VVd!ORC4RG>2ocx76HxtS)j$W(26;ED^L4%l!YGM+aSUl$M zxKJ0(Ubuy#-qxTkV^IV-y`eM^I^neOGuS-E*jYc+_|QsPqgFP$S{cg1ue__VErK=; z`PsPw8+2f(F*q8J5dMfa@|kUt%ea;2#oMtUDHQ=O)?0p^>j4kV0E(64at^R}|)5NtQ zoNZL6)R#H6bce}q!onk*36wZ-fwC-$P0VUrD{(|~WZM``gd?Ceek~ReQ$Nyz_&fj} zD8OvHp#bHuI~dRca^Av+PK)3@u%gqVo7r#H*j2=KzW9Yrz1HgHt>N|W#xy>Lnwr5=Z0j#sjY&ek_AT%ZGfZUBj3S#v`1i{o;j18c@!nm zQNGw;eKEGCFQTm>gBP~4*78-Kj>p!wZ=|28qQ|WGQ|}`mK{zY>NSyI>IF8QNh9?$> zzV1P*DWx9rW_W!20M)TiPslBaj+*+u+sVh!uz>9~?*9QQfddnjE3U z{8y?@83-hsUKoAANvu{j=Qds0qD13cjph`M56#r(9hwP`-=&j!mCAYIG}U%5QG9b> zQUQSNlmP&J0RRfX%_mvA{}sTSqvmy{n?9A>Md+uf770T?!?6eIr;h*feu`=r>!-s- zz8>l+AJsq-&L`sx9tTNmZLfnweKEK=<`5kQVJRF2WdR9Xu!O>-Lfpb!h3{mL@)RUu zN4utW17BbBr_j^cCBv%cw?KC*W9gH0k$A1QQXwJNj#Qw;vi%t4ULhA1j(t%?kq)&X`(nU}lqmmb_ zyxTu%%tJ?VGN}_4!gIk5xB*X0SYw~ClDsY#-k~`)PZ2NE%#71Ui%WMx&)Tj9fiW#a z4dZ7p`^T6KLCrs2pRV1NTp3>hy4=ozhC|>B)1OVr6bvN(SbJ>iuK#4SfHlS8$D`H> zd3-}V{#eTc=oh=Qo#EwI^%9M%`1{AB;>(WN6yjDKmo zNVAtq-y5Q%Ee@2E!GkwL1?L?QN02-R+VSa8`0tmfaY#qHOc6#bhPb9w@MY~2i!Vpa z>D(DGJj+U=oXl}x97qr*URD#6wI7;Q9JZ;vEcy20J*~KtjkDKi!L;U+hj0~QlEe&j zmCY3uKd=1iNb&0GK8pSe5Y6M?6DXsmED(x_k31isJL#P_Ss(uM=RQ}wr`{i?mGqaX z^fo@$(QyNi-702*fP{;ZnE$2459uEh#}RT_zDEy$Ol``+ZwgT$b<*sPf_Rd zemx(%qCKWTyZ(^})7>C~-CX(Rf6rTVcl%l=mX2+e;tL(irNnfS>IV z@)%)^($~N{eBdK4K@-VXUBk2BPs6us5KrV zNczj|wRy^ySrO->f->HxXO4p_fi4ffEZiI^Z;rl<7B|lv59vI@`HJ}UZPM~)o}Dw^ zI{Eb2hX(je4&s26USpL`&X ze~}EM0JLet23k21y|OU_!i<{HO9Lsa9@T-4j^CE9;?zySz;J`}AFqRG&M_>WKa|ad zhqBo_lm;XX8vi&~vR`!657Y*Kx;>(aE8!oZU@A6JqPrSx-xNQ%v$amRIRNTI0>glO zSk|wBvq^f>+2WxR5!H3D6Li=vArDbQVilaVU14*KdVeqm?vsYug~sI`uum3$ACgPnzd9-S>? zY?=>49K)1SWx~U2(R_-sy6&>}deFR;1zDncz)01!i#|gXD!VTyggUoB^161)JodF8 z%vWc>LlmvqB8I`Fz*jc1{$g6{%j%r;#Hf>W{888DeL=06EjAWEt|GUMd(O49YQ&ly zIbqR+2S~9l0fu!0ENNiIZ@e};9|6Vx0LTCVv1L1o!OMV--3?s^(Ti;i=Bp6!eXT(n zHYlzc3&v!GC@kdhhZ zV(4tT-H)V9)!IaI40ff%!KmJtZ{7s?iPI?{0U8(b4lZZspt*q4w2{>8sMb@8gMo@D zRt75oqps^$s_Qxt4!swfssl#w1F#aH!`u#g|45)CL4x!-|h<)F`EzWKuPP6`*6O> z^wn;1&qaKE5SrTV3wdOTU2VD#?T5b_VlcEKJ#UY(jJXJwK?%3}snGBdc*)u0&HK7$ zLws@g>v9tS2uubpM(HK|#IcwQCX@5*qZvD|%qI{`Hi9X2zKKB-+*22|6-+K}D>#*w z5qr7YT+kmCSAR2VzAdSO1t&Tm*%&2eI@xD1p=*9awNs!=QmjK&fk5ePo?$FMYt+Jp zYIQ`0Fbvb!9pM~$gqD@xlqd2}uvW%pQqqSPcm*qyta2JBt@|+LUDMQpm(~b$au@syU|9-AV7$hTJQulu<8s|- zpqm(Yr_mmFopoAts1|LM_$lg%}*kiM9e92a~@KTgY$QBeJ^R$4^F z98$Rjwo~|_INNkir?fg|93V9}1C){7;V#nM85Fi4g^GGLgSN`B;C2!2PpJh{#gL9} zn4tx4dFrr*)K6FhxF>uc0r#yHaJfSS9sGLS+-@EtU_mj$h7HwF+oO0m3DZU=I zAREszw!RFml|ij{v#Bb_gd|o=iq>txP;(mLZ8>=J>GzlhZ$nhv_SZ@F#$xy1B-z7p z@x$<&cvWVN5J-XmfA@6DCZD2s&HHRD>%~k!b>! z=RT~A!eKBRIm%IvSR5c7bT1dneE3pJDTMKyl|7^d_va%iLFQr?TWgz$E-GeKpz7ahC}@uc|+$SXrZY4p8`r?c3?N$Hrl}lFa_#p*n=<}po98m))-gC zE02|u*PF*mERU54H$5>SmC6z@?KLK(C2or86NI4wbx(JdH%P<-pOa-dpBS*c<-n2xpNU$?DrRl zF`BdoG5M)R+!TYGE+q;shd3Haba02i50V8&h8tqC&F{uG>zEulU)gXrL~i1)un_YV zvcV&W0UDq1B`MO^aZr~G0roT7zMC9Rioj2846j8jFK(tuZO9 z>71OX9J_=YBl;O^Cm2L_WWNL9i<_97logB)8>13W0<&`&c-8q4Bz&9xKwI)nX_lSR zDl>02P#RPVYFQ4iXn^Un9O{}>hGAMm8!DV-?6ibpJSaELW=x1lrAwS?s2xYX%~A93 zlXy^gG(!s{C_x1&C5R2QdPG}D%KeRw0GYynM7hEn)Mq`tls9BQ-CF>S3JwD@{UuOd zORAeD_U$+bA~C6?OxqYu3jQhcH9o*o?{uy8FqJ)B%mES=zXt--=Gi7#Ov)KIH>=c4s~7FX$a8 zkX;Kh(`=dOJVni42Xey%b(_&4GG=X!>EPK2d^yeG7l3!EO*iPiPSkF$=kwy`y(Xrx zAnwTi9kYD~2Ix`qd8k`l&X>uJ>o&8vFqtyzQ}&xs zEr>>IxJ8@1Y*r*kr?V;vERW`C*$HyJ6R^X%tj3~ppUt4cRU z7cpAg#pa->-lxGxf*cUz1~FBJ=4t&lXP9bL{bk9e(qopzGSS`8+}lVNBs`qpF49b` zoLoY~1+l}^I11P6n6SX&y=OfHK?nx9hI<{Xq6>F{`_Ym-9kPnK%ck1_8+4+fD~A$*uze zQ_)MRx$v}qv;fEhG&^HA6}_SQ>=J!8SOnh~mc1KoQ+gH&t7HS7ZDsaV+==*#eTc!I zVh@i*E7Qp7(ePxqc!3T5Q93adeK@J=y*W|EQCTrvTDszxN(GdCI_0i8!8|XZ#MP-$ zB~l1HE~wpjG#t74qY(*5-sa4=nt)N0O~9g(7fb#vm#z8ls!Su~zNaemSG+?MdXe|1 z!{euq@skzLH9z=Uzs6ki_wRmgt||2)4yr|PFn(^X`8_??#J}4j1qTarsjUUQElgmN zY68PuIf1#rTwz4Ll57}z<+>4zAzo-0Ak7sIc|>wUd^K-uLoKslftFW@QszZbEAuiL zE%T0;GHvQA8TlJ&!D53tDGBQ8BvdUvEfqYm*=6&$k|f>Le`OwJ`>hVwc+rwjKVj;8 zwgnNuWg0bx%Oq0_E;;g#%b1<%#f_<@tXgiy5{SiZGcyH@U7MMyF-O^qr5e3xGX@{I z7;`o!wy<@?8>5}u@hrhUIK!LrRLOL_ZYREART{+!f=d8sqh8>&NDrlz=gHaQ=9kW81iVcA7|DQ}`l@eoYB-TbQ*+Y<0!N4%XI`(UjhYetlu3w>Mog+dJPjZ?gT_ zdo|gzslaM>`eSj)#7%fjTVi9BFWEL zU9ur*TsYCxcMYl7C5%8C4$}uzs@sqNBC|`07N!=`&(KykB^PngWQBj4d|X0Tu9iqb zHo0Yt3!RfBP8~;oME$wV#{?ujB>{mzO<@El$&EB$h(L9d+Y-45S@`*mgSp3q6#f-s zmlS(Gm7t_CCDG4$XXXEAb#Ha(hBe;)LvTGCL9IM3ULh zF*#=X(U<)!^p?otvOBp<(S1={`K~>%%?3}4d3ho&O69h2?O>LEHfgS{nU4#)R%Kf) zwJ+b$&}2lSt#85HA@Xz7J@jh}qi%0{^X;J9bv1L%-qKuCyseh{#HY{+rSKKs{#3`b zbEHcBMlJQBD)pNT}gM&0|?{5u`A2KvR>dxY{D3;mpjpO=grn$|8F!P*?o-d?1cRYI+6k+Yuyn_mNw4fw#tJ%D$zB@#jWLpr5 z>kejp9#~7ys0@3K;rOvh65GD9Cr)CQB>!Th*(FI#0Br%Wsc_om%B0Jc+~vv`EYX@1 zBnh%Zk_6e2b3t}Ul0f&8Bxxl{60_-OtZ)*AWdtI4Y|lI*FcYcm42;}>(VM4vZIJG` zc`~`hTMas2B$nU%BSNA3^{uoCQ#fcN|fU?SO#xhjw@4w z!CpL2(%E2onGc-XPt?ur;uiwqh)=P( z7=CEaJTd$QoF&JbHz!G>R}9OLY=U>76ub|23Eoga+9P-eo>svdBSXxnI^v5ru>>!N z#g~gW$0>Ljf2}!Tpmo8^f)Wz9xKprPT*Lxbro-AU$&C;VENpaE0Gx1G0r(+_TE+IB zpBn*tO<0V9gtQnFIb}owBkH0nw_FC>+AKzI;b2nb;G|(mNgH29;H2_0l{uqtPUejM zV9sFk`*?Q7$y$>P$Av4e^%TNGKFh05Mr5a-v%zKSjTA>!EO%#tS=9n3s|lsa6=Dh? zn->5>+!#?D8PC9`{i z=u;mW{1n70V6Ia{NKNYt$MbnWiT+kY7_FWpXYf}2RhF39Md%GnQtC~k)|;wKdZwNA zedcXLTg`V6pMfT|;Bae=pr;R^yfEBN4Y#@?lW@;)Ll5K%^a%;>LZ75cInN15ftC8G z_i5CBhBx3{IpC##zybq4Z=emwwbpvzI-~Pjt}{Bhg47bs?a)fCD0LX3Q3Pw%@R7K< z$AR&A2bA&3hF*yw9`tuyAov)>0yBM4omm0q&-8tQ zZ!Q&36`!Bm?mLG0y(_!>gJ@|YIeh-spv!FD6euW-gOcAni3 zCpO(V6}g9m-=eq`b~h;&Y-1}NQxSnE1Na~(Ns#aX{Q!) zOT9$*)I>zWldq8;=s1Fx~H{$v`coJHmlE8tgP;+T%Ds)am6f=Mfwl`v@uU|r@bfNWMT&{20}Vf#a{W@%#V)~pc| z{8A^x)*u`HEQFh7*s@umQPydh^%8IO*FwaV&dlCSX`0mAL>luNt(mv12fc-L9IdtS z)R0}18i7r;G1?B?c~+1`Q7=XgxGAa!i)psjKqv`l^UBxQ13Niqi{v%vSyC|B1}#$t zDi--0C@uWcm$Rw>Cwp`4+8F&DH84|U8lxK4Q8MbO)u7WYg!yup3^i=2*8n9^15{)+ zq}0GauR&8^Y8WtOR1>!reb?#@CJJHu6c>cegn%QTO6uWHZsn-iGAOb{Wp}y8P~XOG zTruOKt*#y3J&*4g;`F9BKUi6m7g(FL!N~=AEkgnr8J2COa?&lzl9(U?3z%jumMM9X z1Wd`YA!A?Guwqe`nHh^RUD4WPX;I!}?twTM@r?-jRKHA-nf_vJ#!{|wcwo;j4_jP~ z+p|dLdec4kk%s{yg@^_F?#AW^(xk7lSIWyuI7nB5nK^M|nz0od8Mpo>@~hGkAT*B@ z5PMl-2~egAd}3vu11XCDcyXo{;}~in@QbF!;$Jq5S~mp~RG-Bglj|v!zFAeWG-Al; zwO0;AG1wcH5eedD%ZTouR&nyuIAEMS1W&BoiZW+2U>#dZ%n(t$g(EUAqW-;-T@brw zOAwgc=4m9j*x`4`q^FDDVf6qm9iMpPO<1Yl^W7LLTZpK}D&W!g!&u!WQh3(K=#5>= z8OAkMxM~q*>S#2kZnR5QhteXVq?918j6y^sa;%W{VoMnBkCVjK!$fBA8i+;4QJG#5 z5YUCP7Pzu-E!w{VZAK)VQdjgKqkqB08%%94RJP6sPSrBIm28f z1_#Sl6KJ5;dlLC)sGVxXcItFqbnBBHUR3w=?M=tezqab!xgBg?*JoB{dZ=E}ETc#l zz{!ki!=j_hxmq~odY*&${P4KluX!pm(kYIs`+Ym+h%4vzD(pA*pi;d~yn_{T!NT7vpZ$%;l;dqjxVR`+3NwWp+3 ziS$zIL6vrXSutgA!<6h5TTk^+ulS|i72D&=Dn6gJYp-}vwX;uXwy-m}#Xx$7i1uxa ze$h13&PaKblMZw=VjH6iPm7+1_7F`*7i_{ay#ucWUk5k?SV4pVP0L1|=VKsOa2taX z6blv;s|V)_QVYJeTF&3rQ%iF$>|?C7Pbb|;hL}4@H_stmIpy1eICm_HvLFr$mrh#& zbWC_MV+QJkJMbX+g)S1D7TO8KXAXoslqMpL(5O?12q-Yb-%g_Dr4H;w!DDx*~z4ys{^`Pr8-HRc2f_)!9;;Dkr`UYKin+1gI28 z?fdWrH@@I+1ukN?58#_|kBeB_1Z`kC&YYeZCox8bcCulC%`e&=4Hs3yIv&HGF5nvw z+QdIDz*$@N6yOL_%8M=ot@Y6qAg}g2Pus(^zai+jCZ7JV#U8e}k3g?_=8W>b?<~wH zd()eL^xaSox?RRX8&<9!*e-$KAIM_f)B$uBF~p zrT$4R_4X?D!?o0#tJL?_QukM>@2I6-U8VkJEp>O5`sBe*-x!e4<8RhdAFfjWp_ck! zmHM}})I(M3=WD44tJF`{Qtzx%KUzz@txEm9TIzu+_1(49>#Nl3YN>mx)VI}ApZH|i zw{L&4)8ivm>Njes4^^pOt))ItrGBxNdS8`#Z!LAMO8s~(^^Pj_Bem39tJGU+sW(=s z@2aKlt5UD2rS7Rxud1aUy}Ru3<9By@{AiW>NGiuPESSvZcMUpNj$YWU~ zfgxydCQO_EZD9_4q$hppwUUqE1D?rjlbO=lWfie4R*6h^=F_#`m{T$%#rAl8 zx~_CS`z5WP06^Bxn`2pQrlJ>ByH#ur z-`zv-;9=YDJ$EO?eLkE=?I7>_|7~6%h)6S+vKKTbxxASBrnzg|#7I%1?Ze6BNbGvO0lTXG@yWYx{YYmZNz}&_BzTKKi3V*(pBKET%B*tSeo*QdFx=`JV$*Qis!;1;l zfBk%b-1K4q@|wz$*#!=IC1YgSdMfgM-S)Wk%UkY%nr0QU1Qe0+^$AnMd4Mv->(?5- zw_V^*0Y5s8;Y!#s4X$V_sOz)Z3hMf-(3Uevs?%ChnYFN&hjU(t6v2mtUa*)EvZC4@ zitr?N;59DV@;8-#+~(x;JaJM;+$yBPG0THwSR1FJS2~hW`suRIfOf$vtK>EeGvn9C z+H|A=r*!sF7c$e+YwWwEVB4W_93c~C9_AI)=cCRPrLg^IeJY13LSm5xp%q5Dqn01D z~HfIwY!QRHKQGZa7n~NWKmz)8(RAX}{|Bbr5&5*&g2bs!CJ* zs=>>wN@LPGt0k|GaC%ANIQ-BP#`3HjX-0J%?tKRiUkIWC;d}fm>K<#yGB;Rjc!F}& zB2vlaR8_tcRmpFQ82|N8oUSZgr>R`VV+YON zB|y{r4$zzfd(<=`l53UmP68|BB#N~F1Y5PS3_JlN{i99R20E+B$DIq*0mGm}ky zjmsKsh2G4yt$!l}MhIDV2OBg5mQxS&Ne-UIwT%pNU6CUP<@hYT%eBo)!nF;o!x^kW zsMn5b+c4-+JhGsl(~xz9pq%n^B4p%?+K@x&pU8^z34&PS+GbrY`=GFn^kGPS(59Ti zUE9>m%7-V;Jyd6+UUb~rdV4}AnMd=T`KGWUSCz*-eqi~K`jQ5>HWpUo)~05y*sU!U zxoXwVz(!k2%4fU`H@YcbD;sia8(`@9U*wj%SEF|H;u)l&ClHPg@5g=Unc&Y+Ft31G zafiR-l3N;l(}rG_dcbBrPppUXR`3cgJc5@zR2XB6^GR!c&;g)XT=*DJ)!o`CL#%Aj z-FO5eIX&5MfBoqkZbf448SVkOwb^j@bNN$Om&+4lIUzpX~fQNx*y$w|;927R7PV1z&;-39R=bzti zbdGo2oQYZL5Cs;NTTjE z_^kBUvgPw3CvD_*<*_v-a7=QxgfJFZ1mG+#YmbK-#EBqM74G%T$|h-)p@ljF80(Gn z8LpGV9|Kz{jyP-{cer)2mf}%=$0hKV06KZP)zNK~^-=&)k_kj}-0-tNE;@c~VfYDs zOXNxe1XJ`0TJTiSE70zWAy{GF(RUc;J^79WFz+#c$K~0;Jf}1H34V7l&+8K}w>bS` z%S$8Q0Y|V~7DB!o{T-KQ6Zz^O{O%y%N`YA6U$;|lH|MK4^}_jrdLy;J!};nG0wHKD zDkuaC2#0Q6KpM0r6p{+2&~&J_;mnA+h47E~=wdrU4PNRd9Il-%bcj~R=K$qZ0 zopAqH5vRka9m?wRQ>}}Mnm%B9(LAT#ZhfHU)SCcVIY7HAC|DV&O_8mfdV?mI)U*N9 z72=k2BF)3J+CZc#IAbXyZ1xqjKQdGzq5_rz5F4;qNLT_`?$le&j|hU*(UMjQtfw-4 z8ZMoBn`bpQNA#2x6I-9f@~b?w2Za|j0?s9 zlI6%p>u@(?PG$jTF$?T}ytJP%+_Zz;r#4TnJSaL-l89UPh12>oGpScc%^6?)Wm z+g+ub9?FX9h8kvh)*f6OPCvc^=+qYRUtBC#Km3Tw#lqWM%Y+oW-UMv0#J}r z9Xz(pT@b24=Fx9EWcq9v$W4WsHrvL@UvGrZ>}$cqn-?3zEBEA$uA3rHyJfI zML)@1pL<9_lIFX1TC~~gq_p$A3`*NZpD>eof#UjZOJm8lxIYqSm=b5;3YuJ)lYwI` zG3cRJU050P5{sIuHy}%oMGwo^=E@*DWwx>qz|t&~k9p)FV<)}Vo!)n#*xzeS8wlB9 zj2aN5BokUAtwC*h^lguwGbd%4CDRlWC60H2wx)}0CnAH0ZlnS`E{f?JVU*KUG`qMM zMlfo(3oo%c$oCMd+f?-9>IOwHaquG?cQWPdD~6ldTuQAn0W#;Yi8gt1=$p%gCTJ#@ zbl4Q&^GHV+H*k6MXu6=2t?|lRrH?}r!Xmk9ZRk)FTf0@e2X)|;+Nq*LduGIU!CTpJ z$eDQ+;5pKNVAjszCPE4(5H}x-ov;P2hGprgPP=;pnw_+$z`S3v2g_C3D zzijOXnTVW~>=HP|mfa-Do**6HYZ1pW%7mr>Ap}BU^#sr}Zv|Mq(Coz8LmW4D5_Wy0 zeJUd)!AtpRHh&=y@KoC{rMEd6TlZOTI7v`gM%Kj7@%=3(f@JvgMn@K>lqPr(u#+QI zCXvbhJHQ2H(zk5QNm28FC^_ZGYyrcZ8^-*6E(=+!gSh&dTX)%!BaLEgrz}sDKwv%! z8Ysrj9G5Nz>|zZZE~W|?98gJzdl9g&IeS}ch-sky&r{;4M{%l2yp1>2j;QWIGTB+x z7Dr{BJ%L(7I-mo+=!$l-HF_0QaR%Fe;G(Y$BFTAbj_Ri%ObaSl1i<>TnFZ{XqfTt~ zUDo?3n)YTf+SPjbuEP`)wGTzS#SIC5qjg{bj=Xz;8Q*Gj{DV6X) zsZf{7meeMZVK&I?W9}hCVOgmGZ(XVe=i8%FMY%eJeqt}4I_JOuY&<;@cLVro* z_pX;!8>A7rqD0dIPour)PeElu`I6VB9MlM`S+)=jf`n;S0<69fH4qQSYQ0dlbg?16 zy+&K0zQXzSDS;f~t(7G$$i~4mPE5K1=PhdGYvRbDyOQi6d5ArN^%JqIBeI zoc$O_LafV1#0{UIU>6#un?9;VY}H1ydUey@cPJ?!`Gb$oTf6(4>Dt;|{GI1TSNPhU zt&lHLc<(z3e*+kc=H`E zpPc>WpZV=AOfmVe^iQF*EY}RR`dQJ27E+u4IOMB<#wTy&ApLwHniGG)e^VF7+E5OXe(ljo?vEHYHcvfwJX`19tj2tvB^!l8oq*jGz+0 z;z_cTfJ#CE8YgYjY|&+-Qp0*40xQv~KcU@h)}(cRpX9LaUmOgiN+8^}u@f!x2h=xW z1ppPXQnL{&zN%J%)Mg5WtmKd2#mgUoJ2SnQKY|MGM_rCuG4v}1hqk-3ie`E@$FB5* zIvav(5z~}JQGV~_s))hHR>)24U_~iFIpd%Tgme(u4VTuFq@P*~=-O~;J)JkEqF?Z- z3FCgg_)WLkvsCa{#c;(by;azFz^@oZmg}?%IOrFh4WK~ObP<-bG1?!?FlX)GkJ^g~ zqO%}h*uu0XD5x1`_u&)MHytYUS572ArM?DlP!WlP3sMwsRW=@2#^03O5x%)ySDtT! z$hFR91)9|;nbH4wV-*4@LbukJLKT$;=a@`xx8@7#v}TeL&m1KioM;oTG=)pbp{fm2 zXpgdl5-pz(nmTbutbqhUn=DfGS6HM_Eert-0*mrC0ra&L1VHB67W#y>v$%NpowOq= zzVS|5!3a^2i3SAZi--Ij7lHyYS=BtEHK-0&22ryhhe#;^l#UJ9+8HfEx2u*Ibv&`H zjbkg8X`{i6sLL?QEYhvW!7w_cf!!Friz1kG-E}vE%;6YJ{nQn07`LvpY%A(8z--QO zW{sA9`-Gz2P_Ku4tZG9eZ1xbkCzh*VH!apAQqNHtVOR#FA2N)=z9wL%@GK zw@OSjhtSz@fck35ZqP zvwA+39-X>^9!X&PI+WTzQ9tYsX~ve{6zCko=~LA{k-XYzJ7J~~#|`77jvuvS^`2Ty zmsT}h9%?E$4uTc06JY!@f5BX(SD z>ui#xw>WCEq@lYBbJ^D2)aGQ$(@x#Yz9Zgpx)XRxoK~VM&iP{1GgF06&<=5YQ%^Vd z{utd{O*iSYeg?DXWS^oP=;^C_o{m7EnA&>YdGY(^7yr+b6#q4eaVBrLzL%5XmYq#l zd~2fU*JRf~aUjmve+QKRdLsLO+BUyqf~0j@UA)Xg#GRnR7_&4d~y!dL>%6*>A4-0pC+Oe~Yt5ih%_~ zOJ+bguml)--vtB$3>GTl&_5Ui>+unK@b=3;3V2vbG?PGt9VY6SHloV3L8@87o9g@F zZ>rEva8rL~ee^7b-uh|t2O-xncm@mfiG9;Nms(cpcVPTeqCj6bw~!3iTB{115C|Ff z9ysWDH?Z-A74B^S8=D_cd~?65JrZ1L-}F@9;Pkn(*4ZBSRmnrcqy8)VY@PEi@RpWOt5K$-U3=lIt$~Va&G;8 zX{(*Sm;IX>J`*J~fOo?=qpYv`tS^r)FYdoK*{NkePB5@#)?x!8^@@Xc>u~XcnG|*m zn;bU1sPCvK&dU2}ZFALa)#fT*{9f(Ff%=Pg*Iry-e{o&y#sA;lxxiUf)qQ`TxxfrF z;)s_}%nk^OSLS{JLJlxol$#7Fnl%hF1B}d#xgeM&B8nM_7e+}@Fey<{FiEUPro0Vh_;Fy< zvx262qW&qa6PkG`G1oaY!ZAfN1{X$=5rR0 zl2g(n2W^(9m8F!V<@n7$qn%niLGMqWttKcbksY_w^)o|x6iJQTCirdK)$TVqks%%E z25S13pMRwsv=a(m4))WL&LN>OlZV^>>My8C^!U+C)|#jFB_2j*n3-#>Ci<_l{9ka? zVvc0BwHZ&+jaR3WU!7*!p7W*{p~ER_FlWfGtNNMKRUs;o`q?j&;$^`9rV1_fySsuzKmSRaSh6Y^q9BUzu^N#fj zb37xsCb2YifL?iL63gG-W{-gL6U&dDol`U0e@yRrMqeGM=_ynDu|@xtiQQrKu^!>O7|NF!-^Q!|%>LMW88N6xp7 z8+bbI-EubY&?qsA8z^S28(YxW|o>9^6Ib+JpZfmDlN=E zvWv|3-^r$SQL*@%JC}hZHqx0rAl>^=4m<9?;g#8{a_1i`&9)nf(e4{_u(TxM@yjBkHB`PN|7UF}yq-El@Mlcot6Y$3wWC#EXw z(rUFVGxTSH{@kEnhMr;KL3#G$VOB#?Y7@h$t^NFZ)~(Z~7)6Ix#II}arWo^#;P`co z7@6AELrq33TDFRPlxV4H@l%s=qIH9b+fkyWtT4IMai>bhTyl1*{HJq?mOyVGHQrrk zOULaZ9ka#RF7kgXTg-PDt3frr5$gpW{z}&vWQSKerJUdVVg{s(L{KJn)61;mb`R}! z_4AkaK*ZVZ(Y;UfB|yP6Q(C4ebDMoiu6`3$?<+O?L5okr@3;7@?^89S7Zt5$$l$F( zd1PA4H1&47AJLYH6K}exow_oI#ak{+qRqe?mE;eTc1HWK+A=mx9h1uvr>QPtxxW(k7ek*m3nKdEqPd)98*e8xaf4;br%*!05|Sv)8Gt zZ6u2RS(R&%LA9O+a?d%3*4JH}BRMIF+ru0kdr_&s+2#Y^ea zi>Y5C{cw|Kx?$)~pQq`jA8x)?LVmZ=_IBxj62<9s?3Fy`{TIB;RQm|F|5nkvs*kFmznfUqJM#YB<|W&Hw_c@8EhV***7l8c z$TveFLDf}?8$#1NG^>6)1e9{F4|V48l~QUWOep;_jwHX-_fy?4uVNEQD+@iwvA}Bm zu>Bbf+bdK74yW+L43r{F^fPYh>MWX%jgVi;nU^Pue6{q~hXmzJ18nH0B&b|4P zFkk$X1^-JT!k36Ln$Jx>q7(gZYb`74yy4>@pLtZM<6H2{hY9IohCAQtm5}alzgWcl zb|RjI^u@2PsT^znFy>iIIa^RH)W2`t=tK7|7Xk>TuPg(T6e#+_7S) zxihnjEFJ2bP8j$q)Ayjh&ee}yN!d98m1&l~v<3b`4Ee2GLxkNb)y@onFS+*zcb(G2+-&izf@(+Oc9~! z)X<>$E~CV-QC*X(yrn1;^4#b&MG#K#1?tmAvwG$Omd~4vCJGD*&ctbgB=H@aLQqgR zW6*pA(^@A`Ba(R!Gyj&1FA4U@T`I6@cQ7AI=fspmGas9v4Py$O`l?h4r0A~-dZNa4 z6jx0=5~U0~mW-C=LeZZJO=2_<54A+)n18X1Dk=|+)HG@;pQBpSX1rAz#(d%jSUxVF zyr@sKL5g5E3aIKIMU?Waku^%4egaKhZp~5qlO-k{bZaJ6DI}Uy)%~%}g^(_|IfhA9 z6~uo2Os7hsA8~UoJfrDB5+BE$s-MJ?n%0+Ur148;8BETquEe}L#4*j$lafE8Uk6#_ zWj#9-vc5$YC6LbSvEf&@Ol{!v#tie&2r9Sx@{L5BGeaLyy44ac(*|iV53e4x+|RTR z`e0#6n#rD>(e{Csg8ZOuqLt{bR^l}~keO`y8&u-K-fL<|P~W6ovM=C{_NBcsGkRK@q1N)_zTAgl&u>COQC+rAO zz5Vd{dtr5&jJ^xC+tz=g<7BipXouDo`i+yudrdp5mL{^pYh&sP-C%E&lzfti{xuD) zjuq`5S+}3IZy=R?#UIhonxOT|uT(5hi#HNhC2;S48ZPmRFEWTZb(`@mRe!T*93$-sm=L-YldCGvkq$gG2*V%?V|GV{QAES3 z$L2znyGebdE}K|FLK#x8EHUyDsdtSc^WS9Ebdz+Zzd6UI0gVvLSFV@fIVRTJ9&1?S zXeVMPOYFdeT|^|G-?CLjN(i(m%5ggHnunp>Z?Nl!3rFDEUWna}2)%?gc+M@a_L+ z1E2PCh`BBj)TDa`nqAQhXo_XP0w)7zn8e)a*QjGn&9TOjzb@?PZU}}>diOJ&oth?F zqrI=dz3F|0)cZ;ZGUBEGJ+bju7o}etp+sxCZ+AadX`Jq<3Z&bP2U`A{742!~n`~r9 zvB|U`iFC4-rY$p`O4O$XpGkZo-5&BcPqBtbuSi4;)Hl4Uy{aeo_CPM0By}Rp^1A5k zBG1f>>Cra*=zv3Jp6uk9iG=23!wK|>@ioa0%V$;V@noRwuLf@|f=z9w)ZLVDVj8VE zOQjMrUZm!$n@j1?(kXTG@j*}YskGh}T+Mb_>6iL#%KQ4P@%++6`cS%hA7fKM%Guu( zvD-C$QGS}m7i68#S97-=1V{f#TAHSp351cQD!0>wuS20fz7{K10jB>CiPmb1N1tZ) zPHV9l09f_3a*F(vLHov-!J&tmw! zuMb3>ME%TINlDWX#&o)_O7B-3tJ|Vhl|zofD%YU>iJ0(1PXxkovD-0t*)`bU7_4;- zmO2J)k2|7Xe>~>LF4thQW3b*eSne1saSh&nEGBBtV~!tN9fM7-!F`UwGS}e1x|pba z>l{(r9fK{d!D`1~g=_HMqcKtYA9X~%;uvgm4IXt2R=Ec4--wAi^bJSUZpYwd*IKL?r-4XTr*JFO{at$^+2J2me<&MD;*Wm57F;RQgI(}?*3^ut2_c;d3T!RCT z#6<0T#1XaKG1w9{@Ru;Y<@X8oqb2rdRVccv9S19-4lsD{YcVhOf6ejY6~|zkYw)OJ zu*x-Pe>f)U(8G?X-HyS_uE7S!V6AJg)G_ckDcRQZ^))d+cCB&z*z6drj~e)k89Swj zT7~6~^(9g37`(kY=E0uTjt5&EgH5i%eU8C0*WkcIF;V*-azt%+47Ruis~v+CuEBc` z#zgIZ&=K{DW3bINc+@diGqF#R>=EpAA zV6$Ve-Zfb67%XuO-o8I3YR~hQ$~;)Zb`3T-25Vh|rH(<{CP&okn__=@7*+xb?@#+NxQo8PYS7V$D} zVV#0wU|t0p2x2Ttvr1;@TjM4h6Z|)jJmtS$K~f{>)vOL-jvT@L%%r*IJ9yosBo60& z#pxSq{rn*qtxII|YXa{evqDi@Wx~vkhjFQ8DC15rGh}9sw}(>n6Q;M@&8c;$ zCr%)2nr7%WpC6ZQ&6tDsl6jFuH#YP&0nv!`vwFa`%FF*$Ms} zMz8tw)dGh|i8?&8AkFP1$O+QSBtcpq`}XaeTsm%6zo%*5+-^F`Aj70A=|sHeM$&7v z_j@HXtev*Neefv;S9^LHC!fucOM4kmTpz;e*+`umsh`)+Y>LBa7)@Fd&(kjQM;6&z z6VlWr>C5;`O3#FZkUyPa3V}JXgQYWm(ACM{sE7y&PWlkNq>S4V((E?J1Lg}ir0tpf z&S+9vA%2-|$zd*Z(4u*n22xnmpd?{Q!AX?1d-Y4)UASf9IFD7|SWjm~2^$>-dwE(^ zmur?vai?EtW^o4FC;UJXfTc_d%T8Xu9u2sq6l1?%T0>t=GqZtVEVC|J)4@@ET5HDW zYTs`3q_CBL0?89jQ-I)p; zI_|%dukBVyjnVf$~lH?6VRk9{k;&uCIiD7^!3+a7&&3?usVQ4BZ}4pcHwC+Mz_AUdZ;p(^=&Dv|Ds{n!jHrV zdrC;|GtweDPvt@ty?Lg}1V!#R(p;6_#?n@_jGZh|^6N6|u1vILg}R(feEdQ|wbkl{ zXojW*wVaJ>CLz?QA&2Em`aRZes+M{!@sT8lG26Zbty4RaJ63UcQSqkaP=?H$uWd+Z zD~{wgEiLV-WdCfB;haR|pAQ&$pDAe1G`|UYp%SLPi3HAk2YQ6wJ14oM-J(2 zZzkwW9hFV9aE6ahKZV&<(>O2EoyHN*Z)^;Ao5%hq?uE@x6d8% zQ>%o$6a`bEGQ#!P4-@vIGJP|7thmHHm1Xr(`YMrZ=m@n(sF%H|gz|5U(2Qpjwahb- z6OY}PNT6@GV=TgyJfs^}QTrxiyvP=llO{AlLJ>my*x1pDERm!JmI~!+r4ZFr3xha> z#jLAS_f5YUtgcvCruMWuKMhEeGf(Q_CD21NOVIpAUb(H9vCzp(qmtQ_y3wZCDKqG= zv5-Nll-vU$_IBzEu%Exqd`YX`v3xStgUI+2lcOdJm}zxubH?UG1tqA>Nv1Z-3bomz z7OJ?@1Hqc#Vksr4u|&(fNYk>(jU)ROyd7w(Olz%}o0;i&PSVoWgy<_VT1Qo6`7FD> z@r?{r8TQVgoT-)=HI_&01lQ_7CpT#8lpBeDZs4Lczvz*2IaWZbSYO@BSrzd?uT)31lp66x1< z>P2oii(Vwg_y5+M;ka&3DD9aO{JHjxEV9;iUxK7v*(}B5M_UL1@v!T)wY*mig5R4r zoqF}=lguzu!tmf_9;JM38h^>hP{X*-pqL?c0N3^^A^pKlf?SvO--7U*!p4M zP~?4?(1ytQGC8Nqahp^gSEKM&*Y??8V|^;BSzg7KM6@jT(B>+$;F`bMU~3*`d>-{T z*dK~&>=zpQ{s}?Jk@t;7t#wXjU6irS@r)O8hns;Ygrq;p`dbM?*f z0UX^Uk9up`KRUhetyPcgZ3yU}c(EJhy zLtXkw32JO_b&xPfW{X-z#7mBxnWoM#oxxmrr#Gk;ZqX*GxlHhXK7b>%cCxfQL%oZH zpm*`l1V2p7R9d1`7BwA-iR$*Lx)a019zqxCB7bJSm79x-`c~px#Ac7a_Wpl|(sq(UH->JYJhaje(+44&c=0wV;{E#*8fa0Dv))=; zg~*^ZzFm31o*oLoqT3fJXXvSf6DbQ@LKNdu#^Tt#KPejIH65%=&F3xd6if5@Oabzg z1Ae-OyY<7KiF?8gzULV`NR0~;{bPZXGk%mf%Ci?oZ4jnbb0~UuBKEge{fM;@q$*)uCEWDs=vb*(g;6M0oCu@%ZPdGnM9)Cs7OM&X#baZLC?s3&s9>BY zXUlcx4(`K!=-{fO+`n5m)IT}xT0az&Y_l=W@7wwx#Ofdz9mSjiZF;d`^||?O3bCOf zVYvFj=7SY^UA&zWP5!3cn(Rf^{*y{TM`UaQZ!&Wi8gb*lLmV1RZ!ra+qBI_VMl^53NG+m;d{T1IakzZg8G7QYpH+-|hzx1}U{k;ncX74ie4?b(*Xm%>h? zKU=cjHCkj7wiWM1Z9i$Wy9o-#Z^`?5K2X-z8*M^cN_Q{vl+h2+<6jtUa$8D@ezHTh zw`r?NWYs^UUy84(UgVLbl(C4hzr$#64Yj58@FG9GP0tr6$idFrrEkZ8n^%_U<|g0Z z4(ahY-HZI(=-wmYOxX-hfPJDbLo(?-@T*OMiGG6Gdj5~$dIiMjFL9wj8L zE!AsF4Yj2vw52Atr6#qdCby+_YfJ6kmYUL*n%b7yqb(IX>20Yew59fJOFgkIHKQ%{ zq_)&vZK)@>rJmB3dTJ!pzk6ERYkv-%7J8$)siA6Sb5o^PUR_z%P*z)B=~Y%&mNzxj z)mD`^dNp+w&DA_=DDxU?t7gseYRj6c>T1iXs~T&(+RE8=O;zTBS5aAAHNUdKn^iTt zxuMcl{}sue7eb!^iI4<5@+Ouv<&>6YXJ?j{HqI$)sH`ZhZ)zy5tf{XqE3X_kv81$M zepy3RS#8s}OE2Rte?9@KYmh-!_RO-zs`AoCf?Yd%T)7@)l_R6HsiCZ@sc~F+aWT(| z%BrjD%FE=42YQrWIST-{Vk z>QpvW>aoOg`2i|1x1Kk?!Sj}oI7v00*Nyb)4pe_H6?nUQ6YHA7RisX3O=WFUWktBW zuBN`O7QGh)E@x!$Xhd0KWw95H|In$!1`oD(l>-~AuCFX@3fG<&KDYMVaOHyX%F2qy za822Qs+#7SaAR|QeO-e*kiDbi($(?3&Yx0QTS1DTxJN>fZ_&B`pUZE9Fp(p1)@hfWFV(z9a=?v%2Ms=7GA&FxRU z{@BCYrEfuikJLEY)~I7`$PUuml#osVwlyv&2wl01mbp%8O6BsK?0C5z2=3&jsIIn@ zmbrFz<%DU~^NUM6waYZRj%F6h{Y3VD+1vYH7kLJe_M5&;Ti-xmf`X5g?gHRkr zLJ*20 zvg3F$(S$N9Yjjn0^(g;!M?Ifb9k15vrRX+-dLegN^-BuWOdcVee)<R;Jr>_<7_u z9y!?P)Of@%ai*9|K0HJnMV90pR+be^x)>iVsFI5W`ER;MT}4Z;QSX>7#?8#*%*#$` zSbBs^F-aKLzvC%9GY`vE=Y60;5w|2^FcUs{p_xfm*xZO4mE%Y{ViG4aOQJ6~dDCTD z+Ey!v?&i3e>Ns|&L8cL%dDKSK+VIP9Aj<3WnXDmsqkLtguS9%hM3B2jX~FU)lr5ZD zsX%ostZL3WbxBRo3xgiRxX~s^aho{5n;z{UM*WDJj`6(7ERFBa5h7JzSEWAUxXCuD z{iZ{4I;{V$UR$Re2s&~$n>#z{Ad}ktKi@GAUUQw^^T8|Y_-8$k#QO3E85D{IFo^~>l;&aaGi;`4o@=zZR} znzGp#e~if&_pNv2pcRbc>kse!PHa}EQs8uEf){7j;nC|PBPfp_DJ0n+LrAhemXPFp z3?a!mrjT?f+S!>lXG*GOGcYl>thS<>@2x6*YsBrl`+d%6HXXaLV+z~Ray|EBNTpow z5^s(-q|5L`o2kK3Bkp3`4$Oz5RL}cMPFZy*|9$cN7r~M(JO|6?7ay^+#822lx2$GAmC_$N0Ls`jORjjf~gYNPM`r z;1Q*L*z_$>QR`T6{6x!0XJ=YVM4d^pT-)Jyt1S(8Y4;v=wOAaQDMTJSD zQH8NQSsK~CTpC%QB8}{qNK?$8th_JkZhMHm%MI{kl?ol6) zr=}Dzx@JOf991RiCfbv5Tg`7QZ>X!TF0HDqVD3<NP6O||8b`_1ls2BIr+8&mMbn%~4Pz^-X3tSalV_P`a-Ssx^pE3? z9Q+R!zT6T&XdOOhyJ}v12hmIpq82A+@gf$a*74Mj+^LldOqbl9z3DQD#sS?GJN$iI zo?UUgO`vh$--_HuH(+#D|_*UQcI za`L>~JTE8T%gy(43cTC`uPD>Y%FOhNvQVs_zDfu7v~x>rAecl?UGL45=D8Cu|8P(MNahpz&C0`(bI ztOEK5D;|Q?um&E6ufZd*7QPPOfJb2+JO+=$6R;lWPpqInv0?+zr&#ecd=s95P4F#v z7B<6kK;>WY9r!M6f$zcdu$4HeDNsC#V~gUr1a5&_VJX}OUxM4=%MkQwh;Iw=HGLl9 z+d_Oz--r0N5MR>=QXh%)DC`?G~ZhIoCh(WC4dJ<}hf%QZUx-stnp1M|1QXwBaoqcwkvjMn`1YCg`sZoEd& zHo$gJJuAP_Eb(H{fOS+0t1C;Hpf|7HyvbDyDyxeRpR3o@=IHr$N-R2~)nNgMKN~xL ziuEfHrT4Kv?Q|61O9K~7Y-+Js9o)>Cs4u}?EE@YBY_)tJ^#`yGUWDzI3>HtF0hd83 z)LULf-2<<~K6o46fj`2Z;UpGZiA=Z@z5yHIPw+1M%W@ivvQCFSa5fBpbKyL=2(E(9 zz%Sr;@Fpa(h-)wmg<&uWE{7{&CX~ZXa5HSNJde5!w!;qiG5iE}Ti!r@6aH-pu}CZt zhFXT9j({;R7A}JcaJi)(bsjWZZbH2owpgA=eG#_9kKo7f6Lz%;l5WcOQNU($k23*0e(*!*On6sXW}=qE zO>i^3WO)U37rbhD4fS>SE4&L?J$-Uf2g4Yc2v1u!p>Ba4@Du2LBIOP8ECr~d$TAG| z5|{@|;8s`)UxEAJtFQ%rXt^MRxWN^06?_h6z)Yxs*-!)Xpa~YkS75p2e$)ryvnNx( zpw}ln?-a;}T$lnS&;X6F34Q^;wQ#(JcLLl3x58tV@adj+0c64u_{161F_;FQgBfrG z+-TW|+6rDD$_M1aD3}Y4um~2z!|)`$1@A)tGf6+#2|tHj@DBXhatKwt2mgT9PolyH z&<^QgpPi@&;lPES_ZPVFBA>me?Qnjk=M93d!u?S94blXf;0y2&tcHW|7f4v=(+yRm zS23q0wmh&F>ynGmG8IL*vJ`Z1j zjh1hsZi3D596S$O;ro_9p&o$0!QbJ{Cumb)Kl~Za`oPEgx96P*VHgAtwG)5%S14rI zn-KEE{KSxVJ%oCMXwO1kGIWDmFgt{1>fmZktybM2uSKz{4A+G?2Szbr|BX}nh zei#BnVHk{pF)$V`g9&h@WhQDl%z|pDhbG87h48@VEE`c@fDNaHyl=sC&S z$Quq%z-IX5Cqmu@aA9xK4KhzhCKNy+41r-V+%f`nB>W6^!>?g4?6ZW<2zfmq2Z~?_ z41+P2%TYfAx5HOq(3v4G9}3|TxEmgY$KYAW`XuHs*fJFL({KqC!x+o$sCU4fa2MPI z_rbeog}lGR!D~a_A;_GIJeXAHb2;i#SPpl?KFdMWzrcfALf%7A`LmE$1vStBpNGY8 z3w#+KhbLjg&&fydevLmc1gfFgvIJE;0IT6)*Z|&M$}yxsZ|DPk;cVy+=fL@p`8(vo z{x?G20oeIY$a@t={UPLC3Lm^1^4cNn_4IB8FVxdJ0NQj`3jCOn*9Xpn^WhJ$9}ZgH zMHT-VK;HpQImh!(g|ScqH(KsN6%Sh;M|}dm2hYPccoBYT*@Y_pX!$GZyYM&5KT*ZM zEXn7x4*+^V8Vt0IM->w-C8*QjN=pmseX!B86;<@P!1K<8$(CuTV$sF4!SDdQ3*I2! z{csRI0FSnL7)0P+PVMxch=Lic`yYkU^djl2j2{NNe6viK^1rW#pf>6`@#Dw?I2{p5Eu?)VKQ6} zGoTVYl|8r!@}K~2fG@&5um)a&SKt@07Y@Q9%loLq4k6z%0<{g=;nRPkU4)4+8D_)v zmKM}|VXfr@)JcC2d5hphc-gWO_2=+Q*bRSz{cs4{VDEc8gYMSunsoDv(O4ZfSvFvXvfRH+WlQG|7uV4K9=u0e-n&1`4-9r zEVvbKxcV1*-Wt4m7`_I(@ct3hwXhrgYw#=hI``jzN8z{JuS0dd%J8hZhA?ZPYAebbD#BH@_03IwP`r(}c?`La!xOL`o`k1h z18jt+;hXRbY=UpWvk)&VY{oHRS&7_g!lJ8pkssg9xOooT_EwKSbVkM`poc_Wd+^4*UD+=>J_14u>J{o~HNJ~fe$mj^nZJb3-&W-Z(!?Mwbfq5}-=5K%KTaU24_Vnc zxq0~og+-AOBS#gFz9@701)0-H?Ta!OT#&gSOrlrS&ho}h9L+vC7TZK7dKZThUP=fh zv-P>XJ+!o^YLsg0kKq@TPPg>Bwbd=XL2XsgRBBWzUxuH6TPoce=9bE!hNbv%^VTBc zNBI2`yic%%p8c5nm!bcsJ+BY~`};BbDSo{IfqgyO$^Fk@Dt6}p12yK#9ZuMg^HXR; zw$QUzxZep&u)ET+e*o%ugW6meJXbaDPirw5 zH@eoLzJ|MBfvx#P{%Rmx#9s$wngX>rH{e!&>pF<~Yh?T;t{k>0cG~J_wkqOIa<*AH zLCX_cj>KxFBQ8hsTO`G$4fjWMdt|RoIuueC0=GFf;$1DHlCSIVvk7;)$R3l1iDcRl zslC#B;qcn^or|ww7lQdkR=`uWloG!yNez*~1;uVA^D7$Xm3(Bcm_l~s=1?iL< zEofb=TO+}hPWuQKeGwXGdIzMLRMpD_Dmu+pRc%$%Lep;X+`WF*^pJPugWo%UQT>z? z+uMhotM;=3-a%Lfz3(-*(xV%3qPOVYl?;3SEx9*lc`y&=QV)OnL3{h%Tie^YH5ZSL z@A5eHASt<9_mouYu18w>2|Z8DIH}jkr<{7)CwiZLMxQf3dDf@Gefyp5TR58e@p=ET z+a^9q-4nan*RS%Sm85JX?^}7++6}q`+0x3pxs~*8<^9!48EWON*vi|ml~-RY@4Hss z$*sMB!MN5_;8Zvb7;tMPA6icb4VE$Z)oKT{TF*lNDIhbRq3)^U@&f+9fd4Px{|os4 z0{*{%|1aSG3;6#6{=b0#FW~<#@c#w;e}NYCyY!`TpN{)<+^7FS8T?9%Mj zUzpjJ~*}Br>MB#2X)(I41Dkn>?vx+;m#-;!t~tBOE&Y zvoQ4l-|LWiyB>PV?EQ}>L5VESO{fvIyyLG&nyCZj2c9tF{(AbM&L zD2SdNvGpj3-Y0>A=ur^8F!Y6fa5nUZ0dNk`zIX#c{n+#20=N(^f{S4gWI`5XLk{GE z8lZeAfI^^m%*iYaFT+sKd!Kg&3+X*?I7DCss8o&u6|B)P2FAiTxD+k}mCgw;5hlT8 zxE!WH2~34)a0Ofmlr+J-g*vE*dC&lj&;-peAFhK1un?|?Bjx{p%KyXjf88aq z&ziECac3WJ`TKv=!%sB53w=q0%oVH(>lM=hMy`aB(IN)DUnL63_z)bk5-~plc=1{)+xx`|J?v-{9}?9=s3#fPcaV zU@qLWq5l_1&cDHq5P6|Q+FnS6B+#`J`^o6Lf$VojjMfQmr_7V^lXx$-K= z%g*^~?5H46CIb6irMt0H79KD&JfI?MN{}f`#K`wc;R##)Oh+$&gXdkz59}C$xN*ws zahEZid#yC+CzGD1fYRD_!t?!Mu{<3z(o~E+eUPog?j9v3*Kl3}a(AkAcN*#^pf{Wj zXFwk~6Fv!N!KWY$eZl&ZSKhR+zEUUE1W&Ru%_H-*ipTnp>xW}Tl3!$mMnxTO~I zOscM3Hcb7Hueh9z+8+kMIdCov1P=WQd@CqtWoP;Prg7!vS&X37%w!C(iQ{CP@MK#n zL5Tb?eba{N&NyLu*$LBFUX)6w^Fd+afHvJ{?6n4ck=1+Asxuj!|Ot~C&1oL31wW6cBEpu}1m#ZbVGP&s)lq>6JVQq6wy-tQP zp5jjR;kk}-V|JWj(LL40Eh_0up6bS=RA67<7C<`L8pFcNf~!i!dA zX%xu37ag$4P!8+v`QP6&EZmq z4a%6~reZassI)XHCH6EcH~KiJDXP1_zS>XYZK%3JaLDRarx#hhoAzz?ne4w~<2;!- zD9)FoPJt4b3e(^UxDuwrRd6+Y20F*tjBvz_^AW~AVzG1L>}RgR{+v2KT%F_8WS_fn z+G(H3{!Ti}%ExO!ar!Lk=b#j3KpD)0a;N||9!yNwysP^Nd1s`=Vi)8ckKMexmvEXq zQsDs!q0WXmPzBe*T&RW`=p0W!zv9L7So2Hq zjOEuHeV}l4jz@p{+>OT~`%Ly%@=;Su__Taa@u)|g2My2&P0$SUK?Aq4e;xV-un?|? z&%+Jy1+eifY+|3|N3M)Uh=z8H&Aak){I>G7J~{BBRL9G)ePOoWYWnZ6YV0Z>(@}L1 zwCMY!f@eyPJ7tyvTub<{`y!TZ1f|0w)SF;2+zd%it?; zSUP-!3VMXdn#@-_bQNJyTu;%*DHq-!7S|hOX5%_=2GitNS`Lcqot?w`5i6pWw3^I8 zj^0BGV=8_sjN5D&mHxr|J&aipwsq+5B0P87u-y|cY#*lb;D!93A-}keb6lQZ#4VKN>0PGQQ$ zOkvcu(T3?E{8E0cMqL9B!`I*uSPNf=Z@{B)gfL|(O!9LDGIhD>;QHBrrk@V$kR?AK zLwy{cfc5YsJOvwIBRmc9{JhSlgZxZEW>BenA{?hr608+Gu>~M4POvhVCuvf_^ou=6)%jK1=n8m zde>|Pg|QX&`(Welgz+OZG9AMhZCjo%_rtgVRTthz>+NgynVv7;!SdT8DV) z-i?dy-LMDdK^S%KhDY~q7<7MWS#5J!!$NO#<;(`7nNZeHKF5pHH&j)7oEqj`+FV=7 zpX!BPqxxLp>&4Wk2vkVF=RQ7HtzQ zJ(HWjp5*D7#+#+8oG3qaDQ)Fe{^^*7nghGT13Wi+JURmin`K@s>b@Vrt&$ZO?9Qd zMX#x>fzgfNPQw&DXuKdRJoMAy;t8dfPb;2QJgW54lG2e($d*osOfQX08B^jpavPd! z*{obz!?xK{^rnyQ3opI4ktq>33<^{!JI<`X<4xjEU|X3t1O#a8nvi*`#xJC5FH&$mW<5IOg5xu=49q( z=4Iw*7GxG?7O_z^D=RxICo4BAFDpN*AgeH|C_6JdD?2+oCp$MgFFQZGAiFTTC?_)~ zDpkgCpR}YFE>B8Ah$5LC@(WFD=#}QCoeZIFE2l@ zAg?g5C_ghlD?d9wCqFkoFF!xOAiprbs35Z-t021|ry#c=uOPpmprEjzs4%lIt1!DT zr!coLuQ0!`ps=v8sE8mI;e8RJi*Q!NBY*7*Lo*!Zu6Vgu4{r1hdx!Llx5&hM>HZ;F z30Y?jm@ca>Eh{gl8)HPwp~3H&z)A(&?t+r0Ec`m$uEr%NV^_;2%NfLj)-IoiuUW$n(Op%BrgAI7o^;n%?ygU-uwKL$<%fzgK-fIalg%+h(zr^|Q3J zd_h_1Y+jEQNSoJO)llihc^0nV?D%pW%id5~P7jB35?OUy#mW2CRoDBc?+<9SAq+Rw zg{`P?4afQ~@H!YZu+SyHWtOM*Qoini~*(FUynmM7Vnq?%&@5wx$sDXv@ z1q;e%R?X)`dDXDq&S59$6} z_%C=J_CklW%;wh}2ulUWrs%wRSEA%?vSCp_WDWXvU=(#i`a_^=GOGOf9R&WofnL`Z z!XmRb9kYGte-CfL+n{R&e#xHNkU)m){Q>?6e}azTCJh^_;$^ETPu0ki-?|Q3+53^< z%KkI={|yHYlg)SB{F=DJl_onJ*=O3gA9Q5@1%2p`{pIy=TDdgTbT|Qe!ikUpCqXYz z5&vm28m8g&z9y7r;=Lp>W50r@`wWbcyhG5;^5->P_>1Lwj(P`u6q#p`^y z04@Z%eH^z+3+eAbA6CDYORD5t1WKQHaxUiiAkei0`2d$3zR6_BV zA+H{F9^j2h7mAm0Ux}Nbp6tLL*=au0(3&MaL3*g1_5y|TUEC-=w7XrGn;xw=RC>7S z+@CyG9xs4}a6Nn;Zh$Yq7vV;b>`hdDrAs=h%8ITE)J3SOnv3CPSOT}et*{hs1Gz7y zV#s|r)N62;g8s+olZf!csJiNTF1v^9{Wk8u#Pi$X%diZ-0(Zc2xD)OIx%op+U;a4M zEmqDTB@$OU5xg7q9#{b_a4*~kE8(kfKS<86aHDXxpeEr?&ptr^0OqUUL3jvO!y0%P zz6OuLTF_O2yD=f^2#kXyo?VJ6x#v=dgM3|yz033*Ccs2ckX6nnq3?w%H;?f^?T)Ti z+^Fk+IZS~Pm43(|pNuw3GsX%@u{EO)*`LO}nipOfyMVL!}Gy2=m>ykPP`?Eop z?94%51#HIk*of;@Lk-jdn;FfOM8Q`5ujhUqG(aOXK{L#U>p=b`oJ`tKR}`Ky^twh_ z_Y1JI5Uz*M!wv8S_#)g0a=*-R|0nByiFLmSJ2$~%xEYqfEx>YiPn#^|{c0;Cj2m0k8_iG&Y{K%KNlBm>*|DD*m3+{${UK7M{ZQNl z@qfU&ABFpsn12=ShX-I4JO~fLYFGnu|FYx0<}}~`CAfbW^RK}puok`!-+)J99Xtkd z|9jj7{xA6i?_8cg0qa56P8*jexqk{az(#l)z6sC3CXlRu<35meHRV%R292B2;#=5x z7B<6k@NM`Gu)y47gSK(M7&n3Yz37Ka0M{vBV44Lx&qE>iW``?(ggBnnF0(c3K2uY9(l3j?q zK=#Avb?vb3yJ4q0q(Cb4fHX*l6F}}?b=*fjNqf%o3^)mNCGk=}8T~16D(KyC8mip> z`7G{hj5V(idsHFs6PWde(?L-^0~N8+{`t^PQBH62-ORwvnKFm7K(arDD%sCrFOa>$ z$_``J7y5x@pN;CuP7PCUtn4kg8G!jYa4typKvc;-7kh#1gI4x=n4J$7fMhEvUD@+- z6Ugqph<-lyE`p0evIn6`_TAVEWRJ(5(j*hJEXamAiD`SIoQjEJdo^sRLO3~ zULboN_9VLivqC5W$sUaAhI>-qnCzXn8G`vx_%ulNFjUE|#$F&hi8Pe#OE4P_5f}lT z)8xC3>sN_ zZeEHTT`FI)e;M{%KRSnhI`)HfZ^O+Z+>FP~1egeuU@}||Q=kMCpZb1&zZC0U|HbsF zcs>oT0LA-CRM~r@Uo1_hFZRPU9kZ+8YET?LgX-p2?%95r6rU3Gx^7#Hf7tshd=BJC zDXRQv#7>ZJTNe9%%)qP+W`g`EM|J)9J#K@0ZsFFRce@u4on|;|; zm|Y7&9?V7W%6uEw6q>1~*O32uikL+5g;Q%xlM z5bApnoK~WNh(zcHsgMpQLN7QKdP5&L3;IHTI2SH}iy<5Gpa_P-a2N?=;8M^@Czpdx zIhhW@m3a$&NWyt1+y!^TJ+J~=;9j^7l-?uG_v8Jm^Jsr@r)Ld3)1_~;3&4Jo>yh_W z+;zV0x6d9xeeDrUlR`;!KiWf+lO3z8;<%LYgFJr--g#6mV-7+wt#mz%#OXS{LYFH! eUYKM@k`<1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_dropdown_custom.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41608:function(){throw"Canceled!"},41626:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_dropdown_custom.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=41600;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=54232;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_dropdown_custom.wasm b/examples/component/ftxui_example_dropdown_custom.wasm new file mode 100755 index 0000000000000000000000000000000000000000..e3316535a59d9f0768de28ebda7880ee29cbc531 GIT binary patch literal 325367 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 ze{|Uf=B>;4w5px{u9=WKi1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_flexbox_gallery.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41536:function(){throw"Canceled!"},41554:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_flexbox_gallery.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=41528;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=54168;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_flexbox_gallery.wasm b/examples/component/ftxui_example_flexbox_gallery.wasm new file mode 100755 index 0000000000000000000000000000000000000000..c820fd07ed266ee6278e5e16c2c95ed25ebfded8 GIT binary patch literal 349181 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 z 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_focus.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39192:function(){throw"Canceled!"},39210:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_focus.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39184;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52088;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_focus.wasm b/examples/component/ftxui_example_focus.wasm new file mode 100755 index 0000000000000000000000000000000000000000..3fb9f27fc0e5bdf4c0b332528dc4c17e7a381349 GIT binary patch literal 310203 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%0A+ziE1^fbR7^J2 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%0AZsqzkA~UJ=k0JG*x^3J{0Qs={{bI^Pr#?( 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_focus.worker.js b/examples/component/ftxui_example_focus.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_focus.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_focus_cursor.js b/examples/component/ftxui_example_focus_cursor.js new file mode 100644 index 000000000..b5ed3fe77 --- /dev/null +++ b/examples/component/ftxui_example_focus_cursor.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_focus_cursor.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={29480:function(){throw"Canceled!"},29498:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_focus_cursor.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=29472;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=41512;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_focus_cursor.wasm b/examples/component/ftxui_example_focus_cursor.wasm new file mode 100755 index 0000000000000000000000000000000000000000..cad93f76c61af13ac5c6df8e8c04c2590e6df37c GIT binary patch literal 269248 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

    MY^|Y}-7v&B+{p@W+c~45s9nK59dA!5hp3iQp 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

    #(Zh(Udl}Y6YDhOwfC3=&}u7L{Gtr~ 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

    4P!4-jS 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 UM41){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_input.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={51680:function(){throw"Canceled!"},51698:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_input.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=51672;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=64312;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_input.wasm b/examples/component/ftxui_example_input.wasm new file mode 100755 index 0000000000000000000000000000000000000000..1eedf7e1670beaaaef9ff9af76cd8b05a0f212bc GIT binary patch literal 329969 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�!oxM(EFiLXj8E`XTy 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

    R=*a0L(;k7B)s7hdb@7u(7cMK%4}EyJ?S! zS*Js9#nKqIE4&Yv>+zx(xlcUl67>|$sT)R&1~%+WUg{Yy_QwX&$%xRXD>{*7!yw1j z*?~pXN&e+M2KLg>)r)&68%&B@nS0T*p{_EzittpgS?^A`H_jru&LA#H(9r%}n#|~5 zjV~S+J;@@sb<*z26Ov5l(9qlUTl7>3Oa*m^|0HAx57Z!=Bp5=X@EXjNO96KGO&zhf zfnv&K`8C;8EXx-Ziw^W&9)V?cS{DDyTSxZGt|%^nlfZ8Pvs&9y(kKb5Ug8}>j)KFu z=)QrzvP?kTGjqtlzuAx@NNo9o*s`g_8mxpul6$G+;Hi+9B6e<(n?_u1n4@|R3=xNU zTsP%HQ%H1s029K5VXE9@?m5D6fe6*rn6kHx4wjcm^6PlH92=r}K0Un%_ zus+&Q(1JEV`C_{j;d{tUw!->}#!(Tw6WMJ34q**xo)OY8M4|}BEBk}g^d)aep&|Kf zx1wmfQFB!7+sxs%ZiUT~$p+yuc>}v8IHFK(*^dmA7*tMksc zKW3!S%t$mJwlR|Joo>1lObdEUKeP8SEjcY?M$(bR8G$4=%Foph%J+ z<&-kRiYg!CfXD|I*>IIv7c!b{11s3dK@O%~j8cC;*x7Q8+3`ptvuc8-F;rauMH7sc zieg$q6)6;FxmOTyIRs3{EDro64z8fl*l^)g44a;qk5RI^$zo-dtq7Ae%XTZ#W{nN; z;#Ii)|4JL2>dRP?wd#`d0KGQX#_VBPH6$Rmsg7O~UGPqJlGl1@kbI=9A&i8mEWe6* zf?TO$`7LFKothH>8wlfYs<2#V!aqBMy|p# zM@zx~*AtGY5d_t|K4mh;WuK0{qwIa`-I0CN?2PQuTWKyf9obXSM%fz`WnWOuNoPU3 z-(o$cSSSt`4pQr^VyZ$bs)gi*>CgXcs5)>fQ$5Iy*^Ez8O;DYDczMEeB0q~h=}8g# z`CVvXm-*t3C8$*&FI~*WF1_n2gH614Lku!?V?%LiQPFw>+8vjwT5JTw%a%PQn#w5- zm0i~~N|kdugw6{dN1>M`vAJ-N-4+)!nNPzIs6hF{mjF>jk-k^ci!NIe7^M~iA{ zL|ql)&b%=16H3nExkm}v=AM+kQ1`^SC+6OvtjW$+KD50TvN1z>qlzcz!e!bCLzHZp zT+R;=H%fhOBv4>;sTu6hi-TVh=Y1 z;4trIV&pwhkYe{+NS!Dfqk_@w!z#rN$|`YAS6UwEX0-)@hT)$j^7Wpy6a@a8xuQw0 z7dOFZMoilSZ9V66g|K~s9n(?KBq4WUNZD%S(^C$|1a&0}@*v*BT{#q`%`@N-q%P|TT)ogFbkM?02g&25 z+S1?9q$fKGfI+Wp7tBR{^H=0A(2i}U8LS?N<&$dkj=Z#%A-kb)h#bRkRga`-YCP0^ z=A^Dt4s{>M2haLdWPW>DS20(}GqH!k+F81*Z02Np8^F+mG(fnBQXSC!%f!tlO3j{% z**1j8Q^$g7P4iode#2OMp>Hq(JavBvg}G6%=|eFI+szIH8$!`$RP(xHBCq&eK*^y~ zubA@sVPCT8SsJ@lg-=ib*}TBzB1q&92fIv$i#4!(IYlWBQu1Gy&|GtiA>Vbv3fe>DZk#0{T)T`MENNkc_E0ZFj8U1LW+3ak} zU@bNY(GbikJeq2z!HQ)vg}w3cHdHfs>>Ez-;2``gg{?H zRU&)O6t&f%`xDODeAH%@IkWKb!MyhIY6^}DPg8a=TGZv26Rj?*RDDA)qhihKFpwj- z|Dav5q_oFV%8U!O_r>AH14xZy`M|K^;~IgJ+ly^32)l05Wl7SMKO6Rxa`soVfU{29 ziH+gHEAnct*?4J-DH6w(@p5kZ`=rUr!-_%c{z;L_ znt9@kEqm_?mLo%I{%kG*I67aUGiN+qfoExY>?d|mL;JCU4mNROGQi|6oIcD*LL=ue z4Nb1Z9x=U6xuW)Q`btrKU!1H!b;CvnVqAs?r^`)E7UW@&KZ&#gx^h86encd-lBh$v z$jq`((O@z}_@TX(SQyzd#%EK63_K2j;gY`O%yR|(CuJI3k*PV#ODH7>Yt`=&7fhe0 z14LV2Wa=SV6!#`V=8~CxMA<&c(S7vBnDw(F-Mu`SH7Dip^3rD+0O;s3Qy%CmL!W}F zY+N9rB9Z=3lqlQDH!fqVq;tzQa3gQ@9I-q1+2ve4fViF~F_ME`X&`Ou9-!9L*j#yw zyHr6(*N7Z7PUt-7-VG&3nNPK|hGc66?9$u>1%Y)NDSwCq2L;#U5Uxxpu|5=BeJC`( z=|pc4qszVpChuEdRI-^2r}Rq|G*`)PmM-mP3HQr=!gjNC`)-!J?`G)$cWF0^h4vei zi?|QM%)cG1+0B9;Yk5I8l~~LNP)wfD;{chyr zo6Ds;BbV-fL@qjhg#frvTWvRqYm!owy(?x~+)C8t!tYXK@(v1D*bv3RuKzWxQP4F0 zMyNF!VW)|@1^CGBG$CoIS7_fEud>sGUg$uK2lKQj--QGDFkI#6gB&gh8FV4})1~~m zL?0DnqRVta1YDst2s@|83v(EByr@f$>m&#&0vHdJH-1=?lHPStVj4T#&!V$QB6gVE(n z_>j;NJrGjZkBRguDY+Q<1xgL0d_bAWv>T|jYCVucZurq2oqoxdx2Xpf71tK1rK$3D zbmrr>{Hz?HBXAzKqiX*!50D`IUUIvP`5bl08mfPmE$1Q@xo84e0~$Lv8nRDK=^z!3 z`OL&hS5fQ>YZL2yF>h;I$jf09d13h= zcOoan4-cNReDHiyXIqor0w!0r(y!%`Iu^qVTKc}8_Zs2+kljq7Ep7$t`vodpfX}G` zqEh&JSb#6A)msx6lou;hL~F?>R8C|N7HES@2vt7Pg@3|b5)VDaVSST_UOS7Vocn!<%8!CjGbsaU;fW8=ajf}2u3S*B#xsimN;Usd4rrKE>LOW z@=9DGn>bocrs%VY;~D3(6IaM2E*}zSXSdSCsZ}B#lGbJU6#%Th7WLrB)e5Q)yD5dp zcYP9TV)n#qY=0^3$-}nA#LT5?Io7{y7eeq}ly`&5<3~z}_dfs$#xt+;j($b&_Ohm_ zbSbKI8D0LrUmMR`KDf-a@f>9s7eXq-mZjQw-v67lvFFmvXppXh6?rm{7gVeinv!x~ z;F~FFx%b0^G0mo=G0mo=N^?|F(p>JP1pc!qDbb+@>Xg7YRnl^=Ke2tbk~Z=gE$w$T z`y`zW>Di+{{72QaKcl92>gZ{|{D1F9=qYtGx7Vohy!S6O~SfLx6{*I);?0INNg^V4gC>=p&YVT{P#kuj@9p|*`M)h7 zBS`k)OY!<8fN2PASx(dZIWU%X=A*#)L;nevB7+}%=~O?xRn2RuJG^5h zN0xYH$a>D2FYdCQGi`S0hZYp6&~v6czGo#pXXjQwJ8-W)i`#~IuOCQL#^`@&Ag%K} z)+b&#kbZp!JNBF75gzL|pA~n;U7fhI+eBk%pU~@C5cjVt?#`{a2X5N#kkZJ#RB_D4 zJv1ueJQTa6?L5>^68B7>AMx8fFC&hu_&rh*|Bp<*pNm3aJ17#_%W+}8 z{FrI`=8u=QH_4ZOmbB5OZ~FFosr@DDNVMpbY9ClU84)+KYqJ#NMt&J^oU74KA)ayI zLT_wsU?Okvj6=uUxh37(Q&4gFjqv$xxNH;{k375&GgTK)-s#h;&lUNeU}FCP5#xGF zb6XKi?+B&=K1};s<#}P~2p6bZ2bLDssw+%y{Q~708Dv+NFtoFgiTNtMny0e+&I`Gu zpn-M@w4!{0dKrCT36ox(hD+y#2_(B}p#zfxqrhR`&=Kxwu-)Ew?b^1Fo^bjgnczt4 z($ZgP)t*k7#_ZhgK-IaLIUu?bvi*<&045Qf{r>%s* zmd3!NU8(Fq)y)bFX*zL}Al_(eYKXHETVA3WMH^7@eh{Igo@qOkuznSaes15m&0f4* zm~G?;6ZJ{=b)_%BYCL?AOxFN|IqJ88Wkj%(`{y7M%YR9HArkWM8aRJ}0_ZY36ovc0 ze_{n-sBH@HqsI7jMqZ}?eO%nF;TwHehJ#CVR|Kc;xrbzsH9M{}FQ1?41zWBLOD?)R z9y6jVndlf4Nhf;BeO$rxW;)S_PAKzvsE2<#UTr!N^!-hB0x4_e#&iPJV7^Zsq5pQB z(0J>|(+KM-EhxhamEjx|234@dek5A@3Tu8>q5V0{BInBIg;`|n=^14AIpsc1JfJU{ zJK@7+YSd7+sBkWa1*OVw>ufsh*M!a+Rk_ouyH%a~`LfP55GrBQKwW;|i2e`z;}+Br zIccpF_gtM^x9VO~LADEgr7cdpaW7{6+D-!d|CY4^7}O$*WJ-psrQI zDkso$!iVWZwJIc0mdwDYRgu19V*WvOeW?D+ZV3&I$6T&@(w^DyWX5 zO+vDllKM-Nlkmp{1o~v11q32yQ}ycnYrVkN5l9ycxJ)yVAfE>}L!1Xk_Qa1dn?9

    k#^Obdf-hyOjgfFIQiG;IRcIJnEe+x!vZW8x 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

    FMNM=5R$JzuqQEISrp56 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Ν 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 z zW$hN>gYCB1Abnf5sSI~|uzLo#t#`^7Q3f z7tf$sO_$bJP0&7)U;Y;vk$GArVm-)>A}%fVi=Z-U1}5Fm^OOz=F*{wF4j_ExzJoLu(hztLNL^G!)~_#QSpFaMNyr zZP8ZeM&U1lKbA5-4yay^hn@gV1Tr^ae-iuvAp0U{F&GGBN|)QVRO0MQp@YC+Fa!(* z!@zJb0-Ov^0jC0AcI2bt!YZ<%t(Rfkn5$3hvYArBcM8mxEIQlVN%x3h6&0ya($eD6 zl-Tza_1zB{%hh+cL1kj#VDcd&`6?$5%l-&wFE?2{c4>S%4X8{;LX%(=7!AgNGB6g5 z1LMI2a5`w8XS2i6VV*nL`$*?5$g{0nrTt}>&h~lYc3oq_Jnabbw8Q1;4AQ7PO@vNT zdchP>4$cH;fvF(O2L}_b?&|)7x-+4qbLZ<0aaeZ`kxo-bP#NWOi{mA~!0}-|Uv@IN z-*AJiyJ_S>`8*qX4mcN_2d0Db!RNpQpnX1VeRY)2uGW|GnXa!Tq(`QGKE^nCn2%LX zCifd|Doy+U^n|YqZk*;86)R1ObNyc89CNEJhZ_k?aoz;I8QcPH1uMaA;C65a zSOq$Y^AcAMinBjq?kS%eT%6w_EXDa<==Z>Ca3}aaxC^WScY}LCCvm3oxpFUYUa->U z^IpPIoNJ*!NQXPjROx>@keTJT+J+5?DlmOwIB~07c6O9T>{8}7o5mlyG~NeY*I^p} zgF&Wk8dGD-A6*)6a_OOnQvLS*AdRbC8t->$d;t33ZfX2a2NpfXm~u1$`EtC1xK)lP zLuJA=u5>cV$KP(talK39kDw2An8y7XV0=q#lg3mz9!=az5afD^FL2^5w!PvuCtR|{yTH0 zaOMJq)c`sQOMB6>(>`STc$9vnS())+bmYe85oc}krQcy*^gB$uxA$q(?=U_39i~CQ zPp_<9P}x9LRLyKK%%n;_c@ic0v|3FxiOM;BL2VU(I4n&rxNt#Z6Q8)MZ>pL%lP{G_ znblM$I=OD474UUN%MhwUB!C75r9c#hf{=gtlrO&jGD~RyDi@W#@-ALw=<8N_P@T+l z@{Zi7{=GkisWOmBf_mWVMEhnk-o1}QY4GK)xMaLce!M${CwJO!7F8Qieafh8N!`9f%CVT^Hh3a2wSVY%YWv<10Ud@{Zae7eH2lD*Hr z>P5!?_GK8Bh3v!p>vxz>{SNb`-(eo~J2@#TSDF;As7yKV{3oTkr}h7yo@ErT*3Elb z=MR`UpmD$@1F9PaTs)wrPhG+x?BCmB#vJ##>P(_Ho=W{Yp2 zr&YM$C(VjxNr|i??WME?qsHw7n-3|Xs+Y|^Ik1tM~d`hBh zQpK5Pmz`ZUrsDLe6{9(jt(cTNuOfNYxT#SPZo`7wit5^md6oQuH*0hoc*RAH9EpT! zP@*dMGK!0w2*#d0d343p3FCC8Ykv?v$GelKP3=Gb#8dUfReejPjFcVQHcf34r0kh2 z7bT89I#I|+Vk>K^XD7;1rIv6-lkhGRb@ke)EGTqk5RI#9I&(o4vqROqiuqz@n-Iwv z-@ly2P*Y!1J*!fwNhq@kmkCuUM*F-i87MJx@bvEF^1QN(iD<~@3pop4Sq+%{@X}qL2P>=1|4`@d6Z}9ZBWPM#$R>t!@%YtR0vWl|GvT#|XtcvG+ zmX`<0gXN*}it@_xaCxM>Do_?E4+H|iKqycVs0@Sykw8_jELa{41cSj)up(F)3+ft1Pb!R0b zDn=#mUE$IUPutYx%4~ypp~tXYtk1q~GVxx#?T30NRT|s;#^z>DV|q#~{SE(1 z>Bk)krPxU?u@g>)#`l&XH7b5;_2g#FP`4m z+Qx~4R$0U|9UJFFGdrZ$ebhOTKL0|08LG^)*C*xKIW z^)aq^T1%A23bjltZf|Mk42P#5a@TEZw3XfbvYwsNJ9a^84vV96i&LeFXD^Jl#P*-m z&I5|L{E?cJ*;i`H{^3pSa~r2MH*#?18GkLsi(1>G3me;t)9=h;eb=>28=kz6wI$Zf z5uAN~M@w*P;jJ?~eovy@oa&o}FEL2F-| zwP$}?K|SqT+kp=yYrjX0%-Zks`UCjzJGJ>cZqe*Mi|absl~H?iYT37D)ZT{oyDg$! zPonG549CF9kiLaQ%hV0xUstKa#!})=Vft7Y2YOnh`?Q|+PJq)ubM7E#{O@={+epso z41WT(a0cjUlAdDeX_uZhoelc-JuNSp|2X+wCjSpofvV>RMjVy2zQu@Dk8IvkH?jTZmc1G;O;WwlSOy`T?l@ z>t~JDnn`?mo0R=NxmT)Iv4)Ll>i^{t_~db6Fb3-u?p4*A-2sO#ra z(Dl<-ofzZOe_kYr*DqJ<7b%NjI2;YffPRTmzdSh-bouTmO7?ds!&T(zxWD1rvLG8y zB6bvL+d&Lpy7bB+0J`i!hC0vstDU;+AzoL2wi3&~;qWj-pbFC4wi?&{Qu};~Ts;kX zkfF8%K-Yy1i>YzIP|vHuwM8E0-+1JX27Qz0C3PJ)hSw)U7q1l^_ak1{z$9v{fiEGK z@x!1Dw(@!tTn;m#MmwNo-glnvBlEuVbRU`bo!9haChxaR-*cai%e?Pb>uJ;bantwC zZ)AQI9hbg$Uf1bI2PWr5qS`F(=Pyw-2STnPGof{Q?F9d{79 zF|EYmfm#k{sZqJV)e_f|7DqU z`|7WrYFvz=$8`0J@LXJ*4%>*I4Lyz5b8!7q>pYkb?XUo%un@E@AufmEB3@q#F<1RJe{z4TKDZ~{Tc66ml9;O?4p+l9@H1Ef*MjD^kdw||pUTgEB-uZ= zMSBL8!ga6=mct6T9yI^&8Tk_jC;K0t%I_fN2DlM^0XM0e6Dt4;j*%AH}t;C;u*{-wg@42kwRY;MZ_JJOG-1e@6a~4@u@{ zKgwlwrmu$I!h_HW55e!?_h3QupCuFePyumPTj zjqn1z2rq%|&yx>J*4a+(X7Y5LVVt(1kMWs8+{^F^yb7D)HFzD~fH$FMosgsR(ar0( zz=779a(J@VG-~NOd7JU?z!rEH-h=ny1NacM)<$yD%XHEa$^50{Z)N(nRLoSyr;lS@ zsoEbgZ9D9Mzrx3`6L!HTptYBgm#(c(0qkjyC+BT9F`vTU;4|0*e}}#B577LQVZHe` z<6kiTOZX>f8%?dR@qfdAKtGSZVW_!xAJzMLG>^C@rtM?ef8l>XkLkiN^O(Muob)k$ z6*+n!;qGtm0MOc547GOQ_j_w^O4ZJ0T7MV-T04hfX6>ou+_;trv@glYW%@uE1X??f zq1L`Cqjt#?$@$J_T4wD6UT4;REu;2Sast#VB&G-sgoEIFa4-ypA)tNjC2!rpg#f z&9uyAJBHVp%hp6rdcB=M&aq4%3CDrfE@7ziaz#e%sj1q>GwlaZ3Vof!Z6YVVy_b@6 z0&yq8NuaeyG1S_-GHS0&)h=UNIRv1u+L5DsYwsW@NL&aiKxEr$8RP9rl_G6d;r@;*3Gv|8+IqCKNH94mf^Ao5At$hYV zt-U&<_6fXanwWMb(=zvyiM-CN{S7(k{Y3lFoU@40^;ier-bVU)dBg~UXqu<-XA_s% z$G7MIc;eIZzmXh$pPfU_xiAUp;XF7WCc_1w%X12O`aaXPm%IxZKLsuVUG9rhagP$0 zUZ*3TO3qUQ(|ni;x(tmBGnc#nvB`PTfk10#Fa zY5vokt1&$a3qflyVyLz2h)d6R4RK9OyOe1$SPYlJx3|~bsoLEP--dVL1K0*TU?=Q` z&tNa;lM}y!f5ScyIN&(;3CM+fD1w9G5I7u;gyAp(^l6HvFbV=t300tNOlqh;4)515 zj!Aq1&haJg)l2+LJS!_6_ev!`3D3^vGqzLW7vTN-$Gv#B#2fJe1H5=VF7fGjPEJ=> z7pE%o@Z4NRld>2eI8d~{T!ZtJA)&rpkLTs_J-bqoU*Y<66zLSX4=*SXPr5}O#tREc zjEg*l7x9fgDoGd4pA|iA1AY+m=68z!D*ip(bc%T!KNz>2Vn4tKQ{Q!p+ldcJ_4OIf zvBhV8{D0wx4&aJrT>R`3jy1TsUd&+pFx;*bI|4sE-}Bunab@@sxZEx>8s}JKsAIznvC*UqFF8g?nJGdB;BK)M(_BsR~h5IccBk?k}i{T5CL7XRph;0`+6%XKUu}Cc* zOl`Zf@lZcs_W}O`yrRGF`Q74A$18F3f|xmY7`M-fU5rQaea}5B?rOXWm#0Nm;MG~a z&pzX?#DAFU^TP9Q$46)TzUizrzs1MkwliuU!%xoleb?FHp2L5HOJ_n}#%r>C+rJ*eP`!)xLfc#+{HWG{rK6qEKkUz_&I}o@lF+a4nG(7>l3mG zpM)DfA#dUJxSf@d?f7|xzPN=6`5ZqVmv}<@m2%AJXLNg+eEfp`#`8ZCa~OUhZo0)B zi%-GrCb1#>q5|W&4dTY)7vu6Lku&gyEaQ7ei8&wla}C?8)->T$`y1bM*P5AlW47^a zSJW=ToAQnC)^<39H{j%bhVf2A`K_96yiiM&a`Z8Rt*vaAWcI9OF!VgF6#nz<4{W!A-%Vg@*0b;AY_q zak(KT3-CpGM)+x6xeC8@kP*K&AZt7#Q3SW%d=9t`vUshDE58)D%^I9{TPoISkJv8PM=(UHLe$LzQ(V~vc7ky z*z6Ozevo6?UQt_!FX?Z6^J&x`ieHP{?x@vYy8n5B_1*IwE`XbS>q}QcYVf65*6dfljxVyBfczz;+Et0;^wd7 zR^j*I_I+``#(#~wZgCIe_v7-a$Xfh?fzJ017Pk@q4eom#t{Y!n;C%CWhuen#7PmV( z+;03q+;w-jf8d?Cyp#~ZAIfuvpMG|_y?!^)8NaZ@<&5I`M~-8AHMsBLw!j(tX@eVz zKa9KX26q(x2V9N+?n_j1~&B33_aeOv3xGV9eaa%gdEyvg4tWkFp{!G4e z(pe(+;?L&s8`I??58{8s{fdMKsO&82uN{PyD?i`b2~cxY^CI5`P}I+eL=q8*%rZND2M|uIDrQw1gK2iqFq)%V_*1 z+~>ElC*Ye3#5Z3hq#l16x1T2DV*C}{ZB58b{8e1K6S5fJoF~RRgmVV`wSj!J4@$@i z{PiMXd&T6J_!|Xc?B_9g0DlvAJ7V&Cyc?J9m^^{Ml_%CaQsi0O4HWASNyrQM+eKnc zVNBk_-@&a{C)@BX1!CQ&b+QwG7nklj`3!$APnF*ywX z5Vu3>WF)>7cV3C;)3vu1h?DLTsm4FbOP&*s#kb>rX+qAycNB@3(wJO;{}s2TbutzI z7-k|jzKb)^Tuwt{_$T@^JDeI`iSPD?4de37uxs&8y^$k1tsc1o|C`>Z zz-i6R_-9^qbv36Nx8Zwo$B!S+;r|}|@3|8vPUMih8sD2cdGcfqlNSF+Zc|eehps2^ z&vV=KyQgi>;9uk}TC|9d`1Sagsq^8N@PFnmTeggk!q@Sya#!lNN>;vu|10;dyYAv6 zV=Ml3&g#{xc^mJ<|DE&5BaiUb+JpZmXWhDW?C$@>zscFKVFSD1K73!!=FOYgEwcDS z@V_}*wrpWj4Z{DYXvdBntiFSADcZAV4~xVHkC(lXV*`JuTm^Bs8m@t#!4kL@eh&J# z+*6_C-#uqD-1mHP+-`gYbvRu1eBEAaYFkRqx7&58amyI4`IxEM{j%9o(yy+6M(FZB zGIjC_#$OK`cWY*ELcd;B8`M*Avi{nbw#>?X&6CDxWu2$ZJ!?eABpahLn--RSx!T`> I{6F!30aA7Qu>b%7 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_input.worker.js b/examples/component/ftxui_example_input.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_input.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_input_in_frame.js b/examples/component/ftxui_example_input_in_frame.js new file mode 100644 index 000000000..0939467d3 --- /dev/null +++ b/examples/component/ftxui_example_input_in_frame.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_input_in_frame.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={50712:function(){throw"Canceled!"},50730:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_input_in_frame.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=50704;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=63192;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_input_in_frame.wasm b/examples/component/ftxui_example_input_in_frame.wasm new file mode 100755 index 0000000000000000000000000000000000000000..eedf821a164983a8148fdc17a0b259002b1d1c86 GIT binary patch literal 320084 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 zr17K)q=}^PI&1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_input_style.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={55024:function(){throw"Canceled!"},55042:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_input_style.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=55016;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=67656;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_input_style.wasm b/examples/component/ftxui_example_input_style.wasm new file mode 100755 index 0000000000000000000000000000000000000000..fba53d3b6da0495308f3d377d9b81d618f2d5915 GIT binary patch literal 354043 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

    ?ZRV#gBanE(`pxJbif;t@?k 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

    e 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_input_style.worker.js b/examples/component/ftxui_example_input_style.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_input_style.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_linear_gradient_gallery.js b/examples/component/ftxui_example_linear_gradient_gallery.js new file mode 100644 index 000000000..93edd3e92 --- /dev/null +++ b/examples/component/ftxui_example_linear_gradient_gallery.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_linear_gradient_gallery.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40440:function(){throw"Canceled!"},40458:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_linear_gradient_gallery.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40432;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52760;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_linear_gradient_gallery.wasm b/examples/component/ftxui_example_linear_gradient_gallery.wasm new file mode 100755 index 0000000000000000000000000000000000000000..06eeb43662ece1a9081642529534f255ddb343c4 GIT binary patch literal 315123 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_maybe.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40136:function(){throw"Canceled!"},40154:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_maybe.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40128;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52616;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_maybe.wasm b/examples/component/ftxui_example_maybe.wasm new file mode 100755 index 0000000000000000000000000000000000000000..75d341e3ebab005419a590004983c5b1be77885b GIT binary patch literal 306923 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 x;psXn^@} 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_maybe.worker.js b/examples/component/ftxui_example_maybe.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_maybe.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_menu.js b/examples/component/ftxui_example_menu.js new file mode 100644 index 000000000..aa666488a --- /dev/null +++ b/examples/component/ftxui_example_menu.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={37512:function(){throw"Canceled!"},37530:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=37504;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=49704;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu.wasm b/examples/component/ftxui_example_menu.wasm new file mode 100755 index 0000000000000000000000000000000000000000..92354e3920fe233cd12c0d0463002a495b149fa4 GIT binary patch literal 299977 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 b_z}&Lrj|$LEOB6E9-`RxrRw-L7OVdQ+(AZ8 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_menu.worker.js b/examples/component/ftxui_example_menu.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_menu.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_menu2.js b/examples/component/ftxui_example_menu2.js new file mode 100644 index 000000000..c60d6efbb --- /dev/null +++ b/examples/component/ftxui_example_menu2.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu2.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39360:function(){throw"Canceled!"},39378:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu2.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39352;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52264;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu2.wasm b/examples/component/ftxui_example_menu2.wasm new file mode 100755 index 0000000000000000000000000000000000000000..3ef27a0347c753a34d4018cb9b7bd5fdf63e1140 GIT binary patch literal 319616 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ΠSB&-k)zB%n!VrP7iH zi-VzFlDA8LVa3w2Zn#wqO=tZVxUQ7zX$yA0bNSkpKT+)JD)QG=8w2eb7Jc#I?4-bTh{qd+%krZd9A4A~mU9s9=Xz z`4H#Lf@iy_va6pyyQ|z1RBnlYFAJY_W!_3v)on@Lr9>q`yFS45@Tx}t1$bN$?SiH# zl{tBEj-HBzq4D+qJnVceMeVR2SFX%T$%P+4U5m+&U$bI4*Em<#J^87-<)j(B15g zGRB|as3)ewJUd|vAWZVB!e)L{nYM)7Qlozk(uQ8O!c-8$n2-<^pPW6%~Qg1Sr* zVTY5g22wD4!coJi@jcSgV=qNC<+J4ACy3+PTy0TaiEJ&j8XEjr( zGnGcFGeg0rqWNY{N2gWj^CX;2E+D;@G3gXvO8spLh~`mCvKkc?kOGVYS32B9xzo+Z z3{|z(PNbA`?uXjml7Vxi@hpq4Boe`#4-UKWZ})Hze7kbjoHZYNyJQVRS8oS zoD~GJnR<``=I2t&2L!g(gz(==!v>HBy|R+5V$W=X^au4?`6l%;wL;^|y&bh$+0m(9 zbSjLn(J5F`ok9&wr%FMygWE>hj1rpDuM%MzMv|AiUBgytkU|--$f+4m6{}oShIxdu zO2&P*R3EWrSt=c+e5fY3n*Y*)ZdKxHXZn{>H*x(_sK_-1qHaOT4Wo*EaGxbNNj&gS zNtL*O*samDZqPkDAXV6a7iebCqJhwcaVp6g7X@LBqcw79OeP34T#-lvu$3I@Fy%@N z!~B|jG^8jnwI2FLOa6oFZzL!r@21MhwCn172%Wy7Z3MN6C^h)efl6C7zIJTWmUnxR zwQp?6dmHS^x0amYk+t9IC#WZ2lB;^k>!GV+(#WyQrHZ2*-lIs~eO-SsVe^eDMfMm+ z+f~7KS+MQ7&b%zeQW53ahFl=Y=NN8GG)g140fol8SNW{?&{tC(zk=>L?>sV$D^gqW zU_?>xF{t$GT6gXcS72x30KpPcXzDZm3+MPpvW$0fH%8+u?@KztOK&s5YX?Bad$FS& z<~?>KNMDb=b^@l}gI<{0rlH~~l{*bsHDc;aRc68o%xBSOf&G;Go-gPHu8l?i|y z1ZOjGP$I-Z^`c*iL)p;)FwIh;qu8$v(<}6$%j!8ONeA9hzUY5m!R&_IZ5~y3cgWB) zK(|T*eNOGZ`4}pxp<}3GpzFY=q#ur<2ETSFw%m0M&1RCL*F$#dEUGJ!)%boEwO2#b zkXz}M!7T|wV9l=7P(}1B=ETvS?lhhi0X&^jEr~G7@%$k*Ogq{ArtGH1%j0&+cnL<6LR#n4v znrg+37_AGGbece=CQ5{WX+v>DbbSr)Bt&G>S9p;*#wvJMK%_;~cO_Wh5a?M6X7dKP zTA*l8-1?{Ug$!uQAI_D{CvgodgcWgrn0QI)LKCT@L-xuXd*Y~H)uZGr1VkDgV^lyI zwA#TlC`%se)sV0nW}Fo))n|y-TX|AT2fhjaW=KmR6@3Q`MSrPPq9MyQ?xQ3PEY*od z)63pu-M?qziTV&Ni+t7d1Jeo{P@OCizdHL7d;CFfcN)&X#r+Y9r^sD&o|| zrnE2R*^UPTUBog3RkixPob;pe4f=0NW}UxmElMB1qhg{m2`G{1%b{ISiDYyI3nd%{ zqsOM9n)I093#qo5ws`SzZR0(aoMLQB7ML&vNJ(u2m5UWF1349S>GG1O-QpQ*)AWCq&LsVQadOeych)Q=cU6JU6DIrb4 z_GxKW9Z%Gh+4@6VxkfERnURXo-|b=6!xjXX+1K3gRkGJyzaBbzd(SHC%#mw_!#-E3 zV;v`%OaGf9uVs17h7;XuI3)HzRwKgt%eku&w!ouxD>l!o>xUX#N#fc4;5pKE{l?NC z*-(|`FI)I2cWhaC@=Ig$1{2o6*>HC$LlW)T>CXcNHEpYuR3>VzY5bHk+dRUrbO^Wv=(9^Ic#cC7@ zC=Jgp!u8;e7e)EJ%o>@ZdcM}k3QA~2@%toX52Ix*%{`kB=cwb_jTU`M4^a7=be4Ce zaT(=crBSqItHVKs;u=|Yks5mJcOb8G=eCy+084{%SaYPSq_(q%C>EF`Nt&Fm{(_$HMBopLPpJaL1xV3&-hy`jYU{%un!gLH>7%c&J6+;#s|H*a@P7PP`pS`-V{rOeDESEBi-xccW9}%r`H-MG(GO@64-|FsM?*+jY z$6%>pUGIf%DYccoc4hRw+*Mr4MecSB9lKlTy{qR&O284=bk)Q9f5%J(gZVD)MR=dq z63mT_ALhmcEw5^0$8DI}zwkchSb6mMLRJ#OO*irtu6bDRH{H<4y|0i%wH5z z``HkdeAgCkmn4%EC+&||&ngRDa__*iI)|0EC(%Uh`Kes)|N3WtV2+TvTq(S>XMIY| zX@v;`ud=*9R}2N=r5ZQM|7eFe<8UQk_DHbt=}$%tBHwJUGX;XUuD(bdZ& zQe@Z1?Jhb4pz~-HSNV|&FoTXs{hIFnd~rirn@yE53_e3v`F%ke&cz&}%&=uk6HBZB zr8&g^RYU2EACbBLJ595OYI^5nD{l*u9M zB$^Nf1Slwnh+GdRl*X4H86pxW+cW9sEQKQ6fiCtFgt%zS2l;4=Lrg=JmxRS3 zVrSl%r&6;^b!?N2SS!Q2$$MSN6t*YDBzh??A#>K6c-xW>Caa#%L=~}OY|{%HOlaK> zQ!YsNFd|&27v(_#(Ko=4vfEDCD%Es>J{Fd7bn8B$=_YM?vI{FM`O#@p74guT{Ip%Q zRb)WH^)p36VWXklWBCL3V7V4hiZ!{(FEaNo_Jk**sp-Rgqq??F((p&gQ~(@19muaN zFg&5!QA{-%p=q~VvcPNHA1W*s zq&eW|ekD87%I%9bPNAQLzJ*C|T_;+mwo^}Va4~GhD(1At8mi~b#ET27i)y60xS~>* z?!&HOJobY{bdm4oqIM;AMSa%dHkk`(7xPZiA$*|EdGvX+mf(q3z5~mC4}jTBz_BV* z%RJePO6&Z)UOPsmm+C4cO&j^LC)F~ZwDS3rG=WR3w$WlbkJQqX5v(>GYi_#h(<&-U zrO|0@SfAEBD%DzfnQOG#vMw#C4}whMkK^*Plta%r;xN{_(ieRGlf zv(t<&zB!{Q*QWRd&m1bt1!ZO}Pk66H6CsbUz? zAsZNbnsslw0$il&B00KZa;TJ0?%I?)e~q5>JY5+0Z<24PxhTC8;WTYJ8Kn;5zZA+SQRuvXP`+q*FsL>RHmdIH;rI+*`>7w*AbKGKAfu@dCXVSm7s)CTT zlqY>xlckzR-5eScDpBQK|Qq%$(jB@fAzHqhGkCFW?8;WJXMFnO&? zQ4d*%%Pf?KjRjLZiwHZb)tT4zGg4r{xUD5=n1AW5=`K4;FGYQ+Gc6_Z5~ZvfaiO5v z)Xm6m>ZICK$!q~ok`d2x-OPir!KudYFyEv`O~moaP$1M<)^Q|tmNg-)qNtq_Y-KHK zE9+=+<4@)I$4})a%+-vgYcC=F=-jLe^PRS==5zYqOMdg32>=RE6W|IEB~}7+Ek!az zXiKvpogECzEM>nG6@khBu*McUA#plB^u&YYq`mUK9=~JpTZ`Y}_^m1~wt`E>DP~q9 zQsI^EQI*-!W!t^YB|Iin)Gpi#%Mjg{=3-W%NLS~s&Xs;oibQqZb+z_CQEA`6zC;<< z58gv1&O;DO^r5*+m>yq|za(Lm8Z}(D`QvLe17lQguZ9ouGQc!N#}jj9<)vzW^^gF$ zOJ&2(@XM+G*jQZ}pbpd$BDDey^b2%iG=pa!YPg^;g-)!>OaAcc^*3%-W0Z+&Hl9lZ z!!kr-1E)12VwPD3Ac=0b?wC@5COlDLuXG6WlOfC{UBAn|clcVyw;VpTUX@B?ZzHF; zzqj~r2bNpvEabE?9*a+C1Fdzext#@X1o{@|=;7oxb0PBb zx3XTYMwhjW;)cTSG6B2nvr3Eq6IfV3l|U8~>Nf?c(*_{|d6FkjrZ4NH&9B%Vg&sO1h3n8c z7Q2+wY#Y3m(9^WUL0jsVe#&$r&5TEXGGyULLsT}L6O|j3z`;*H%0jWyD3_wH?Z`YS zZj)!JsnBeDHHVC{&g*o9esGO}3v#*==&ZKu^@>|-I)2p3{<=jRNeUz@$M0xHKIsyck z)V{(>SS~5BlPKBwm160at;efQGocWHvRtSsSctbi#}WY&JV$&O1QPaj@KOq8r6&5? zWEGLmK`;=qt8JI)vIz;R`dU%<+6Es)SGkFunl=VF*L^A}aI#Rfkv4;?ImFg%=w4a3 zr^7@bK%C8lP3fCLq?cH*Fm*^O+;)*8>cmu+F0yq7&!k8Pj9O70Rm8A9a8k4|EdZ+O zG#0d_7JvpH^rkw=N0M6l{XFLp^1Z#Se0ayc#HgC1S2If4OOoj?snJrmu=S;)_U7R7 zrQ+4R?88A`h)PX$1#j!*1Z)hn5b8A*Hc$ua4AnqE=J3V?v&B@x(k}a01T^ubmOq*N z3JnK+JO#1`8heg2<&yD0^I``{pb=Cq)KK)h z(ky1c;%KpCCC*q72cJ=pA0zC*XahUzFel5lLE>5oZAM&Ft=tD)VMYj)@ z;Aw*gva743V$6q(>bO-pB^c6CZ=1M+#HcAwGe@)lf{4C8tj5E*VatIVVbf@r(+Dxj099)-A zVJJ|H?NhjB4Rev&5t+QA=&>9QWa-O!>N@qR@D&MvEOGX>5|~ z+@$GI(rA*9MH7_0*OI2slZK|N-1m1%n&sJ~q4ARR8m=l;lqR$;F}0W;%_JB-osG0F z>}ON1=3Z~;{mkw+CRbF~g<(#&~5e$H7@l_*(XYyP% z?axx3#6pmV71dQ$ND?9Pg!N*3)EwG7s8v8)K^+bAZ`OR%&}r13MRU2 zdKs%rbmgFSu^0>Ns&FZ|Z!Eoz{NfewUh=F3? zY8iWX3`vq}$^K$#3sEed>pRxs1I)bR8!tr( z#C)0hBpwj~otrw$=7bwub*pJeoiP4Uf$nJe*&wK&LUErACs}M&x@Pdrb)_uKb!Bw5 z90}Uo`(!>$C!m0|QUz&Osxfx5>0JHl3YE0$AW{+)WhPq1E9@rtl2k#WY?jMWHbO~# zlR_O`QI%x7^Hsv|aV;sF;XFHkNLwjSP?yla(CYr0x)k~3Xf9N8`O?86H!#z1ER7b) zoIOyoexoIZYBiFFbez-cLV0eSI+5R~!{a#;l09|0zL_wZdG!GD$udVt{RfV>@Y;K= zo_y9Qn#3*Iad-$Sn&>}u!{cvdo;gc zRadN1bo{M!uhk-|?bOhz!clLHy4Ei>VN|ox3NwSpfnw<(^LSPPldqf+Qbe@%SfxwH z`qY6c;6rT~bN9&w8|8EXy93M;kxJiEeq69omuluqKTnKJ(YrPhJawO4b*sik9p$TH zCmmrBjB>?39PRyG^3(KU{)_=ufwtMk4{#LGJC6BCan`WMQ+$ER7}&?U0`)Vsg6$e! zCM0z<`D-maqbVQ~xhoCe7K0_k0Cm3ZcS$~{7EwF(a-~D@NlzBSQKQ#CYW;t>Nun;2 z2v8-62@PzSG_gj~Dl|x5Pgb9q{14VvgOE&TdtgdQkK7njToD(onI?wymX4b4W$l9~ z#W=E~h2+J$6Gg83JD4Y>f7yE2eKu$#FJks8WQ!032A4MX`a5VGIR&nUr_^OvD``-H zmme)KM=1{`384KZ8jHh8;pgoHu`(&iaWiwTURh;?vL@*zPUsmOQIayUp*GGY9aLA` z)I@4qP&euo+~SDGPbUN04TP=^xj zd(vH6p`1>8wm+7#VcQ0 z(c8OWhzN%cr3NC0$Q2if_xG{{T}mAIlh6LzD+Uzs{LKm{Fgti+;g zCg_uCcuo9ksRc1wZ|`47>-7_Jd`URsN-@)uI~c(lSPXKZF#Qme0NSE-xtbF*Xj@E`p$bZ zZpZn`T;J+gOEf8fv`nr)qRuIRU90L1PZt@t~6{Z;w@L;(2*xjwxwDT771i$zRR zUi=@-4i&ua^P*@-kd^R zt5*hZ92EXrc#BnDZ}7`fij}Lf4nik0FNgN|#X|Db%dvg7)QhRc5@qR`VzXkM!YDGdFD(A?AWp<=XNTkk*9Scx7`GCr&ULF|m=te2xs zX&#?+YFKm&9b;aW+nCv)DhEoit`hM4N&KOU?{7&iSf_F83vO7}0wxPFFOdhYr!1JC_W9p1!FF9Fx z2|e^iA(^?^f)u&^79*!2_YZY!X9C&87M0H>6GK8u;M!;ceLW-K#OI5pw)&VYBHj)H z&LE&kiepl_!EjHwfb*$&*pr9N&ylx~f5l@MHx`q5 z_cn}X;BDt7>~O~0G-VH?QqwLXm4P*pi{)06_9jjI0J(r4ECg8##?%jP<_9;jB(+!m z=o5>$V>mZ9T3R4q61t>XPg6`%1Ott zF%Bw0SM?^Z?kOZim4TBGRv7*g;_zVpBiNmQTqDPsJ%y`ppj%@rV@(XUbT;S25%=2? z!R>>|oqrr*Z-+40KY%!Vqrq;6G}xg(j!0XaYfyv$DmZmQT=0M%$Jt{0hN+=Pv#Mn!~tE@XYS-RJE%^8`*V+2$U;0CDERbvf>D%q72%;SJp|B$hoGEPmr2 z%DwJsOoT$I;nYdZVdr}UXA9*a_wdIMn=Xo>d=0~m7sXI!F<2;v-1kBE)D)pmrm~?l zobMRU7RnL#@D~uj=b^la;R_zh<_BXai|+e1_p~5Fp|rE1%sbyL__R>AKv=qb9-``@ z{2qqw9?F9lm}So;;}CBc=*|aY4(-6oyw^l1ykVR=X;*c=7jW*fqTwD6L5w``&A-y7 z?PS{do^ak!ir%fz?eo%T6I!yzWJ5OwE!17|Bsry)ij_>R_{k`wOwvZKs9 zN-K*p<9zpgEu!2BVKM&_#8WjZk)x2Ni`%~z<=f_5RS}B!AWj|mD$e&5&K9}H-NT_?odB|@+>S=grY z-T6?2y&b|5;SV65y4zs4LmKSRLopGyIM<*E!B%kUB*KEjK8|y@RQDV1;p-5Gj~qgE zv7N+Vzlb|i|*ksAP&zp0`M#b13u&)4mw{`gn*~AzzyfSWikT) z9)u;u=OGTy?GM14F&OZodw9)(7aX{q1)g`l2Oap29QY3ncsc-&JMhlQn8rJtuO>n< z9>%GY6jkSY0cT5!KX(s*261?<8GsLAuozFfhbNqGN`!zLS>OrhyXot(3a&s{QY_+O zpn+mILbs8rS5!h;B3vyf_pd(G4jBl1=&tG-^=biFG8_uW$|X5@1BPv zUJb(1Y7}DRfjbucOz=#7T%=u?ifAL58HPdd&+jx*sn z^(@X<7UxyRIRSChaONE6h~u;zXC{l&%;MZR6Xn_tF=seKGf}QBSeaadA|zJ@r;c0; zS)9imXADye=QYP!aGZ7)XFiMbpyP}~95P`hG-kk3CDTaapoPTmBpFK;@mSE(`OXouMB7VY?NyoRwh?fgyb5;sUuefLr1Qs z9A`hoDPx{=oQE7|!g1^S)67T=gz-~a&3n=Z8$@J z5#`!~mB}?ILUL7b>d3W_#d+LuCL#XXnD;o&ZpW!R&R7p0Ij z&Wz(Uvp7>(oZFv|at%SeYB-ypk8*9o%H*nukX#E{oOTxH5y#mBv0%*Oj&rZ$j5$sX zr%w6|W9Z0r%yDKR{)^!pa-4&X({!AvEKVbfbIS`+uFVjy8P1~PyyiFyj?>QK%x7^P zbewUBZy3(b7h?MCz{=96CPL{mj8jLhDu#|+FF4L2h<(O9?Kn?3&XnUcvN#i2oSRxv zu0?nsHJsCqbINhrjx(RdX=QQlbDW(J`weHb73I1EE0b$jgygE?)RAitLr1P>9cLQi zPmFoL^ zS)67T=guQhuI&&{7|zg3I&vLzoLPvc4Cj#J9CVzf<4k378d;oM=AvAiA)1D> z=s2%A&Vu8#vpDlvoCh6e9O7GsvvV${&kn3CeQF|xm$n}Eb9D+D#%+rqZ zgyT#(P9uvmk;S>`+flAXc%L?$(~fh>aoUbEpT%iqaqe@Roe+l%XY|`qt~;l-q=Viy4cbrxhXC{kt z&r30VMj@Uxob4|~xwc_ta#cl0u0fnSa#b*N}MdZNbXq8WbV9DmZoITFBx&^>D=5 zFG9SN4@a1XurZhk5pt^I)PWguzE>UM1Vll6bMAD+AzBVGlZ9wH-<^-RG!R8W3_aq) zU=xH9A*TvXomeb5#N!Sz3DG6KJr1$kA?gk>mW8M}-${pcDvX(0>Ic8EtDVh_Yp@r^sgy$&(v5H*}SX))}4#~fl7 zqDK&i-07f0G#z3p3(;`CTfPwm*$iQG7YY29bzgA(Qv+79*cr(hIpqS7TxJJhgfikb{1mZ`5ttLafnLbJ`cCIJfaY}^H8d-HFgqbe9y7Gj$D^coxZ|)0#jT1{N76y(dlqMt^hx(H z4KXrhX#1UOpF1{02yG&ZR(HNPa5l8>xrfsbBTpFG3Fms*9p^;|t(8TaalU(|BHEWB zOwv(^k!eHQJ{2Y1=8jbnLL0=XBPp9*!wmXUI9uEva}WC=MxHdZN#}aV9VbKxt)4|2 zbG}z`HndmV!wHCyrlHL_*AaJYi4fXM7Om-gcm8QayA8r5-3~Ew(9nkdG)l0=9S21S zt%6fW(gjC*9A}H$!|q`cV&ssa?Qyi-?pPNgw6QE&&G}B^Y-lgJhdGFmXAEuDxt?>! z84*HjX3?gc@AfAm+RYFq=@7)ojG=9QB1*c+9V;S)wva_@JK7^STihOS4|^a+o-?#@ zN4wV@$3zINhEpfqhMn&i&W859dzgh7nKiUS&UMfon<9iZl|^ef-z^6s+Kmt<>1K$L z=M8Pqxn6U$1xIUV(dM1+K}Y+lqm2u#WoSDO#B|%?jx`aA+b~WYNvqEH0?sDsGw$IK z#K;jtn|7`z+;K{T&>C5^3Fo_MI-y$gT9c?~~)^fi49PMrhOShd6 zBQF`+=ya6y4tE?Dp}19X>PR~1e9z)+l0NAkrXfb=4Q;=3?Q_S52%$}6(dy3k2F`}| zJ@;@LV&r8*JK;V9w*8w?(rxZo6(O`ioH~+L zobM@|EpCswhy4&EuNc~-b3Npa6C#9G&!UYv->Wzq+AHqi1jI<&(B_=$hK2yG^d z)^xr*pNwd?L71f5Ax2Ia+R&3x(k<>dC_-ozoH~*&INIYlTihOY50elhrwwh7qwRLb zx(K0-WzlNRcM@kqd&xb_L5$b{bk>=kbGI200&8Z$rkwBgry|(R5GLpl#E6X}H$N5S z+~jT*5dvGtg0&s&5u7b%54eXt5F<7m9CxsL-EB;Sz-l;k5^dP|j^S)z&%1|Nh>*7!NJ;DuzBZu(80dyVB-R_G1ksz zOtT&CRuiF^4dc`iv+8^=;A~<(;~ow{jMz|V+L@kkw!S05zG}{R=Vgr}aZ$&ZhaJOL*idhw>j+lea_bkpP=9BJW z8e+u8AN!qYpSv|g2y7w?R(HNPa5k{-xrfsbBQ}gU;Y=^P+q?*YwX$F{&Ueqj2=-+N z6LS<|#6|<#4@NP!xm#6)zy@*Zh*@#Ir*O8IJ?0+vLyTCbe$ts9a<>T)0;^}i#+>g} zoDJ+1_izGYWUYM6Inxn$Yl)E4Oct!^e0M$_!ES>vF}FjE{D^!EJsri|;%|ysX2{BTZk39~y+uiCS-BG9Vwb&h(tS&4`dw zGYdB5e77HpU^hdUm_raFm&(WHLs864?p6^Yr-dw7+rb{e*<$v9d)Nap@(<)=+`;a3 zw=ofNs^Qd0vtj2uhO>b^?;d6$M%Ky4A!j=1ZcPz#n#zJTobQ%Di(ofGn3$U(M&2hM zi_Y|#gDp5%I}0}Nd=EO9zV3!GO=byzi+u?3C5po*FsUv39`Ch=;#C*m*9D*46 zG5MHwrYGEON`#ymS+EJ`yNNwU2KKspSQOZL`8e%Nr`)aWVDnk9mh;``V0Zf#rkxNY zmkVsvw=Lb_Zo?wvRK=+y=AiREi?hY-N%t@fF>|BJ@SR4EqU%z zsU3@{U3X&4iHD8>p%FfJ(X+G5x(-}gA0qLXJMNbw+h_^uDR(^Rj!ijEnB(E-$T1jB zYxLM%iN#!DLo#KLg3Gh6!`HhX*OdwQqXWEMUDWL_1-t1!As~)0^y8(l0ft`PLQ~|D z0xruM&^7l3&dOx3#L0(ikn%dj5{|-`*^Jj)&cn$`XdUS;lXAy6qO+!4TwHGFYq;ab zWG0q#Yj_ytr!Prn;m9XQq5~8X2uaw(K2T^VlEpR2A#(!Fo>j2tB;cIG8(wr1Ksh9_ zq%z4nFWBoqjxHSv7h-Xesq{;^Uh<~7#BMLcp2K4MFHau3yz~z_1J5yN050RpX7hg> zKJOQko)XRT9C|W!c`_|ti!ry(H7`#N$=rqWJm#6plUbQ_n7I}&X381ww) z$qAX4V&*ycqoz{JATV8?V5;9PXck9eyv50W)si+Cl>HO!Ah zyw#W|Fh6=l^0@HN!`#ID%`1{`$$UQMdCbpVksOx!0?ZYTS-p5g@@<(f#5|1o_!Y@X znJ>az$NbkZe(%6Mh55h4_+5;-h52t{{N9Oq0rTgs4Dw!rx!S!k`TUhZ-ZhxVF#q0_ zA%1HyH!y$U$`HSIVV=SK`&Wke{RrkZ=0CVH#P8jh2bXM2zIbJbpR&7#`AgtmNqqY; zPhh_1%4C~a6qNMzC-ygpmrsS7fH2Gc1#T|FYpF-#Gb7=AmWmjYtz1#jDS0Z)W*zUm zHvp=`o8~E`s`GAvu)VvRAzJ_FgE^~AN8GjwG3U1Txb3YF=6e)k-ktAv=R4i`Mu;Q- zC?15_hT$bQd>O;bZg>QP#bFnO;T~|C2i@jTC!Teudm&zNh%pQ&JR*BAv}G8uk=p|p zPl<8B&aN~to;Fuo72JpMd**7}hM&avni(x3(-;?w*%t4PVzih(1z`*`5R1lO>uS$o zeBHeFD0NRd|6%8!gQ$E+akCY$moRSnkm9yn{AZm1nDe(GHXFaKRh`0kqw)8N|EBN6 z_uiM`i(o^qbYAhvnj_hYDf z+#h$|!_IpU;x^}PV%YAyPdo21=Y1aH4(FZ4Fzmc9IPZ6z_hpDLJMTP(QRhAGyl*(~ z_aJsS?`aG*=Y7?Ax4s-Ra}&hf&RfB-(|K>eV7YL+^WF?`uk#LJ7<1lRocAv0y#wN_ z&O3}@+<8Zw_de&n8)CQf?!-`c-g}&Puk-GPc))q<81^{t{m%Qi^F9pmkn>Jrm~h@l zocC$xeFEZP=bgeZ>AVM=_XX#D=4JW<($7N>R_vd3p5xAQ1Sc!xEeI?8N1f+Y2=jgd zqO9U_!|`ad;5N6o&1MMW8F8Dc+uY+eqi%D*+l;wQ!-;3z=>Wv%8oCKAISOet%r_w{ zt7jm-@K0kQKIzVf-FXh;_ucuJ+n#a0=OAwRr?EbG3B#>!xaow~9q#E?w|T>Dwqg_N z0e3ou)9nt?#_$Io_9BKay5V&UBhEI6=P$X-77TZ~%WW9$a>I5EUvaiw7%Uxbhp;Hr zApVm(@4#@6dwkG&?{eO8i2p3!&;ooF<1TTB7T{6mzt8z6PDG`72*UJWuR9%f=3`Dg z?M~lyn-|>XxD#)xf#PF?s5l)N8K=t;Tz6&9|p^- z5eSRRPKZBo=esdH?jHAIumrxxc^`M1I)oLgNhc0C&(jbV!W6^{`*NL}eZd_LK^zSZ zHVixN4$neZoLUgaj6=oyRd+w??oU9xxGyIyv7ny8{Ow@2O5+IT@0eND%nh%^7@c(g zx46w2x48)$3wp$zUcu=vI~XT09q+_w0n^Ej=`~D$)#2O>z;`=tH)8thj@vd&|D|K9 zVtTd1c@HKN=2i%c$|%H{j{BD}{Y}U3{my--bC10e%f-DA2K0#Y>~fwxI9ZZE0AVS0 z04K}i2c4$@VOjgEJ55I$MuDxhTsy5BI2F}hEBO-ByYzj&rJVjqz9vJfrM&rYZifu@ zl^gl3t=y>B3Uk^uGAU~SM)W-rJyvCyiypVh0Kl#KHVmNZ0MjcsCYlz*1&poYcqw93 zWSEZ_n`8jv27Q}`QE`mfvoOxAfaB$e(U##v#5g4b7~j>mWf<)hQIHd0*j85#(S5d0OAfDkW*tL55bH1#&d22yj7NkFP;nv95L(~Cj9sxoYjAlo9yt@<_$r0O8kfY=le zPEr%G+!#SBG7LtLO%dbJ@Z32dmfIpoLx$l9vM+)>s&Cam8V)iFh!!kxk(!9(j)+m0VKidwju`jr zTQiKhV~m5L$>@NwOB`R07&T*$7&{`yUHaAyqvjZsU}$+FV2p@kN5rVgurp$8ix{`+ z+c1o(V@!jgspo*PRUCImjEW3n5o1%txIy2hVN@Jr77Put0>&9#t8{O~Xv;7jF;2-K z716h480}tH5iqnqh>J8t9AAwXEg9+&<4D9fs&CscT8^;@h6ZT?039DnuAONVtcg%$cR|>MUbit z`ySVJ%ZF^s2qv?k_d8_zI6ks zImjd+FQ&bL5wUDK68j}GY>pt?BFL@!HVmZdAk%=@0e+kiXRBClj35;m1|!I(2y%nI zO#`Vo$SfegpC;^?9$2AeH|C+h&b+!7!?`D zBF3hOaf7~1!>BmMEEw8}9Wc%;<$G_$Xv;7jF;2-K716h4811F5B4B9O1}?svFBx`T`ZV#m<} z$S$!w96@R_G$P232y&Ocbpxq6$Rr?k*F^vs5zD>^Qk7wU1lblrZq>J8AXNvM2E;D9 z2q0U<@>m3^$S@T_Hbsyd^lchQ#X)8Pu~TRPTi6BSK(m+}cvIxk3PC*Wf1O z>sxt;>4}33y<=l?ZwhiiEZ>VD4H*_9$i4{jsJ>MLVTnA5GYZHRog~>Sj@KeaU53So zu{&biuW!vT>W(oEhMkMRiOkt0me(UlO@_+R*e!`5cj;RxNMqP%{h_O3j+^=uVFxc%8q!|Z8`yB(uE^&N0V$_U1V(f?*cj;R< zjGALig7M=Wj1h6{h!|BFc1DbC5#v^U8-`JJjA<~mR*Z|P5^>xeF)A{QMT|`m;|6`3 zhEZ{hSuk{nGGLtHJ&EMrh|!i|JYt-ZK`Nqe%P`tSR}nCD1QHi%h&a9)FnS$fNpJ4W!{9qkt@?YPMG_4@Ho=43iOLcLcd#-!SVod_bx6+s# z7t50oq$NW$f*gq;NA+zRNXtPM6_XU?uviX8kfscWBFMoA^0dB{OH5B3WayHO$v^HW z>;Z8+6EPYx%tVZR5#v#PtA@drv>?qW81L#}>=nmz5u+}{Y{b|dG49v5W*BwH7zg7g zI~cpf@qEOn$3Fm5Eqhi6AW*+7aZ441gRpO9NrMVGw5#kZ+_QhsAO#f;43~9YOT`kU*Z+ zx3b2R#6gDEFoTqW91zR*B1l7qg$S}w20$Lww`w2_2N?xqdkV5wEU!h7x(tgEWOoF) zU*DR6u)8vdGY&|auDitXdc>&7P??Lp5*didUHaAyqvjZsVCeh|F47WlY?_Om5*ao} zjBOF)R(%_WQFV-IFm!4oU~Cn~jS-_F!(hbNBm?odLEolfR2*X#j7B{Xry%vU>qyJApSEK*`J^24ueA?!}<^C7(uj4wnkP!cZ z&$j6Qr+Di#K{72;Serr*7WM z(fcIcH>bg`fni7VUxMBl{ht^7pU%rFK=f+m+hY+-`4bS9iMusa?bExGT}) z(sVmEKDk}X?arijZMWOX%Nd@2MUP)yy9HQerSYS(nTzBLHQnxbYS(hRGpSwM?Y4HO z@$2^ZrFK=f+m+hY+-`4bS9iMusa?bE4ySfaw>zHNwcPGZYS(tVtxMAQh3Bd-%Z;RV zRkz!f+SS}{Z)#U}y923R!|e{Ic1^cCp4zqC?o4XecDt=h)A%j*^h@okZnrD7tGV6Y z)UNJ!2U5F++Z|5rnr?SIwQITEnbfZBc3XMg-OERh$1k<3y4|kSuI6@oQ@gs`9Z2mO zZg)7fYr5U>)UM@rXHvVi+ihKz#xK06P5!2KRkz!f+SS}{Z)#U}y923R!|e{Ic1^cC zp4zqC?o4XecDt?1)A%j-^h@okZnrD7tGV6Y)UNJ!2U5F++Z|5rnr?SIwQITEnbfZB zc3XSX`1N}HQoE|#?Mm%xZnrnJtGnHS)UM%nhf}+z+Z|8sT5fkHwQIZG*1j};eICEm zuIhHXQoEYl?M?0KZg(KHYq;Iv)UN4v$5XqO+nq`6+HSXXMH;^q9>3JC>UO(QyPDhW zP3`J#cObQExZUB@uIYBiQ@fViok{K5Znt%18o!kuztpbkcDqu$TCh_OYY+SDLN6-m z`qTi|($`lOHmEa2_lJXWbhmh`lP;8Xw8~4%1&+|sy}P+s;Ao6J)TBqHcnhdU@B8G+ zJTS-sIXxd*#FyR(;{7R^%6UCJ6}Z&Z;&7UJX69=kuh+=vwJA8rWbkC@{w14FaKacOO59ZeD9a!RGPk6!EZ;$kLC&lafd*qXVyOW;ZXp}LIHo7@GX`ij7Wzj9AG|G|6-@r&0DEYVZ%OUgYzyMnV4MA5k2wokT-xS_di zuWXlNYoWRAa@j7!)?zbI_(h!w5NN80mP zNxGcgNW;Ku$>vv2mz7KJp|{IErV=3ba#rj;+vftp4tMTUwSE@43Pu;$868(61X06=0RMv;GdH4T^%KWib}w<%RH<8cT@sp zuw^vA$rCT`ghaC@6VI!~88Lu;0 zuNZCsIL`NpxgNQPj zBokRo3;`3b$xw)n?7+lEn4$2!VAd;!;1!N!B7`bCykaA-Co*0awq$Y*L+}bmG9E&e9bU2NUBlGW zt;PNvRfk?$EB)vIL(W@y2$kB06y>>&PKxqSM@-S{O*gWk%*RlqGq+|!#}GmXGXzpv z$4i6+f{WE_;vg=#Ckrp-OYcu+p*9~AHAjrGR{<41T-Xo=MS9BdJks?TX^UGc8#fFV z2jYgW^f^KdA#Qj*J8rmG+{8hsxF>Dmc3CnB^cBZs#%au`D7@OyUTaIwgVgJ5xI$y3QS1T}b6)G*YzQ9Ggb8&!vzHEI&- zgi%val{xu11hw6$7F6A+6HqfoEkG?8wRu}H8U40=RG}J1jY2hz8iQ&XwFjzgR0Ar6 zI}KH_ES`a?8Z`%1GpY?$H);{8VbmbW-85=DRLiJCBs?-J;gxoz05&n<+tqV5`Q~iG zH?s+k!4n>DX~JU&3E#Z=oP@{45?&kxi#r?Xq!qJJCybhh`fH<3L!B|Ia!WD!92s<3 zG6eN`qlTfj7_}4X7NhD=w;44FRWoV|YRsrZP=91p3+f@GPCz|u)B@B#qc&HIY@1MM zRj3f|DAW^XHwN{jQG1{c8r6V$#;9qi=ZuaFFx^S`DNifc z_}Ujj!oQlA#!qDv9)l-5-qM7}5E350XKOqzp*X@pu(&7H7o>yZP~%2TKusC7A8OvH zrudkrp-O?;W7IrU)2P!>r;VzRRh!8wN)Xg`qlTe&8nqK@k5P4~{YFhf9WrV^i9&p& zjgpJlVIys%?&J-nPTk3aN!Y4|rS2Mb0X?C zD@F+l_yz$YHpIc&pkVnyJb*(C2=IavbQj&AEZ$fIgSCs3h@jy6{r#)DPoH^9wlVOr zA9K2^yQ}{7um8LLRmIi+va1KV`Ukr@#MO80>Ihf=VporIbuHK*%_qU{TkPsauHI%> z_ku0p5w_GXprb_CO0Y}vou=2^^^K;e-1V`0rDfgqQLf(+CN18_D72tzabx-G!aIjz zm3Zd_ERT1YKBGaunLwjK6P-y|b(bPycJ&9kIueJqZJ1YRLz!_|-^(y`gDk#SKh)W& zYv+u17;VEw4qlFx&vp?{d@8sQGgh`B20SI749~~b3-hmqFOwgT1rvF+NpGwPLTZ=_ zw-CTSkAiysk}bT~xRSLVTeeneid2&fZ=OEZttH;1bA#6e5qmqRvbMIA_?FHd=J&8p z7^cd@RKJ_DxW)0y-PUTHB+OfnhZo9v7EHBGTv1KzYKz!_!d2=lerx<_II*N2L{Sv- zb)BpXO;Byg$FSR5oD5Bgbp{BgwU%VfvZHa<=((oTP3!dY)cfUEa`gJqU<;MKWJ}(< za_iOt6F`UAFSuQ=3~5QFvXE=TV2e5q$G(aNRd`&6)DUk@+CkRG=(PL5D)w;}O(cI? zW2D^;=HT)$<95`N%(6q~lkq6HT(x47V!|I5% zZHP#tY2?F-zYu4YcMn5xA(a;75w$oF+}%#v>D3Hpw|PjXzZ|m~*9J?0W`PD^TetQ= z6&v}pzkw$)pn}AJS0rXoMa&d*f%5?NkXUmDiBVD|u`Y;sg-HowTme_tfSVK~#-_{# zi5cKVVkP7_l@M9dW?vh(mknd;NP*FA@~9({Fv4Nv&u?>T`v7-&s88TVNCI(26hN=* zDnKehQDJfu9v3%$ec^lrX0;$ypt4Nlh5O1u;}AYHgC~jrBVaIj1!7~b#S#jk!xs@> zuwxB^CJ%WRxgd|TK9PqeE8v`Pv-ZP*IMxRNfa~?8l1u*8s1Q!jhUJrRqd=nz!U=> zNHo#sESy5n38sJ!3aW?hS ztusWcP-lqJT1fr43PmiU+KJ>q{lwIdL_;)gl-H|(OsgPM6__j(gs4OtXURT6sA;m< z>mV3LS3#;79fBlFZQXwZ%fv{HJ{wC zhghLbdL5& z#_$qhA5I>F*cnQ>4-O#z92=Bz4)XzI5$|xtxZ`aM$Qqs`Th+4&1OVWojuuzbbh}Lk zgxU>|kbbW=?HUq9_OHyx)B-QbZ*j)J%-RsPdVv@1gXu3yCfQbf5O=AZ9Y;-0#ph!= z_Fx>{@ibt()aUSkTmXsa+)OVwX|kYFKh+~K(4<4Sl={;5M9J@lVPjh?kqw1!#81GU zN2xQW&QNUEooU#>QbaarFdEu8u0d=x{ZH+IoW9!NgS>s)kzB*+KGDNK`WoJmfoZZz zY`!GMJ7Wr>-Zq0C#nr?b?ca>a%|=)x0;x+`fAVW#yp4}AAh74!k!wGcrRq#m+qe#0 zruO~Qn5VHbXCoSxzs>e-OeJi~x50a|3j-#e!o+tw4>u+^hovm2^LfpT>S$XoZ@0z1 zkM>!5Fzm>VkyQ|!o`*7O*o~1MGhq@;Tqw&%ue00Sw#-~|G+bM?>3JtM$^kap6%4q- zi8j5URK3MBPm%;iTKoTt=#2)uvTf9+XxalyQ(qNk58MLxgBb+)6pQ356iFSgauNQYT zCpsB^>yLP zKr^@J4-ba%ICF7>+$|gK4A35X2)2NLf-wE-sKeYiC;*7Ttc6}^FU_~LP06vTir0SB{y1EMeYZZ>G`EE}E>ETLctXTZW(3Ko22O>f#e0Ax_>PqRH>h#jY$ zrGOej=ZHDBrHqh)*6St%vLtE*eBIKdUCSw9uFRidn?xYbnwvX@wE+zu4T_)!HJv!% zJA^Gq2XJzQ1q!poCRpoGK+US4KDEG_MF!#&=sk7xL;l6aL=(P@fTsxdnt=|X0uh7( ziGa2d&6aDB#Tw}?5sF&;*&hbPFhrh$+;N1$C1Dofc*3OACFtr#blvA{56KgxBf}ss z)PfEKcC2x}tI%%~{#Ogs>D$)ks|Yf@WLFIhI9e9ufFfxJ5sMY76=B0TMyMBz5NLAM z0fjxF4p2c`9b#KYg;th3GzAC&!Am#v3C_+V_jH||L-!QU&W?d_nPt0pUd@voRx>pT>-AIqH}ZL3^5EqCM!?@Kl;QH5(LPovIN!)v@6aw26j| zu4<=Z0&!wA(MfpO^|ND)TZgJ0C!XSm+c?p&;c_Em{s2vyEx)+a0`4@=AbhX|b}8il z)^Mja(N2+sL3^2lX{D3mMn9)?nh+vxB~##83;Bcfg=okUXuGonY;^jW_NKOeGlmpt z3OAGa1;?)xKli6Mh8;3BHexEkpU_n^YOE0PY7| zVB`*BMOLO2X()(I8YbFc7-kqk8lGw>aP)5^i-<)o2My|UVv#W%M=E&HD1ijHrM@Rk zR%+7=H3X1JG>pl@MDc>psx!eiSe1GbcP1g6_(5wAD1y0y??J2yJ&X$U8DUNYU;8xC zxt<~@8zz`0GNqfqLIY4;v<8Es?xE?ZD-wr;SzQ#24wzT;Lu#dnDQ`zoS;Un%;>eI1HOqpA!Dg( zlYgQprxi)tagBYMsDYlEftfs~>IXI*QG5|5Q_0+I9Nm3_Z4@8OXu}5V4>e#vU&RV| z1#pko$?*JM#6pP$f|k$?L#$q!nt@vIB4X6O?6aWuT@}>cSfV!XMXkZ%G)0M9$||^3 z3yOS~Ks{IYa*s}htmj21n}OYrmHJabgWHJOO`(tjQOFe_kZN)YuQA{`wNWXX+H4$7R;Vn zT6%zia;~Jcl+{_>l6;~b_Q@(d8W-~=h_zLn##zx3O&IX%-n?ttJ(Tb%KO{Yqug%KGZIM?Ci3{;6GwQR4WN!x8(*jEr2PrU^HJa(^q76q~ zz%Hh^i!%w0YydmQ57bC>2t_s$9gJnJxuDUWIK36kB>-qye}EyYrN09<4SdD!P0EIV z&rJb-gVaZiY5uhIhYyd$xN*?mHqoC*9L+^_P`S7bAXvpMPEQVD35kUF;>$Y)USAtS z4OwGtJj4&=(FcFsO9V(){DnULNfWk?aCQTy9gv_`wak5OTh)uE>=CQh;oaiVfV*n9 z7{z|JmcwpOe^$|@j8=I~t!kj}rKP_7y;?V!UZJ)|fS_a6r#OKx7-fxPA6?_7Ktz8r z+OlhSYoPiTWp1?fP=>6%)B;?M^eW{{Zzp@Ahi$jhqf0x>Iu-yE2pH@An;9~V$4E4` ztPk$i9J-tWgAx-XU$e1|Z00`}M~aekq6B}B8&@8)zmf+d9kCs}%GDrOj$ei8`>VV; zM!|@~;+XJjQ~e{+{V}P+{hN#n`$|p_O-P!k1Xo3VVt8d9ZuJ~C$BV{c+MsnzmM8tV zKc-KEWvzq0R+Zor!Cy<@FL_-{9L5Q<2;*>chO<=g7iA9PdZ-j=i8)$XEo@|*IKgvp zDc?%$v5a7f$JI!5+}Pt-jJq+&5F1Pt_E@cwtYi;sJ(T-rCV~-s*?OOtVo-ll&mP-r z^RkB#2J}&_t)w0!z|i?FXeDc^BtS8eG1k&Vvg97GAg1tD9CsB8V!zTrstRI1OJ!g2 zBoqX6S5XkFP!O^JyGnxkK`x7n`Fn@`{fPb5QemegwBXk%2`$?l=}1W&XZ`DkHDo8H zB(7P6j=09?`DsuQ*N7`i3Z6$p{4l78LO0m>j0Sfg_(p?|5L792!!_xLW>XDUow#b) zAI?kr40Y&K19sGVD|Xb*(vJGF*BK9%X3un;aadC|heS7A@wZoJ*scIa2nI+o9EH}p zI>R0v?s+ueURqFR9HOOZI^z(NPZIR=>kJ!zWBC(T7zd@2t89Fb?!2N<7;3*)VPw-4 z#vyF19)&>#bofF0`$hZv1^dgWz>`uK&Djsw;m{S#Z zH(heYRLN8XZM5->GQ0Nkn|}hEY6ZWxgAUp=$XAGUu#ObHTBXb$oqkoNM)>a1HrP>A zRJs*E00pedhz#>ljd)j(v&VIaoKb!J(PlPxU?02CO=P}Ok9ZF7?;{JaQWM^brIIyN z;QSa}HL+-UWHuU)*fRjlPovnJWaTVHX*K|LjWDxjGjVa@# z9n(fLt0~6bX(&oAr>*z`W14nlWbx*}91o@!8){SoVLnWq+JywP1}@%W4qxPF7GhcC zls8khv?-=AJFx?lH)StbyKy21t=CUuE>EWKYMsfOcvV zN{iEpc++3*V|1WXA$9BA<(pNSFNX?24d!h%BPdoh zkEVDkgVB+X4_=9i9D%ES1tRo{8d<1o1&zz_7ppmDdI?Q&bQ<;K(N?PB=?EN+DB?Gr zSGpMa!v(?^ly3c%C9^CrCvM6+acJs)x~m&KdGsy;t?0=&YHnWpXsxh65h{n_Ckd4! z{F+daQsE3g{yMdT)F1-DONCgO!h7tID^fb-anVH0W`KEWk!I*dHJiK*(*Kul&ZFl=vu;>>n`QEoIfxPg>N-&y{?^h% z>LCRZOPetpx=?rm7UjzAurP)j5iBqeJ}U_xsW}py3g@Lk>z~Y=3JuE3^fY+1=B&l< zHk|(2UAj7u+72KVsqGTvbLg)sq0OSdUeVUK(qBepyTHU88cZ~18ti(g^J5~ht}Z~| zczMs22Fz5Llp+@>B%#vek`tq9ZwV~Vqb2^)0xC=nSNiK!4W<&B5&Ak_gY~0du)&b= z=MU4Z*fQ{$AEjrMNu1RfR=4!J)()l1vWZR;IX<^8L;RJ&M2j8w=(2&NU88mq*(bV+ ztQ*#ooRBLR8#h4%+rY!> zk(LpN#(1Ua$w4i&Lk&$yIrOJ6a+H})!VaHh(7$CExVi#m9uN{UzTE*Oj??fA@xLov zjQC%G^>%k1wJ%o0|NW)-|Ed@NyGajl;Ro>~!o_$}LPk6(@$bN;Lat|sf4I0;{Ht3f zU*04fQ3LLmV@#fQ#s5v*IPt&JD!(4dYrM%Ph4{ZAJezdzoINZiK4rNNrER zA4>t0+Yu|X1cOv`{MS(%QA8d!^YD((X3WwfOa_Cz_b!bv*fft3s z#{&b%S`Z#6qCX|JRJ3RSnUhT)5rCTRo)tjY%mDnvQa706n>&3J^hrRh18b)9L8kmm zbLOC2!v=H{E1iB7my-<~3k+`jWJ8f{7LA|Czi8u61QSbM6oe~lE9)y8eJfY4 z9N_^tg^G^^)alCS6xU#u&Wq-1=wQ_J}vU26JBU{*oSa$mkqqDg+$ z$D`JeD+jTa@_VD!N=a>>1;^+w3*~;wHbDrlGs(snK$~F)JJ3%%(M3}ZBiTHGjnaZq;68S#w0)C)dXjZxtg~o0#@+n%Us+wbW zg=fUD(-7B3{dLOq5r55S<%j*XMj6^Hy2f1}4Cr85p~`mM-K}hgzgA`2{k1Ba^w;xM zcFLkUxU%e-)~!{0wtP|Fdjz%StcHZB3ZCOR@cgZ)tYFnNIMSX9<{GF108Bkp>$EDA zLQ_)XoMU}<34+l}WssM+?+Ymyig%T(jA(*lxPgMxm&>^#>3&LPqexU~H?59IwN&Yf zh#6zg)eyM=R9FE^#>!gDYL>$or0eBri&?Bvc@RFI$UCuaHoP_HL5d+-n(MMqliEA1 ziYU1SgU|Y-5;8L!%dB*h;DBkkf;Uzs69UpVX4Gv!0=75+hF0VtNdHtOl;-W7k%p4& z1azEaaJg8dDS#F}6kc3Wm?sXg$`|KhlC+ro>&tiF9p-+7v$OU^(`fCAmtOCr@d4MU{o5b4+ zFyS1m&?tc!(g0L|A%)EdPwG(8$S7yUvPPifwh9Rh{otgiEgQ%C>-H0)ugx#fJc|Wrz%2Wk^`$*HG}9hrcB?{GePV=HIFqpXLv9i>&dwy9 z>NN?=^84mD35O~J{S=vmo73MuD;je4U;zd;!f&0tJ-Fe6|NY}1`sAaZyZO6X>oeWn zldA56(_FJM`8Is;Pyg&gU;2~Ju{HLB@0(S(AeakSbqjvKIIFI#CY}RZ3t4q#1#_W$ zVXJPzDi*NnhBnV{)m@BLC!r$gxsW|akSm!Y8&gTg(lAY&NbP{)@;GG~Zt>g8ZylZ{UV(J0s58TxI=u>6teeo_g;jk3Ke*iy7^9^(G#VMXI%<}unT^Oyz2g&=& zzwGJ&snh%?$4?wuY;0@>--1LjzrnZRgFC+Qp)Y;r3pamxZa546HJh$%FPwuBo@$%! z=@WxpgRbaQ`sd!DD+=2SO5V@q4sR zhwk}l*1cq0tuS}U=7H1mnc25z%;z%!^Y85ow2tMrr?g)2B?QT(+IK{g*_I4dx)W~M zRN+o2pOA)duWUM0R8vgoI*-DYyOpEb*@(&8=*o;OBKFoNG^Vt!Q|Tb5`OsbvRU4HkPOQ6$=BeKawsPS`B7F1 z8yL)^D4$oZp#JA8ep#z{vH9*pEP;)n)!SWNC==tL|7xy6|&+jzuq8HPOe3~Lm)CJyXnhqFjjq7 zpo*5sn8Im_Tprhvnp+bxS*6BfLd-En9csL*LXBcX2wB;Z2Skk;{W@(MHEQ&0FNzsV z4SVKZga(CE>f$e>TF~H&Vi74d^}HY=O+@oHa8PMJ;`#IkV{5ie3Q zeg@SF$^$g1nyl%P=3XSS?0qJI0I~7z2)%L{m^PECm5VlspjNo45*sfvNy?Nft5hU# z1_UcD3+4wrtvQ$#gtwY`LVq2t@yNPKfoQGaXpPh@lh88SyQ=zp3(3-kw zw3cYvBdO3Ddk2U%Y3qKYGUP%)*vC`ax{mq3rNF}aUBReY4|-o$q?^BigUvCvRvLAm_lz!j#|@;Exq0yd`oL&j}3pENEC@z&o{ka5_VjLry>phWIApiLF4NslmS~ za;D=LlneE-XX06KJ@N+DhojF$;C0PMh=~7&mNf(0Vu!a)?4k6;85RD8|I?d83`|7R z(0t)qTB=E$o4^o#TK#Tbw5M>@GR-oAj_K252=H00Vhn2R5IG2owu<@0TgB8$-E&#R)8CUS zpKcXTQI`x2?8cL`iVpyS8Ak%8v{2T@84Q3KJwn|*ugHEXtl|UgPq8Sgm={mbDmMQM z1oT?P6gaCmT(nhufPC|Q`eH150#@<;CuJ3Dt;CbDiYHy3kh6;W7+4g1Qdq~Omny1! zKvaq2IlFbdTU5z{js>k_Ui8MVOJ<&79Z!E@rggl-li-P4$1K1xbI1A5g-7PBzEZewmxY=>zEf2c_&~U-y)RK-(KsO0%si?%`M70z6F|-p=dO>XzSQf+=*JpqBump z5^qk*I)&YBMJ$3Q9Lt85PTn0Mw8a6fuphmIOn2Kx^0vraMNBBB?-k!V z3-C#)@)NcIyVh5a1^2_DyJuK{Y>R*)tzgb{3sCco+7Cezv9JIohYqL!1D?NyCD=F9 z3M@4BSG#iXp+XLR)yu&XlYa~ZMevwdy zjJvM3e`-YE*L-3DvD|WT*HDBB(oHOAoh(mogbN8>f^9=1A>=AO@CC9qwrKEvghI317Y@y?(ITA1#Ae^=;%DHaSct<2 z3mZ>9HrvJVxMH?$U2As}vhCAjvpalj_I*C`wYy4yJsZa;;w2}}#bzHfN8{UA>wgn&4!jv$B}V=xi6DuD#S9 zs#z%#fjKia;e=+S+4=h_>U>|R&YvaKr!{O_1}}d6NVSODKGmf9KNm1CUEJ2W6w>lf zAT8e~J@fR4O+Sg%WxgL_IXTZ{y_1vEW3{8f6T)nFh!Kyo*MNM`fJXrCoBpL+C+CXM`9klB2Z*(XD0*mv)$ z*mpOU_T95$?pZPCBQ~1*oG%{xBHpsC`BINd;<2xP3YUwI5x4 zpjMkRox$arCkxg|1me~=k#cr!{%r$G4_-EUePMi;2oyA+T;I(aHwWP7RgDR8Z zz-=NI688-hDAx%O{y4!)30FnqiWA%3vK)?U!Ss!Tyg?Hz{7@Xa)7V4-L1&Is%EP4; zs&<0Tu91jcr%7wfqVw8H<+JT1WNF?Ca-fS z)h2sMPVjeg`bd}zP?9$%bUEYk$GVTX+%p&sC{Kn(BK->elR@bg3$CKB_CQ3!WHhef z&XgAX0y3HbA)296-afuLvc6m-TTZ5QZ3)ei(gndcbxUC`I8E+Xv9?hWS- zMyF>npR-Jvji5MfIBT>cXl_7r7Ub%4Ot-zD44v4v3(oq$tWI3#D~>=;G$&&ZERsmDix^!LM_o-hnk9X2|oCpGN~JfbtXUg&zkDtGIJ%2!hX z$HG}r(FxAqRwwG}M2$ar$T95^Wh~sZ&X8JNbf!jUfR}xg&*iB)tXD$TF8S_g(@?ro zt8}NVldfrLc3mB+(V;e*5B25SE}~t5#_(r#Ee>S-HDHOMj@C9&X0dw6iAgaIOv&S` zE}#&iGFVt1yqOO)p8RMoDb((&aHxWynzvJLYK%YsR>t23*^Pfa-({pPZUA;A%G=gn zZu}ivm7-Q(b04~PZC;9Y8T%=5xmf?2VZI zw8sE+ZJq7ZkpqkeIMdNc@l~KDsVG?8x(yKlj<3 zYyxk)(Q8EnTc2xx{xRrgjHNwVkYdS*R&RQfO^I`urfigEM|k0 zQwo_4YtL7gbTy*3?P}CiFsN^$jL(#ov6dp%|EI6gtD_Q8ylmUc*L3A4<~7leCAFHt z;A3E@+5Ea|ag2M{u(BrEH9vj6Wh2m?n`ErLSq9r$gm9RDZ^aqx14vzLn4%*6r$;Q1UWFQQ>|(zXFAOQHqIGb_&~DfF++V~;fzvVDm|p6X$5)c zH#=^JZGF+|gwC7?@lJztrp^4NMysTji~_s|Q;V(u6CJWmNBgR@1v_a= zik7{S?1)MPu=>#>pzaZ1aarYDG{gl+9i2F*PbEcsKQU71XPtif!za{F9Zu%@siQ9D z>Zikt5_RM*@KFUN{`52sBXTG)@xbZ@Ui2tYUkoqS86^B>R0T-0Bhw_8ODv3ND`S`u z@unBV$5OO<-MJ!o543LRt0zB?=cK9beDX&4!EiSJ(YqX8)lOFOVt)HSyD#WSdL;|T zC?BJ?6RPVgCq$8Jf?}v=p~$eL$R|&Z%857Jclsa&6hzji{pW>bN3XqP8J`SUYHcWF zNuQG6n~f|R)5)?vgDkPK#c@WHjag_?YxNoGnKWq|eZhOBESQBRJ%^PvDGG#$DtM7S zRpP}FsHaX2W)jjk+-W}2oU$w|(IzkJ$Fa7j%|>$SY*f~z*r|7%0L6OBT>LjbXQZrS zEpde5dHTm0I1^|s?r>WVx8D6{=#xx(8yD;jlWtJdO`g(xu7 zlGp;PX(^H(dtcn$KWynN8|I5; z=eAeKKpfg2ZO%W(o(Qh1T>oFvd%1eNEXVU7gifD$;tgBUU!V_soo?jmd#Lrj)LPFo zLN~+tJGp-s_p$bw41Z-fkJF9P^Znqt&GB>2N#~YRA-)%BsCIY4a{~X*uh60$d^5@> zYC8O5R26USoSOe_fWz(59sRw6J2*z8?IcGOAZD>sttAZ2pP1+*`nafhZ~p#v*nN$Y z+JFFCtY5p|nTI^wS<>#qfY9!N#aBo3UoEeL;Mc%t7XGnN86*mW$WK7&_0iFI|NE>D z|MBym&);9|4|W9zW&(>d<}*$e&H7-ZC2c#Ng&!5sXq^9q{>Sxf@iw)REt)mYM?19s zr2U)?L3@ao$dUYc+I-Giv!QD`LmIT5-#ipgLI`&8rZ@g;p5lVr*E)1`XoJ+_((8;S zl5FT!X9}^~9_Qhi)=8+AUDup8wGU+g$ZONF_d;&g!n+kF8y3_ESX|1pf&4j}^Zwtk zBJ=S3BpQ}yr{;ebY-|t4<2jTHC(^0c(W%qu6#e1Yx!gd_PP@9jGT)Y+c4fZpwQUZP z0xxVF3NQpt++lw$-Z8#xW$Bh|<>kVhR5-2`Xi=y^n+DoWfy1&_^04aZ%UZ@Acgu2nX5Rl@00MJ{3&a)c;C4CM>!xQ{I5^Pl2d2D({h&Ef|tIhi- zL@RMV$(D_s6g1NUJ8glsNtRwX+&=xB(3pDsrT(SymxAbU3x_t+_zF;Y3VJnPgXx`}{_gha$S+Q7_I!vU; zLSwIm1qML*z%bn2cL7CjxIi)#6S_T+Z_D2#A!_Q948D9c~hZctkbjHn3>p!_;0 zROC8vgYnX17XiF}Jqah#Sr&S;zC4mYf%-OPQWFYV7^Zrf4w8ZZO zB;*^UW`;TMzkqHx(3G*DjikpAS2{wC=1ur!3B*ryQb+CnGR7|lrT!9#MU4Lbat`OtUdx@zkVuU{sD+M~h<$&uS1$4w~kh;Shfe7g`EIcY& zzBymcd04V+mP204!M_}~0UHwDXypC$QE%A5ox&|9kQqG*{6J^o95KPnh73?0ckZQL zHr_s+kvQGoj*Y(`QRiq`!#ZFxP^ggr%uavbZls_{!(`v-?~_PeYMPi1HN+jP+;5cJ zQR0+$FlYtsG7iXYFL9O;ge303^XK903?k72QELnxHFxZQzCZBr9?pLi*uoEs;bkGd zK7j|1zAfAg+*z_!b)tChbkb5pdWX;VO zXncuZtW1&9o4*z3-3Mvfp$ zE*MT4c;0UblN+LPbKz)ppbmhB(7FBi335pAEk{9c#CEnhfg8CnS^6fSEK+|oBcb>T z9tLUr@S1L+e!Xwz2Jf$Sq2&?DYaWmntd|t*QP13*No!fc6p01PbTYD{y0K^non2{^ z2ePn%<3i1LPzw)nOw{_&W|=7tyetMhs|*Rj+luF6CS{>@PDXgXEosZou|+yT@*fq! z7`M(!Aw|5)|0t3u=FUOH=jb!Fz<)k=APAYJbwLpUOQ)$lkU2#mpE`iruxgb2EMNQY zHAh6agUH%rp+c7Ox`58=Ud6NZ!DzC5{?WnnWeb~PcvganJoL>iVt7{m7!HqEe)i#E zTx4DL4iBWW@bDa+b9g2rw=DuI=U^U<#F=&sxA+IT&=iU$k_@CVY?N*1tq&~pt(|nO z23vjA+>iz-t@?qSN&hD_kgGVOVlqzOkUw~BoPHzB4_v34-Ph|Td4(l; zXinXNQq7Ku{6N8|z=H2qY?EkoO7m-1sAnBfjt`0HW3HK+RA24P;u;%8*Qg}<>)0`< zj;WS ztC`b)>B7+fp3$_CAam13L3+Q<9!B|Lz3x9)!J<;&KxMs3W?_`u9@LeGB@9f->39+c z8gF`dH%%Nbct5yN9CLRYsWjaW9_-Uh8x@Zf6>HE)(W}R|# zkiL4s_i`uex=>~g%DH2Z$^z-Zsn!V@O0!;+LZb!5{_yTNIU2dcHxRs5V5 z4ji#o^;cOJ+FA^uWivm_wn)noWhEV`jUA^52tpQH&>1~^_+l%`B^#NH=rBR4pqK;CHC+j=^fVxN2@Js62V)FklNhDdCS)GPg?V&|i!>AV5W*dxw-PnZw%-c1 zk)Fe=M2wer0>c@tc$}#c0@iIQUriQmP;Ol?ocxcl+|}O=A%N?2c&8Rgk_gTNHCUet zpMr7?gT|9V9zr|SqVZ_l!J&GKF&pUAt$p6=j+scF@xq!b@uc~Tu`PM}T6JBBfnpS- zZzz6d{TmfIAyhOrxMrZxgzp#}L>XdKPen_p(M%~c_!-DorI^GHX-RQqlJYOs-BmB`jBFSORFERuoqWp0pl*5VkddF-%hS!~1rWAOE%$eA0H0f8^WU#J5B4K|4v7(Q^7h z21LfoW$S};l26yd#Lp@CaXBMGAc}|F{DH_O*6c#G$z2VtjV{qhG|8agr)Gg32mote zWR}@Tk*9(Pb`lS*#fjql6Uxiw1=dbLd5ot7#&1fB``;u&RidXYo zXQ!a_7}an~TgUZ91lt(YH{mJ9O)@&noZUT20tij$ z@l*q)LA7lai{TZ)&tc$p@rdo}(Z*DrhyKv-Ni2XV)Yc2#9J{xj_M7@BnK0WT<1TERhdl z;9x`j(6YM0PEL-n&NUPvWmZ1rYm>z;F{U&-3%Au zkX+$Cc%{RDJgCE*FyDL%T}aRyXa%vXpwI}MqfhvvIpYh_HFjty>hTr%Z=myJHG&4EhX~PV1z?FtTP)VWNget_jivwerX&&STt zb{PiIxTC#Gut^#DOBE;OcasJEh)u9HFB$XiuyM7llrCxI8KaG0EM+@{sv%^<=UhEj`!c&gP$L(s5dk&<^2Z5k?2AD`w){~>~YNw;C6c`yny~$UUyMb)742$v}iT)X8NvJ zy;&c;I-_(XI*e?2jk|o9%gcH5(DjJ0N#4yL(A78>_g=>Z9iE40Qs#GK6PgGNf z^azssIua>*B`2H-$MMv9-IsnQ%)qK)V8mJZjL}GRdHVabH5!~phP9Ub zR6xPuosbe2qrtDbwrS}yYr3%0aX-G7mn@RvH*?h=wXP>w$xy|UBFS~tHm2!ipOJFR!<;^JQfv#r}OF8m~% zBdASn?SRiGmldB(-Z%Fr_(M`D3Yfv3LH<7-W94^$I>2`eGw3|s04#_O$Ps6V{9fEO zCBFbStLBug3d``5|G9mG9&u&%gYUOF|Jo;m6gJKx`PP%sR-9{@M0%DDbe}x&FYy-n z-8?uIr>asqgmSxr;H573{5MK&5U|-EasH3dDGwc1( zI~|csx8A3h_YTn|Ziosce32WXP0!R2?fMHhL?pplQ1fipr zpiHM{ETsZ1QO1o6z2TC~9p&!1d3MU3UY@)?3i7X1B2Wj42vq*LO6gQtdS9h8+L0TguY+R7!W0r8iYduP;lltCSx57V1F?GXJM(OmLZ?_zZ^n!aPRUmMKg>2~g=@SnlLV2;)+&>H?c{L8i;w5n z72!8&LvOZWbYZyZYuPVn#F-)zb~U0X1wK*w9;fZmao5Y|q|IV((|tvY7RT^$Bfc^y zh#<*fv!@nUCUoEfgj^K?LW|STJpZ){`1#V;VX#V+#&XXDG*B3mP5tidR5ra_(T$xq z&j_d9_en)JJ{Uzc7v1oa2J&=d*el4vl1SNrI$RugwWezvl-xHE%i1KKLovXT<*DAv zcsFS-?}Ay?^i^me47OD+_`yV~pHm5a+`yJGg<8fW9YC!71`F0TJ1)4ur>%~yIS*yI zaZGm3A|ccc@lTgV$J$JMld|4o<)PJEx8+eR3zt1dRV)&s70m(=1C(iiQameqHBcWB zGO;4$As|w$9};b`LpWihFyHPFZnUD;lAq`j=k#Y#=S@D8UrY`dDv_07jp&t3EBr}? z?R26LeRH8N!k5H$jT$U)1PI*lFkXZCT%VE+-0(IqnteDumzB$?pBONaZ6)-|$Yk?e7|?0$y_!Fj#188?kfA9I7QBR1l-fdeFE+ zhK|WBMj?iPaMVJ!6 zfMc;jd|q*eXh*L(fSq@joW|#l{iHo~Md0z0|EX*0b|4&-^@$L=t&MGv;A9V~+>K4^zo5 zrer!My;gL}d6*TbOw&2ai=H+Q^XPw>UE)kHPtFPCPr82v$}5+!CObmks8zuFe`3P5 z?(&x6GVGRy=`C@RTDofv0DZQ~Q zeMhBqvMhb#(XN^P_@h$sGTy&aDLqn_K2j+?RF;0VQu<&~nmkVbK2>?Lzj%`0St-4} zEdAq3>F%=hy_M3PW$8OBrQ6HW8!Dy8zghI;d*AH#?`T>2Sf%vgvh?ef(t~B`S1P3k z%F@qON~em_Q&lv70KRP~?ABj{5>x^jK z+GrhDjkRO}V6?8)v=Mf*aaC=t=B2WDt%y+>PLcc&{yobkdkG2ijf_WTfb}z~XW~}P zW2+u+NUi5)U9zFH^o&hqIMv2;CIm4pq_45;ghxX3Omh{pTW~LL`>4C4`hEX-cE+7v zo_rvV>ZKc@5IUWe|KLr5$QiwnTm=|Su7Yes>2z}t00xO7Lw+6y!5JWRXMogm4+Ebz z+aXnf63i@Cg3@f+5Uee8)Y`LU^2#}&QJf4uWU|D}KG%F19u7&L@H-K(_}t7sH~UbU zeRx5JK65f^&dDf)#;MyMz;Z}!e}H;^NO+WY;ge^yWrdAEM-%XN$-3~TYAb}G+@Jtj zls6DLC+77%uB%b)B0W@Ze=DqSwl|c+e+zl5Wy2o|iFS&6G~2S&s@Ui< zv>%3aSzrY1_)KhN+{H|gV=LpXF~?o&L}y|$IT@ZO#aSA5_>3eHu@p{~7z_hOAm9bc zw~sRX0mU)}%w@Fc$o}Asvy=Vwax#kO3^Yb`TR$yZK8;)CEN1XdGQnFk2!Dugp#is~ zQoCx&&lD|U)E3nUHB{3~{u3h=8A{3wQ12vChkP}Sg5%zTejtBd;JFAVSyO_d6=d)ZW|;ei_?+Yd}JW%wC*@||ZBY516k zU`8GVCZ>pjgfDp)b}h6Vf4hwUgFX`AY9kiqfi`hHxvE=m#CaDMGWd%SWPy@JI2BR8 z=N-n2PyjfT^UsxqqhBNRdGFtvbc6Fe38h_*B1EmgBUe~+ufWqxUZ5aA%ck?^ev5Fx zi%OYn)P_u+)%!MQ){m8QW`)%4Gm-k{^(Ttd-A^A^fj;nk~#_ADxK1 zt=SXYSKlbW&E9AOz61wEe=I~zScH=b6~=6=30ms|!N8P#^Q=IrQ>x=cU@&W0p@wRB z+A~)*YHw*#)61V`>^{e^t0^I+hn;B8P7b@LPQ$KXaM(Q=7-q$;=du~tonEf6MLTrS|&5? z8Idq((w-5Yo#i|CY_)&3N$HLb4pz6zfTT@9!+aJ}+1*^qjiN$Kum}uh#;I64_f&4t zTHUEdIHOj%izWD@EvCe9ijU;~B&XBaEh2 z@Y0$F-=1k+(^^r(>iw+Mg!;meGwWkl6LX?Htt3-^`GC(&rOP&HA`^-$O!q89Ln;N- zqN!XlL2`*%Y)r2j#d_4SJz8qUqB?;PRAs?yNTzVjQod zNq%0;kLHCtWc|vXL-n&SBZ(1OqNO_}fRdTvtx-kJaRAo2Sr@Lx$kfjSA$0so4z7s}qkDJ&rd#!L3sTv>9 zxrW|&9dX8MM)!F(L?jS}XtP8ZgIT}x2{BTIdNXIudmQ5qa~5Axjv^K`ggH=sWJu39df%MZ;&x`~4ZYE5#Rj!G#5;vxG$rF2(W`mRdpjb-UODy5TU=@Z}R_U-X+6!m_mQhKB;eWX%)s4V?z zrS!qF^oy0!`^(Z#RZ91lrFT|JZ!b&#xKg^iEPZdKbZ1%m&PwU_vh;>Z>G2~)-@bRG z+vB5U>0_1Bhs)BhS4t0-rC+I(9wGegapVyO~E^PiXBW1w}JxjJSBjMz%dnbaAY@b~OPcOH1P>Wv{QDa7X76klx=~Q9_pw$w-~_y0hS`2 z*sX{Vbo}SiiOGTt6kM^Xd#j$$4SsZdb?SclGu%oLa^p;dd}s`W{DupdU?cUQgI=)+ z+~5=RH01iV=grnH2f0Jk7#W!bqSm=SqQ_?-$_xqv{?H9Ju(JX`{TaZ&3J9ri%6$bs zSjD0EnsBJQWr1PuWY%`L6(z5HvJK3hbMGn#^?PraL5mOnEU3TGx9gM6pu~>hq*&`E z$^3nXrQ(5E&+0t`VDzPMs5FaDERdqz6*?N3oCnR*pMmBJ&5TM}j3eaAs9-@O?bs@6 zkS!Yw2IB=#?+8;XEYx@2as@8WK26r@9mTE{9_NZta#Tba+2_o@>8T|JX>l-orB&Cb zi%yTe)g!CBZs~W|fUJ-B$$QdzM5v)!#Elt=9(RaPBgfctS7d5Y@M4L$+7j#qF%#Qd z6RhhpH+|JaAT&;T4|JwH4pHxpH%Fe$qj58;7ha|$;bF^^t`3rM7n~+?YJAnxq~uAr zp{hJ#C=DL?{G5}kzy#8|qLM9TC9#l}?|ZAUo^U5=RlW?_*r14}deEbIq*Yb{_~ExY z%+zfd=-K*UU73{gJ8r!%{ielyN`~v)&5~ndwxKF=a;1tVYa8uT4#|8CL&4{loi&t~ zovqes%dWdM&VhSPxwlU5 zq`#iCCs*dz^v7D-k87?q06(K{P{jx~1`sKk0Y%8IBmr9Xoad3Ch{ zfNTmFZqeSHpwF!_AV|P^SvQl<(3mf*S)V$4O8H=dTCHghIGaNi+)eEdDmYcOhiBZv zJ#F%TZPrfywBxvpZ8s-aL5$!80JpkIqC$)Pfs6mN1(K-(@NNslZLci@HTf^Hr}Q5C zy6cDairRSCDugu-b{w8;idHWYJGjs#vYD=cQ;cNT5!|*4 z00g)E=JY^~nfA(U7RNA@E;}tqc8inaH;E0|RlvB>ZD&e!Mnlu!9Fh&&+5^!z4)D;H zj-7Z*IA|jk_2okwhtc76a2IOeIJ85%jd)VhUZ~{HClj}~`;%x~|7I~80tF#!g0yd% zJ_E)2)8wV5c8p`H9*VU)NULA_nK3_jO()tA{2Q8LS;H^zqpuAk(IwnTbE+cF7*WMy z00K0&SkE45!q-$O?PSrdj%f6rzO(jRDGN=b_JGD}K$BYma*KV8U*-%RTPg$|OUeZQ znHe%Y3w20QtgH~S+IdkksnpBs-h6s0YD=yQ4Kz^#AsLMU^E03Tz zxAKUNl|qXzO=u}%gvRqroxmkV-FzKErfQ{=I&_Uo<6H-m7b~6uChqyZY##v-70aJI z5Qa#?}{sqUAh{(!rD?K6(|x?J~Aklx~jBOdYGQU z#!@TNmYC)VDt6P_=2<>0?^LY`_Gw1K^k--baPiQaXW-(0yZ~Gv_EZN>#B+jcoIkZ^ zp30{`qw=fCu!{UP3m%=MCegtTw#6IiY@m+4F@2rX{TcCODBFTG4zB0`_QV_ay>w*a zH(&mH>m+J{MW14I$skuX3Kq~;tL5DYc#j7bdV@vh#%a3*>f}}alb@V?tKXemrtk;$ zxjpKrqt3nw+L6;PreQQlY;jWP88a}k9k+*!9M8!3xY71OFCOf+?fZcqwIdL>YZgK~ zF;RfcGQ#T=pc<$^!=zOK#9m@EE6sN0MrI|}<~m(&9Dhixr^iAT<}t;uA9#9aiYCfd_qW62vRJG_bF-sy{hQU6#9&v@)~mJEFQ^}HsoulD#PUA(JQ`2d(RD;IQy^Hhh;MkNLr*j@Jl2d5m~2R=C@F>6e@r7d7S-|3$5!wMIi2HA7%CiUseI_*`0 ziO5&X1lkFBAe4^v*@<63gax28-*_WrT1_*3RKdPWRG8rEiZb-AEA2$R8_0qznPROiTQ#sSY44}4M|XbOdc^on z(M=wyN4L9Y{J@Nq30`%oMm74LjfZL2&Y45BQ6sG}>>%pt0072Murw8rrEq11I}-fy-P+?Un4>{V8YDxE@i5DniTFZspc#E-KBXO016uva^BnD;e}^Y)qJ{DBVRJOC`>%(unKe}IPa zgOg@D0NEK4c>>V2u3BpykDL*$Fq2VboOeT{OjoPz)(9&ZoVD((S_xsi>><%G6vA~M6mZEX&QbKL{XZPIvnLv9kV*KZ; zF7HU3qgBxDE+0rf0Z~OZLS&h9J1~`uD-!WGKZNNp# z%R(;Mg9-&HN^UOgh)TLJ;`k%w8gG&9cTR;Zm4gryq-k*@_=FU7_O$Y&{t$ZR-IKC;5~3ftqlrx$RDM z#)nOxsCqfY*t_e4U*?ClU&Rk3{Yu@P6 z?_3+5jq%OJqyHktwXFvjWsG#uUSIC#E;w*T3~$A&isB*ei3~$nBhk2BX-90oB^s>9 z7a~)PMI(42o#3qA2t`+57C}Uiz-ZZp+RZXmVw_`6Og_mUyIZX`n6uzxHL5C616E0q zmVn7ky}r=zkf@5tpc6E&bQQhW{hZ@|E^^N<&4TBLenamu>Oc?CFBl|!-P-t7u4%#D zx5##Ji^;eEvFbG=XU?bcbpMFJ!Ke$I(*dVDsNT>5@E%h=-I^`iLLAa(+5`!2bjaqe z>w~W-jqYal`+*3*pliy$u3zrIsNdgr&;GlA_LzV6RsFu(J^MRf_DTKj{VYT}r7NVw z=k&Xy`NDv*1G?Vnt`F*Zm%Dyg*R=XQ{nF|q{{9A*iRu13{{Ef*{t4axp=-zof z`un>6BX|9Fy?cwR|ES7$yX)h+-s7&f>mAyCudnwV`u(u`{`dW}KlabwrQh4!cRO|c z5%=Ev{d;%%_dcNC+ueJ+b^WLAy^r|kcj$Modw#pFk4cv?;CuV!lHjo0FU8Q({{GAq zYXb?3hh)bo9MBEoR#W@z!Cu_0*4@L!9f>(nezdrIvF?r+ckKDb?e;!jjhpG*S==7B zr@M>WNA31@cPoi+a0$lI;7)%6J*<3tpNNaHKkma*hRrD3U6j4I``*r??48}R?M2xQ z-Lm5iU*Go{&OV~Pqea6RTR%0AaEn{s6$Qey#r3$iyh;JzSr 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_menu2.worker.js b/examples/component/ftxui_example_menu2.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_menu2.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_menu_entries.js b/examples/component/ftxui_example_menu_entries.js new file mode 100644 index 000000000..794a7ffca --- /dev/null +++ b/examples/component/ftxui_example_menu_entries.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_entries.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39320:function(){throw"Canceled!"},39338:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_entries.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39312;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51944;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_entries.wasm b/examples/component/ftxui_example_menu_entries.wasm new file mode 100755 index 0000000000000000000000000000000000000000..4ededb767cf9a04e2ac85d92232b1c88738814a1 GIT binary patch literal 310421 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

    ~f-FYF^{N*WC(b)5#JYX2gu1t5*^*`m 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_entries_animated.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={38224:function(){throw"Canceled!"},38242:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_entries_animated.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=38216;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=50856;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_entries_animated.wasm b/examples/component/ftxui_example_menu_entries_animated.wasm new file mode 100755 index 0000000000000000000000000000000000000000..6adec9e33dbbd53d6c9738fc5da4370b76e3cafa GIT binary patch literal 304641 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%0Acf`8@^BCrP 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⁡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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_in_frame.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39816:function(){throw"Canceled!"},39834:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_in_frame.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39808;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52440;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_in_frame.wasm b/examples/component/ftxui_example_menu_in_frame.wasm new file mode 100755 index 0000000000000000000000000000000000000000..f0b937b3e7decb9a8eba2c340c392d279bc65a26 GIT binary patch literal 311790 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�ToY}81sHIY-D-1iTut9T($>ZIem&{-H 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

    ppT;G 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 V1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_in_frame_horizontal.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39280:function(){throw"Canceled!"},39298:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_in_frame_horizontal.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39272;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51480;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_in_frame_horizontal.wasm b/examples/component/ftxui_example_menu_in_frame_horizontal.wasm new file mode 100755 index 0000000000000000000000000000000000000000..a3de5178f81f53006950699dc53783e27a4dacbb GIT binary patch literal 306130 zcmeFa51d^^mG8T2|L@+N~^N1c~?uN5q-yy#wBHuHJ5E z#$aHW_X+8igct=ClOPdLqo5#yqN1WAMEr+}8Wc1NYE%SN)PSg{K<@Xqs`lyANdRT$ ze%`$IZvLEIyLSCqwQ8+Zt5&V5ieB=ne{@k4xp${Wo#-Yb{=3N&<4HpN5KJcfkLbjl z7yq7yXVykU(TNrpomg6wPv$@OGe##C;UgtS{Ldy=^Jh9bB8ES!`Q&R@JzZRM;&8~! z!xFC6Go=U~$>i!uxB5hPnmg^pIn(JZG$SWPR|DU99T|94lRb>91%x%&LI&3=i&~}h zgoL2eJc3qHadhHPzo2MF9fEF>R`N?K8g`nY*J9NA*hinH<|LD+S(?-I$av8+o?OL` zLW#YnK6<)759(>BO`b-GY6NHuLU;kcJW}DAX9SJ}_iDrMYM$1?r;&O!jiC;HBS(8C z`SE?Q%0BYDin#bj*K;p%|2<0h{rhN`-=QSC1+3;xR>*WsiBfD_oSMf41~#!=3#* z|5^14Q7R0S3_mW7q9k)iCW=X-EF(4=id~V#8SSP15n2`V;@cKQ#3@1zjfS!$8CD=l zI>}Hn93=^`(>EYFiQSxtqM|wK8v7d_dYKVac@!cPlvSnwuB5>c!7?qPG)a@F4HQKI z$oeyDR{p1X^ry3<+5TUZ=XsRpJowGa1L}RFa^JEnqxb+kS80K~DU{t_yzBn17KGMgr~tc&Ttn1=IOxOvvveeG2=vpM>658R3u04ZuTTpd#Tf;AW0i`#%CA{OQLDJN-Y? zrS+rK;QpV10tRyRKR-lK@sNw=Kp4@ik&zKPba*&T)uWDh3a8K^m*mkAC9n*og?pv@ zM)8dzKe(K9&Cc^b9alV~NBAkG+~eKyXj|f*6@9dD$58UKql*gnoal_iJvaJr=AIWl zn7U)5uP5&L(T>vnb##$)FNp3a-Eqm%1%Lj_(qjwhHDGnd~ zTJibflf{{COY!dHoZ@xGuKZW|3E#@Uk{>tvlpN<$KFZ%lDKQm+vm$RbEtHSiZA-N4ceZd-=BVt>p#f`Q>@#TguJlx#gS7 zbIMKShVo72+2tF{HUst}id`-EoJfmD&t|?D1UtLa>yNU;k`-|Tfzbk%Q z+*kaj_;vBC;@;wy#XZH{#m?dv#m|eM6?YXsEq+q`xVWRZz4%daTk*r<2gUb`9mV&G z?-sWfw-nzlzEx~5z6p`tT-;QAy|}U1R(!SiO7Z35hT==b7mF_x*B75FK3jaI_;hhy z@u^~Kac%MLeECO;_4(QP8}e=0HO1A%CyI|3A5BI-=RQ_kReZR(viMN(!QunS2a+rJ z`+?$$;{C<@llLd1?<+2+e=jTETU=Var?^CUE-v0(ysNmNxUhI<@s8r{#oLPCxwjU- zb>|o76>ljv7w<|=IJbCnaZ$2-bW^dB+#8BF6=xTtZ!F%x%j=7?iZhGR*B0w}c}=md zIHMR{Tdd*b^y1aUR5AKs{y={C=>7Tc^WWva&F{;9lm9w@N3tckH~(dRPkwj4Gyg^Y zbBp;|epmj}{3rR3^E>m=JM!Df_M`l^{D=AI5AyHxvLpXq{@wgL`M2|1^X>U9`8V?q zxbM03*}CjC*%{e~-EHot@lWCpx*hIE@on)p@|*J$?v8KDzn;JN#T&A(`P<0y*8GC}ynOU6`DR|u&EK4#lW)v7D9M}hH|DR;&&to#%j@#j=Iin^ z6kH3xt;tVUaI1TDK9%pv9?W=oAiF<1C;46WTfN+u{U-Z$_JYy7vz;*7FS4I!Kg;gQ zeyUG*yPsq~&Th|sq?g;WA7($uzMt*LzNgnWCAVg`WZ(9|Z)MxFZxZ}Qc60Xi>}%PL z*;li#WM9s{lzlP#LUw)j`RsGqXS2^J@u#y-QTNvDn(ULX`qkMdsPtpmRoO?g(GO)G z%s!C4_=@a(*=5`Z>1+?D(!xg+^e^26l&$@h|5lW!;6lW!z%i{F#JJ3T+%oSvJ$IXx%c zlwJ^TNZ*v6oxU@EL;Cvk%=C5XYtt96PhXS1Io_2#kldgAF1auHb#hMpVDgRhmh`vD zZ<1fZ52F{Q7pCt_-;r)f-=4lLeJkahpPrY#B^^C4J}>^d`x<}Wn10QTu1n8IzwTcA z;AmSa>D}oU;xEKI(_f@NOYcg5 znvVWBy)(T%{ZV>dd|iB7`or`G>G#te>F9UU@1);Ozm;xJznR{gek~onG2NDaHT_C@ zL;9uki|H3A_nP?n^z-TG($A!yPOnSvO@5L5H2H4wt>pIP2ejat_*3cD^qTaO>DB2c z(z}zNB|lDXNxqrfmh4EjxlQrMQ~h3*j$Yy}aVMU5;)mlGuU{AxM++42kJSIW`PquSq4j(({eagQ5*_r;wrmJf`$Vlp19 zqa$ZU&DrNCXv$5zA{}csou71`Jo}VYx;h@SUq4L_6r|qMV&2-)r4e4lRT3yzV%$XQgCD-eKojD zL08nclN16GAP3+sD1BuQqV)1Xz(B!}ohUb=*DH7w@<24uCp<<3pnsUWa8+{vNs?vJ zVek<(?%GvIAR+Cj6WmWdxOBYfoYIsldejuxaWl2!0EnW#7z`)bE~t3kiYH zD6CzGRy8jXdCj#pHc|6<3Ua4R@O!{f^H+MIgzQ3aIgwau3~|&f!Tu+wbSW92NCinX z>5B1Q0ey)qoza#mKXQrr3sL6~8t0m;&P^WdsG$;^`wXd=s#7AeUA2Im zzDm_dee?7ib-GXy<|>NlR!{W>m*YLBVmxe01&izxMRO#2CLjFMJ-<}d5GB;E^SPv& z-)|`MPKx~{lA?wDZpRqxv5@i+Io!F@*+`Z$9D}Z!zN5c*kX4u+(NJt7R@z+QRy6fd z^Scnb2EZXbp505DNk8cDwxAdKD;;l~0G$WzmgCL6Ym&}?BW0~|g>o0{lSEy*Q(c`k zB<{D$L=7oQ+AGmWdC#uuApk0C1XrDG?MMxn37s?1)nq4iJ_G^folTBvLuY+3cKIZj zxhd|(zU7(qKTI3CgTACb@#U^!1*DWQ3-2YcXv~+vF7s4T^>SoooJyC0z2N45xGO>F@d^(y|!8SrBB+|Lg21a46Di!BC zE35ar*sV@zsp@({^2(k&)`;>6$*HybThrM(KSKmGlh5)B9B{t8nS@Xgp@vrES;#mG zVxS(qp1N%Ej8(`!zDZ|DCNBG1eWmFak5`mn(O^RQ2cW1nHKTFkm#sQ1ITfK{91qFX zsZ=i>PZhbO)e%n6)+i{E*pd{8Pgp(bWg=2gJKhBZJ!rK`iDx-_g}ik((FFxbb#H2l zYIDPyHKF(g@o#f9?YW-gtRG=E@8ZgBnp~yKJJ=Z-a<7D8iAtb_hRa& zh@G2V=R3}nDvN5idZS&=~xNeL>nT*jufFD<@67g)(JozZf zpVQ5(W%TKsXNFcq-K?^liTcq0tyMdTorbrM4>QjM6GJQl(tMz7z$+PLXlH8-b7FW@xFXU4TVh8)M!smQ0GoUZcFTX#WCkY z^vv;YPIov&ZE##T>KODesCuIgW*TmZT0jqouIFus6dfn7o}J}RB8S*{o}-L0JH z#<8e5Oq8s0lcAbom^4%_L?~SRf0-CnldRN1b;S=pAIscu7!-yPjg$3oGct~rh=gt~ zyF)XVZmNLljK`WwEJ_j34^X5)nRX*UL+=#W>R{pJN@dY6CGgL37)>Yw`YScNv8I+p zP#9cjwTa3#P#_T(sgvqxYZD#a%jOd#0h-{VXnrrRbBit&jOu*({9XkpF@nE0M1c$% z<$N1&L?83(sTN_tu& zRH5oZ^AV`2L6pshmWW1iqvCFwfVSzs>V^Fznh*?iY#C^RlqLQz?^W}A8KsIS2OH8W zq47n%Awf#IV`jyg$PB3gvABY`=Vk zbjX)#UWYnnyn!%?;Ww6SH18b13?+o36NV3wu6T1{=RkV2gE;K;;9rzbsB>i8Ug}{c zF{WKf1vXw6nmru}T(l*<`B|t+1cHEJ6qFyj=88LF{pSk|O5O?*wSnq(RzM{0UFU@i zLa$^57M|g>>UrQvIzaQv6}_x;AkEQ?Xo^3lqUK7|L$iRgq*8`qlQ9HzkTUg>uZDN; zAJ(`+R9~>b8lZ;yT=UB3X&z2}&etb3OZBCpKB?`#KKk3Mxse*#QHLP}R9}#?^q=!} zp?|k^&8a%aM)v=_D$XY7tY+}p5l!?mRJV9py{>l4>h){8bLw>2lh@VBvVC|#XI>^v zX4kHzYkISm%~AYQh}R50J!6>wvOkk+y2BLGPg+q_cb|F|g>?6&jK%9OX8dw1x&`>!Y-j1sW-=06;NI873*LH`+ zbjh)O_R-dS47hukFT4QOCO%x0j*j*KL1~t zLFX$kUv+UWZ{|#No>ym2NdBfrZ>>}4*j`HlzW^T=w2*}q2RGzpKJzcEB54(*X0DXULod24E{N55MZtiy4AhMKz4K1 zfxZWK@hz$6wBKg0Ue!y1zBh|DCcKQ)vyQtQtju2Bdo0jZZNiFg`_-NHmE=Tpkdlu% z?sB!BLe{TcMMZI4t?oUJtou-1y0$lmbZV(;+J{Q^wIYf&)|chlp32#m5?1y0Uxm_L z)I;NSJ`S-*U=C)k>RGFMb17B@#r0f+PKv7vjE}#36`$gIzxuI!=+yficloLi?UX}3 zx4K6emYo+5t#y-f5};4fGJRnr_oa%Gb^B596rruwl zg=%us^?^F0HKvv4(rR$*eGo6F6p>~HQ5s%@+5{6@B zu_jAHsB}}VgE0Tqlibi`bG4ZyD5~>`1Vv`r8UgZJQ+GTDp+(KTvP`#@CPojUs&TWW zG!^PhCaY9*N-xHyDiPL9zKY2RmPf^`L?Eo)oS0q3bg5KDN>@zihWjyY_j0B@DxL9Z zbsdbqHu7NM9YI8BuC7*DX;{C4WfmQnMxqaRTdg;kddn!&;#p49GTMdihHZ)=Ae}e~ zWJN16*7FukXb!CsnvqkQ4v}g=X67yI4N98QswO@K(@-xyN%ia9or1l0=DX{^@7ZEC zRP?sjhW2FtRu7ZHHIpK-EZ2!9W*8sH;@D_m0SjH06=9lR`o!MA`vhsjS1k`-#^B*%W6g;mjCVoW)wR?3P`Nb4Q^wJhnn8ToB z$;54nB@=UFHTspYM1V$=V~v5$l?K}<@%u5i6^LqO&=ThgB1U@|i9s5J6EL;(ighj; zWKJp}P54}p&C_p=*~#cPENNKnX64=s8H>dHvKRck8#OaT>`u+VDlHbXtR7kyGio** z1!^t^sabQ4a-7ML%~YC6GgDkUc?`{#yrXfauIOehk+ZlJVK8T{OB9Guv%izH5ruHt zaIU-qhI2%bgB1r1=a|x&%bBbrPo167k~^?AvZOk(*@Bm@!R zogT|@d@M0cNTRIlf=!zcM=Uo;vcz?<5|C*&(l$q`YO3bn_msD-Kp=$#f<}=bZ)XSq zro9dlfOhuy{VUQ}SNa3Gh)GJ&_2$R-Ep`GJJK z1xM;y$pDiKOy0y0W>;2V#4oE7+D$A>6J05kno!WJ(X2#)*I3H*LLm{@2_|b~hJ=Do z2qd=VMIRVzN+^_GD9A!fkD0s~+N)Sl5pcS(Gq6xp5DU2%3q2Fz2!%qVDO2( z=&Xlk2nHt}l3*as48dR@BpB=i=t^6`fKK#B2!=42O9va*oL61p*S=T`e~7iOq=Bbk ztVbH!;C2mdJVsEbO&G9(;H5UKY*hu`#bgRGLb(49ybH|@@-AIyl`p7^cByT~+LvUb zR2Dx{Ysm{m$z+>>?)3#@Zz&@a6mDx>V4nW&%Ji1?+7U0+T34jCE-@kON-Bhn*1DjM z4t6G>!Sqj`3M%y-kANVdOS%DtLD@dmKwyPKG^nKH2)IOTk@)PIks@owxham`$)OuT z6=>C%vYQS{xvhViAxnA%A`6(*-%Mxw%8f%eSDXZzjVu}qNp38l0xZDi8CoIK(ANrE zWl9Y}6E>Z<7s0~{t6Y{qs6i|CVf~(_0*Y0Or09dvj$K|i^J8*4Q;BXq6N;y%C!?=n zACa1g2+E#=cs=WU&(zet)(7beYO0--Rah0g-6~@ zP^PR&YJsiPBK@92ju81#HKuK-qw2iNT7po^>aFi0I4t0Z z7AY$;FGGEuPy>Cd9_aeWBj+iJXH)+WIRF*7fHbmZ;dn3tTQY!vb^`qf+3;c1tT&iy zBWuDEZNicMw#0(GIO%F5DZO0{v;rrg12h=~b|!;h$RJZWc-f zVi|9uVbxOzg|CVgSfX*MQVsI8QCGGs%V-ehOm4hch}E>&2}C!v5P4G<6iV9|yzyor zgmz$R9=wxdxJ|84<_ydkeXX`StXi4Wn!EtE*0D!b!zF%^#?ee)Kl8`E)=w9LOO4I$ zm_fW+Bf5$2CEt1e7t~o-MIze3&VDU0S`?`P8mar83*%9CFOekhJM-a`2favf zlNXw16k%2|?M#OZAeY8ALz4}I8#IeQOstD8o+`x9p)^shT0c&JV8D<`IB>$+D`8YyL&j(J@ov~rw?l0%=w=+<&o7q z2yDof8T0^WHcd{06I}+AdrqKR+u3I806pt0OQAn-6aOZzfOK@c@8_%*iH6j6qAOKsMFz^dfV% zw-)68j#R2e*#T>T(E>0mAbMb`u^V|#&o@~53FK*GvH@=7i7djZ0Kx4s?U+fP`BBpU zyo=p#&G?x!c;68bD(NEfd6&RClFOafU}IX|BZX+!+8Z@n-Ygwo zEWx;7qhfRQn-h!vQo^i7s1>~?2>?S(6YuSTX6aAa__n{Eh7lNU%xHCuNN#kuCnvo-iPSJ*>t zYbZ1E*q+gvJDI}Be9j}bG@m)?^6>UnUyLtJ#mG{bciv%+2&Je-hVgvQav>)VW+d1H zVRkmg=55y&I}M$>0G=fu3^|P| zQ$Lu98Wlk~v|knY_N(7JZ`EL|guRey1}1u}?V)kQ;mTy|fs8wKWUdLyPrI)$Ix<)l zh8PIr>Tw0ipPHh~d*ZkACjZe7E7s)cme{8fZzdXV&{Is*Vp?IV!Jhnx;yP!`XRkEQ zAct@Vne16@7srva83B!AX%aZ?ywT#A1izg!Q1JaX^W(E>caP~Am-RhVJ>EbsJPi!; z%ZEu#gqAb1ddisby;iFpzBr>2b1|MKb(;!GXHGygFk1HrhlIouUUg~bnj{{hsc2lx zz1N>B$wi3XAsax69|AD`kyr;+XR!Z#Pr#;2C*2$qtD54@aE{>#!$%s1IT*D!`66C3s+wX9UXv57a?XtL)O79kwWykxpn} zf=wlZdZMHSE1LsO4)s6S#8^oIK`_>uH76Qhwg44%NB~lYf!5siCUpeK8bw*Jc2aP_ zAj;&i0V}u{&NnXXyi2z3>Tmkn62!yP9SWp_TOmyD_%X0`@}+_Dl#6|jQMB(aBGe779z?093;xF1+(C=T(@vQ>7?%OrNxuQN(eX6>>ddP0UcUr1G@R8n22oe>NU=*>1< zAXc^BN}|Wg_>>^K@tPMLauo%VW|2k#)!&U9q9-K!Xg_%b4Kj5I4e)YY8ojX3$(8?TM6z;|cGsuA`DD1=!f*UaDolzJI}g*Xt{^1tVnpqMMlwJT`v0N7J9Ec{+OzU{q_k ziK)(4eer-I$w1FIc%(M$fx_{jN9A>7bRm<q+X_`&ht72 zoP1ymNYel4c)DU?yaZhres2&yOBy6j2YVIdk$1l0u+UQ`5!5$=cT@Zv=500wUD8BZ zvw)p0o~NzqQSBb`e)Y|K77eBm22DchV8C|{gIMEU)xP}LUXFEcHTX-Kt&xU#3Bj@P z%hz?|WuR76<@J_2xxAOI1KO?h{>0@t%F%{8T_?f@;ojRT#@kC?UiaN)US1mUn!B{2 zsrqLxdZwU#WDoU0HqWM~aQxkxiaew`;Y6!=EzeC!`JRfG_uTx>gW!|_BpIV39FybD zGwhp^?P7&VEmVHuwZJwNOVm|V-FY%&Espz-5f~$wY{4a+y^o9LanOnO5ZKr!(6~gFcV#CzP9-Fvc1&&^Q`q~l)qbZ)JN{0eZf?oq25_DpYG9rGR zEYemU`0{=Vj?dMXhu9XC%1wDEvj~af))^Vfitsp&$3T)>=1%KX%O;;+xBkcWwWm#9 z6%LO6vxsrmu4~D6d~gc&Z{C|P31$2>j(W*na~-!^E=e2QlZRTTNeVu0#@ika$!I^_ zM9UgDB@cQ<9yjA{4>#o0uY?R%WWK|pV!0lJOepdU9y46BNruO7H(dtl)dYOyGioCV z62#R*=G2_v^oZl6dbdv2_+^4Mm}~?ypN=)Dp=iH)YWuCP?yL#1J<;CegxB3enyPow&wIz0_kC&yoY zS}zTL;fWxS*{#n!$?ij zBB)$*tVR|bU8!v;l5m+@zgF(T%zv~a3QVk*dvMiez@K&vjqAG$$Kiuq5W&cVW>-WsZyFmGTSdj&BDb-DV=4_Ni{QmVKL@^lwt>PEXrkGULx zo-Qbp^*D0N&l^u@;*#}!G6K`M1K06doV!6cx%?^)5@QVr2N9NuuNnq)l!8gx#LN2B zd-m=$&t8-Cwsp07DLl)(M_XW#o3)B$E=2hZSPYmZ*Q6Ej@y{n_Cy|RZf`CI5Hiu|z zVkvfUv)BfEZJ4W1YVKpNouoMWpj7gT!`y;x&mlTz&U-X=3*ZP{g^3|*Y?mah{<<22 zo0HsS?q#+y2wbDfGRs4QNqWG^D4uovs$P6K0w#VLpxzjb(;o?_ZhJ90qj}quLz$CP zHJ;~w)L$Wwd$AHpqiO(C-t>Sv*+kX*IXEq-lbHA7v1Z5ZvQRMQTq<92y;9z#n#QQn zH-)bxp+$P-YicVK+X!pPq4R06p(*BLl(*gIh(lJHfqE=x`q;D~7iCH9i%*ux5CJB) z2F9WTItQwX!D86}g}d$TGLciQI~j6x^T{eD2W6aWM6-i8)?_?PM;Hrb;4?cQpKWb- zdSg$hM)rAjg-VeF{1#>xU^cozx6-JuWV9H7I~USJAq5m6R{=in0XC`rV6?GVchv&< zqz4EPNC83J#3KR=3MA2B9d6t-1*C1(xoG;XscU&yxiMg*h;CQ zNX%wUtZkJ{L!B{A49y-JK2{50BDBt;hmXWsn*m47ZEIb#q_v6^P+w=^yy}0t1TWq? zW}}5ff*wdLKOW85eLqXaXHk^4fDqK4405-LwHJd($qrOqmU3GqZjk?cnyX3CpWRa}SHQqJ9HgkmX}ln2j_BL~wETtHDg7Amg~9yA?X zJYAwMKbW8w!|+6q5)(|wF2^JV=Ss7P***nM5;LOFjhYUAHmN@4P`Ib1E>wg~NkHlE zZl;8uHwA@B7E`$%`)9TNtQm%(h8a_3dO!p*AC#OInm}sYIRmomy0$d?7S?BAZyOTS zLuA*Wiu^=5(Da4OvhZL7lWmLs!-z7QL`2MfY6SUu>&d=!kr>bn)19xy*l_kC%4`q3 z8uM36ZFo`aVaY3bkVA*v@UYGMJx0w_RkZf+ixBGc1@rY}FlRaX<<%PJ+-b_L;@lGf zH&^l{kPYozVk;i`l33%lUuKsc2%jIyP9~3y5!|!xW~r=Xl|~ZFuEttB7sJrX z(Ro`E)6uZ2kVAxxkD(l$cw+F{EG9(mr$rZ^2e4}M&~cBLfwINFCRCTT zPfZMUnVqGLw7Lx2j3tBJl2IO=a%bpz*;8Z9gqWfKdssOoP3h$@8jBDq_=dPIYA~*& z>4R16pdlzt>8~VLl_zS?i62>QE~FIV3R70u zK@^XnV5oZ&toc2JnAy#tFN|D?4h*q@OOQY&Bopn+?vLIdCQVrv8f6Wje^AhqBp)EP zwE1Gh{u)UK*8c}97cax|Cn)ovX_K;D5fiRzqga) zsq(Zo{ujF=JmtHg%=JooL2{tGD+pE8+FX;W=WsvYQ_cgaRW zFMgS91Tnhk#V-p5b&lhBjOHnt=P{+0Ca0P8z;y4d`@n-u_snWRrv$4fHET9xexmXAdgtR`Cd#wkbS@g~(!aPLT=%E@` zNe&RC%nxQt6dgUkwk5Ivma0(vq^(|%P?Hog8?aChptkLyb%X7Zz9>UE=ha0Q}nikBngTqYa zLDf1WuB~4X_RLn4mUZhx@bF6_*rWzT_(?w8XpCRfG@YJ?T?iMNCmNkD9CX z9o{?o7Kg+XNfFlnb9r#;(%i!m)+fC&DFP@yr`2qwVaP=T{yYngZ{UFPFzd%hNP7gN zM1XtEtl8uyr&s8=9fy5ex4nuGSKpcQt6 zQk37TKh#WZr4Es&hgl=9EcY?o;K9~D?z(uG>&GsRc#tWMk72CM8Ef0IOxPxG*4Y~Oaydl>4;!iB zYKc^(fg({e^UgtNpLMqPanY(7$Y49ujG;$#3S<}}hit#RhLWM`l>U@PgBO3r*Z#ms zxEgYknQbU!->DC%l@ zMaz~fSD3kzJ+}TWmjZKt@f_HbRaOO;+xbW2*${jN><~rd8VSgA3p0(;&K30sNkZQN(h2Q-hfK?jJqkRB0?V^_rL{+SQ0a;hn(J|A zJrW07AnDsos_5G8NEM$3GHCXlsWx%t&2M(?`n}HitVfRc;yue(Z1TUnow)3svo`r( z4;mHc&H5H$kC0qgtcR@94Lz`T=~YWNvA7)_@yd7Ib?BxVz&7zQTB?vzU9;(k_g;GG zUv1d5anlipUwYNGn>O^y4Ocf)C$6}LRu63yGg@)SY`R)1tkB3oaU6$->1x-mL`!3a z*^|uny8p?|k5@OZ=EQ{gSc6b@L=Sm$&-!0-L^`N%zIn&5%~=+uN<~}d`x0fA0a2@c zG3E_suUn_wIL5l(oI1ItC++`=5HY;5X8om^)mQH#G)mbD_KK#PVq)^1bHBxoZo+0b)TdUeleaC7=xDX`39)tks-W7EyH%Ws{l-4Rc_ zbje=`b=AhdL)D!phn(PO$ANZG@%GKEQ^{hgjN3P_63aPDe*$8X6aLimH0ae+Q}-c1 zw0^w*DOK}eG;xY{{~1qumP}7-kSi&lHPW-+5ZN*T4<^Qxj5T#7AXiZWXJnmRrz@`6 z*sC^NEyMVT@zm7RYSHQu(MeAUq<+>l*Z!p%F8DVdF<0@{{9!u7{#xhqS^fI#Pdw!> zHXSkhC*S!nUHHNey>1DQmsE#-!n*f~Vhl*ccqQ7p;T%du`Q9kz2H~4FP`*U6Pzzn{ z&kCI#6_PNSi1&zj%d4?}4+kN5po3XAtAv>v;R&ZKwZS9H<;#P%Ga z?F|oTcUZF?u$g8Xu52qU!~+NtZ*p}cs=)%HN5?;)51ccEL@|P=^`5qk(`3z@;SGq=7->H(nn0E!W4U**!{kgy z;VMmw9$pRZAM+cSnJ)@K>KX;r7sl2~jgIcgco42yB|SA-=*vCYKaTa0&+ui<%45yixX^3eoC`dZ_F?dB;>myd0wLrQ)8stnmn_ekM#4IIMgA2J1k#YO2619 z@dZuc>Veas6zRcg880Y(-&2~Md(GZ2eY(7KPE{Q!>u2+L7_ynvLHu6m32av_mq>zN zf8+U8yhz(%7SD;oN$2+#)Bj+CI1Gu#OXh!4onXw|aMJFo6~VL^(=~T}Ft+O(=xEz% z^BmEJTZ#>KC60k~&111rpjfG8xIvTL^LWjYfCt<*t4@O7cF3OY)|=war!gk`e!a~x zvikLnOmkliKM9;CX`(mQsKeY*qbqv(N_w}MWLr$bxS{j5)LP8#O3TD4X+FgP_nblx zgAxO2cCL55oV@x1ek>Z#VUZ`FQSNbl7b|4a6Yv?7^gE2Tlgn-V)CzrKX=@e23lO3s z&@w9t(_}e;NCi{=Jq45Y?$-zy^Twj;tOPv!Ru0oj)HTFfJf^=UE^B$8H-FyMz=mPv zMBr=|@kaQi!YuMg7_&24wG=$)HU+qI|R)`+_em?gz0`)xeH&HyDRzc`Y> ztTVpLU6ZksdP%w6rotKzs2eX2snBfJhy{T}k?ZT0>vxDjk}NG5P4fdg?$ zh)i4DjCuC*p#$RfmH{;$bMQmuV$H$I*ZjjF&BYs5iapwDWuC)7C{Ad);IfgubDRWL zH-nTDahtS@nrzF4r_dILSD$uqvsgnJF;XJl?vB?~7n(PNU7cO5OE#u+YBU}Gr(S}O zz(mLxH$%rDL=*C{&keoQRl98&K@4ik$oekom!IKz@mqH*kvt9&&;X&%7=I4Xre(YZ7V{P^*XpHH<21kf?%vV=Bz_l)aYrh?6NwqB`yZ zv1SVuRu#29oX3tWRr(q1PdsJ$B~tZ*<0KS%p+BD#u6$eIkvcmp@oRI`$Kuy2Uq36D z1I^hhZajdUwcrJP#HK(@BQ@b>-z*c}OwXi;XKi7oXInM zLuXQ|R&%UVafI-0v}?~cN3z%!zp6!2k5JTWO=Nk9aEzp+rm>o9OS&)MC1!P`TG}6) zS$>vQsU^ZCYMf+(24*P>3=7RpsX548+&5=yhpE?Kbf1;Y?-Nv`X6km^8%0#ibiO*Z zumAK-7JFF+7K^bEe75U3W=k~D`qgRJqMus=v>6q0n-fSFw5Jz}Nn<(uLUC|s{HK1! z>TJ_ZIMm6eRmvPTw26m0&!;?w(dN9Xs40}Sc%Q-_PyFzec_j{+@kh0D!|v@g3HIpP z`5Y;*nr)kP*LEIw@npsa5!<53c{+gXwChmnMVEH!A@Uzr3-eh z{Z3L4U!%Dgw(;_Pt}G}?^>S07ti^YZeXMH=uBCR_>lS!N87nX_CY6< z^8qetb7<0Q%wp6B#AW2D-t%a}a-nt=o2!%p>H_UiwR5fM2+!?eFd*Qumiu~_zE z3fmU;x3DO=xpqiGw)5(EEFLrQWh8*87Tb_sC}Z8|z#dW*Xe3NQ ziAuHY0>NrBom1y#@JS9|Hp8?H`mpPG#x#+n zpUh^7S1|T9AZI?Zuk&9+Li|$w?ujm2MRzOB%rj;l1Gy0;urF3N9(qVfR*@6UTzus? z>KJ^a&;kz=i8kt(WK253itr+fo+g?am-sK`l2QY95_tucSxqiw7SgubaOmnGGg=0LVlMmF%gF1dh;-@Vf5>#bYIEk33 z(UlaggQhyd1|uDIt4=pGD5HXdx^`8oB61Hg5;lU7X1vs*bU*3+!S@ zeXZpzZE*)38Xx3C3#Bbs+`(RbARV*X#XjzkL*qkyh<(2JOskZq9U4E4mW?sAfwnPd zx7IO`GWOLRBmFcFv4LfgnrN(M-924h~a3s}R}G z%D81?Zoy#-s*uBPflC$o8z38}Qy5O{4}yO5g>1|dO9oy)PJ&ge4Tx3T3mE=Yx6%k? zI>(RjHC)YCTs=T+U^(m3aqb87P;g=hR;g-FbD(xLwdO$11=7Hc?1(rQrMe^SpI}u` zbB-U_u-I2>K;C1i7c$pAkT{Ap&o36W7D^m~ZJw`~3f_}B!5|y99DeB5W^)*a$u<`HlK=`?<-9D zwK1C6yyo*!bBAJN^s?AzR^Q#7bzT%$2hH-|!aB8Sy)ElJ3cj)HTnG5Z+o_;O!OqzI zDEP*T9N-3DBs8ibXYkF#rhL?VW4EkE@Y??lrfC~9qQ*Q*rmBUa) z{X`hR;E3%=hyQ8Tz{B>EaNdjwmUb@*N=j69XR+IxGE#g^;Y3fr#rjmY%#_^?QRJmLx9}V#JTcGANY|B!78DNtUy2l7!qQ7ZEboHt)2~gOBq%_ zA=M@%4z-*PHgv+5t&>KTu=NlPpgu4NLNz^^(T;}&UP~0e z{SQX-&kf6Po&)43`e`DP=LY;}#2qi1s51`FocVxn#|V+ETu&8};c6>vXN%2E-*KD6r? zg`(y^;RZ_zwp(s}v+cAs`?x*{5Y3pn@VwPq>U3%D+?k-lc_*XIp44!iMuc>tluVl;*vuh-(3WmTVD=aSfoMt&4@hgD>A-=NYJZrBpJzw{Ndd*; z@R$9GSl=2+btB+UBa+EGlaS#htPSf_D=k1SW3K3(eOQ{c7c%mfx%`n_Vx?IkP6aY` z>24AAX!SxRAU>r88(^H()L-K1XaL+TPUec;qdMHN4$_dQJUt9pObrG$Ficj<1R|gR z%-8cLs`aT6=U^{egX@N_yCz6TL6XYcgNKAb+E*<1jk~ospGU#<_LQ%Ae!SG@QhYt>g*WkSQZLCasq)&zz6w+ zoLNmx5Mk78qiRRhs2_*MH;}E_!UQ~cXc$Uv0GHRhc&tGa=kxWPyyyHKtxDRtotYTu z!(GHi9{S?h5WY6I8w=IZ!O^oC-I@syNppf|9OEe`M{=vKX)cTH)832rrnYTBzF6p0 zwbtS4Uofo)IAzibN7&oJJoa7`78w}}Z26z2kVzX+?A4b}`^ha{&{^g@JYlJ1z3H?E zCY19lS(L4DJw$-cGAEiSTBM81bZjKN2wp}0Z1|hEAB)eM5ozJ`X-BMk-%vl~&X6yVe(fs8MmpXq!a z%kt0(4aKCaFytqbbYmQksX}RJaHw@At64ix$97<|c0ZDamK{MK!EW5Qox_l#+Ok@pr^> z8@ghxBw{lkoB3F)iP+S~+I21*3@=FPQrFyhQ=8lroL?sO5xiP!L=mwXBAhZ&5Lh~e zj=Q3WFxYUepp*cVk2T2PV1}BG?tEtNjq1bO;^g4yFu#JrGTgzkndhz3 zq?~V{%!gZ-8=KI;!39s^@aid0j0ruFN9P*RA0bYbc2W*@U#Ow3>V2-i6N)Zu?ze>j zzkm=ocW$(fP+_nGCZUBm8uR6E4`XIXx&!?fDug{>^k>=5-se!l!&u8StlVW zktrNn!k1(rr)@ z90e?nJG!&W#OXkrn$)a;T zs&~6MJ+1Y))A1PK;feG}^u&1Kh92k4EHs&zC}O0S{x`{S+G`2QCEoFsPx1gyj)?g4 zcS`U?jNy2ZLQCm6c2o@uCKAtDXvpfAtsU?IYOuNzj@*Y$3L7NUtz=HMi8yygtRkxL z-UwS0E{HZzgl)Q?2Yyt*q3#AeAvo8n2Z}hm^0fwtMzZ=J(SNy54Dg_FR2&ijX`R_B znDPd|z2ox$XtZESot6GG@surQJszu0FwGuobtm0b!*XBAwf5`kK-Uz6%r9Wl^ zg49mB&O2S9p7REUEOnk!{CD)%S!~HG@kf@SAEK z6Bz7UXN5SN2-%H{^Jy#&Ihy0kNdX10byCnFk={uGp7-;7stQ6jLKcMrLlvRaM=Gml zWl$bAAsX+?duT5*72dYN6nPEtt)m9_EO@tzSl|yjYD8MW2?t+B;}epVH`(Q(_-*U_ zyiQkTgmQ>dq27g~+nxZ~oyHTCf-;~DL~O?TigZ~JeBbX(+n@oLF|)D85OD=$AkM!qc z!7{DpvMKcwMZnrjxdE*81NEQvzqS7L)AgU_>!&%i`o5$`>zg~1KkA&Z>wT`P{?J^i zX^K2;&#XlkH5ACB@O}X3oN3o(oH@c404Nc@&*Cu;A!uP@1#VmC5Xy=e$w=drf`yhI z4X`^LWo6f1Mw3Kdogf!`H__DW7SN-Z;A>q3{YB2^Gwx%I{q6PWCnT9`W<28wQmb4d zIp8ncr@5SC*<~Rap~sOK;U>nY*^e<+;K^H5E(86y2J<0`he)f-Jxoa1!K6}?5t16v zO)EgN(0Gfcglc7tr1k{}TWo%7&tt2qDiIMH5Re@cY;JE3x2#RyEy>`GuGQ?PWpVW1 zqvqq}DnSRW(oFOrIlxeK$6UOuDW-uEZCKc^XSPlIAfFjB&(*XRbEvw7y|PGUXSXXG z1EKH!#o~g(mCWa5K7@@8d{Qt+hb*();)k~zwS;8_ova_GVXy@ zjR#h6ztg!MSl4)34(PxF)RzUKP>DqQ5(n=4+)IhnV)GVq$GZD4&{#`S04xo450avh zMpUY4ZzKiAW;9+JC^6&{ps`53A&?#gjnTLP8p{T0jAjNJqv*ZT81Y79lAQ2SOJh<{``z4jio}%X@&S@l zKktR;BtonwH9PY1fZ5uBAV79ZhO1b?6M~v^jYWrw6QRqHSKGc*X%>>*NGYiZXm>ma#TGM#J25dh zTfpVq28xV2sn%_v$iJ0T&jA7BvN4^+J~^9Hscs#a8-xM|)UlW&p$$jK3TxE#O^Yf{ zjVg>0fSg-zyhAwM67)7lC5w7o2v%yFjAFkds{mD(k+) zUSf2m3N+h>&m~4$gb95T17adWW_w2>9m_Wak#Y#9pth{4FO@94*M3W1=MZu-?Z@VQ zpsg|Ben&1Hv(esOuDh$6O}hIUa~GYfj$lPvT-;R4S(c$1wnRg5X>W*Vo5&3z!_@1{ zdYUN~uj6?HIF&e6_c4W|g-kg=V<@G`+?LHoB1u44p4I7CDnTwoyiF)!F*{X2E4{42 zon(vhl7P9UUWva}o(=%HbdL!!qC1~AIx7YQpuaOxw>D9(uISG8RwO+drm-qYf>IR0 zmOTOz^Aa<~fDjD#98)S>Nn3%Qfat5EChWBiNxSKrb;+n2$i`3=?l(1I=D|za7Bdf5 ziy5UtI}uGW|8Y2#B&M4=X*_^yP^wcBNPm{BZ*&@~bR#E?;5SBK;K#v6iAzaQ# zDn}9YN*wxv5cZ=Lmk9)mf@)tNRO~U(+uXd|eV|Xg(gHAlo8HXhIRy+lej!)e&<5u zjP%TmeX{Ms2b()j4$DzJL=8hIONA`iAiv;KeqmSYMN?|vJ7{t~q=k;eKb^15CK0W= zAXIMC{Ywai=8B&>9btNSgs8(S&Ps)TxR7ZtU#rI|Rit~xniz!v0J#jTT5Pe*6pxN0 zMRKZlY_|$QNF?mMp5X;KZE>3a*j+bDxG=uTtJ1Xd7cP!hwLYxa{4^f;zXvA0%wKB6 z1w_nAwA}nOJKDSI#LtNA&(6s$-84bI(pCelp;I_CrOsGMeXV3(Cw@mS38|y#AJDsi zx^`{;rFHx9Z^te|RJ3n9m%fxKAZPD%%!&UCI^RH3@|n3O`D&!lRQ^1}`Tn8gn5fOF z)_j3yYd?f&?$mO<46^LSF)b2u&}yaKJ=F}a&~lgG#j{Z3vzId39#=^G%jBVs#kh+m zE3`oQn$|bAT8Vw5c~EKX)G772meaUyPL7JKqWV=>+QOVd5a0$$hoCN8V5dvFX62y- zO^?P2wRUu%znl&-mAUa$Mt5Cl6C+W8MEl?THIlXhA$z2J;iW>URXnWoL54;`2FxuS z@M~*K%w3(DM>MzEX^nS;7X&qfu;dLn{q6^hj}taBP=cPD;ge8Oq*c0h`BOXhg_x$4 z#?br~16uCob*TndI<3f}4A-Ta26^Cb0*;?}aQSe0Hx*s^aS z5V9*6vMYGjr#t~E7;;@k*m7M$Ammaofk;VKi1Bw)&!W_@We} zt?nx7Ucy$?P6DAQ1w&B^ZueB9;8lTY?k8-y?jsO#DHw7oc*ExndIh(JTx;JLa!nBk zxfBe!6x{L!%cbD;A=g=it*-S1LM{bEE(Opx`aT; zrC`XV;H@`XE(OmHxvnH^xvn4(aw!;cDY)$$mP^6SA=lM}E!R~9LM{bEE(P!XrsYy_ zOUU&Z!j@|*fsjkVkW0bM-?Cf^UJ`QMK-h9!Paxz{FyvD3>Tg>v1+NIXZX#^Cwh;)q z6b!kx6TIPe%carR3@eOZd#{uL`gvFpET zLB;L}W!+2I%GyaFl%-%O>%KQ8oj0&cNguaaW(DsInb)?%$rOQ*S;3HbJy(vCSus0q zw9E?b44F3(wwli-5Hc$mGAp>_7R#mJRRNC|5Vl;K34~kxTxDC$b_ zu~FOm4xqMq$A8y6i7^blzgWch&4tT0x0~L5qh)KIU5hn>%}f3?6z#r2m%^6-P}B-% z`U!fL!JVTWK3svM9{_8wg|qZJP`GuPnt+o()k(F)bFS8OZVD6Dh?FQ!U8yi!;O3!I zSD2EV+@5tJBenla^mcYO{pr8V25&T4YNPj+kirH=?1Yu?MVvDUfb39P@yuDM_AG_8 z$f|P<_<$m(RFoHCR1-Vhm)nzlgv?$=ma1zo1EsFXvrB=9sQ?3p07n0_w8&hf{x;e#@`W8-|F$ za}nW4PHZ|8m#yj*+|gAWtL>7qSLZf0)WIh@eR+%d=xIGqW5Ke?&W&+(X@Z9;mYWxf z-kO_Ut$~j@s@VZFS2fE5_#C)zxMwSAar1OL`wHP@pJmF4k%y+=^< z$=}`k9_@XzmGTU;g7V@HPfYRbsSw6b zGhx_muJn}56J&E(MKu%wlDS1S^n@}^*tTY_M8YB}*u)LGoOar7u8Ry0YMAlLZmDeJ!ESNp$33&KqdVU>i;wL*0I6!d5V>2mA+gC*Ia@6HZ=$KWr&QyE;8qJxFM^C4GlN@)~C4gnn1?87!mbl_ z*a8}87Q4%72@5EowP-9I8ZcbcA#+W@6eN3v@LtJp9EZ+U_ApcnGA5YVxTDxyN z$DaweOc*!8gS?qhf?8Si$QsO#dfWQ^Y9901NG@YdRTWTMt#BnQSiQZsC} z7%|aTgOCvf274TOL&|I-OuILGd0(RG#zW4QXBDExxn244W>hm6-h>IAcwq0SomvWD zjrG|iK^9>EUi81%dlxXfuIkS7JnpON)Z>&?vSpQkbFY=81QrosEJqMrr;KIUCLj_* z9J(`c=3}}&RR%00h^M1R8OcJOkAMqDnaOhd}F!pdF{vAYp=cbT5GSpc9gL9unpSBIq*cR zA5Yp5g$OZ|zw`o~Y#)ykdJ-sj-?W)T55z>k38@^l?FAH6Zj&sId$=7gH(AErDQZj? z010_`lKXf8W={2BLhFtG138qi9Md)%JZe$O zAr3_SNbPjh(ZRMAQ{ycfG{xVjVJ(dHT3dt8v@cgR)fhmxB38L(s!=xW7M#bh9Np7x ztM{7aN7z*TeW>!z0{lvQ8o#R>IZv7y|3*FyP6$4rujH0YBKKFRbct!|YY#qV%P z8Z9P$D`SHjF=oXSp+zZ=IKQ@P zbV$e#?e8%@yo1<1rJg3v%dr@G&fU8KP>`*{zy6)Qf$-u*QF+X^vI25tO{h%w5c;av zpd((;k0-i~>G0pg^ki#dVq&_b=cJiVPmfH;)6)$#m#koGqCGL4O_K&uBrgAVmZ3(* zHbOGn)4A@n!14nH;u;=@VuM)3L??=qw6UexVhxjK!-YW7*j0lMti1Y{hY&l)uB@K0 z1CL!%JxB-NR6VE!f<_Hw0vsX`=iTJWe5 zap{p_`az-R+zIRKV%+rk>G{Tq-ZbH!oj2iNt6l!ey^kwYN#J6rgSY?*aYyhV%jv$M z!hH%*;qCn)tmHH&(f13DfeJ7wm__D--~yU4gZ0> zEgiThn1R13$_+RhV-D!>%3x!()sShED;){A{}0u0GCHw5^1s(a*@J0wT8REY=Keb&WO%V#q! z)f1@)vlpN%JaI9SKb7=GU|zj(S^`K#%%;1DF@!RpZ3}=yD_Fv$Ht{urAB<}f78ra4 z4BOAF8iYn|su8%|2}ot4s%@|?oZWkDypi(BsCO7%&e)^A2@2Hq;=%I8Y~M^Jstk3N zPL9V2+C$doQ3Fv+=#{wqcg?A;Ab=4#DqhO=su%=pgkHd^Y*ItB6Z|;LJ`u*kVvKf0 z@b4+;ihMCeOYC-?p{MCp^b2>QVzDAo4liJXez^2l3*`7arr5?%cFpc}N*1nhVgZdJ ze<4vi2t=&2S~|rzXGu*6Jqq76dMjLqt56&jlSP)loE$raBN6aYLuktQ&81gBHzmH9nY=F?T?6N8!mM}&T;3!&V$R&Qk+9Dwl8WPIN<%{Mrxw)m0^rArqS#IOyy zNERO|?cMCu=E%aO!t}H=9)&x%3w~ml=&8vU>0>rEhMmW3EmnmLLEIy)kU|Frnzsh> z*`#n8PUuLo6P>uJA_yLa|{{(s-+k0^* zr(tHOGJ4q&waG@ex5&l?zw}XquBS~UNwxSbe_jTNK6a^oLwT}S4-J8saA0ZKA>_b=mTJZ@FSgT3qLYD+uK>R;Zi_< zTsG4pX8(E%Kb!NlQ=qjAF32py26!$F-w~hITlf=3PIf!P6A>fX8$=AhT;rE({qj;8 zh|&1v{v_Aa@s}0(b#^;%j)jgSRRt>_k`!OBhJVb`XLI znb}gq#Ud(0vP$Mu44&ZSXDl=!rE|x&OLk0H1!ma~U5dmhYcmaGa?gKTI$~vkQCh_< z=R%AGPPikPJn)egfKJ;AlD9|##Dc(z4+WfmPJXo)TNUQ#>0*kOdpd*WEhXB+&~|*D z(c*e(ezn5JNS#F*mtLn${Q{VllACx>zImjoMcN-usIsI1wS&qy22_lAEOs?)IZR0s zoML-P{xd?QzGLpo#LTObMA-%}DXbuNzR|w5@WYt*ZShtod`?#d;xHOvq;M6eRxIc; zTfWvNAUaVIJNng17zvWGx)^loJ^TB|c#m_hZIUvH3Dg4hA`OsqdF0K)3;CGrZ_b&9A&WXX9W9!uT25hg{;Sf=!oO@t>Uw=fwdLSju4xYiP@2FG)4L{7C4 zIqngfizNbZ6t+u;WwyFC?k@w3Q<3`I4#@C;DJnJV+7Pi30zFU+F{l8k&dyX~XtV51 zWyh$$J9<3;o_LCei7YYjihc#M=vSD~9(205E{6MlF?MKX;*@uKEAc&;Umw;|Fr6Q% z?|urPbiLh(ZfT12h3n767e<_y?WUQm7(03n?q*P+t@P{qP- z^x>pf(!xgcPF)krV3Oap!~Ts}(%fW3500pKI~M>5PCRW2cC4=UkovyvEOdDF%*4Q| zo#Fj62`VT!ayXnxP_>IyZ<%!91Vu|jSsUqww*13u>iPv>td%=K`PizE0EbXnzT*ix zhY09TB<277gn4c;R`&MNnewE4p#Wxau!UAu!PKgv1%OmG;*%e(s*gUbXceZxb3BCS z{;3Of3+vMQEwr=N*5ASt&#c6?7SPnf$@1SMIT~ny{2vBxCx}qwK)Ghi?KyZFvmE@O zv_8aEGY-ZAKWKdJY$(ay4>v2+aBSI3A1tK+5$ zo-oaX!@R&8ve{NSa2OHlEUSjhCbEQ|xX(z@=o9S~u&r=ZAS;|0bfl8sQ(ZXcBB(Me zT$DRP;dYi4Gh=RHwK>NsU|J?rZ(OD~X8022x2T8sbu5?WU6I)j@Vq9OJsF5*C7G?A z<1a5e#}_X<$6v3JL&T5Xv^nTan}gaUtx7S*1oZA`u3+3~z!<5|!4jTfzm0If_F(%0 z!U-_&}`&OM^LF-7u%(BvZILtOR(kx5D=b)c?mr7_bI1YlLd?KqHtr`-*%y-mf_>H+$qWjkc}u1nOi^$@F9k8G^wh zr#lQX_2(t%MdG1E#dk0YWRD4ORjhbY=4f$NhT^OM|7xMSgh-;#-gaq2P zghY>+#RbNo?l6u@0abS-G6+;JL;N$(MWQDG2KXL#>R4Y-o{cdX8DwW^y=v4!)F`PI za+tb2gc!%(Mvl(DYikgUwDX_KuEHKKoW}2 zTSaMmp9X{h^1j$n6w>;E97Ht#A+Lvq-mQ9g^QQXE>+Mbc_ZHynhZ8KZLOXH3%$X2l zxH^{$>*cH!h*TjzsE-ZsvPvZs$Lh35`O@~F&D z%a@l6PAnV-P7KA;J^f*NA=h*Wmpm6i4A#qQcSLs$Of9D}368RiQujGLPZBfR2I<7+ z7@c9UJG#s3+iO5xzs}k`&rZuzTvi@@<}Yojv}LN32~3oVAXFcpI-?k&h(ICYYdfM_ z;XUypvB7pnw<-;LVmt<^EZc>J$~YncDsl10cp))VO@7r_G{e0z?nJ1;Lp@`Nt16S# zrhCmrML7n24uOs%Q2Y|{vD=M--r;9az}k?0mv9ft^8a%$*X%enEjP z2?D3B43;{p6G)Q5_f%4*gD)t*Yho zT=EIC^8PrE557FI|IXiFX8(v|`8YTxygYY=JPf2s+bL8&)8-HtR;#Kk{`JdOlH|)* z?wu*0p44}nIPSX_H;IrABdSU{dbg-5DxW3-wNizzk$*jYC!dbrdFxF1rAfYLg;m^M zI5U6k@kf6yyAAGb6Au~<5tUe_wP}Dyx*(?)C&0smWz&woVxd;UQO9=cg$^x&+SG^O(3Ap;W296&!<|aH4req#F<}%{ z4ity=ZOfW=<*rfZNLFMtSgxZ2l58{M^R_JeK6AknEan4L!-A+-!D73GApNS=(s#E@ zn%pesI0KAJ$TC>^3*5o)*cbZ3FMD+49gS0!ZIof)$!nfgn?#X)IIj1grPx3iGSF}` z=l{%a&G)=hiw>OTg69GM;h8P6Wh%#qwPdLC2ak}S8{)Bc1JZCXB9@T<7V2h~j^`_- z**C@40w*D?GQ~#9PS?uBjXozi#WZCWX#tDHB8{k2BBmBSd0`edUkuECRua+G=6IvM zJW2T`JeY~|CgSo+)$dedRLn`2e2B{@)DA5!n^Q1>mTX%C{7EPX#c8z(-#*-NMTYXK z?&%=aTjX-%wjsGpjLh&3>d0P|X#)ly6eL>QN=V|8?U`woqZY5~ji8I-ETA>wn}uwG zo{NUmRn|Mf6)RJGfKze4qZW4*?M-j=kcMP(Ip&qAsI*wv(JGSMZaqA*Ar_Ib%^x1xU59uh>eB{jiUo-geEBi zw&QyZJJOuxOhRn84n8)TycCbmbWoyopX!e%T);rUn?#0l+=R&HiX>h{eq^7%XRjKd z802VCj4pv{)yrespsQh*u{!yFa#0V2%lD>c={3B=#CQ+F3lfoF)ukA_)f?sRSL2Gbo=wrUHBH zV@esZJs$F21ak)?`9f2lX)p=-?HNx>Z<5z2^IL-=!4e4J{TPEW_A{Stj_CAS#!ewl z1thJ`eQtyX+|14t?4)7pI!_e2E%oWqs~0AaR6h%pubRT|Hq84DQMZw?or(fdzOcUCu8< z8P4~4J3lKfA6#16DgRA-`5f-3$tuYgC(_1DlZM*k58u0Ie5Q!UE%BUz&Er=I{#-vybkD_zDD+LuMq|%X>Id&zS{6W7 z`DrpxQfJFZRr#_uPI*zwY$;u>tXVH`dsX25OJ_q1PpfRo8@(!HUrt<})~7w=64k)v zIm!c~K5TN0<l9@TwS66B?Nfobd#RfOa_F>og(gtJ!&HD^X}}_DP=TkO zWU_rY_WltZ%=RJKDQ>4c$NR|v`jo>Pn6q$1t_oFu)JN5$165MMMk`?XH~Uo%U??Y! z!a&{2b^4{pR#vF0y~lD^p9iY`e80Z4xUhFl@7&Ecv%N#VO?G4X$d^V=G*_J=Y?{hVHG;Xem z#uOIW64ftXXgdHsr46%yn1*&uvmJ1tjCue*-}VL$6jXnCk!=*bu(UAHMk8%xTv;Rs z137@-8jWoj0?^8>KVKV-O$9D-mH~)^P(?qw^X}B0bw`7csbgrkt5){hD$UMl%=eBM z9t}?`%As5P-O!ktipD0YLI=?`H1hiyY-H{e5RIvCB0j-al=XJyzrzdp=1BVl`;^nL zKtK?1<@MHYNP~k{jkehg*w4^!V*^FqzOzqpweO)*+MdX^&N(tyZ+By=<0(oECdHUZ8yJvo3RdGASSZtjQc+vZ*5AM=KOtzAXi5 z%%cD0Nl*OIxSx2CtQu}XnoT~0aDyxHA0nSnMEvxXQYxe)!5E)u=Z!7d%T1F)QV9YH z86=RH9ZZsha$*z9dohv#(=>w4e+{4>P0P3aUk2(=p@<(TKaFaWD7TxRV@#gvf69{f z#D>bN8*T)(cZd!tvtWp=OI4}eBVO%cYa*E_<{*)DD_P}+N^1Guxhzl1-_RM06e{tg zA5>QY4KG5a0GxRk5=FGkzS){8StbEU%J*fS25_P-SveA`wnT{`z~v}p%)6ybNsY{2 ziD%wP$!&z1w5x)d@)(}v*DC>OeP6d^vyp8UV^Kq!P*LFS)VtZBhlzwDU9tiiit#BzM`xMzFW|%>J@(UE~zNpnD3^w#Ezr0YNEwk z_DGoaIp4;V?r%NRrWNXM*;v*fz;mTRs&2{@SW?6Jv5>YTD&zXVUIO?+kN>QO#&+BF z6SgWM>;8y#D?K2?^mSH9+X-Hjy#C2p|BfkNZ87P zjVcu`W!zRSOrQpWmCrqFW&`UjgX<1Zs$~9(Xz>+YP=Cbv&sZf^RDMdTFT0+s5{=)w z>indPIoZqB)ABxER~{^FlD@f4n~K}4?xuDMjC~5 z53y6c`3+e;$Y-BvziFa2G^=I=k1w-8Ll-D@7PZ!T`GRQ6(C3lt_uBDjFmY^zK!HJ3 zq^ME*yH^0fbZJ3(juhjy{bU^AH01RL8;0!68`*07y#hQbHi~`5`RRmLm_X>e{NG9; zlIHd>o8-{ntT{XuTF+DpR5K(tl5DgQ*Bn%0Fm_BYu*y2ojN&wDn3KQqkY4+^L7P8d z2`qFn4a9g2lO#L#vA6Kp%fXb|loxnaMrd8ApldV+JNU|v#%IQ5$5^w(L?w>Z=ot&> z(VOfha$UiuzG9NUgdp|b%ikbcgh+wey%I%HXGIk4nO>tiCEi~&i>dEmL@Gc*F-4-# zzA+|wjnpYJbf=5}CVE6|!LV!DxZT^!Nx&9%g?J&|Vo&+I@-H`}YzRo%P_RXS{p461 zx|3E?-Z)ayA+2)f05-GkCWkVIB!tlJ2IbKaeMAUdl4a1Yh)wKqWMlze%8_VkyT*02_aW zyx73R%4+ONG>lUB%2N9^s<8__JHH^OblYap1LY08nO!UCR+FPT#V9Ksqhhj}j5J|jD=`@sLsk8z3UAr3 z$u?K8AuZqIx%*!>t44wzROMEsZlhGemgMjMN7W{AKLU9e-#&X0j=brs;K;uyj(nf< z%gbiTT8rra`wDpS))hS2esAa&t z7^4=7;eC)uJ@a|qnp1CBSwu0y8@g6pa+p0|w7+3z|Sb13&h#{7YQRBak$%)9F8Rf~a0%5Vsm zc@e3!E*6A$J#|Uo+GCVi3>HP~4>4Fy+U;|sh)HhGKa<#!r|z}nNlwTrd*@~s%pXQ} z%czeD`MTtN4X#Mjr@5BDg-Uk^&sj;_Eq*!wonO3V@?E`23X>!Au~-?(lX9zF;@&>b z65fxc1`^H^Whuk5#myKu`0C9P;VVNk;wJCw%;q`5_+m90X`;tzfMI{6NfFc_*rR*- z?yLvPoo4WHw5~<|q<+<3Bs8#Dzy88(Zlk7>84dt(^~Pm}y9aU`X<~9lW>`_K$qWRI zs%ostsALAg{{C-3*dak&%AJ_lm~T{qXfF+|x1k()Yj-2eH0Cc6=kJbI(=>S+*nps? ztUS%e!4FExh9I0$dwg^ z`hLPp$QY`o_tot}^t6K+G{mKg+RBxN*{V)LE z#c_dMGQrZo7!`V?^?+$AMjHtx7z{{e5YZb&qQGf{DOEp-ioaWdi@6?)0fFn1`Sla1 zuq4PQze|{5snSw(F|n!_Wtc-kF+zz-cpK6WJjVK15)7OX9YG{wEl|o++~!n zaY)Xs7{|t=0YtwHKa|VCunIXK*Yyj#FtsU6T(YVtUQy9y_vb)wu39A~Q1zlJys(2W zi~k~ojs$WUCI+Kw(6)#m;%d$)X*E(UxqN0WAZBQ1t{A1~N?Zb=>m$WzO-Q(h86oKn z4*cI?@keQaNhyQ9fmDhAj)Y5-In3_ObW#a)Fa?{-he|dE&f;jby>YFM@(D$B-fdW; z02K8)pz;_?au6hMSkjYQ=+wX`-Vv*9uTY*dq6XUz<*FR9No3w}{fy~nLO)abF|x)S z98CG-=K+LFMdadKz=jwbtB3_SmS6;YvBCH4Qj;ZTgL|YsjZ$%5O|Pat*ph;+Eb3j@ zOri{06UeT;gzmyXwEb@vDlR(KEGRBZrnr1E_HZj4f7leP)L;^fy2HTHR#jU+)hZ4c zJ|L_d$#{#i`3z&+TG4jU@v=sdVIe?9XElbd%O8t9R2pBjR-o4`wOFGSwsaZAM|zSi zgAqRwaz*7y^D|5}LI*L*96>EI^H8B9wvwDi>t;_T%Z6Qn z9F#L;rR>M9T90yeXQ3_~RLjpItfAwpLfp9<#eK3c9}1&So#7ojrVc8qNh; zRIQzbFMVCi4{7;9+EfYu($02AZ-s)ZH|x;OLb+9rYA{PX`@lCK>}Y4(7>~A4{MBe@ zuN1Gm4DD>aGZx0gY#Ap=vr{4&Fv^GQlmzFLm6CyyX*Y9}|FY?8*F>B1{{i=bA?~)e zx(4)erPg4&q^7tIh-%ZRbhrzk`i55Fto5)I{EtD{YC0S#ypLQ1`S#1#<0yDFrKT>} zbvX*YEY;?+`d2izcKa@?W$Rby47Z`?H4sqOd|6Gua1>mwR)>~m@&a2o5~h5KwDD?M z-F?{XOrzUu$%C}JS!)d!9mDmAL1Ix(H%@OhNjfMUo9iQh1ek0Rl__1=dzV zkc;^*x}tX<0^L`o=@}Wqh`0`Dda|Y0nw}ok*7Q)^)I@2>eXR1z+Re*!4iu}=YJq8a zeH|I}n3yScd)WkST@t{Ka>kEUsnrK+HB{I7-UU^!A|tO*_#C9m0!oJ10nVNdarV4o z>}#ulzvM?&Rw|&cXP^RVHQ@48K#Uo0b*}Xfr3QZc*H#VOwo(ne;WE^~n$gIJ^Mh-t z7%7sgQHgE)+B>A?Ty||28UEhUm#ZEAk}Z+0f5v9cs@20GLa{*rI#Ca|ea+RwLA)W8 zUsOG;dxsHPz5@V5U(3gQ^rR~eT(^5tYpcGIA~ z*I&mWfo(e~ca(MzB8sH;2r(Ji1|c+Tmt+&WWG@~p1tA|7!G3z~G>IjI(zn-=TFimr zzprz(&<|T)1!~&vXhPfDc1Pp9{3e|b)|7r$juS7xoLInRGUgYJN0&$8& z^JlY0A(gG=RWKt->A(n8HuAf=C=Y<3Q1=wbr}FHi{3|~ z9p(U6h0BwY8n9+G&}MqV;VHIs;b=(+_A@b?hB($qpmCi`hia;+CF9@nzGV#FfRmNtu0nUM$C~a9-GYQnnSiscolX zvB~Q@*c9KAuRte%{uVX?>NKxgxKjToafxl+f_{Ct2!X7?7m#;_dU}h8=5sX=AyUL#Y|XNQz?u3pe<0f(j|`to{-M z9&k9zNbVCU<;jVcJ!~oz2eamdAXs6n5@uR7v{|%Zm+UZ@Luu3np(DpaM~)R77-pjC z%AEZMGNatG(8d0ygY-DshuQ}FX0j@C*uN9JgXc~$ri;$v%ZyG2P%f%#a}XQt1%Jzf zWokpH8s5tSoGfVy&d?=VdZ^GRYe;t}eGh?DO&ZQ&<#kzQ8wJTarD~Oqf*1_xJ^5&3 zlVX$TP_(u&xsm^LTdd*C_CI+-Iwan-XreHg{ouSiDIh$s&j+-GR%0AKODcY#q%D=~g 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

    cGnn*U=i@^^Hv?A(<*yNP^xb$V5UXM}9$UQ`(h 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 Hi`D-DJ^eP3 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_menu_in_frame_horizontal.worker.js b/examples/component/ftxui_example_menu_in_frame_horizontal.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_menu_in_frame_horizontal.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_menu_multiple.js b/examples/component/ftxui_example_menu_multiple.js new file mode 100644 index 000000000..8eaa02261 --- /dev/null +++ b/examples/component/ftxui_example_menu_multiple.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_multiple.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39928:function(){throw"Canceled!"},39946:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_multiple.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39920;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52552;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_multiple.wasm b/examples/component/ftxui_example_menu_multiple.wasm new file mode 100755 index 0000000000000000000000000000000000000000..9520dc258351cef588f24dd68977a21e28c6cf81 GIT binary patch literal 322518 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_style.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={46384:function(){throw"Canceled!"},46402:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_style.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=46376;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=59016;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_style.wasm b/examples/component/ftxui_example_menu_style.wasm new file mode 100755 index 0000000000000000000000000000000000000000..883a363abda50abb544484b97c98516eb9ef32f6 GIT binary patch literal 348247 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

    B1yq#pO&Z(~ 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 aiDRjfkN)xoqP#);>aYkYZsNXd_5T2Nc3dX_ literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_menu_style.worker.js b/examples/component/ftxui_example_menu_style.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_menu_style.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_menu_underline_animated_gallery.js b/examples/component/ftxui_example_menu_underline_animated_gallery.js new file mode 100644 index 000000000..115570b1d --- /dev/null +++ b/examples/component/ftxui_example_menu_underline_animated_gallery.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_menu_underline_animated_gallery.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={42800:function(){throw"Canceled!"},42818:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_menu_underline_animated_gallery.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=42792;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=55432;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_menu_underline_animated_gallery.wasm b/examples/component/ftxui_example_menu_underline_animated_gallery.wasm new file mode 100755 index 0000000000000000000000000000000000000000..b790d38f49c19161a171ab31fe2088d5faf115b4 GIT binary patch literal 323530 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

    r1sid`mvA<) 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_menu_underline_animated_gallery.worker.js b/examples/component/ftxui_example_menu_underline_animated_gallery.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_menu_underline_animated_gallery.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_modal_dialog.js b/examples/component/ftxui_example_modal_dialog.js new file mode 100644 index 000000000..ec9a27fad --- /dev/null +++ b/examples/component/ftxui_example_modal_dialog.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_modal_dialog.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41648:function(){throw"Canceled!"},41666:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_modal_dialog.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=41640;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=54424;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_modal_dialog.wasm b/examples/component/ftxui_example_modal_dialog.wasm new file mode 100755 index 0000000000000000000000000000000000000000..dd1f9169bb5b889ea8102a715a00659660ef1cc6 GIT binary patch literal 313954 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∋n>GWIkxu4`mG{>4UB4}G!Q#skfaI~p0cHZyK$ zWL(?Kc;p|uRUQ7vstwjzcCJwW?`~w@UT2f>?ncJ-&5W;ppmFm)EU!OYre1?+np}l z)+oHEE=Ckf&v)B>pqX(;BjeU)#tn^(YnvI5{I_mZhyPonjk_Bew>LB1 z-N?AUneo-b-Kriw+^Fi_M#f!r#?fA4aj=25=`MuIVTh+t)LdC(s*Ewr76PtMn4Z?m0UkpDWKLHU3#=LDYR{Sa49_*{cw1OlyMm$J50&dzvwOASYOVJaHk8*+p#Tr0$9^v|EAj0#xH-_ zEMSaJvqOUg>>g6NAcQC{E%O(>1#p#5Y0-8F?_9GOJA`s4;^Vq{!MX+Y6~Xf3@s%BR zexXif^(HK@Vf9KSbJ~Di+Pk1u##Az^SGCIWOJ(`J(w2)ILzgcIk(XPPg-9z4TZr1f z{Q@HHG?BpP>NeRXy0qIMB?vt&y>(nQ>hs<8eC{g)XZf5B+_&jR%?;oT#!cQm7s)1AdT- z-mrCQ+mWG{Z)lXcw)yfShq^BxKGcBx?ncJ#&5U<9GOllCeD%R@RS!SdsOsKE#$C;f z_ct3H#2T-WbCRl>J>-dnqu_u#NT%7e(Y}>bwAk1IMB?v zt&y>(nQ>hs9y?xDh3$1as$L|R(9=*p}}F zUOeb8@>TMGffvgI_pmWWJ@iO20xf-uIswP!zI&L}Gv!7%bhoGL4ci$Vk!Jy0h>iyv zNIg&^m5kdO8UJ5KKuQ?nxI34bHI4pBIm|w?K?f%-KD&lb1m3dY zoem#;8B6s$Uplh$w8LSI)8Q6}!y>1{7rSDrw(oMNdcona&gpQM!(pk@;kz$ls&;(NGl2 z7oW!B+5V{`o);Vr>zodEIUJTc9lrY{rfTOW4ppx?95y%|?sqsWb2^xg<)husb*1|q zm&|3(OQyLw7WwYYcH~^n7Il_p5pg(giaO&Eb~r3|I)oe!Ew9-M3Gv=*v6$X+Iy~lZ zSmkuM-r=y&>G093F;(xp>WJfMhr=4D!z~VnMNWq=UWuvN{)(-t&A|Llx-~F6JgI~_s} zhnANds@{7k7ROsrhr3esQbP0ImlCXJJF{3ySS(8km+7U13NHUFC3L}fqmx=nNJ8AC z#n>J44sOHMS^_s!(Y1s{a(l=E0S+CkCM*#j+7y9v?bNOPe@~cBw%NOY9F_A=s zTD8B*Ssy_;)pj7-m+xD(U0Abm(oOkt<{$$>=`S)hBisVl^4?WG>Qhkf3Gmn zU-r-AzSpm01*SH-0y9geWj|J6n(Y;s#~dTqs_4kYKzqHzVWHFEqZeai-8(Nj2EnHt z4r`naw>TUYIUT;(7*n-J2?!7-;219<@7PLEt+S^;&}SRRta+^9-DI#2)fIGxl}@ zZG>~?+B!zHXEiM+`j!F>Q@^Fa4|VKMlOT%ydH^c#wlNRuVq_e4d>o%T@kDzSpP2I{ zki4v4Jy-6sc_$)?Kdi$IQBV1}N9gI2gz^TC+;Z!8nK|!HBBc;!`{L`Weer6)Gks95RNGI8@TP z6EYg&($exfbmQGFRaOMm{`t5^7s=s=@EOF-aq2sx_VvnpVf~Gq9@cN#$Yq@ieU4aq zd6`0;$>v(T51JZNpJB>oq!O@ary9cI5&u2Y_#yi^+4we&-`VDe?31L5*wb1z9_f+9 zS~I?KJG=0bCYhrO*blrjEwjIo;^W&JwXb_8c_gfC*xo{ZKZG<4a(UTcBAPpiUPtau zmgsfl?i8XYPTp)za;J`#4?qZ#%tFOnpD|Kpik$=OGjH1cu4suSNNJNSxnWgH+ah(B z#7UXbWV`cmH13>93&cB#Gq9B@KazB*1PF0ph<0(F}D z`4Uv#bSNiDOy2s7TSv{Kdb%bsx~AIS-k~84`Qs7?P*c3dInG4dL%=VqlfT)6qfEJ zyhS?+rOlg57xYME7~{309(-fv=4XNUl_Q^g*)LDTTys@dvYX-o)J3{PFa2L7R;yAf5dT9gEE3^0r#9feIxOZ#(T^rH-3G$RAN4tZG|zsw~AFeYt{5|`IK zrDEL%saFNxZEnJ)J{OAB_N2a@4RIL(_MfNcC&_TuO$ME`j3NA5lRJ^&PIRbsFu52= zOOSSrZqZAe`aPIs3q*<9zn;;7C0R*=GzamC9=ReCy%Z{9%%DkvFRgVa&E+X5 zXDS|iq>Jx#$p${;+_y8DE44KW$&jVp%@SoH`JoWLM54!Dy3Ykb(-)W)v4ViV#!M^Qt{k_?DvpD zvQlSFRu^3+1*K1v(u~#d`j@p@=R_20zpZoOcBvewP|=*LiZOiaR86YX*abxjEo`)|ga*6A=gLlJ?tOgp;%N_<%enX>&>dD)V+nQ(qpIg z-BLeHW4+!?@yKhyRvF=mt*W>IQHvNS$QRf*a*dL4N)1x-C!r^w?#9=hjwN$I`L&QZ=_=^x z$%j{}$;cfBO;HU+eA}$Rdo0a0;Di0P5!N;*}uJpEY45-AHqB!W@Gi6eV3s#`xxLK@Yxezl`;+MP$~ zpJbwqc9I)3`56h7I#p;~lGMeH7~L`|oXES=$<6E)CO^@_PSomd*Z0Ck_1ut_(A+a# zoG1aGzC{*;h~+0*_|X`t2d?*=>R%zCt*R?VQh!65f%^3smperjnC$XJo|wMGA0t;% zxolcLK0{NIpK6gvnVhQWg3`p!P2`fB5cLZ*aTx=+kg%6xCmA0;H8NJo_!r9wbFk)~ zsVXP@=m&Fgcc=cw0I6dugHn&!^IIZv`>gV8XChgC#9~y>RGHeySJkx2M7eyZjHo*e znfa&mNS2ycO{kFOEt%aTE9BDgt21)jVCzGcJE~OqIh}YiBQprDEwXiqBul!7nju&% zJWaQ=J)3j9-JDgqIhr#S)=_h&b0t&v{Bx9;{HhSI#!KDD`*!HMXSsxG;FCiNGftc+ zHQ#pahC%M7?)k|UseAcMm15JMvPxk{Sn?FDczF+rN@k}Ds$E>wWQh_&1B=H}RBYcJ zt#y7;LOLmT$?W2&%1G|JRDFN)tJZhop7os^t#8>Je6Fr<^&XW~-|WKIUVXQd3Dtg* zW!B4`f}_5Z_o#1~%O+F0jfo86%Iu(6tmq=AdQfU;SDkn74l~dGD z-EghujYcUZe7IO4kkUa#Dvg4=P9T`-;WBzL;9{>jH&+V%V@x#tev;)rW7YLQx|`J- zIv(8*raQ=3B;Soh%`Ow2TymV%cN@%;E{F3sMzQTCYQTa*pwaTw&yj6nnG%`}~OPiO~dH1^n zqb+ZRZh1VTloD*+^7O+>AIATSmZvY`v`-l0*79_GGMLMRd_NlBW?ghV_m!e+ z-T3qaU?0Z+%f{y{!v9U<+uuTrw!h8lVXKb^vwOBb{e;$sA??qa;3U$0VHndpf9YwI#IMnhVB}4SPC3NV!Dlkw|9#tl^UA6ujG)2sPig z=6`sIULvA}rS|BN!eTjiFNHN*6;^ac&JX9srb+u-SifY#-pRUwbEl0=lY6*J`0@ET zcEFWAF8Xm9l(m)~GU`x1ag5l!k;m--j%7@bWMaVV$zUqq^Z-BhPHm|b1!i7yGeF+4 z;IlXy4ebkqTYO%AX4)oq2ytUNvp$U_m*_aG(%9xSo)y(-!;s&Gq6}zBs;S9!Va%~T zXaj2YNmy}GcQWefDYrqY-LNEqPv-1yxl=>!F~;$6z8k)GWgP8W@_EqK2Z%%B zY}NpLMxw8Knk-MTJmZzJH8k71y6GJUXC&^n5yxHbEdY-TA+@A8X18+&1X4knrNR>?3WL~ZR z;SxWWNf5s@8pki1Q$6g(oz5g%ep66(a*mhMlr<`nm?6vQ+J`Us0$=@H`A)U9KebDB zhMJlxO&$5`8*eSy67>I<*c(CX?ie5ef8t z{Dy0g!BZbqz8HM%n&5l(IqrRYsr=4SMix_m9W zUB35|d@p|M%HUDnW{T!gm-_ikW{a{m%f_|Dm*6vgK8gVgQ`Lg(i$l$%F-gEe?lpLJ zca3^)glVNao<^|FMYlLyz71f#R<#K#nMIY;)vjWMlkBOLY{pYVie49}JEz{i~%-9e=+^~)`mgN(C>S?w+nH+udjm}X^qVG zteGJ~ExE|LAo;>tT^8u7G6<^Yr)rqciv=pMDnLU*+8<-5rLphl3f)!G-j3IA5iKDH zJj9M0qN4Q4Ls}gH%Ulf%)z+d?y_Q%Ts@9VF#yQTnkk?mQeKgODLo(LzznA=$GCfqS z|HxVl$zuISnvIdMjyo%I!a_IRtpKq{=jUt3t!*5mX~-ue3s`!+%PJ7kJ1UwqK8)wX zBkoq&z#Ao23aM@^coMJIfYgKYg!UhtpS#aZ{3$WwDBGt$pNm3BkjzQ}?9bw%<59m$ zs$14Ob&z7xY5#H`1u9N zB)yFv^*f$6+AvLS7jQzDcuAFr1d38AiM z>O*@Ky~MyIEmwXsp2Vp65+SO!^0;{Jp;^_kKKkc(R@LWE`+jFd$HQ>z`?`C^CccMJCCDjg$=ICq_z7d2UF=ywgu3lf3Ay9;7@N!Z7Nkc$73tvZ`Qa#tY_j$}-*cOK!U3GGBFy9Xu8E&;M+9v#N14k;5#RYk1^3@(FI z1*1?AReQbEmGuUoyzv%&2O?g-0}&s42SWErzBbTr0McsJr*@~3zNPmvn$h6x%#4x=tnWm%DEb}tafXET%o2hvF^^qNTJiG-U76-Chca%cJfws8tgmxjgcqL9M|{a0wT^YCX zF)MZjX<{Se(>gsqsh}I3K{?Su@!{J_&?{X&u_Gup5_FX#=vrq`PIORw_!jC|#g3rZ zNYG`Dpevj~InhD!;oJF=idF0gij4$avXJQM^J1e=uSt_?{9aMFef@FK76<8SjCQ@*htWK96@(DgL0yS;={K{ z$0~LN#fF!ed|Q{t_b?dicvoX~MsIF7nwP8gmUgMCX{WNSmNIDp%N^jX#*8Po~1&h>?i?jtP0s?mz7;1&3EYv(FNb^EO<`rf+tw4;5pF+PuSK4kBcgJ z@j`!;+otz{F^CM9h}+M=ZGNdHvQE~I}esRijnC0*4N@B2haOOd`%QWMg*N?L`~ zKt=ZRtwp*@NgI%EP|{|k+m!SU(w$1$fpm|Ob|c-Vqz0OUj&~8#gUaq!q(3WZInpCa zT8;FmlGY(Tp`?vSPbujwq-V9O^wPUj!Asdu0_&m$zt%1*yWp4HsSEx)m$dk`&VuK} zE_i~)3Z4^P@Put$@VMx1iVvd2-M8ygX?e?#7VQ*i1=0#7twGwTq-OD_q)kXmKNEjj zkya~dJJMT9+J&@TNi9gbm2?$VwUEl72O%w0QWMg0C9OhQqog$y3h9y7DET6F*jTOc zDmx!`p=?{`ER@yGLgBpKmA9T}t{M={_Yb zyn}jI(h{V#N?L~WjFMI$ZB)`4q}P?yjI>2bn~?slq^(HrDrq~?zm>EL=|d&8AbqT) zRTK*8kwTGtkveRoP`HOSe7j$iYo>n3r0p1~eeA@?l`buB)xK58&DvgmJ%pKS2D`Z( zqh9gggqI9CksG3ZMyh3|a9L#L@|x`O75#Kv|5C4!b|oKPZGVI*GI!9U;<%SqXRe`_ z{_Kh~j!ESA({XzLT31VoVfenfiB$;S(X0XZu3ai(kCqe{GZQ5%>*s81^8BBewW-9D zTT`|O!mfL+gtyyCPLel^8+>lMuVeb@Z1g*yh{J$r ze5X<ur6sj%OKL_->LD$uhqk01){=U7OX?9mSFhx>v>%qo9qFQ>70;@=&^@QB ztfay)hF7^OtAex2D`y(U8Fl4B+uq7#t2q zz>#nibc4N=Nzwi!s!eI+k<8*;{-9c=@hZ|GX%uBv>F=eSvi*g|etR^oq706qAuPPi zFm@4#9K$)^vocl8dsJwau25B`=SqW;@H8rEOGm>oa4d9(-@tM3TW~`(H|@10?>K45 z`_Y&@ZHn&z8WU-dHqcDERU42PV~xN~A?%Tgy_JFoebTl{tWM>n5PD$O6OM;o&>K#G z6QK{B1bZt7?;IMY^qH(S*`(kLb*JheyzUdK+YyJPi{V`5cO&WRhkSNSxpE(ZogB@W zlJ1kCFRGpP0 zWDczh2CFKEGB_2siJ4BSMl(Ie?IoOH4TGL6t!zTI47nYRgEHKXE*ddoMtkuUOOvrP z(q;hHjfHUdP~iZ%%v zK>XR2)Irlc+ipOuqt2Zes4NTA6wWKmn^IF!T^*=tzlH91@MsoW_krADCDp;Yn!vcK zIxf+a4b`k0eO8v`RHof1v6>llrb0uvbUR;dTB>S%cAi>wiu|fde`!T|>FjZnE9MpY z+cr0*9?=2Q?sm>T)i!ts@$Xl2l(|j^;Z^#hrP?|JzRL1B^prA^p5@OOR#j0|BU2{* zUoHaqZ7Qk#YaM~@wk`c4t4-@BY5R^p8okF)_u#*Z{(sP3?W)Z?Gf)#OFO?}kWsqwi zZM9A2WjK>!wkoro08uyEzNJKWyTUou!TEGg%hIl@4!V#XL)N5{=}|@dNKI?M#uFrqpD1>1Y8_we3tS ziE2;H*)h#_%G>Lq`%E^iau4N_=5}rm>elE=NK>%fb4kA#gMBaN-Jf=<<8N($Arq)i_h zCdnsvYM4K}y_6hCMG(1Es3SF5QZDWE51p9k=8KX|i%Bj%CECV0*D417VS`!FVj+X0n2@3%80?{!zS35<|b4Jf8nThkSILp~v z8};m&w7k)kwLzk1o9vTgP5oWygioIwfuI<_;z$S-(n3+TIf#OiHr% zD}2!SGn#-e}QYlJ;NOex+?+EvM~WYRs4$`< z+TJ@ut5m4*CzcX_>swk!LbCQ)`D5%;gY2(WFuDIn1#=+9VyEHPD3;2-7EH$@j<>MB zJg5i0w)YMD*LUC`z-x__x?tsd9ZeLY1>r?EF2Sy9H)}$bu$iJLwoDs9aqUP4|9!df5Gr_RtRckA*Z~Y zX*yS?c9+EGsr$gfd8{V1N_Oi=^~`sk6>Cn+`(6eUm5|JK6A~@q*0Hp{Z{2gO^A=Ur z2Icl7Z(d1Fc}Zn(^y!Y&WAB*uszpgX^V7Gyl*FWx+S!sxRT^zC)Ux(pETdL*?$gfD zWT!y&IcF;TR+-3(&7P@Xp4CAj4zeUX_QHl**PsJR{T|!}zkOBFsaUJQ-jmmQJw>mz z6syuWz*&3SDCqX z=7HL=6XbRuCJe=d2{OZm39={v6Gmaegb|p6@?0c>_&!4f@jg)m@n0-LA%8qMe~`Z( z^*2lX%~pTC{GAYlI&sgFvw0%rizG99Pk~4mB4uTYR4-FUz8IuN@Ba5*ym8*yvA4ekJRG~NIY!JlC@gzXl7AX&*BT2&(}vj>nFJIKLA z=gAya5h$sdtX6{$AkJ3d4EMoAoi}2pUgJD~Xro~cD#D=$5uqK%j&N^dX-=tHvsD*9 zowW|{XUKD#g*?algshLmu60qZ_M)s(xJOx~>i`E8)rg9~fkmYP986R>BdSX4Y7Zn^R)~X%%sc8pi%ErRd5sBa+e^_qcXBs8+5IqQ`pAJkW7c1u(q%gK`GR->gBb-({;a{&JR`X?Qb@Y>(mf7};5d zH_OP*HoVzJw%71_jqDu5n`30>8s1zZJJ0au83mb!Co|J1@L+h1f-H$(81uFYhDpu`w9zoZi9 zlKEq$lPPIDyo$rf3j6d zvWJ$}D#2rjt4`_gK%lyKwhH4loG0Shc|Ivn!&{4GGXphRV@%G{nf4mR)w0;5^m>g+ zbv1MAs>*8vt<+{ab*co#^mw$MY^NUllT=l7Dzn9bl0DL$<oqlqoQ)0XQ}GY z+M_9rrP<1o$EhN#jY^L(E>KopH^-q>Db=cV8B2?hLM$q;ob8noEUK&F{S&Wkib`#z ztLV(~s)|6+m{3zvITK$}r!-6*j~%qQf_D&f9mGUYG_h)aNrgCgjA5*?vF64*9h5!= zXcrq1msA9z8K%mDfq)7Vld_FrRW+3}XurCu9m;fhMU_dU!%E5mL5VabsdCayin_ET za3)IChNMK*rLG&RVzUk3+`5uEtWj0cY<13~>2+vRaYu8h>&8-%W!NdC{wzC>_>XB; zr>bD2Fr`z{h$tuOOFTxaOr2nF_hIp4$+nZOGC9)~B$8EsBC1xas^2K8sGH+$Rhf1M zttKG;qgCp$1`)3@Wmcdhs2f90wpOToN$Y5(&f%tNM2{j~Q7Z|bP{G4MUE-}8g%!-M zG2PFsGnFJQ)2?IX-BzLai&bbV^;V;?3z{aO^*I}aN2ft0&LOta>T%Yej=|RHk)fA( z?4D+oimn>zgI1mCq*$Fy7rM@f>TlV`=*lvdMkTX=z2v&&^r zFS(#f4fEMrMS&H8-MQ>$VV_%VM=NpEyBfr43U;^9Be26FODmQE*Vbv*mZ}`A${NLQWmWYu1*9#!h>suM4^EZMMRUGTcYDgV(rlmK=$I^-;R zr&MOEy7X9G*2=T4dh0K}Hrue;jH($?raDQqy0eW*T-(Q$*9PZP*Nj_}W+7J~NT1KL zYeNF68nvQ{hPO&x7p|`2d~cg7w#Nf2!_mI1FEp__-lGPT#VB6+pI;WZ&{4n2p0%lB_J*E?ovJ%`UwY z?t&(`8}5O7VLAK>?t}Yb1v~%`!b(^LEaxs|Id^FoSkhhkFgyZ(fi>_~coZIkweUDR z0e^#a@FYA1Pm?FPnU{Q$$41HHLbw91gb-W>SHm@ME!a!SW8>3&F4T#o;Lh?aU<`jeJn%R# zf6yS~*mK1yYmV5-A0>H}q|cR{qb$_lJSD2X*-BJ@3zVq-8gqWlM-A;QV_3J!);mp} z+}eOFH}RyBXU_900)E~yR!dJgMdkH@io!i#IF?U%M$Frfmlo$uwBoW=$rEb*R_i`u z_uC=(=7)p5#H!$OzG=D|Zs2>KC*f&}XE2|I4e%ViV3EQ1FY*o081O^2#oL(gza5YIOk z1L0H{3=`lCm;%$G6c)hcu+HKs%nk4YY=oEL6^K~8kNE-oY~kWVw|F?!Vld`V7zv|b z42**_EUGc*LY>6|%*$b&#Z#Ei!3*#rybQ0v`|tt$7ff*Raa}x|YB3mdIE;i*Fb2lK zWS9cep%gB&cnb4bcpf&wOYjOrEabzz1Q-m%VFZkV(_tJ;hBIM0l)?hI9M)Mpg}DKq zhmG(OyaHR`ZFnC(0QopD9tOdwFc^jd+w~c2pK9>?I0pLx8B;8#W0t}KxEx-xcn$L{ zc-vwt=6moJd<`BxKoq<%5Jtjyc-UeM<~rC2uRu3GRy-PVEb=gg0*k?zr@>rU2vzLM9A?qxjhFSeOjc;C#3QF11*V*$nbQ zUIKVwILwAxXn@P$Zg>d(17AZgKHkfN&F}`i1v}s~i`|&Qcklx=^P%4l@FSRz?$&I^ z+y!6sGmJ0c(*Bxlm?oT@$@gXON4O2D?xRc~2)~Cr;V#$(UqajpO%kS%W^p{`iO|oY z0doPYf#+ZwdhX$E{5O3YKuoO*T7@2 z7M_Bq;TelhF~5Ls;9K}$C1Wb=gwNo(A2r6$e0K|O7yx&gb{Qwa$}TQr6^!WWGK#=pQ@%LJhY@foTn4M* z2{70lKMqa=FBHNEsI_RoybS&V&F~^@f>+@+=y#~g$b-Qa?_qud#$lu%2EnN?7>2`0 z7zJZs989s8j#&ybpaQBP2sww79++ma8go5_k8l}(g|*NO@4&l|d8Er20xRJ$_{~u+ zqc8O9M!7-e(ddLc$cI5N7=~C3#T*8&Lj?W-+hDte>ll~O39_L82Ekw$X>kVTIdBd9 z5e9U38M%-Tr@@VIKRf`Bg6B85!$6BuF@FcAK_QH^xCV1EEP)%~Cb$K@KF(!)3%f3G z8M`5KHu_*fmF5i05L^#8!gh;Ym|wyj>s-d25P02Xl*1gTfs5fXxB{+)2jL+Y`Udp~ z#y^M$20;bXSuDg9Zil$!|m`j$Vb0hU>E!d@&WK* z@WIU>0Fl5o6!ckO>oE63l>EFdJNqiRZ&M_>Y)v+N)9RGQJDZp008kTNYtnN1Fm;waYl} zVa7a|2xTx6s^P~+Tt>n!&1;y#;x9EfVBQACSB!&@0fS%&jDjLK1I~v47}EBjKjc6j zTmpZ9o1h6^g4cj8ql|5^3wB$4k2!cZ`YncHvV*E&!tcIeT!isZ1T*0xi$=_wVY$VR zm=nHr84d6pY_iyl`37u(2z&}VVK=nEHn!mT6w-fS%z;y(5Jo~hTm&z}D_}zPe;J3N z9xj3gxDuAY3Rn$~LNh!Io8fKXYHs{w#$m=|#`7V)y+y@4`?}rk%&D36MxV;Mii(qzGX5OG!}dcCIYdsmla?b@{-nttISyg=g?oIb zWW&XlLfEG!@h8nlk}y_C<j)TX(5q&xg8S^Y`X*8EL(_2}a8 z(ixfEWjRu{HGjLfPR?+6=_<1Nld7%x%l|{MJ@n8+U0p0ehe&nxh$a#n(r5iqiBx${ zb4}5y(IJ$q{x}lJSnkQn_U7c~vz)Eb?pY~1Z$_^PYEonTllZ?US%TQT!}+_gd@OeWVEeDYjcve|Hc z@D_e|0E;*3ScBWY(DNR&pj!|-COrld9wULPXg9F^x8Rn9o@B87iyfOs8L8mK?pNTM#MD+|Otmv^voY*%ad}7k!HzIl@lDu3(_zuH%9JMNkwT`ga zR>t@CZHvU(=Q8SvaB@&RhLmAEm1d`*jh+ruAbL)vt;ivIqzv29Q?)Ff* zonfoIvOG9nja%3|kJp2D8dL6g^5ll7BcD%{b)H!wx^< z$fLR)eax}le{+&o0&`eP_Q}@l-H77wbP%X_| zo0}=`X0Bh&w4vtC&;`0e25?Po=33Xx0$nq^d^NMnS2MeOHM0oUOg%KSz$S}l%`AvD zTZ>%H$07d~sEohRXVw${dg5PC{OgH-J@Kz6{`JJap7_@j|9awIPyFkN|4rgwPyFi{ z_5Q~En(*m_PbYl(n^M95Iy9kCOlP?n#d;UAVW&)q^(**tBf)JZbbeWi9r@CX5~Ho5U&dxC!G6C;29xrR2imV&BNZ zVq>gt{7A!!-YA+-JbEf4_#~Iz`9Y%G-{A&!_CyKRZ0XAhK<$>jxI%^ngG^P#0AifP%!3P|9_GVE&{6&Wuj1dc{#Tq9 zyR9jiURoBIp>J;Lr}pj7E1IJ##~Zz?$+O&$j#d4V-YHo&dXFC1d)&a@#qQqKy+lJjThuFB2L4 zpg)`f13-=j^kgD?K=fomHh3Wiav=}$L5?EgC_o+v;(rjF3crKFa2m)F#NQBPABex9 zFbsx6A&h`v4KJdKUywE`ZBtob&M2v<6J3?+?Agackk)$-eqppf>dLYrlI1J^tdfq`lc;QytceI{k9*akT8z+ zs`MX78zZ3U@l@7#IuV zU_4BKA~*vkLNQE&$za8kQyQFK9T+X^NA~nTQ(39IRU%$ay!Q~7O!k*x$`J>WZZX$d zrr1wnV3WL@36hs7Fcr>%v*8>#7tRAKHomwh3zW_ajxH_ruyQtMI%|JHcKmasC(H6; zr%0zMi?}3B88Vo1IMXy1J2{tQqm`y<#3^a=!}(AG)1ef~AOLOCG`x0?M5#EJ?<3Ar z>6cOtGeF{;3A3OaE`Zrk0druFILq6Qvl}|)XfK~_bzHco3YG42_pQTjcYZ(HH`?v4 ziEvWiv3M%vePG#BLbb~c9k|;|tlL|=TWwB4>pDzeyphA1H@jU~apqUn&8e1cmQ|$q zmHv<~<5VnNF+Yyw&~q(6qJJytsHDv0)gY;tYM2W(AjkK(*CGc&-0NT-TnKV3!R26=9r^Ij43G_3dMV%?N7=7~#S}kZmZ%TXI$GR` z^@sw$KdL2W>+wdd?Vcii_iWNE{baaIG&o!kv}CbY6A%n%*_0TrYYK5cSJa@465zCz;&$@CY?fEis;%J+v-B$XYc`CB} zivJ=mNRp=|AbGk0ZiJg)DKx^(a0}cD&V2Ad!m7KfUr={SODuPG-C^ylyCX@bsw268 za!5WiEm`c>S$T5iGv9I-|J}H-NgE7EkLz^11<9rS}(hM0wFwRStUO zIwWblnm8qm!!hNM^0((XO=4%&LmzGuo+CZaTWNcty|f)n=OGG-f7?FdUq}4XuQyup zzliw~ybPP*6?he1gU#?dSY_wQrHqIw!qsEfvxa&_y_zGTE`nrlSk4daUL!=z#JXLx!j8L9dt>Y z@4~;}J=g~ShWFtE*bW~;dvRW9m4n22)js0v#?6l8^FJVQegr$tQ`HlDLBJ=wNx>oMjhE8ZRL z#M_OyBpq_pTk*>eB4>3j7fEYS~;B( zD67=cq*-+}%4$SSxwsUU1nX*)P{(&@Rh4|n91!n(q*Q0%M?6Se#URnjC9MofKrMJ+ zjsqFu+jEf)jW$jno#9qR8Ax?IeutPxOgDS*{RM+JMxj98$ItR^k&ok(qL;bc-x$kYfT!8pV&a zS;?2veY|Ba>(U+R7;d?Vo{s!D%N1{`Er?%~uNHO5E-IOTEZppW9{VEDLdW z=3ma8`IK{KzU17Q2RZkRGm0clqE}2giolkCtvB{${=c_-8Hrcs&3l{Y512lncEE)L z%4-J99#F2gfgTW;Q(Ib7PVcB3P&>btPBNgPeENXu;4Ic7%0#ZAr}6Vs>im>aqf}lV z<7Zy%Q2w$ie_45LbxE*vmOohK*B*^vNe!zT_L(eGU{TxG<39Cw?!s~YGbR^KE*$PZ zz1TmD2eSTgzNvoS#F52@LvKx8rN6w=FTeKVM^EssQ;X^=$u`3}vBoCrot z9zV=qJbI)&)72;F=kf0NNyUBU_8%;JcdDO_A!R4EPE+dyN%mBhGuAs%lxN?9tOI17l<$ct%}-t3zOpf365+N+UUwmpK_~s`-hI5=jle zXToo8S(%Uu<&bsW!~~v~LNeG_ZdQ4$O<_u_D4jy_EB7u#@NfHJvBdIoVW4ETKk8Ag z?Pb>bvCE1>!po7FnaK_;nc11%%$&^J%)HF}%mQ|1@p!U4*&eSa$CK;H^W=L9vNE$g zSy@@xS>CLitlX@;to*Ek?96OWc2;(Fwl_N`J2yKoJ3qU?o9Xp&^4# zdkbSm}3HSej8k_@?t_ z|LufO1~Ol7?Bp&U9yyVo-Na9X~cbojh!%TjJ!uMVbX;0qlca3o>5X>!NftdSUbf!BP7;yd6+8C zlRFU~zfv!8vf1yRz9r7#_?0;Q{?hsq|4c5AWoVmQS6&ln&(2*I2=WmpznoJOC}oDj zeigiJTOKT@nO~$DrO~_AN})Sg<+fD0=hOuQ^{t(1_#Bkw56j6Jzva@}`}CTslCshg zF3#-A5OB{cuL;(bRJiS)>6Ts>DC=RU_gCcye^h0tI*|NHd8AVoomF`hwDKVRU=n`h zSb{0nk1qJ@s>{w(Q8kl|k^?n0RW)k;xB)++Q;rRm|BRUbtcpP8%-}350Dh#LSL07~ z7Y7UE$q7T%47n_-KDZhC@v^W`T3=r>y?ma>!!H8X&MKedk9t-8RrKt@@3uYs=MlD| zq_(zo0P)|gfqX-2{rInzwWmG(k80OHBSUo+`-}zH7urs}Uc;})e??pUvZ!NMj5C0t z%VI@)ab!8;sPfNIldRT(B|q<2@uA8%m-9m?_e0?@I2?|ER(Z|h*A_`jS&96l6n(Qz z`n~9o@{xIn8+jHC=ej6z5aih0pyN5x5zkS`a-7fRi*^H=}-z~AbK}jdZ%Nqvh<#vruFv3l%v_wD|wi~ zxlFZZK{;FiG9{E%`iUSqS6bnE;a{evbAVQ=%2&n_$wzX!E?-WKsrZvAx~ve%)K@M> zG8LEUy!|SOgefCT(G6H~Ttb+7Ot}q^I3L4J{4B-{;wHx$%pRCjW9+pZMOGu7nU=1y{p0a4m?Qy9guYD0<}UWjXp0Xc6Xh zuo$GBT@T{_G5kn7lOu>fDc>a^*}M^?d~X6N-=)w9H-m)j*%g6AiJXKyOA^N+rs%mv zWN1&%t=Rt&EoiQTY6w4S#(KNEjbU@Ax&&%zY{3-J>zhY*h(u|EgSh4%V^g!x(Y zT4@|YnDg*E4g7FEl)!W-g)#_$gd2URPMf5vo^Ug;p9!;|9QcUS-~&#h0_H#^NVtC! zZX@wYo~}Gho8M!~u?{_T_?rhm@z_NC+;+GQcMawW+(kzv@@ix`#Jmvy^&p4%nU8!C zTnv}M@8J({DKvl_{pc7yFc)xs8C(tv;R@iDXT$n9PsR5c@!9=u>=7!sQDKF@8o$@T zwXg`}BfiCOJuCr9?}dc1!@q5XUuA{A0Y5jwO|TRi;byo6ZUqVNIx-gid}KLxTH*hQ zpWEPeSO#~%op2X4frP)-5&ml{d_M+-9_YCnKli}BupIsb_rd+J0wny2N5$g55?PK4 z!asofgRl}-!9(z82*YZ47$p2-j_^~h>&hy^KZ3iwq`U_H3Xj5LuofPNCqTk)CX8Kv zRY!A+jr}@!66E;a%F9!nKMl?B3_J_#VFNq|qU&SA+qw#m(c$wM9D5)>kDnJ{BfJPN z!OO4-UJ-KvZJ983_?MA~Xcfk(46d)@=QYU3P9FP--Db{Thi1+Nv3rB_H(@IAu7mF( z9eX!;VLRuWp#dtuj>GwFj2(yb+Za0z=eIF-Sm(D1wm;{$38GI9=eG$PNw47izDLU7 z8}co2$Z-|veV@F10Nde1_z!#pJK$sZ1U`kG@ELp#Ux4Tucr0yYywTU2T4oGZ(?oZ1!Otu3Evs_E|wqJg~Gn} zueNk|#VrF4fkWXiI2?|EBSCZ@e_TxWB4jysS>gE+ccU8|4adN-&>emQ$AN@@#u2{X zZz(J6dq7W+qaPRkUdX-S1Q?0kiI@_0t2=gGIUj%3xb?y9Bsdv@ocG0?hj}4Lm=k-@ zer1BdaTQ_u<9-SZ0MVU^DgN%opMA|*XX*CfmIc`$y1kfA-Ma~6&#|@>CI|Oi$OF-x zk14tj?HSYEjY*B9y8t(5x(9OZ)IEzZcDjcUW)SYD!tX$I55^ST*Y%9)4qCcT!_BFC z2K?(lQ+LtvG2JQG>nG$R@iPiW z!|5;v#=nF-7;=4&BX`?zyNJh%`)# zVoYbg?<9=mSMu{DvK+$+y99qXz>Oer+=MA<`NIwdeG}XblBRnsf5|7s@}162ndJLk+?KaocaF2ibHg- zAWRtd)$lMp0)K%u@K<;g9s`N%sFP#k(>=&?Y$g0!+#iQ0K+^U%%m2^#vFkm3sm}j8 z+@6G|;Av>v7RU9~`M(_VO1K&p!S!$>G{UWLJKPC(!*aME9)yQrHT(r0g(u)icm_7W zMtB)sgE!!9_&dA{+h99<1af?8nIeCQ>~b|AnGN3{$Hf^9#$>bMN96eUh6bar*$~%{ zIZFclW~JGXjGUO*U^Hwo8@eJVB^eD34Q9jP$jQmg&CN`ejzdmK!I~f^BB!RBqTkF! z?$pUJ(QghyPD|sP&c3EO5;;8`A1h7s4CKz8O~c$`n$wWGbRl4aY0g6K%GaZ4GAofY z&?rX`S(fPhD^36Jk!4viw9*V+i7d-%;gx215%S^byq2`mj5H!2fh=*|j(lVsUr{b$j77`{>ZInaU)z=2( z0m%M}5*O=zl$XUpd`KI{;a<)}>vdfv*<)^kxfAT5Jr4s#y ze~alq961*`^r9K+j+}=ae%1`1h@7A9HzH4&kpajB$mZWnb0G4-c)y=E;~$DVD8}Fc1;Z`Kr+4v(BiApEBo1J%l}F_$o|QTBmI%bBZo>CNAi#-bn!>Ra~DU3Ar~P>8Wu;2knV4*8qRg~*eU!xuD}Hz1$c#cxLHn#?BTDad9+lNm;y>IzAH zg`Pk@D=}pF-#0@qAfJsK+G2*@L_P;OyvYo|k9=CCx-l?En`AQB9|nD{Nd(cxEJ#D^pHRD_~Hor?XpW_$Z!6& z$sB@Q79R>x@1ar1fs|0l-*-%C0`d%GQW`oFd1gW=6ka(n96+9x9tuTPPK(qamm`}i z>&*qo7sQ9chL>m;gFGH?C4ow~yegJt6a=2k&_%Yx=XylO`7 zLSBF@H{tgoUlt$s8%LSpN02X14pU#j@H*s$iD7@}(_r{H1u%pBxVR`v$|Kk(VHc`VI`AiF^YxxeuR* zd}Dez99cOa!uH_CO~~fTBJ&dDrD@@ak!3~}A~z!Y3l>LiLB2UT90?7X7FmIO3vzh! zfXJiBw<1Rx21K4g{$qMLV%}V2zJ`2TTG%x5P4l0~w|5Gg{vl1~r^w5YLnG_WACT|p z8aBg|i_A{hT+5Lo7ZjP@knideroM{I6Oo%zBT`?H0myfEju`&W%m~{;8}}fGJ~SgE zkncqfziUP&A}>ddY%wF#kpF~izGj*;k?%{5_>IHN$UNlxk^RQv$mPf@I!FAWuNFtH zM}7b~ynS)xR^$hfBU=_n?m}LPY`)xNK7_m~EfO-0H6v1A52Z#z{w|9nf5raK$r0*n zTBI2{+&K~oe>yGlJo0Mf$d+l5O~?-;n=jOxZz4aE76}{2n~`^r|AOrAzBsZIc};R8 z96DlJWEb*Zk;BG-$dAa6c8-K2TLwfDyv)baBVn_dazkF57Ku>rkt2{FNA~w!9O;hy zL~N_pc5BYD%;l2YR{Dh3L4w({-3_*S}JrXfj_A!f)pGu3EhQ~CgB0r7n&uKDe zAvYt33hK>^k)P=rF~dWO%tgr0B1b0oF>gj*k8C#dF_$B6u;wriAV0_a#J|fl|APEH za_AGTmB=q3hd(gQmykCiN8T~bw~=2&mif$k$S!}Ta$St@@vTEmL~H=5!(BStUNyc_vlWWT$~T!Z|t zu4W|Ez21BQ`90+D5k=-($lH)3Mj!J%XtHBLBzTfGwoBJY%!Vwl$WkUuj94jjl-V-)h|DZ_^k=kh-R`HPhCC?G%l_7tXQX$_tSIkEKI%VFxc?|J2$h)oi@O1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_modal_dialog_custom.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40928:function(){throw"Canceled!"},40946:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_modal_dialog_custom.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40920;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=53560;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_modal_dialog_custom.wasm b/examples/component/ftxui_example_modal_dialog_custom.wasm new file mode 100755 index 0000000000000000000000000000000000000000..d35020a3e2f27d6e8a0e1f703e9593614d0f6e4f GIT binary patch literal 309218 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%0A~B-mmA&9kL(hS;&6Ge)G$jg`>h`TiI+4 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_modal_dialog_custom.worker.js b/examples/component/ftxui_example_modal_dialog_custom.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_modal_dialog_custom.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_nested_screen.js b/examples/component/ftxui_example_nested_screen.js new file mode 100644 index 000000000..b5b08dfdc --- /dev/null +++ b/examples/component/ftxui_example_nested_screen.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_nested_screen.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39152:function(){throw"Canceled!"},39170:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_nested_screen.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39144;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51784;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_nested_screen.wasm b/examples/component/ftxui_example_nested_screen.wasm new file mode 100755 index 0000000000000000000000000000000000000000..d62bf7bb0372318fb915709660a73572a842e872 GIT binary patch literal 298788 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
    2ISAP=R!0RWG-Gp&?Kjx%CUxs_w;Nuld%; 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

    gQzy-a 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 zj_l_;R$`P>TGY1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_print_key_press.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={34656:function(){throw"Canceled!"},34674:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_print_key_press.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=34648;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=47320;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_print_key_press.wasm b/examples/component/ftxui_example_print_key_press.wasm new file mode 100755 index 0000000000000000000000000000000000000000..473e8e01d1f05dfd5e7f965cdad73831968741e4 GIT binary patch literal 311233 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%0D2PP>V1n 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 zj-7;=kNW~x2%EOJFGsY1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_radiobox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={29712:function(){throw"Canceled!"},29730:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_radiobox.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=29704;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=41752;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_radiobox.wasm b/examples/component/ftxui_example_radiobox.wasm new file mode 100755 index 0000000000000000000000000000000000000000..694562497c2177634d60f370c6169f42410ec8e5 GIT binary patch literal 268285 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 z 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 MrOV&0TT86}1(P8-82|tP literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_radiobox.worker.js b/examples/component/ftxui_example_radiobox.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_radiobox.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_radiobox_in_frame.js b/examples/component/ftxui_example_radiobox_in_frame.js new file mode 100644 index 000000000..c6e99ec1f --- /dev/null +++ b/examples/component/ftxui_example_radiobox_in_frame.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_radiobox_in_frame.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31608:function(){throw"Canceled!"},31626:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_radiobox_in_frame.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31600;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=44072;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_radiobox_in_frame.wasm b/examples/component/ftxui_example_radiobox_in_frame.wasm new file mode 100755 index 0000000000000000000000000000000000000000..80c00b7813379c0e590ff1d34fe50e7261ca119f GIT binary patch literal 279632 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

    JnCbTi(>&E6Itd;gb8GbctF| zAzQa>q$1x`n+EqK>oTg#whWe%PAyeU%cx{OE27+Nec9VGP&xZi!p6b5?*6erkB|v{)ilYq_v{B6iLN(8Yg6n2~67ApIPoITqa?|yZ zI+M*N8yA}83-OkTbw_T6OSyIKEa>1!hCdbRC9@Y#0(Tay0=`CIOP^_=&}e@YG`O$9 z!1T9?6v^>0Y78s0=-l%T4r?^c0Lt67GmR8#NYA#BVUYHs5y{up4FqkAskexc5m>FC6#%Fwf`J~U#|K&ylWU4g)~!8j3!|8!+f0am z%srN$fE#}20;3SOa~)WDIcQNG6^&Bv*#b3ptn@8h2Ql@EAWVWjclzYYzJ9 z1KrqMd#xGwD4@O~MciI66M(V{q7B+lLtaUHyG+KN35Yp^sA|TH9BqXVlgnI`oHpH{U=mc!2H3#4*p`_JnQxJxG8HLpHU;^zIu8m2Kb6j`w5f?!S(|S#y-vUw zq$sN`RvP+yG?_{RP)XQs6ca3&!DNX}I_abm(Jmx5j7Bj2Z1z-8lx)C?&Ra4o1y&`r z6Q{K`k!nD0b|;j5CCzA6>rcaGGw`RXe!aWXFvKo?cf5F&MSJg?nunuw2j~ zyHVM+UjV2>s=iYrC2N2?!2`C!130lT$u^8#DA=-9DJYKyG~^F-!(duxzD1PX2YOvZ zFU6j!Di+Y|gkHCR-bL@AH@?rHgPLt$#3XT5G>B5b+|f@`I$Q0iQBuGKq2*FnXdHH{ zn3C=elJ@{x6?%|bxQapQOyxqaBSPBMpu_@?3NG7Ck79|H<=HGpgfPf0Se~Ptgt!Kh zz@?JQ@(ch7iZ(z4P@+iK3Zh~PcyI^|A`1yk@6^|@*5FVs5C2UkN0eq1I-1=O15VcCsC|zsL`*?AObWIA*nG8 zbEUy3N&IqjQ-P=tQ8rv5h?wJLy#;AZNx;<6E5kY&9h_7`n)taSTcF%-_ZCN}05Z*n+ZJ$DDQMw+Z+_b`1X740Xcme5b`b-B-!6LJH$yNbP}H1G2f{Pn0CKZq z1tmPzq1ggF!(C%Ou!;=M2y$sGYP+>WmI+2)T>Hvr!I8RFJis^uDw_s`8Fdwy2O-9y5M3 zwokU8A{gm5oPmX+B3mc|TNoG%hcS#9W55Ct8AC`MSZ6b~h%va1F_2~vW3Ufm4E6zZ zWgTNc68bF|L!8VddCf@ERab;XDORcPVNoh=8B>cFrS>_sG1@h?@t8n}HfDhNK5%V@ zvQ-twE+$Wi5yJgX7`xEi=-8zTt?~n!vReaNv?wLsD3K-1)LM%|P%_?Tpa*%uhPQ-~ zSqisBC@@cd_jAZ7A9OQbrbVbki%=Sb3|CUYY_tdkb<|jwfCjre%wABb?|4K630;y6 zC=ALDu?7Om3!*_KB}c?1VvE>k-%JyE$IeY~4BiL*1gb!m#-P{Mh~l;|Y33`*6|gK| zQh%ew4uuF^Y_SmCULPhWLHi)&HLM~MGhspbBVn)S-)vJ?Lfz+v zAbmkijgzp-P{kslA&vapcbzz%nY@-r&+GnnaLNd^{brMVz^jQHUPdHiZ5dkmag*ZY z)_dY??TwP^SGGxgmV?R69c897-|mP|OB{wtN`!~s%u=RoNNRyCp~C$hNe++ggh4{t z`)CjrK`n`4*b}2IkCnO3t2%l}ruu9ML`0Q?odw5*S=Hsh*02INqd{s-(@!>Y6o_&# zdOr<{(cnCIg|KN#(jlJ`8$T?}MQCXgypsAcyq!hcwG!e0R`YzRV13F`< z)s|*eD@v{L3t;O!Zd5g+BrLKxni=Xxf81yNbYbw&Vt|g~)f&-HLobES3%{Vwx+<~d zyD*&Ns@IxC4bV(I>|6$(WQ<2YIXR;n>aR&TlQs&hsxjJVAO|Uu4k8fsNVXf*#zbr` zM){6VOvt8UWV0;li_H-PdK&Q@NbjU;`R_8WA zf+2ruZC7{E9GHS zM(Nn>16lcY=M4-j*ebAqLjv`y(G@jGi=OmgHgh*@^1i`~o;0cvRpIMkzM3;)79NKT+t!njqeUYYR zB^<;|i!d=@Z4cR-AtbEYdLT1UlbCCQ^3(3ioUmuGDhx3Y#?|98#6Xi+$h+{3M zFu^EYZ=ogjsmIO?8gJ0^8O1(eT4Affp8Sa7>Q~86t!HC|9KxNf5Q`e4bbT+VBgNAs za9Y38-cg6&LK%qqM$HgB->lj_V+J#WJm5}B2YHlpMIZ=!SUyD+-SMxD}wi}B0ZlO36{h9))E zXZgMxC3YE+jJ7EimUaJRgb91-zP;@_SD)#%kRxc_ngsKk*pNK)vU-c4#ba0dH`?>Q zBJL@W*?@ALTC0&526;EujWnt=eegSGmKXtSVVuLKq>K&_a|}LOOT*>BsWkv|(2T9X zv70Ic=MICjlsYLlu3B&iS3s;?CE;y?Vida^BTKZQ<8e$9_@_1|G3^$ZJ!qU-)7~|l zQHVBONF~!@6hX&RPVCYif@js@Xv^@#T+K527LC8a;28;UH&ln{gq(&s#8&~Pr2dhI zZ4BRjVsC3`m(5=wK&{V?k`rxXlbutriKPZQCL&#i15)Hx=JFIWz#kMMV1z${hi}(tR0*|xPfc!Cq?CEN(gB6$_%VDvsJYPy zJoQPl?R8^MVPzldg{_p$f5wRqVRMmd^f8dQa+7xVhraM2uxH^HemV(@nXZ08^ig!} zIiF6RI`BjYe!V?qwtk&6r*R1#^B?}ggY^A{;k#a+BA@n{?R9Q(HU>o-O!!jAlJ=qa za5H1l;`^W@)9v+_Li6#{m;ig^##ONXi|Tyw1@${C-*T{+$J5QG+Fsld=-Z|12evAC zWZxZ#gtFSNHadxfgas31;X;711jeXOwm@!`AhWTq+iFjRxt6AlxYD718>DXH+O98n zyyeI<0Y-VCV`_YBHQ_vm1(6_(Swe(ZuI6j?)&U#Z2RtLze|PJ#Z3BW}Y{auu$pYJe ziaNx{slz~PZ~ua33X-*ovT;ynPz?ePDu1hfn0v%3<6HF`=}A}p_2_n%ks$!2qdQBC zQwMn^?rZ^UJgLQtc`Q|51p+5RG>p4)w@*gWE2I_#Rht-KY!V}$+?Uj(B}UDh^?O{O zrq@s6V;luPaEwbY5?dIX0JgBTKrMlMX50K2A(Gs0RvR;|E8ku8Sq(61Gi8Ej ze@K!53RwHZ1ZCF7 z6ryKkJ`IIb73Vb+8kjcpm)af_N&QJXe)lmR8?(sFMlMJYH7_;pU_wSr11A%aK`#(f zeVt=GjT_AxpP&hVl(x4(4%X7(wNH8>lHm_?Ft}vfT3o=INPB&g%Phpw_02 zK$__#gX}Dz-A*UZUV?X?m|b?3crXYLE@mDVvnm69)x-EpZdFZK-Z<$rz~NWz>xbDlCELwXnQ&zTyndKg3g^8>|ED;=XfBf% z^DdMOae&TO86rqm~&vV9$BD^`X7WB4qx*}eNp@|_%gM#Ech z_Df?KkHL>G-Dj?o_Q<6v4DaQ!&Zm-sPg?Z0m%lQiN52R_TAPLn4sdfUrOISWfB zqZOHJajaOL$>1B>Ig`gCk8P6S5Zuq!K@JUpQ2C+C+^JSDv$qT_vFs}WQxPD^OQbL{n33{?4POuZK2K#qrDX>A8E{8_CGrj z5dRIKB=|^|=E_VleXY7Ndo|l!FrZa1WDrA8@P=fHi?FQ9*QbCF>Xt##x7;-sTfE2jB-wZAZeh*14@) zETpSRq=ag-)5-8v*A zFpalxwczZ}P(H{1Rrvz1|J>V&z zqn&?Sw|`TsnV0$y#V*d_>#di1+b`JO)&+jj1xT+v4{}L6e^#frWa8Sl$l+eEwE8X5FVvjt<5#c`-u24Y%ocif z5Y`G#y5G zg7GQ~J9o|KX0{!(<&aHU?el!~SgA&EB5@Y45m^86Ano(nDl$ma_U!8+2Am_qG6n4vT`@86X@&Hf|8`d;{N=D6Kh4B|PFWuzS~T&V z2yeteKk~&i6Og#fSQU(8wQpFck#qz*>e7y+T(N9|VkwxEhb-}lgH8w@Kv6taD{lxM zv=CgoP+}-Qny%ME<3x}Wb3n{4*Cqv5NaXNry81E5wLk>T8%d`>rd^zQvUsbaLa)>It%IeuYUO zCrIZYv+N7ltYnL#$I#uEkcfyS4@sC4gYI6^DfQ}=)jzouKlsM8K}mC^9!%vyP+Pj^ zKCqn6z?Nw%6+u`wo4$sLwTFpFO{(;_&CyFYtH`sqz{NQclNt}hmA zQrAJ_U#`*@{ zjp(M)TEHhUi)*2y*CdBi2Zd|Yod`iPYPA@bwGTFvp`Z5C)I7~RZB{7>Ae7H|75&h8 zfj!v(hENnQJ}dCFYdzqdE?NeVpjW;VB2lGWZ4_vBWo2Nj6Q?|cth+)sOJyaiG?G|$ zA;#LdmNBgy_3Kg(XpC4PhX|V$VmUg`#NagzCq^zOGOpJGR%32H?$>6ZYz<-RVoaYn zpsRRSUDiG|G1g_)k}lHfGHk;$N4o`WT%EErcD*-S8CnwB@qdQVP3AOuInF^ML<+vv z4|xyPakK!is%pJ4-~6S9MtE2K?B22Y z=ljOyZ;Hq@(CGGo!%mevDz01rFPZ?W-!mpw))>{oWW7++J)-!aQ565#o+y6gVib2U z{yOXi7;`p(F2IO#yiXYSjdy{yFTDTxz2N*^W_3#Xi$8 z)ta876dDyusBK7o8W}^~n_^rZz{Jdq3w@zhr8+gl<_tli839HK3CRqNv>O$gybq0H zk{%xQ^FZ+jNG)qWk+4Ze+yTDLNNIaoKx=zU)NPF>fvL6~uYTctx~V%y2{V|qp$`nw zsH0-mV&i<6Cd_`)Z}g6fkvS)=_!>0qea66U0JkEmj2-vJ&>6*G$lof2)A z)GQsq{>*J=E|;^B@uD|GVR5)pXKa%`o6ve1A}`w=&FujC!1@7B`L|Z&GG@X~sYx1X zf0iD^>T(PgDoYRk%Ww#Tjsw#n488h5m!zO)v?IiP|db4LgD}*DaEqNVr;}59_$5S# zr*Xv1b9|r*h86*3lNkrUs|1Noy2T0=$$PDDU1Ex)2&0u1JUC)$#bN1cJ!O`(RrX++Cws^Y^Va0b9wJHMSeM7sfIP0OMmuSIJETRX*@@?Mfdq0+J!ka4^WT2?ZX zg`m;is0sD*JxB(U0N4^|NHe*B{3?$5KAbHx_B#}$L)-$Iy0$5%>kZ73T@5zCv=qlc z1B8e7&1a867vdJ$B^ii0gfwlO@71_I7?0#yee8Fp$H)HX(&L|Z^vH7IkVrJ4cJ#mr<=n?Cook;JjU(&xR? z@z-6j)-VA_pH4|SHUYEmUvq1iP#bY`d_A5K92B})I81CDA|dM(ALB$^FcEhXov=;b zy#Ayg6mofr{xg!%P2kW3NqMnIWYD5M2+_33_dRJ^H6s~p@0$(i2_5nn=g%?Qk*~R9 ztU7I|?`XE-uf}yaPm)oMcgl2_!gL0u9kUmNy~W9x{(}Cn0e@zJ*@FQH9?i z7FLHc$sx0Qo1{S>wc7m63;`$6Yy=x;iou4U>AFqA((Lmb5XygDvtMY<(1kA+!WV_$ zTABq2VRb~LRccVJys-#oRJ}DS=^+WTs@{$Xj}t@W!@}DU;ql<`I3zskYMn$6pnM8* zvAiWf!SO-3fk=>;ciV*3g)7_hLz@6!w!_8(Xox>QwB=q zp@z`{T>gHDIBbHvR_K|iS7NqdF+|1UCbWv=J&V01X@5$Wuc|1jI_W>y(0#V@zYD}| z-y4!qeFGy$T^jqj4sQ@eb)8(mJS{VumXSPr$l8?gE5*i}6f7TE203XE$Z_-4(9)^aQ-PV$R9f84sw0UNv*}JG2yYWK^I6;G=XXMo#-ScA5#4l#q+M-B ze9i%cW~&Db2ZvctsY>e=pA zr{(KP85Y~7p`dxzV(@*CN8@Pr)ZX?xt=+ZH?8DL*%FC8k)qzsJ+WRvG+Bu#28+fO{ zcGch6%4*9gfE(9G^~7VbxSg9m*s3z1d(1KRk?K)*B#PUHZ+Ph0eLf!C8VmCD(MS;g`a(CEDAF5+f1a zmf|j0**4Hc?HqozEpvzt2~jtq-fQ%sTBq$VS##&;Tc$r^ps)HWHz>%fFE9&>#_BJM z<8$8r!uSdnZRtt)FEEqVhhnR_!uW^weWsSSQ6anlAw!&&SxIO+y;;~Rhzsu-h_&}% zlVHrV>rXUy}nG`K+~n(AOk~tab`;wrhAJ`~)Eyszlv~A%u!F zCx8aBvk_(}0-=osw*q3SAasb|p*WguhkT5OM*CXFnVzPMC>r9l1zojZkCx~ z;}|VkF9^i%)lXBg!*hDK_{BpHd97JG9ouxDN zm#la4_I@D$H|dqUy{}A?|1~@1V(XNDV6y8RI*g?+a_E3`d z;ernbYhkx@slySDUfj(saRP({p{27*;=rlvB8{i3pH=vTl5yDSv#^85g!|H6IZp z9{E~#GO|m~U@{$`$uHE&-U~U!b;qANNLiDZjTwDAb{tGJB_D3yGV@h?IGReT!qIeV zAJNN99KlV%Bfd5`nBoxC$mKK~1KDI-`?h2^>S+3J!$}~8`7yvjw#04=!F^FSqEv^S zXAtd-)CxaVQsFI6ym3m-0kF=w7qKfWD8qOEE~$RxeKA+aHz@cIP)O`Q9-L|zgfCSx z2#Rf#-(-WN*A_M<*;YUZZhDrTp3FAxV1Kv_xd;2T7+`p;maEvozJY1;Ska$oAkl+8 zr)(p%G!rINH{JD53bwqa;et?MaTASyl$5)) zda{YS)@OsjbQt7mlRZLLt%$b8g98r=AC9qe4(x+YJf+Dx4>abmaUpZGQQrh~Pe3^) za9xy%L8Vz|(k}=Iv`^Hca%{4VM51n0GBCjQ&|SLL0q!(h`oLQ?sV`02yS6jU$rLY} zgb;Vq+C9g?gHCKM&N^&!boo#93jfq`a-Lq*nbB)yQ0ed)lk z85hmmbZeDro_5hJvXE2zcKM`LW7GX?&m2?649n=+6(t8CQ*LkReEouJA^snogIylo z=LV^Y^3TA}@F`4aE%;uAb-n%{F(J+^!SS%qu8}=TGy99_{B%n~3GC*Q5l2KpIVy6t zUBQAohc1GT3@YLgwt9jU90{3d(mKjX$d9aB8FQkp#3V*ajo6WAj5!k0e})}5y}`{N#Q#3q82u=C19AU`>|OOLF$Ak6X(lOd7HyS;rrT|wa&rFovm~KU z%vnz@y@kD#`}kVjN2wBR5Ny2`#S-o6tJYd9bJsCG&^f-JwyO&Ckgz^a{Y^k|#`)gm zphKo~Y-8>DH{v;#;KV?{c4XrxeWQ-XIMCNG$MU8Ts)(ak9;j);l1U{L)rv#D&#ak;8KO*uBz5)gX1Z~ zSv&}}P_Hc<%a9x<`UbDlPU}a0QQb--ko$maB1!{ufd{cNMgPW;Zi z)jsTn@=NaQg&dC{$paRaut~f67MG<*dqYXh1`V&PSBdr}wiuz9^mj-%3k$KiRgoyzA6QklSy@wmPuzl)Tq@A?uEN6J0YYwJ@4$GwcC<*g`Gg{?SS02X z6*=DY4oTc^lCr1G2(Vi?PW?>QKak~d%rKxO^7SW(0?vNHb_|#}Tm3);9cqZMy0sTn zD^aqK?15I9BO0cqu})ss#=1p_Ur51{oeU^@wa0wFvCZt6bD_(aP>-GIj|p}R9`YUm z0SjoK?8;mcakQkF6prGC8%-j8aV+j$z;Z_GVK!a+U$PzPjhod2Ady&;O4NoyNrW zZs`0DgS>beCL1c%<2T8LJJdfd3 zABq)0f&Q3>#$`F3_~*em^eoYB9A`q#l6H+8*84mHx0Ch6;><`*S7NO2@`EKdWxh_Q zDQlb>RL31`fjT~}S%f#assy$ZT~%NP3~<L<9`tk|KJDrLICrfuu7NhLlViqk0zdlqN>7^b}> ziV^)~q%L6k%aFIZS!JPpT*v}yTi2IM^F4vY{daiI*x@PyDKOdyqm0u4IlfOIB|Q6S zkbs0BKeDmVey}{IV(EFY+73uGchv(oCB}qJOcXIV($~`<9k*NkYOvP>< z;UW<2!rFv2p2Me*uNiLIlEmdFB(bC6f`x+d$wKY+K`K`=IFha0QF3xL+lpCH$0U^W zlSND1q-l3wnd(+}xRj+L0-yR1GYci{A8~9oDcCx48B>Bm22;@|0TR@D%2mBR9k$(i=wv!(Y!n& z;MO72fqr2rJ8YT`dWIOK1W*hge==0WhUQeNn*e{Bk&NFNhm0?A-C5^sXmPV;DL6P4 zvFvLvWaKX#E!N0Y2QU_A_7Jr*E)(-YrUn;;rvuR@F_v#R7H9_gvY*% z!m1-p-~0k-3Yp~e8r=j`I_)R72w5ky@(5I+lJ%yYr)Yz#*u+a>HEzK8)yb?x6Ge-3 z4U3Lb(z?kGn{e5AL|>V&IT$9e;wa3aVTKKa|4=KydQzCDCz9%Z{4}oK>_W}Q@Zc=> zL2TbYz(9b3pyuyfDrXNM&2>oraG+#sxN;ou&jDqM3y- z*|uzUCa#bOEPx-xZK61uk*X-knnggsW96f z!Q*PxH9>&25iSEpXLqb^P>z->vi4FUG9p^_HAq|0Vi$6$KD{%38cC%QPMSwCb9u?f z-b`YP@+OP(b{X7ghK7EwKeX>Q4dLxja!7JmScJi?;t-kLi_Wo9PB{?fy)6n(&x+}% zuyt8f{t$vOo+s+4KOpiWlqtl-zUNvGbyY?sz+V6FR8wtFxiHWOTtk1r2#{@5X>5S% z!6}ilJ>!DR1}m+^z|%MVGt)o!OMqc|pGkrQvPkB(7NNY+V^VVknkr*V*~L-BBd`_O z0+CK>@EqJ@4xx5RgIBrSk&D%lJ@*_rL+O2-roc6hQiI$)8g&MapVknYMZty8frwLA z?0CC83>qHv8Xy6Gpe)Rt3>Vrgn8itg0|Wc4*ldhWasXpuQ5MS_*A^%yt}PIXYYT+p z+5(}twm>MZEfBJ`g_KPjR&k?+JPb~fRo?~T%EcLBE zS+8(3t(JLknVerM&(QzXga7aC!EmC-4IZWnJ=4u=5rWM&O8AhlsJvoep3)2yTY|F1 zY9-}_M`$?S`wT^o2X9ba9Bo4kfw#MFnkf$fS&X;4Z9 z14=4n9x%5Jb8e9UrI{Cj0PZVeEr4*Fg&r)dXiSHDs2OMx9u}hv9tqMNJV-%%z@xcb4|^mDn=#4eOUr8iUr0hVyVBbtbvt5d8ov+Gn9AF zTliIY*9H@XG-Y*Gx$L&taL?&ch}1G8;#48O&qepS#M@-?-B2%>)@wM7cX<-Yu^J0^dBV+2Xb_FX zn_QB1IXqe5>B!Qs>omT#Xd8?oQ3bOPlIo(QTCigl(F9<#2s4rRGxInqsx^|@4`6Vj zBA>gHHBwcgPBtKz2@z?z{Vm?ouy8jG%%1ag+vQqCLSY!a$x|*WTGq!QO0`PTVK$Rq zVP$fY3-QYbW(u$mTIr_6D+nt5@`wpoS8Qu zOmmc$*kUQ1Doy2iynRa69Ni1eJO>#lbjUie0RdHk*t zNf}BUxi4rRB|=mkv|e|oL>lWz3V_t-eIv7!@rhSnV7+chMu~Tvc8Z*;hq%o`D z-f1is;mGu>eO9!Qoz30b0*z(R7^nI!N@_F)7}nbo`bTI?!jHl6JJ1-78=Nq*#4%8oc6Y4Mv3!FODMv(Yuc|)T zW2LH*_XR5bACVI;7_3YOnn}*Kd%#s_@V1*h0*0MCzi=7(9LHq3c=I^VV|9fy`ZQZj3}$4+u)yf%+FnYs^=pBAE`gbN61GPmvF(=QIlkY_Q65=bD^ zmnk3&F)7Qr7Dg~xpK5DZq||lC(A4loV~|Vt&>Qd)ys187+YZYS1{m&~(TVGnt1JHY zStLCg)gBcU?r0L%6#JC?BkCb z6ILQ7dNfv;aBopkTTbPy*C7*5<3z6wGaVcU2o-xx^rp-8_MGU`;g#K$P4pEdv%8%u zyF+@6U2-VFN0KX8J0@&R(L_%gMkw)-3EKxT;qYN1+{+t@Z@lZ>ycu8IyCWp9nCR1H zA`<;xd7z;QC?ED63_;Mxo&%XnGR*?xvCC-qv*MhKMN62FJ#AxqI=^8zq=XSpHG_5p zn&YoOZdJX_VQ1`;M#9>8}np| zv>TKl3?K%V6P@duR%LYdzTKfj2pgZ=&vcuTR7k#ZM{&4K2~Jp@P>C4$Al*{)os>`> z)lsW*PB((o+ox*zoHK_H)chdc&wn}9X0labjDas>%(O_1Lpr|+yB1R=F?va3G97V9 z6qXrHl46BC$`P%4xPuSX^R@;2$ZJE0<>1U^_l6?5X^o&r2H1ciLVKgACltw5ixo6b z1RnuK6CH}=%r&74r+zCGjqiaXtZ%XHMTZ@PM}qL6rdYrpv&RAgg*?0O3U3|MLPH~` zqwR^tu|;ScA3)|lYEQt%OiG{k#r5{^hxlSK$Y$=|jxp0YrRB13w3)Bw>S z9Es~uiVkL4pcrOGQH&muVni#lKWauM{a$7hbhMy+(J6)kOfNvFJ5*8xk$7%pIE^bn zm?v5XykFv{4`eX|E$L^-sM>>5U%*1iIVmH_3t}g@EtG_#K-+I!6Ma`T5(k+aVr@Uoa=5XVi3A!64(D-RzxYNK zIAFhXI!zAKHHT>D}Bw)L|VQ5a0OUTP;A$^>V)<*X5Z3cAc{|GGgMQzywk zq9W6?jqCCs*>oTOX8HnA>+r)9uIap|11I^})3p z4kc*xfO~D@pvG{c4Q&fnPSFH6oG`Hii5PyktxMvn66oeG@?(dT_JG_cM{|%Nr3J3D z4PI{xaI5`!PR%2lt8lacKEVsa0ey)oB{7EWB_6rPgm_BO^E@{!3BqKo$F*S{S|G%< zJt=qXpR=h)3$%=vdW~im3++OTjnO?{^80}%%RYP`~QIEN#! zRF&AM#%-HcUtUVI`lP-6n(jPtx`G!@5|-{4K$Z7(Bmxt8v^L6YG4 z+lIk&&R3A7e*}T#Aa-lq;NdPQ^(p6sF60YE?BKQ^TeB734obLZkp&m1Ung9UNmm-S z2XKv{n0{h+`dL61`oS?1$b%BOw~s^@lbX`bJm1w@?D{|9lQMW{d8%(O^;^B-kSE`Q zZt%GX#V!J|AqvKZD7f`PYmqD<7s2f$3 z>wLmi)OiGAE(K#Q1#f$uwOhfnV_g>zwp`l?#9Ru-TngS8;JxU2U#}6UiaR%EznrjT zzl=c4u3*fr;9ai|1f-~f+*A)a}E(K#Q1$Vu{aw&L0%ykuE%e9?A%%xz=bv40D zZ%lOZy<)e%+6uT9s8_GF7;PXIqHf`g1tZm*-R0W4kW0asOTqWQ*`QZ&N6d9DVFUXd0xTdvCp#9Ru-TngU!Zp)?Mc`?`f30tl!2*g|p z##{!I(?I?N?YX1uu%Zt|e@_t|kz3DHwApc*}b&mx7nY zT-Ot}TssKFTnffq3T}O$(cKirs#x1r@t11QmN*?EBjZTUomZ#Ih8OW!*t=XDCatS6^mjDfW&KRP3%; z)|PHYm?sd+QZSaa^#)(Rf>~T2-(lq_ct^~9E@1=Y9DNTnl7cbwc_Fi6cD&OvD>xr9 zasgq>yp2H2tYFNn;EoSiE(NcSxh^Jbxh^6Qb14{eDR}hOn(CfOTm$fv4 zyeg=f_3*0w9x=qi=J{t69&;ShRoKei?&32^ltEK88Hni;V;R!qI!rAG5Pg)pgP(4Y zRP1stVwzyZK*6>XeaM1S9Zu}kd$OTqF@eB?yme*B+WWldAu5jFe zEDf58iG3iks2Jr?*~coiu&+p-nmR-f!!g^k!WlABR*|JR{s2&{5R*@kvkY#D@b^|A zm5zY5&%*Jl7%AL3O-*3?0@X>h#I3O5ejwz@87y7lteOf7Mthf?RfF~D8QlpnT2Bmr z5gl(tu=xFdT>{={v>6PnZ4%hPh@DIGwS=3=0Fb?R>yMs9w9oV@wzJTL4=8fCg+_!? zX`{MiZy-}PnWex;)Uo5Ey0!|@N__8lFv*)N_ z$uNwHOZFNS@n|2$)c-$51xIdULAE1;Y*0Kv=QjA`RxwfsMCEIf7} zVv}S2fE5_#C;{Y+z0gzI~{j7zXpQ&lp0?tWSPSQ`~Fj7vF0Zoc-Dl{POm1r`+?k zuM~!D9q%aa21ku0@SJ-(I}e7}qg5&MfSuhM%*cR1>a=~Rj{1Vli`P4u=>uN}P!3s) zZ4-EMCHK>5*WBRCj`I!pQrnW1@PAEyIxRGv_WT6|x>DbCF%H`-6v9?&CJeiekDiiw zf@}_3wx%LLGLJ_rT$X9pHf&>>l_?D{wCbr^43Dz#veJUdBYw5D;&3XD%98D>n%;9d zfDACEn}@HgEc0_`)+f>HIJcOgZk6e0;ey!gwBb$ZZq0mPb?73PB;4iQZH%o9} zE^Wu)?Ig9RVK!FwNM&0p_J}hl_r--BQ-8xOKDMUc300|+fBIh@%wRWB;s zPTzHQ`fgaFsAODO)2ccM!_&BUOy`GQ@pnV4;KuE&91n{DErg9#(@hMk4neG6wg zelVuYMy%R_IAGmCB~g}cAkuZ#lAhvm-0hTB+;|fvv}@nq5ioSXL@B@uQ5~kfHHl~c zT-kTcBxj6kkT(VA4f38)o=JeZ<<(7cG$T+D&+Y0|su%Y4bE```ZeI2j)E=a+#7){R zds*7L{xWJzXM*Ijl(3s&*it>1kn;dZlfja<(eZ{4z@5Lv(;hGA_Bq$dpqLn@1T^Eu zfL75Vy=xn4CB54~x5e}g*-xcWw8lDBtt$GZ*w&Kvze^Giutx|3;D%eFVFY@=ffe|6 zJ1dRjA}ULtZeTs4olot;v+>ckHOnRo8nlf6|TEIV|jy``#YhykQ%Zfh4$ z8fW9F*1fhTr}j(rdfr~k#^Bw4fS`TMq&ZiCcL|R@;Y=*$fre;xteO=t3H8Lj=$e!c zo8%b)dp3zBE$KLsxS2767^oQU;B`!%(PeDn#>r{Gn(5T zj^*?ztuEUAZ3*$=ljF_OupKWWprs6*i$RN0UOBDJ80NHE#pEY;$sP(O+WKzH&4O-; zJ}p&`j0sMN|KXDy7Qw|gyZ`6<0plZd5Sxh9(^b3k)}+4_egF~MUq-}UA&Y_V+^neF zvAe2)T(SPQ=~0{_)$FHJ)zO5O^t0vh&ywX!izQ2zEHCu#^K|+0vE^?0^31Nba>CY< za>?>)Icb=5T>Cj}>|+!ALox@a)BWWFi&YRcU?3j&*i3X-6wAUzcqiEayz)z?<-r)=qWh zK9MIB%i+FI2YcH+XJ@c9RnvWo3J+6&3NP2kV;7fmYwSXy4yXW=g7N%l*dVVNLk@IJ z?--gO+6V=P>wEKcNwfTn!Sch>Y1n`fgJ>TQDtVe))Xj7RBlhdJV%@wINdO;4m z)apM+8zqE{z|JD^APZN0+$Y0qCjS{uo58>V=sLc)8LOX}4#r?!gGpKfNKLr(p8X|S z%jOl}23#cWs7-v04g8augarm40mJs>ss^D^Cq4??{t`%KNmtuwUF=vGaI}Eb3`Tu` z;bDwD>RUpA+9EqzzL@RPsYI2bn9#{?f`ezs`Ulj&$s6<_(wRaqYv%}$aH!|an_7HTGFR|5ZD23?WQQM3fCARV$mj87M@a3?AjD-z`pVe+^@A%5+$BxpwU)lL87Ehh3dKpY zw5hn-ozs1UBN6a?CbTGmLpE3+QX<-FiJC5v;f{V$$A|#6-xP_bs%}iZ4_99?qoWu3 zX%2kT8m9f>(DO8kvfJm6IHMW9?EXk{h7MYF>$0fyTaz@r_ay=<4|VqohjDgBuR4#v{ExvlM{y-bVmD0i{8Se?hC+l zfTWwdLhsUb*D9!s;7Tqk?GAXqk_MeTnXC(OYqwsA(Ep;J+jc@z`jR15j_iuuo@_xr z&D&@GJked_xG6O#M_fyg+dbLR4}}~lh#*54GNrLrOt?3D5yH0Yi7~&s`gF{h=bupH}H zj*S~|*|WU!9xbphks!I%>cHauWbfc7`)nJPx{C zlS~-vG^Gdt#ou&qImrm)vu3)eQpx5@EUGYRB+jPBA7LXz&_d;;5il7O+|XrZO5|G) zA8`!bAv^$bQvP4;y$hIK*H!0vUiaQooq8NerMT=;l5?*WC?!&&fU%4XxK1UO(anx%ZZ;q*5L|317!i-Fwg3kG0oYd+oK>UVClMCz+yz>IP)C z*DiTv&PQta5U}LN;6!XfK3orUWLhQ7S^1nzbOI{@ZA4INP)H|rk$4x*5GtvFUw#n> z%{T@J7WW5s_29s0hVz>aqLk6|9TVYZ=NuCq2y+Y_%$@(37^aO$Vn`Pic0r~h9ECC7 z?a?=6wH!{wchspz=b?fgezO?w^60q~Sxa|oMrDZIQ#8!>>Oas{!XaQCS=SZlSZQPt>y)X!^NKt9UP}l)ZM0u2Cx^~o z-wwe9NYBkKsWm!jTK(aBO*{J4_ewJ|OYfqJA9~K%vi&o8k1t#zL4ws*^`Cg7qUuTg zL;yx4pTGRj;LFTk>WzaKpnEOLH)>jBK`+2l{Ry@HoPQs-4woZhTqCqnny#`6tH)Bi zstJ~Jb=ze%r_cR_Vo8;|S^-;z;g8eEr)i|+6@@A9d!Qmiw8Q8GYR~{b8v6V#wg2v% zwbM|0M77g??Wd{zrE}KqgxZAsK&DQ=`d#lMX5xL|d0@<%gek`?K)+5~6hChvz6yll zHyN?`t(YE`Cv<~CCzv%i4GPbm0_p=6o0J;vica}W(=`0&HBfnM9a+>>_)|WCuC$~n#9H5A!3-f_PHZ^zK@wF zQyQ}dp8r(pIR}s%<`JY8&SzDULlkUl-;@-aFazS(Kcl zeG6_qyC52V;Fff0TWCfK^v2ggoR@xb{$U3nM1ReCVja{DYhku-A!MAVjU7G9H$k|s zfYSPEOAE}lG2(|^^aC#lI%wZzJ<bdmGtqrfEyE0ZNlGT-y-fuTLkse(r??1uPIRvw~5G? zN3Q|>w)P|LMH5Xs_9=cMiMbm9mi#&ASVoH->lyyhK$YR20V~5lqu7pHmw|4F#F%Ev z@ZX_TzOXzZX_UKPM+w@y5f_N#-EbDO#1rPHO@{vjq~(jQ(P5&9`>iK@=*q=UbFTa; z+dd8Nr47DK?@sm^BMCydfd7w)-&Eeb?{!UhfTyXF(I=)!=YNC4#r?veJ9VLf2-hm5 zDd8*&{j`q*9GXapuF+hIlR5Djp6LO$U3CtqEjEGwwX0t?jrDb`7jqj=nYE;C_BdjW zW0y8LwI(;FZItk%o?5kA-q<|V)ItEG(=unFb>58u(T=Ej7;p7tU=1JZ%bBH zX^3jh$pM%(pbt|r2$*0+dvAgIXGE;%5pAhke`Ycg)&-~yaFy; zT=Ygk5Hg&!aukoqaUdH(|Ea7p%BzYZ8haEIZcOM!@BzIhLjd=-jb;y&0Y-a*$N`OvLoXi~v6G?YF&T85Ys0Hdp*sek|^$V$dz9bBNXEfz(Rs4#UlPYHFn?6nRhB;$631>kpxdV=E-4gz!yVQJbyS%VW zVP_xtGPSN5u!k)Ku496*O=|ha{Pt!|3rPYWeZr(>FAkt6ijdR^Gd_d`(`LXWtDq-` z4+d8Y5ZM;=^_FrJ;jlVvW`O&2W&x&@^+KGtrgQ4knS^9MokQY*U@11!*~3$Wm`FIb z>Figk2nRl$p&r-*|6rPYScuN1I!d$2I;-ANb$nZwN3R6Fr!{=B0rFh@B8bH=Lc}@O zPKKtO`1u>O1d4Mw^KaHJN=?>-Ivg;^Vc_V47+l!y5lUB6qG!#Nj zow%Z1C$7*TECpcsJrBK3#ZZTCdccJ9n;v?@MRDzh^cEvcPhi2IwL~5pG=0G@B(AA?v^P zp)x7@i9`foTyJ78uL=op2$j_ve*;F1^ilo7Z&=V6VqY_F~X&fuEe!=bTz`s>J3SOcH&;2~7^rWxY@%C|E42Nn1p!<(0tKu=)t{uj3KmM$?LYju9kZ$0IOR{G21mzK%!0 zD!C3Cw7-r=VC&{NX)yA2JOVqse9jSU{W=~2+2q#2MN?nLBS6zW_XwKJ3sy(dA+$!^ zd6GrCc%#-&JLG1*{o|}C`_QJivhf)A2kxafVG{gWvfBjh#T|aT9S=!4xyuXR;}GjhtlUjlvS%)xjgrzVogA~&Mb$w`Vd>1)SUSmn>8oyk>9n0;`A2LKa$VrnYOYpJ zvPLQ7jbse!}()xykda#Qt|1LRk|$$!1Fde^gu_=#slFK;G3 z;nL)0DxmBYKZE|dGrAeQ0MpWK3UgB^;s(XNgnDlsAvA-!{M<3-&d}rZu!cT$OA~;J7e- zN(!Q`+-#UaDx{~L!>rS|?u*gz`Q&6OAwgmicvz;~bTX&^7(*L(1l~e9LHTFtYVaZI z7B>b9VZgo!BNnXhDJ%Jfr%ETG--p#4A(Yf6-431YcmkndZ3g7tA$hP7yyQU;LU%^jGQN0`EOnPh*QyMjY|oyG4CaC|X*fqT zp%NFdhHtXJ+8QZ_F~_7T?vfXhC=W?;y0Z0Ps@GanerC|>5GWPB(lZEG*Ac6yu_^ro zZ#-!gZ4=NR_lU=A+U>wW{hp)D$v~>Cr+L?BjaWEniVQR-6D3 zdrh>ix#moB$xkOq;uljJ1JQy=34_TX-E_$kx+w;i?XRY}C_--h(!hVvqQ#2C zj$u4kMk?D|L0~Al$3En|=9ju4qcnI|9C~7L=wy-jwK$FszC5!3oxaj`O(O17doZ@+W_MZR>w-kIu|Nxg^IDBpLmg&WG@s8K6--6pPz zs%OZZty1A_+4W{m|;Hjw3hk6a0}0ohK7 zc#vP#H9H~FD+>Q$zcK%L`LNx>YH2gE`W#V?n*-HF66bQ zCctP;@WH)-_+c%L&1VH3TPTEs7QdjC1JAp-1j%y;Y*8ofk`0B(B14pNcOmC_36#R} z`qFiMtdEz0bX|s=g|lQe>!<88)W~D_RY}=(eyAB8L=8E+H2O9}7gmH5MbA36nnYcO zu#R3brwHgJ{FZcG_H__>=aZyM(o-wDnj>Kwn*DH|uD8cc-aA5VYu2lCb$JTtQpv(g ztQHeIVg=9D#~fkng^Ek>`UQf$9kvM#urHUAEuwZzTEPymfR2NMm?>yVkXRc)2 zFD5iiQKemjhYePN#on?O9+Z#kOgaa7g3|t>ILd!j8oLieiLL-mF`pqTArRQe^(4o4 zp^+z=l64V^(}5op+Yh;vgb$Ksk}xHpnd~2K&_&uvSN6zE9P-_ab&UR{vfM5g5VR8rT_yk-keCqs6K5;r+HBM-P*fI&KXHl(cUe< z@)*a@nKy1LLY!9K9^2(F)rQb4)_YywORQ2gU##PMKrVq?PDtc&Ls5Z`vv7XtEuZ;t zdRXcvOR~I&iWKl;-%chbhfN3EnR>^_?QAcfVVdNhZViS;h%e0TBv%!o2Kt~H8XEU@ zhpd3;S;Ykw$0xgFlK5Ap%$qgKE{GHzsV;s#XpnZQ)C7*gKoGTc3JPt2+hj&nCdB1e z@Qj%Jg|3Ri01zNBG2Y~KqXtAr-sn~Uy_!;fT0LY)#V?B0$sQsok-;!9q|RkJc7tMa6-o@|Zl(m5*4TrI|#!QN6iFJuME z%ucu(TTyJ!4BM}X)(hC#=5kIG6&^&x0i{*I5Ya>C6QzOjPK4VXI$W!Z*M$;M53yz$ z?_4tmMHwifQL(cPnr2HVZ)>CpO}>th&6ib!HOC*D1OZLM71(E)vTpjJ6{?`{95&<) zj~0l?N&uh^qq5hk&~yXh)B*s( zq&ofPZ^qUC`$5ZWN_o-HY?e#Oys6)skWv0Wk$O`HcZz?84@B$n1+fORSte;i+w z|NR6IGuddvG0a4=3n%q~WuaH+_aDdyA)mAB3*+kkrKMd8@3x1}=bMI7(Mhp5k!CY3 zBNjj3aL1l;w4HI_hnO2TL}Skr8ENSyUj5k8Qc0E8MQu*TS_`}OaQZ#2PSC^E;}@zP zCLq(Rj9!?O-pn^eW6xFT`|n&@7C_edNh;9N$VD6K&X;vy*PB}Aj``Kvn)L?1xo+_8 zrN_buPpWO&8@({+JZM~<)T=$?@|G~JQ?v&}eb^K^&rfS_m%d%*Epv>BjR+g@JCg=u z?~I$TZw_B+^fc}3+&*8IkSd0=dhDyUj}zJ`KC9SSp?4~vm-@$vm0v$X=2l#djSp2|r;H4+w`-ftukKiD-EEGGz*NtA|*Qf#dRKo{Y zus=+#8dd*iA61VGbV&o7t%2p=?RPnVp@K{;1AQ+y<(D2^*`d02iWLNz40Qduet(Zq zpKVE__uBQ<(k}f86mL5MY$zb$bia`$ZnWOw?HwmH5N}l<0eyG|+gm|lqe`~%TfB!E z#9zRlyuM>PR`){3XST6tN6r2H3pIJfA1{o?rt3n@!`t%GCe18p=D z@I`he-Fvf!nm4=bfclxOg^4yA=>Yx8CSU0DCfm3p8rw7kptak)erYteF-VEWn1Ex= z`1?@zCtybY{4t!&t9JH6Ct0?UlYY`SYd+LBXA6C+$=WAFwsB)LHgO&mY-R?!UCgP% zFRSWJ0_JA@$u@3_bUwY$IhiFNgMl$Y`cDJFQ|A;8p|5yVdSjWt=Y0HX?*q*`UdYZJ z0z#pxt0R2GOXBlfv$@q!I^os02;n@c8Dg`Ixz|<1xaMiOXB>~)!yoj_;~z_^ch>8( z4OoAGUmKAZeR~ShIFkRw2fXl~#Qnm9qs)kO2C~`YJ=$l9$jmK*7x?Jd=_U9eZ|#Q(htZvaGPmTcuQ_8 z&6?K!a&d8<|48FRj^qz9>fwPym^dNvnz;rX+iR3U*Q=zd%QBZQtO?{nla<@58&lg1 z%8)JTKWm?Hi<E-?ZtwGj?FXl4et=ibdrI zq&Slz9De-q1{yo%?e$y0jyb0KN+!V{s~>m)lklB!S36)o9=syJwMqUMIRWuT5y%o% zsk#1v(epctkTP3rj~o1sNmcdj=se?FzK`Jom8mWE)g%RbTLhPgkj|?V0Sd~U`FutB z{QlUtkUdSep|BfkN|{)&9Te z5f>+|6KjfO+@P34bJmIGZ_{=0i`q}gziT}sUvvC+8@i#Scw3UcZkPu&8$^>>S;ZNf z-yqF=109UkT)divk!B&};l#5KKa&AMJw4^f0;Y|dP9}kP&QlpEVeh771R*cBAUQLi zJN$Vhe}5+)4Gg*&1_K6lkyd1+?>+|rrYbv1f214_PQtlzoPIRr^#of*TS1#iadDFX zPs+_^78k#j@Q6qe##j6*<}7k3g%tZCT-a<%t5RVLDuIs!jg2CkZN{|*%@|y+Qws!B zOthjnO)@)2q&k#W{t(dSKk$Z@CD#-()EygBWfw9_G3pgyN@FTYf~O-geBdx!V=!z* zuY758W<00eHCs&7;#h;8v49>u$*-c;b7a{~@-N}WqMP_Ph!!DIBj{d$0gd|)cgqYe z!i|#sO!tl7&5TrHoN^UZU2Qg6LY0V$hGP9c%UM61!HwNzwB@I27xt^sW3-7OAf0ZRy>-A$@PhoE&!zlCyB zS55(jRBm#d6MSW^T|m)tIo#|pN_!iykEy_(StT=I2qG6Q2SGL;kQG;FRP0F!Z(7KC1Wr0{_awyZM61aBorUR9x4abgHkr9pgf^uW=Yw*sLM4cR5dH&v%1>Dz) zQKqu?0wwH{;3X$v~l!#<@2);~_ypyRjAmoQy zJeNq`vQi`u;>8$D)9g9&X|67kF>514ZuAOPFczH=1cZWo;sXmr>ne{K4pnw_bSobd zn<=_3G0kQ&*6Wa%_F*BWwUu%82OKXK_u7^GflxGpmlIy)fqIvQh;>5t|3(&QZ(pXkyj`K?CXGtoXE9D&DCiphD$d@s`5Rf}dUdbH0h%ZIoYLzM` zp9T99=n_3Hh7Ng3Oowpmz2810J!ZhYzBFWz!ZPsX_a_|7bS$TDm%m~-B5>YCv-|LfCPb-_8n^$p^r7hfsWK`TU z9`dzHg%mGAA>Db;N1=scC359M;b=x6V-6hI~G zoW=I#0uhKwqh6Y+t+v+~ZfLu$L9d&8R)X3ek{HhVUeAEeyVIdDSf^&}H=Ul>fX`%a zg-5{P+zieNYco)er(}<8$Dc$;++S|K{VLtgl9v^yi|Qur}Qf;^ukX8(1$I8@mWLww`zmYh3=g9&wM%X;SZc z#}*tw_!w>;cK&&a0~PqYQ!E;ucmx^20wsTgMJXpGXDvrk2_5*G(@}tawPOF_SbiJl zGHgCE&t1N_@vDPWlo&BfSQlf%rz}t`iBv|>3L^<)v=zC*pxz2cbfMnn{^!F zdJa%?)h=;>ii+y+Oah;m{AFR;5ZGmy8H}qz+aijHn>nMD)l9YGx;OU>W`=j>%26m+ z**PEZJK8YPXka8gApq;UEp;m+Ft#702HG)q_)0N0ox{A|EGM->hfuJ!e5hp;;B1X5 zoLt)mYZ1y96!CdCvq1qU=5;{jQ8wgYNS+WVBq6qO;1$nEFkFt?*N??bFt#?N0Dy!* zz$S7SI69ARyQkX20mBD`l_LtxCUkd38*PHQ3eRSo>9reYI=k-1*`xMt zjD{|&t+Uy)SZBX~eiqIdR#ao1g*Sa$%rAlZ3C2__|FX_5k6sT4*H6}AorQMm8uetB zb@qGTfUskoZDT&#Ht|s_&MCg#gJ4r z$3cnJjGCrlx8-Q~yiA+(qOW+23aibwN;OC! zjfd$R_|=ese}#PvZcN3Ls6B6HHhKi8qk_3(J!GJS39?>&ASZf*VfRtDCeHUiGi`ooX$dKXwDIUx_OA`J)3RF1lKHBhiy2$(l#Uv)oerE3;Ey3HXOt7s^V&A z@xkPx{Hj4yufK&u0XxZD?W|%BTgryiX-dA>fk=#NS7H3*d+TI)l(Dv<@1SXFDF&1 z_wvCr_!O7J9N?;PS&vKtoeam2=?RA?IM7RkWfc_<#$~j~$)R8JlLNdPdsQ{|nl&1T z>IP2Y>l$w0em@H04RpMLp)tJbYc_`8{7T1AH?Z0mh#gGw&$pY{!3`pK@qOJkl8{4n`YgcOgaE>mV3Rp z7jr!&J4(#fv1=Gf`taQxkZdbVfY{25$`QLh@)|zr|6|0$wy(jpuOuM=-8KQq!eG_n zGpc>hIM4b88R3zVTS|lTm4)1#uXV~sZ*oc4+&HGi1WE!-Ki zXG7p7sF2;x#&4&KJD#E=ikwJkPtm*NAyA`4mbK0V!5U+OFxP&et)iu}5DbAiR7NBS zgd7Wm94on@($v(IHTwf(MY(37i|b7{w{n*py$#Z4vTk!YuoJw4=aEu}6uY|oRc8*9 zxdD`m>pI;0$#}uv@?e{UM?1si0Zw)^1!o|M6zLj$a)jW%8Yth>SyD8@;TqOnmkl$l|XV@Pi6wF{q*O^}wFB;Wp%0P%1AGfZl<~Be)hZ|h}eKc-D-8=OmX(dINL(Exr z5U6QCLjDSu`gQ&acAk{KLJ1p`;zWrn&dgtt4dkz2pPB#NK|-jJ67ecuVwox}5N9~a zDP?CNTE1x@KOApZH}L?D!>4lTwK%`ZI-rrgUaj5-9cxQBz zDd!R>qb5*B`vN6MlRJYn8S3051=C}NG+DdMkTh`;B29#A8bO*2)$9*#NSbUYMjurUHHYZkO!6?4Dl%-u4K}0ca z#BwnyYA)sM6@BW6jUUuONcjFRhZfMo=##z_wIVI;J+}SP@GcD*fz>p~R4zz$q#N%8 zce5Q~CG=cuD>Sy1EIuC5c z#|a{&xgY0cSQYL|lGc&rutyhUzTVmSw2KqM)&QnEV&81z$E_ZAr;wojofXo*ux29V z*odmOE|3xUBPd;E$C8OKJ@w75BMOTVhakc$`)03v)zVTOUfDN$71FEds!^6K-88Cb ztQx?cqVGW)NrvSp;p`6@s)o;QmLj07Txptwm)bMViNNrFo~HO`XF5lf0tFGKWF?tJ zLgWv}N}_VmhX|6BISMExK;3z_)yGbQ6wt^x#289bB3uY&{TV5qR4QN3r!p{vh#`o# zX`3NLVF+yG4-UaZmzVM(`1_Yf;eTDkU!ZF{f0sdi=qrId8ixFdDb5jP%YQr0;4uUZ>g)lRKhQZRa=2j?+kr?VKg-6sh|(7l(4-krr?A#hiq9DW!; zIdN!QQSR(wMv=efF&ZzHxQH>Ylb`i>CGwny?GM5EfV78Ov`K5_Gpm#T<;t;Gii!V* zqiJ!9Yn9QY{n1pKA7#g`5uUtB?k*ptr6{c!+5Np}5gdlW37J7`d@}QscgF|Ux+R33 zgwU~it#gqldHF1>8bau6yu2N=l2f>oC{8RPl#8SC4Q=viTQ zXnm_rzm+8VzQTbOe5UYf{{PDg*C)z%t+v7)TWy6q9#*(h-$-*P9h^ZVvjpR3n?uBM zr2F&Vi<8(dCa-g#H4?(+?wJBjr;|;f{UwR6RtPk7-ywmP4vPSPtyBN?OlR$LZO)`y zna#&Pn9bGKigW+Cy`7h-YX2kQkpe|b2xR%Av8Dd)OY4wCXU!E7@z984pl`2${!DRP zuimb;+u#P5KI9kDxNY#=@%_yBwt?RH0e!t6{MYi#!e)3I{~$*c-SW=Sgc@x5b_m03{BJv(T`T zTOvPs6o^!kpM-b=FT_DQ4E$AxAvP8pHLW6oethDnKqDHyd^#N#G#l&mGcYSwJ|0_n$8E13-l2R|2qfPYVFW~y%sA_g@-6R;KF}S*W0%NE z766#p0I-Xs^R_p+LFbrTmE58_CwHNEv{n5@w1{Vv3DBzkuzqtLgKJg0c_ABV^cB>@ zsaNL3j{zHA$#Mh*bw2t&p6BJ*;U0Sm5A-JHkKBDDPsYoMgLn=#h@?wYbpW>&k^x8u z2X!Utvpj2BX`n{XlTl~Iu3Rutrt|S#y|H~lR@x287V{ecOfT?CQfusfy6cQbCjLTI z-X3zwrDgs@L+><5beIQv>D^^YA^a{bpVIuL(ou+gQU-`_TuRAKs{0<5mcjvjxd0zf z1Ra3KdW`<|izAlkQ$iO88Tv11Zvbeq)vVF5*j0dP+2`5CmnxNde4KuXTbkq(wuvI< zO0F8`Y7=vF8zGfuO*7`%M^dg@5nN1nxJFY5)|1N*J|>9{JnL<g`qMx^cxAsz0CJ#eT-b zCY>17a-gAIW0k_F_P%UhCqu7O@+ImHJPy0_2M}}tA-GbnFe>8ondmx@m65w$ABH{4 z+zv3eS4-q@zk?S5n{uQc=|Ksl^R#3PHVf%qiQX6M!hmVh5?&VLGcN1ITx14@4a%mi zX2E|1ldbAo7;bpZGp^8hh+{gUcDsrII^qyZjW4L&(Gc{X4?{iR=4K$Ev*pt(MQT7+ z8&+&0WsRZ5kl6q=DjR-1?hy=`!46V(Mj^FI;XD8<2&Z-hVg~jgG3d1E+YFga8zz>J z%RE33oXJEYN-u?pHrN_+PDD8M>LJ51810K#IN}-S7zWCJfon*_9E+ja2W|(!M{tP* z?%^?2uawj=_K}UWqEMo`b)oRyJl)PtVK^E99N|*~#&W@Mp+*YdE<)m#wlti4;So}s zZU?cYnX1V)IE$D+Wy&-fXp!^}AdAUur(~3OR*URCg>&m%M187VCc>^M0f=Ulzn6*@CHo5*HIM`fxk==l5)PsV~ z-GHd+6KNTY!ZK*P4++nZLW~SqK-x*($Kkz3oX$tZzoH4t(yRMT=;;h{0pwev*Uo#go-ea)(@bm4cfzMK;nxy%wU=v7n6puR0YX?X$-KdNEnMfDY764oSs(t8uZqr8oiZg zaTiLl`-Dpu+Nv(`pHY7MAN%yT8Rr^Xqp=sv65eE^31_WTf<1%u zg--?xJXIG+tJn)b7!)~lD>4F07Xs+E2Fhdf9~)y_y<~rt?&%ReZ>Pf841y@xOfRqg zk}#GC+~(D1ElW^NR%bcqz`Xult3!TpTZdDaQ^hCj`&Va5_)M}X0dBe8%h=DJ4o?YK zy-XhHZ7Tj1V2V|HtQO3sp50L3>l}3%Ip*RHZcF2+q26~T;H>=t{;rB{+$Z1gH*oMc z#AM;g@tpEMbek-WurT*D3qijsGQil>w{EUMPSd?+ zG@8G??0S2VsXEmNZ7@AXttqC5+?ix%h`OV0)3<96tn&lFZlh}k5`?}>Zx{NKNN}5p z=fHAoMuBJ6jjX?J7-EwZ_ETc^)2K7?T8)}m6DM~QRBI3tS7u?cPl1G8KSb6XwxXu$%2bg*8HK7LSwO8FZR(8buDVFeY_XR5+V}E9YKmf&(Q4 z6Ll9JW>mUZS2eM7hMWe4%KI+zKyCODfzJ5X54bm>&g1Id-}=;tblg=P5ab1+=TQ$q#MJZ1W3K4OVZXhE8JPsNybjNG()?%DKH`auZ zaaWF4@B75(FEd<}9F_wmVp^4!21JR>#tT=GIsrWH%h>h$6D*`sIF1WR7y}s(~uilP*g27K>iM3I1`&WPh z9Ajwc8oQxjyxe%;OcX@(oL7CYxA_>u-*m%x1Tq{8!pS{Hzx?6DZsiv7f@s|g5L(c~ zx-nW4m0?Jcm#<-$MA$qz!dUrg^>SdXgZP`~kKpIX>3{Tr-sZc@&4-Ljq|?qvB>O4D zcI2un72-#0Rm7rm8sUw%qTKXd>@{M8OC8uGbpQd-G15MfTxQ#l;pda_x2NW{fWf#_YN~-j89$SLuPf>4x~g&H!GY>!fe1dlg#yn z^Eqd$)`Xo=S8fRwtjiqbhjID3(+|nXp3V;~66`956x+hCOo| zVq1KmXu5iKt$R$?&IVC|05O6*v@8n29D6nJ=*5DcY7iYhreDW2=dv@n%&oUqP($qG zKyR8#43Msf2}DtF|H66)@&5sB6I_~PVf|q%D`N~5~ zE_u7T0^pJ5=+F(&HlDxm*!_59qJ4Zta88B_BR6>2k?)-`N1I*5!NO!Vfyepj7l2ul zBX=K_lNEu-QWx)6Ify``O^58egeKKJzr11VUnhW3gn98y=XR^A?_ccDek+XS5dg+z z3zqe4*RlK2Ab$3l2yL*GQyn*!{lOu>bb|kl%?(Xg5q6;W0>M>VQrpyHrnWV@UOkXuv zeD`1cr~mkwUy0d8qYK&wwP^$Oxmp8e!wpr19ixiKg!(4ybspd6Ayl1~>~@R{7{vc~ z1Pf|4bPkkY{dhErN zv2_z@qN1AR6peuG%=hN*rgiC6x!Z#{EtA7#=ik39ik6PNA*8dwWBaK)xOw)jW2>lG{=-bmb(1-aT@&-&gj3w?xgB+ z_mFm{oNbn)yQ_bLbcz=roZofNQRUDbE2pGRjiHdIL3BJgU*2<6!Cb+oIwsG;RLMuw z-2(1J6;Z%MrR|ece=tBF5Nz~ubLo8P!<7}L%zGCTSro^KZ6G%0s*xPUD~K^^Ts}?N zByHHTF;?Z$O%V)G0RNYuIagI}=_N;u?RLQ-HkKD_GiRW-oRlj%PIGIx-~N#*Wf7<$ff>BFo&Q1e1~oN1 zpkpMInwsCLXOIXrxcEU$(}nWFa?8A}W$@nem#!>cYWyU2EPEH~V-~ZBk6rq6nO>8w zl2f-@A^9_1;F1^T*`uiY9Cb9Jsi*nJ9oXcF8|-4~S?^+Qv2JFc>fhwe?Cp{s6K^a} z=DOTB;y!4@*&toz*9{Nh;oBQmhGB(}uFTn9ui2&m$d2`_yf^A|IWhs2yPCv7fx7vfQe zfnIp`9FzjH%~0tFibk~9FUm@xp(I#k1o*!D$S?<|KjzD`o3P^)N{wC?tjnYpVli0XU zXyYZ?+e>Gh`%dDUnxQ5va>&K!y{R+d@f0{@ol)V)wKCAOZ3nFmgO$k#4$YU)?|$Sj z=&hn_XV{w9QcgVh{W!Dm<|;KgODtU*Vz#HpQc|pgl%=$LA>J$4JE=}33#jf0=mIY- z*jI#eK;&t@QTi0#t?lWP_V=;GXA%+K7ZiVOkDgAttOeWC(}`tBua>FBxi=K%s{(qW z;-`S_YCtUa?q>;FDBdKTU^pCwc=@j%l7)wm9MvRi;J`1 z!|q_yoHAHeoiI0h*;{h0n&oqJm!mDSNHP{9>FTVd)4rq@EUCnmm^iUTWpG+5o`$Fq ztYF!)P_5fxJv;tBb_%j>5o|U=a`)b*#qQ?BmMoX@uGZL+#nC3IaD3ciXKw&tz}w7Z z8YqC`3a1Pf=(dpZC}KDmQR!e%%G=V#Pwg1Ue~hE<|>Ut<9u;Lv0_Drbr%G{dPYgQLZ6H731A3v#vp0P?UY z_Vf~VH%gcTAF{@x_Ow_k++t}D&Kk1W?x{Zf=D0hqgFoxWg|-!apth#TOajSM@b}0} zcM2?+yUZ4X_nOCyb1+&6E~sUi76Jx2RbHSiRUB!oJgL$9Dl`^5@LI12@~nX(`eR2+ z^w0`Mw}XXP@L9Qh4#`F3YeqXPAyi_#$J;%-FP@aY!%Kx7Fu>8vq79A!e#`s@MHDg| z#YRn3&$}M1CgsHIXZV>(S;$!;*y&(uN(d>eP}O(o&t>{k>d!1Qln-W#K9od+HQ?~8 z9xSK6e@Hk`{}l7l+mw1h>6`WEmX(W6Mv7s**rz`?o$*#Wg7vl6`||Z>#To}IAv3%) zEn&2T;N~w&*pP6^Y+2>SlD$5*^0gLN>+KHpHVQRIs}XVTAhY5z3a)$KcQ)P}tu~m; z(32!0L||BLQcm699RdC0)dr7M8{Z4QN2-mohezOMYg+=*p_lA4x;hO`_+Su)!2GEF zeaQYk96KRS#18LClZ7JRAJYm0(eU2_n9iNn7O1hs zV_xsHb^f&dJ!OBNjEhfO16&nrn0wqHnP6~-n8!2BTIV(AR?rhTj@7kh55A>7UagP- zbIMv|Md3S#&-nYegQtaYM6f-KkpmeFHda3sS+;_Y+Fw>ko;+-o(07u6BzdXQhL}L6 zt!W7$nqvA%u#ZA4=<*u8)8;cY5fejBZk!)M$KWngN@&tiSgU~AtnB(>5SI=juGe{$ z#bj-ulsu?$)3se)Pi*1_J9N#L&Z~RHLQl?2W1Q;Q$^A&U4Oj7}wP$~C!wjktP%RSd z$afCBB1&=7-@16K2@zS-IyoelwZw>Xt2?-@QLQ9hMa@#?w%l*tU}i|q^AjSDa6O~&G3w5qUTcOQB9S_{T6f4= z3?K(|7g>fkJV+C%VPCt`&t2@2TtGC$Va43DNR_hTGm~80Ho4ybr6&d#Mv&IU z4PiX@lWXAH?se}kQ?<7lc?zT7q^7O;Ltz`#=r?t9D`y*Dne9lLwlmJIHb4C|g1%BZENVDx{Zk2XCi)HE*{Qv(an zCkN!wV~Kwwx(=>g7Ga1HLIHjXRXukVf%b<;jj9eJ(Y z{v%B;PHSP{{JRmX=_aJ!M#_hCwi4tbv!O53re!d>>)MY~z0IywYeWj!NSb z5)(P5nmM>?K7m0z%25oA=I0r7Om$&=zNIZ}9d9jEAES1#K(gu~$Nh0b*u5=O{w=aK zz|_O7?uGh%sD*t5RjK)T7^bOtf|`_8ktM5rtX2GuIQKNyN`)6ET0O)1$rdKeDa3nq zikH(E6Vy75f(4DUK;taXIKzU6nU#t|Sn8p*f_0wwSha5^>56^!?E8QFvv&Fb1Bmhf zD6A5(ECc}u##p1oJa(n*UHa!C`jqt#u=JmX{$;Q6`&4RSbr@AkAE0@u+b|hWH%&bm znp);zXzDQ=%Hv@uk7nM~a^_9t@9uJydIOO?<*?VZe3hs#YYNWpz7?IuHv z$eC*Yi|*Q;-b)*@xsLN`);5gRfbUKsdeU2zk+jyMA4UM-9FQ@}^JAzCatU;1=$t!u zWTSHn8gc=E!+EerM2Y;=Ilu?cfNi{^f@8lU zySNEYc|3hyNj5U zOuL6LX}sT2AS5)8WYjKJUwYQ$k~E9znP+2y;h`uV%Ry%DjfQsR^}nGU{1vtb!~60m zw>hCN$)Fi(AQ@_4@K@M#9cZA`B0wYYP)Bzk-3LaQ4+AaPGq4wjXGW@xT2wX;lmaG| zF}PN*9(p^v4+674YCWyd!f1{0n?!Nlpb4A`1Rg8L_VwB`|C*WCKJehd`w{w+Y{gau z=RBCAghM_Y6MoAlE*x-NBlt=k&S{ySGG(7%|2FOGjnL3YXlTS5Vr^&dz6fodjG;bl zoru}Br228-*i?_1z2K?&$$QFl{-wu`_LBLd@BgPie&kc{`Kf<^(+~ABf|V5Wzc5d~ zvJww*@I;T~bmakdVSJCiEXDIzQlE%Gdo7bT^E!7NvL`ZaDR)aKfAdgr8Ma>fCNC|Q z{PuKjC_Fb*xNMrf%nM_GQ+PHME(Z(O%}%Ri8}*^Hi1$A^?46B-Dv_$-IE8g3k=g2J z9BfPX^25Ce7>jSn%=+Er;e+6*JO=eAZm?}9Bx-(`+bG$B>LDsiD^cb*JV+5H8o1qf ztgbzAxHn1p6r4kXXVlp^4d$v_P?jHMLCw)};&6%2zAL*;%FAM8rlaxQwS zVN*?qP52OSG{?p)--Xi#My~CY3qGFzE|6X0SqP5jpVy!VOd23`%ONy?CM8TcsYer3 zw{o8YXP~Y)+8a|T5W=AN3PhY^BkEAZ0GFG6oP~jB?eO)UP(#fM#gw0{fth6Vp(1)} zL3=R(&wtTbVzb@}``+a^of0BQ&qi)Ce9+oKF;0y$F-XP;D01V2ydDD~Y(Ly{RHY!o zL7ruFGog04l*QT+v+UgiAdC(tF@_(1ZeAkB1mc zc%l9^#tV@cASY-H1knvYCe_0sumDRPYPg(1FtSadGRTdM#i7ZKf()(^(Sd)8FNaOk z@+lf0iXvHpO~n?(d$nc@Z5#m8Dr=tARjQ`wA;6%&B&0+Su_J`qoUryd z+ki&Kd+;vjq4`Y*n{l(9<;Ba-S^sw}9lqB3e@0}}iB2lA44qLit?pSmMC<&$cBc9w zxh~|_!1e2`?b3P;K}tsKqgfE988MLHWER@&n_(7PMS61nZ6LX(L7(zW4XI>HO9|#* zql(>bVGy*F{}E9Jr1K%BPOdhH^?fjcxYzy{v5eJ>15$6KwZKOF`d+-*6|6K=yfskZ z#-Ru`6&KiL>!=i-O3c9!@0yRuAV52O|9<_UT&$6l$=!+-a~1-sGWmh<+6Ee4OC3q` z>+GbROy8JUV!HZS)6!CsFhUuy1QSJ9sSi16co?5|TRVwvT&t}cfJOj{t5-~O>rJ5J+9K`&G*VCxZ=&jPQHo>f6#ka;P zw4(9NLayMg#uoXzP<%Yj&v^FlV~$F5Ya->wkTrZ*`Vp@*Dfx4tMlgX3 z`zZW_X_ebm?CNO#h|Mz-U)J-`gNzdS2!9Grh2%R|Kc@KvM z*ZKF8G!OKNM>*(VCbow)>Paur;fIugB-qt9d&<;9DobAJNTs46V^D0zS)x2b3gt%- zg7M)p`h#9Ne~BzuoNMyIU!9?jXuCBoqb54!N5dUC;lb&b{W1)>ltN+Aq?%jMR;pbc z#MG{y=@9yY7_X(|Ph%+u8M$=&%A=38;G=vK-2 zCv~Jg1p`b81;0e{AkaA$HPljhl>}ltI*-#D$z$7+UO^>844-2RCoOQ=S$X1w{b0Rn z6N7AJ)v5>e83c9D5}pEguy;HT?Ca#m;<%;6h6Pn|At<4>mKW6|4?7wZAG16r&>k5_ zM?q3eZ5$zw0&5W?;AI7waPio8oDr&37XNeE@<2On?@lDKSi*8@*xNUx9J7R?KGl-^ z!8B<@SzsZ8Td{D4wo6>_?;_kQV2T*^OBf2Lq<5JNu8_RbB!jRqq>Lfq`jZ|95F$$L zAjt{e_M(~9>CrZ7%QDq5zJWKroy=G_#GqR;6DAz zxeJlL&DI6jm3tI)pS+dsX6c+>gSlR7dqRM{|JsHZ81IkTvp=bAPceRePSFP+r2i4T zNa>9^H5I8=gEn|6?t*LxWeA8Z*I z3_5`1ZT%kcLM&Z)NSJ0IaW>)Z!Ckb&7aK9O){zT#!ohKte~Yaujigo(huEV!^33yC zrfnW-j&X`$Bg+B8xBCrE;hoX+<&lLOigaHNg)jITP}re5JB1NFt5bMqbb(WtFK40f ziLe&0hr(|n5_VuFM#VoSOkBi@au`I_1D~{I9R=DN(@A*anOHn?kyv}7`0KcffdJd| zEbUUmPFT-_?4hhKF^evu0coyVO~)c6jOXa- z+!UZ*pjD|YV9T6gb#|!0EMbG=cxH=tb3? zHx>QW|EI%!O5KN5r84*UQ;snL$`GP)Z3M ztwpXi;2fh?didZbW=f3aQWcvne{p?Q1?xjH=822=A8Ki`D18v>SV&`ri?L6)LW& zQwY6lRRGvnC6iYXW|$u6ja2X8vO=(Fd57xN8=nkbjtn=yzlEYYsUa#WR8qut&17s* zkST!&`dMdZw7F;0P@FK&HQ5Lge%VEGuLv^V*jnnbweyilLHGsfa6l+lTm!y8{eR8| zpT7<8fu}x%Bc@6LLA&S)&q{_TWWlh-TWmgM(kG}uMqZ5`KxFCKhl(kipz73zIYR3; z`d+FTg@&f+$Nm&F)L1MJFVS)i^yHw;uA8a;OtTbn^6_WUH8Y-w-zyTuqrPq}E+!a> z=ucdDnyG2^_soeKY5umlL>D~{D3XfQdP103M#=R?neECc1nXE`ZT36wjpEG-`2aO` zswlr;3TaKzr(ZfLlP``+MS}5MK)@e{3h}2Vb)V`zZl^zgxj{gTm`9U&KyHvuD##5j zi9v4Aezp#|VJ))3TU>%eCCCoDk)ZBGVH|a{ILJg^#D~$p8O;g~5v?2kV2baEHoL$Q zhfDTs$iW+8hX#gak4L0-Of${Dki?w<6(p6w8f$oGP-G#L=uoV00#;=ZTtYg3&_obh zh&@w9bbN{TvCn)@;2>ae%hWTU^G-uEKVe=OD$7ip?wa{N@7tR9oxyo8HbwzslJZUA zw)I=!A#Z~=hUv+tFP}rxcc2?0X3y+qVETq`0K4g?p1wKg`NKCjwecE3 z%t72a%7aPO%CBP~oxclKFLsN?eBH7Sv=lM(CVgBHqfv-{tZv)%%~rgvTBbEE>?6wG zl#!>8iKc&$M7_3`L71ycMtmVf(FG+E&CXjeMNIgsm4%&=k|-{5n!si$fq0SS-;H`|Po=M@3LQkR(3U!=WmFO}u?shnIoVa>ylKk;0;cpNM|(hU!bXg+x^h1~5w^A5 z*zP6d=kh(-jM|0ZoKce;}bmV%``h4zN0@qWlvZaQe8WU}r;(YIDPX;Vu?+ zh@p@T7>w|cosrbGbXhSnZGA3!|?v0yMkO<52BDr6FYejFDryjKD3s#QxYm^bo{{qd%!y0dC7bU8(Fkf_@x4t4Z4(Na zZaW~S6SL062$COevAIEgxDc@<9feiQURf?0U4g&=kp_B&JDoOHjEY>h(mmFZ`2u+6p|JkF{)uoaF}7= z<1!nui!>>|!7lQ)^px*1v?4Hw?liI}P30i91|Va=2HA*G>1h1fH3GgPJUM*2>w|rK z3ZUcw*9HTCCEd}#p+P@&4gCxo-Jf#>f{|&im|#^TK?U)!jD}1LmgbFwJ`TU&!FO@h zIK!|l3YJ``XIYf=M5%vh!>CWHMb;r&LHeZX+wU}00|L6!CoVbGpcGKp;X~Rp+L|*e zaH$b?RWe&CTeB6yVQhqE0p-O*A}jMe z!=Y#kUT|{}Lgq_=kyOsf!S>cqQ>IW1So|}ZYH|(J)aIC`RG?`+r3Pv0Q_5(X1)Abu z*Nr=>*w9pKfm36MrW|R+;a1a>8`lF(8ClncF6uI6*|L!FG3M%)a9*nEs+3*_{;*Pe zn4&L<$GT!uR3*^uYaC2_MZ8tkhUBhR2;)BniyShQP@TD+3&D!d#k`=5uHB*;`lfvx z6@QxeqBjSLwHjDcLCclT@$6bIPQ{WFvS(A6bXCiR!S z&!UI8LFM!{0rJ^kh+9oyQ{Ko_jrHLRH@cBAwa`Jdnrv5=aQhWve9?&YQv>R1;IaX% zQ8Qdk<%GRlrB%aSwJ>0+s()#I%xG^Bk!vdF&%LiUSG|MKvT3m_?VvxQUj93|-`aDU zjcR#@Srj0KCKPC zcge~NVXzNc-l7`@wOP67W zm6)m7_qT@FR{}Dy?-{&n^8sOCM(x*tca7Or;oVQ27w_W9aNb2;ufn@e{deB|2H;(+ zYv)}FJ#lK}A853xVoViny8fajyjo z;hCu};T~R#@c`78yvC_67)KtUIGF{er4OUW!~=;KY~Z`h6k+;zBiAF_q#M(zxy6 zH8L$2FuEJqqdgf)w1AiTK8{}TQ0f$4-Mz&CZ3LyxQOTucnm;OrAdz+`0W19R9izt; z#4-BdA!*&sePG`Q3Xj!=0aB1yVas+7AY~Wet0z9r%DBtli~=Z(E6mr1CIun^!tbXu_#or zOZ>|G_Y>bFJIyYv9MTYFdosN{o%L_U?zH4vv_09kJLNdOzU|fd{6qn2iPmjN>EeHd zYuJ6!pG&TnqQ};c{(Q%^cyG*1tsBwafj2^DYJ{4_TaEQFd~7oGlm{6t&)7q%A*HmY zX(O8PYKvbbnQF|{q`DW4v_VEvJpm!ehVFyrr*LyK#SBR|DVpQW=;vA$f$wOnhcn5Ki(W7I0YKq@yzb}v8W}jEY93bbvSsLRS68pYAc{<*myu;pK9^Dl_=^;`0${Vfs zLQV*%&okYtrK!lSlcpaN=$#zm3KQrZvTgM2uKu&9eNwGG=GwGr#;mJs7+48&x~r;s z;5UqSY_m^uA9gX-xV@}phpeR?i3EIv%A?&@aWP*qC)p{l1i7vHUJ3H7%k|=(H6;wt zs#JT^Q1!`dfd!w*%;qv|mAr07cCzigpAN90IOFv5Lmf@x*Q38s!VWy5W}Pe&W95^xLW=(apu;AVxM>eTHv#O6w54-EHX5r%k(^>dfypn}A6asr#O*E1*#ZB6`Op)Kl)c2}7oNye*lxCv&eGKM( z7vI(8&xKFgW+q>n+!x9)4^D)y1S*}huVCR)Eu4l9xLdNvR*x0j{YZc4@2b)9bNy$> z&c)r>7}3y-mJ%3dH0w{m#=aHE02NZsMBJ|6Vn*Lw+JrvfL%m%eSH!nDLTkF~%5& z2kj!=#8?R+&H^E9wh>}B=rCG|G|2WHK8DNnaYc+0A(?cEMvCOrWhBM})4P+Gd%=tS zW18m_L<7+Ub7)-Rd59d_U}slKu5nJUOjBKxQls;QLssMaWw7q7LIoQ%aF85iR6|M7F3gL1G)NDwIT z_A~)Vg$)7#57YsJu@;Mso;gqnIhu!4JPf-40EiW_t_rk0w}>wFn^`<^IefRtkI z6B;VXeN>M*wpL)n@re?3D;beqHdWK^EhUjMhjHDWhlcf2Ws<$pyv$x8a zLeJ5vkjP(3ivaD%?1#%~m&iwDeV3{FF>VLSdMr8v&^+|9q}8lCQOAqb>F28!-z7rG zj>p!$)JGq!z(?KGV3awE?GWJ?HIzIkufs-62zW?Y6KSdFqT;E%kYT&#sx?qjDtGm* zmhsUjAvGt7qaT0R2cW)(0mlY>Y+*dH&CrTwy+|Cv1kK-@n(pmADTyR4+5IWoc-zLsjFIB28S4@xidHdg5!AvrIaS#;)iO=H z8NPbhMiEz9^$8?DxF2FE!-#h`B6_CMGns=U43!-~>7fgx;_tPM985_DBua@GHdXlm z22kE>iw*#6F&d-QR(8OlV84oeGY7YQ^8hY2$aRkB*!sp=sCAcbtiW)ozF`qcj`EFD z-&^Up^p4TXf)OEf5b-5DW7rDr2+}$qd(vs1jV2Eqoy z2rdJh5%Qcc6R7!WCS{n8vS;dPYg=4`7%?CiQcV^U(lG2EV-mOlqufe}qaczCW-*<( z$)Ai6`>C10BaTL3P}}L5?J25!3Gy^H+jUW#Hj-FZ3#uGBv+SJ>;Gg@r6B{d1UZX9c z4G#>l+3@;^H7eAD+6MK|Ol&%UdVYr|4eF7{0rmDRpgxh{L{(7yUqY7w3c)blL+H#Z z8qPMkKK-G$eyd9k!H0CvI}GCkT8_$;JudDY`BvCTcaNauXE0$_sg?(6&DI-Sz{Z+j zF0U3}dUye{daM?X$RTZW27M8jX*Ipr({_K@9Ob8A4NzEiw3ugZB3n7z z03M=_6|gKF4vYC!o~LqI0? z!Q)0{U2rMZi?rOpF|7N_C#NlK9>lMQg+!Pb#ZaIYZxJ}ajz^9#U;%A8v`q9^@;;5v zMGu}Y4H&N{-)zMmlszoH(+cE)Hj+D0joexL5inb_P{dte107w2nz0?d2l*DC6IGNI zDp9UACmXJfh$QGwQZE5z9PxdoW#S>2t(JH=Y9=V|^iub0X(h(31G<=LEZ3TGjxLLX zdy6*1ZFLv)-jE>j-q!;?rI|6)y;vv}8i|~urJ#JPrG|5@pt_OoVOG%b&15+FTdlHE zunl$U#-9!H%t~^?)Baj-;iOeKQ~R6f$7I+tPdcXv2v2X$7lA6vy)AMM3@Hp^N(KX? z#mSv8TIpKegZVcJ3Tc3sdlNS34S=R0?DO1#~n2R;f)#`FCVDuAI2~@W$<&>=PieW-sL9 z?>Fw$UC*Gqddgq2_Et~$SM8T1#oxoZ=9|!gYc0NJ&^fZ63vhxQU>p!_vbefWsSDS7 zoBu-WUU761X0u!Be28sFk~xqjjh0yzza)-)54ZSr1aadc0n-KsGu~9)p#M@DMJ}rT zb6M=+gb5oRS22Y2>~$ptna)0-|E~3dwr^yu_k9;h>rJCLe+g`^iGr={v&3hZ)+n99 zF@E(&X7J^+#;rE7RdFZ#d(pC-q3pG4zG*TjzCQmiSHx425V#*~DN5$_pY|)?7K>}; z7@$JLjO52dUqC;=?}CnDQqf*9hXDikdhC_Gf!XATC$cn3V(smR6&O91@TJsFFY+Bb zOwH&UFqSQHdNY>^zq99vY>7ZhO!Xh&?gS{|!RxvaK3tnNtd`;)y%&6@w5`;&={Yptb66 zF04{^P3`+<{X3y=MtNJy8HjANRC0$!9QRmSLKLDwDHB&8c*nnefAl?yq~XWbTg~jG zLaE;hYUTqYw1>tto2op5REiNF61IFyQa~cCTKZzTUjaruy)=@9Zp~Cr*(=d^rubhl40H?|Pl#g4ES3s}4UvL~ z5pfR_iJ4s;eF33lb!k2I(f}j>G`J0=SI%;+|6!L;NQ8d1$N<--9Kh7bYjWoDUW}kz z8vsY#gsTqHV0dM!148F=2CaRuozcTg19o%7`VIq;iI+#9R=;3jeZar^V9L~C0J_W= zPOgIz$ieDC37Xfq$eH`%61gymFUS;M;0fwHzJPdrZJmn-A-^b{x;s&_TNa4&1je-*h*2Gd7drtCiXaG!1<+Ed)FCA%FlEH$rG| zs|*c0$%E&CiLEq_WwtZgAx9^W%~qRXZb`!d2)w0Ibdj83?RBps&BN0M=or02IJ3Ew zqKm? zBoGULzC&)18vu!q>*a(2KN4fzgjLzdiBoTph=CCJBb^M&?&1Sp-oXb0Ezmz0;TXRd zuZ9wZ&dplG`lnHyCRE^)_OiPXc%zQOK*rQtL2vDJF0t2J6)JwKZAyy*r~#Wuud4V; z&K!aK|Bt?uu+WOqx#Ez#EPrB2qXF6+^ zdnRkfOX}4fXza;a?KIayfihCewUAAjD#MLXLj@^tTd1Les?9~nP(fvMBNS6X6>}|Q zQwG^o6a^|sLG%0XbN2nd5>LlTx@WD{<9_>`v(NvWea=4b*MP=jm{+Jn)>Qqod=)Qw z$wl+Z8qV~HFJzw@(h3!h`=CDXS-i61e3d7>D6+}9ZTdIfU+#VLY$wl zTRNDzLdn$g3skx+pHuVGtDqTi6_i5Er(96(Rj7z);u9)2oDddhm3~5%k90c#;r7Q+ z#S>o$R&Z*5G`+<^g5@q?Aqt0b#A7}l3?WA0manR;AQ(HrbH4naU*-u^E_fptt>Yow z@+cg!*L*_GgbP$ETwcNzvci$-%-m;%;~nU8g)3x)%Ln1?tU@ZBS|#G4)cQbvH2~|b zMj<$2u$t<_ZjB-GUDskw%nqGpQ%q@J9=7e4%-qVBOD+g|6N2}myc<*=KT zgD+drr*@1z?C-vdBOM&`x1O`+k-Oek&?wZ892FF)&~v6Ue)3)PoSj?!?7+S59Bv!r zy?z)?86%A}jJA0U^@*1bqhH^_j{W9%#KHQ_=fs^+S10c5L9w{!)K9j4LniL06nE!V z+yggl_Y&@9ieonJp-~CvMLwuZ&>YN<5%)}=pX9eDlo3ZZ`8`rf{yrN` z6=7-epA&Z~9R^)*5O*7ebW~?C#657oLGnlLH%WflHB%jm!cUa^l$3Sq5cVdo5}!*$ zVf(_RVYXI|OY`L&$~FQ3s`YlVy-B|OjmSoqzU4c-Rb(%tBVl{hwL2^h3kyD`C};?R zJp+!F8vPXFuJd98I*fkgEe=dN-d2`$p;1A_<)4Mmufb)bz_-ueZ~H8RL9bzx{{BNOvg z`m;Qh-QC~JB?S$%Q=rx53)IUP3`?8z>NH$BFH9fV(c%tF4vYea^Fv3tugQ*X-^**e zLHfc5_hgbym&-~FW$C7cF*~Q3sXEs&14K81mVqFc)8capub=SwU+7?67naR1(cSt` zp_x~2i31nm8ma>A8B-EZ6iWXGyyZAjSk0ZEBnQ|{T@9BV;@RtD>b9@cH69G3*)ylE z-GJIR0vTer>@HH{o^K*D_rhPzW5je-WoD`=j5-E_t2z=Ot>ZE#O+V3UXoQ#8NZ}XR z)N0H?_l4tHeRMQ+14*g$UR!@Ib&eWN6IBg;kd3j^hYAP6Qc$_?BkVIJOAt}5Co=%$ zK5j^Yh|j;%OE4J&kJfqEm#UM*3~4%XQ$oDahSd;f30v;he4-7gcz}pdQqQ*fr-s{x zWP_!f?Fxsb*+!1gb|>A}l2Usj-(!5P6Ru-zk(#O{8x%EMI!yXhRl=>&r!=|o?7kh`hgOeY4>31vRpe)#j7T(V#~5%m2{b%IpZ%#G;; zs=*csb%cI$ozQseooR%1m6nv@rOL1Zg+Uc;Ga)Hjsuh#MRcL=sbI7^!d0`G&TYW0* zNvGV$i3jvWb0>Vb+l3m+mK0WUd`qf)ac3*)kS28AsLHiDH&v&{H9N$v*UmH$Dq+(= zU4Ev8{tw&cmedhBX{{93>IkduH5Fug!`Il-#2fc=mNZ50lRUr9Of<77|28f~!GPsw z%GM5tY0Y!HaLU7VVPaI1t(+?>{lBzMthBOz48c`sIcAjjtPR)qAY z(CeNcsh~QJHVMfVOX@F8PQo9T59pJ1mJf)SP1LLNuhjxyML;eV@tI~qAk7h}M`VUL z3r^Y-TgGhqsJiAnyk6WaRM_3g{ZTA!X!^+#*Sce2QodC6BQ31`{=b6hG{%?rhQ^oADdUD|z|%v<#w6(`+~=2>*X7?;Fn>RN8rh zK02@jKczJF;_0L(`%;EO$pdia;E;+wu{oPvQk!SlI#1zU8PLLLv=l z);^N^G`eI-(3i}7*YvLshYzC_A6K^q3TX#WVET4U$$Yw^OB>M@oYXfE193S==m8au zr2b9=-m2>U!$jn7DBzuM7;tHK(FEb<9Ti=LmE@9Yp1xV9sz#J5aiQBDTS{Dyi2c*HKJWa47>_OnHPNz`oaulm`oT=!%L}K~dC-^6G->jVozVDG$_3tF`0m{aTc#dw!ib*Ra`lP~9-{ zRcl?$Jo8$QonIAIwi8Dm>#?J)`Y3=x>FaFb()ePHZE-B>akNiUvkXv8h1m9*$h=`l zRb>}P5<9MgV%Vtju%&-h?xi*=UQ$?}{i{pl-j7b$(1B^`H3=^wvXV;+r)A4RvPxGe z7m_mfcIi~0=DkC|w9NA}!qd?}rn1Z8wXW9?<;YG!vW0>^D0eH-!>AP1+dxsZ7my9y z{nA#^wK@*wt0!Z& zU2prRSj?q7`K|&xMl3Sy8_?i~)%6$$>c(FjUhYvOh3QW)8bJaUPA(}gw{e|Cu(Irz zbb^g2vVhQS@lq<_p;TOzu9%8DWk7xEqs{rKwM@h*U9I!-iMgJ;FwkU$QL} z9Z2$V3FH!YK~k#^3X_^HVnXSnP*5#jAiI*2_WpENLd0^YDf*{vvDOxtZsu5EAG|E5 z*ScBYRFm3;3U+vv4}PzYdA56Bx`yeqyUO*Tay@dpEPU3MdFn=0wT(walWijlauyonU%l^;8`-%sQa4*^IDU46w1M9N0=5G=|*m3DW)>lU8n z+`rZ_0$nx7&3XB&bt8Xe8Sp9~-O11C&Qp%G6qBF3%3`se_bM6DepC&AF*!;OuzV<3 z?#8l?W4L3fo4rxS_zyUD3C>Y&GPCs$=J-`%Gd-$I>mj$)=&vC!ELG@`tkEeOO5n!I zpia*$QyLb-@elQ&>_E<1HvVc4`DYnS@c=6O#PukOMBvbZ$UJ>BDo3KI(U9G?$GG9z z&ZVErFld7kL0zVZu)oO`11Xq;;d)LTER`2q>{PN_Jc%*dMm0xFbS@XAvKxy2)0NtE zrs2COixt6wBnp46W(swtI&P{nL&2w_`BqNnm{sWWXsAstAiY*G=@hS_{x(cBk6Mz& zsHlJxU>vv?V4QNNi?0}}+9?yRiqSw{@xTwsN#-a)X=8)ec&wWv@~Vn$2dUjAfG#E6 z(P|Bd+7j&v;ND)P4llH;Y!MDKHUvN|SxA0pSz7K7MJno?sZz*4%iq^az*2N5Lik|U zSBSngBNKfBx0`N=nCY!5VXA^9K_Hu{2N_^~)>u9uu(c+H|3(^CK^pYRGDpRp*#zki z>b3lJ>Sbz$#+L^>YPGzhQ-kPK7-6GRu%tSL8k$a(f@TM|4YV00G-p_4$ux{4FL%3! zEw?->hsdcJPZg_NREBwkvr5M8P*fkWW$BfUQa)6ZTg|_w(ydBd?Tj8@#pq_w9uIeeTJJX9vGsh~IDvolv zjx>1>4`U~6y|G=HNh#Xuxom9vgKgi{=A{=)MU*=fa)BhDW4JNVD2+U892)CE<+I{L zUrlxVGP>uy62dU9NNvS^p+#NCsnV}Ax?CQvz?R|w!3t7n>NEZe=lDmmjCXQ3Mq`Qh zo=))6+f4A<0Fd!s>?ntMj~xlp*JH13fT{PO7pAspsCY`{P6JkrnEEVxz$B@}UJ`Ib z2-%m0O*&-|)Fe?g{$tA#u7KD4P5vsGRzy?5OlR4{VDA~6J^N@*?Hz$#Wi!^SR+3|? zFS-0e6eTIzp{kK0TTCZSOM@LYYRXsh)$_X6pEk<+(?+pLN8P9)`qFq;<);A!8&k?F z!*qakq;=!xuML+%_kIYTWvn^4k{8tv8PdG}Kw#)!lMCvv^u3@<&Jd<$C8`CT>9Z!0 z#II0SlM*`BSLwCmBlH_#Qg71Qf_SdR4q9oOMmSd!n9Qh#hB*4cm45JoO*m(DiQWT8 z)eSq0B-UaBh2-V8h*>9I!KXlpm+B@Dzz-?Wp5;20;mmJl`iR*?Nzc@*X)H%MlbO73 z0#}j{bBo>^`L>B&!rC5CGz+fP(5yE9H|RQ2}Ne0JfJq7D_GA-2+T_o zf)kGT*9naP*gM*@RAG)lbgOapzarvTOUB>K& z+-)9J7iq}QSD{;_fj&oQUwGdxPxCip~~4pn$09fuZQf+Dv{Or zelT=UC-_5d+3Cb$CeiG4A|q2vG3BSWJ}VPa{ZU00Y&z%kP?LE0$tcQBIpmUNi|H(p zFea~#=n-qib?S4zPaVNRqN91CRP<6R=t*jcUYC5}%Dw;!a}q~#rsDMXUB!*EVN{5n z$rS1_wW=DX(^SXN@!CL1rwLSQqC^O1)NLq^h_0{Ug7S!L`U)>H$5;jL)`BcK&KWoa zx+KAD-hdr{7AV>icmCP&WHjR=xw2ss*T6zpkW$@u5-%xTXd-n_usvA7mN@EH^(ae1 z%0$N)6_5t4b_xv2CJ(GvL&9p9u_Rck&k(IQ@}!myd%cA7{K9@lD%!t6TdVdNmlkR=v<{T3QdF@TO_Wuq~#g`pt|nNFO`)siTaF zG`68aQ5uKhY8IF|NpUPpx&Z76$53O{@}ziL!?M?0zn)ThbI&U4 z%#mw_!#*EY$2v|j>)s$DUJCQeME5FAi2e7~h_L>0?rMZB@MztNz4Pk&p#~o$@$5W$ zj*f|{{aN-7hz)--;~87?5>cS1{% zBARC0?ZyLUY`BsA4e;!hQfP}Ni^LP$TPBDQ&_@U&*f+2bp6B!Nc(#d1T_@e_OX|0& zepK_>myF&P?!hiW*CMUeppi(6fAxlB=WVoemqMd&YYC>0r76~=*0K)jYf`L6k$}?h z>>^wr?s!p@&&#ZlDXQmdjjW)AM*g=-$Ua8PTAF)0A5KxnwHqz^lo~V^CY|M7=`I=N zV5L#CW~;+Fh2kn%c9m(y?EY&#Q(;>P0nmaxeNsDfL{~}eb{|nJFiDcMI9>g=w`H>| z`~JB6!GxVwncrZc_Ojfn4v*c99ae?@YYFz}!++a?J(1@DRvo6J2Nw6e<}7Us>vg=2 z5B)d<)#}X?3fVuTUq6=zLYMMP(clctV07bG8Y<< zVonp+>=428XY}*yx^AZHvlU&yg-A^LvUz1~;a{`2TrAq=(e>GwRthSSf_KsR)E+s> z%}xVmXFo#~rF3;jW;_68LYzf0TVT+OfJu&;jqxNsZyPEXKg;nH=11c!vKErMY;oeF ztW9(ipXgQd$jrR6HlaOEeNbg)95_v#jZ1HsJyx#thS_7qPu@t3f30k=tFsVV`!;?( zeS$0AwzB^sd+!gCv~Z(-JzLu3_cJJn<~@meVLdWZF|Vm~Eicfrqcf&BWRi~3g(^TS z-XYd=z~Z1r8Dau2G|$SRQkp|_##I5PIi%HlGJ#;i{hv15Yqx}0j;h;0&ypo8_8^j* zAJ^l2!?u*dvkirOPK|}Eq|)jYBTX{PF8_=GzxH<{z_0yH2@osSVo2F@bl!#-*%U?U z*QF@4<*2=iMJ{Qx4OSJl28gx`gmfayavY>sg>y(zrCX7Fw;e8Dp{b~O@kmSCo+ zUOL$7;YE?6HhxqY`F3|E2O02vjJm6|N$nIW-xXib{^<2Ah0C~34|P*RF=51q*`|aM z*|Pkl2@|6f;r`8^TBSzcsKG()R*)CAHm08Fo|Svmu>04SLd-JD z5FY&EO)u^40a(Hl6}IPuFn=S2+0*qO*lI_*`6H z_z(2?`+rMm@y~z%wF$( zW+nAN$27>koGwg=qVEUcC$5b5IV3G2l64C%`AV6rQx2VuRmirYlo)!CZ z!vAmxpLfBH-6i}N63AjQtjT|>7AoHmfjr5RC)4{oY4gvBiYnM@wQw~$$NY+Nnw9E} zgr24)4%)@ldyVNtni-FNH01fmLsZtE6BV?~{b(3Y6{`t)DrW6~(ff4juYIpb>rX-J zQ=5}7UAaQHGUsXBIk!XtQ3Cb7HqFsyk-#LP1!%U_G2fN~w7CN>iMY-CRQ zz3Mh4Ts}bghMBEIOtB?{8@zG~sj*q^QfsW%C-v`AcjuAcwGD~c$VD~Nm!g7tg55vfPV z8zn5>E$U1I(eO*VXe4X~Rjm=#4jU7%z9uQKaar!#f21iSY|X~og$`4ISjq%w=~2{4 ztwX`W)V|zszA{JDiK!YVR%-~K6zPCj7g*IM47zr*XkjXjcu^NQ#)3-I0?-z};e48W zB&ns}FR%rUQD{3K9wI8)Cc$J@DSK%$^QRhQkQfXHsKS+5vwvFn7&kLNx=$gL)+Ny9?{7gSBm!evpk))N?GNEBeqY*T*8jAV@dOCViV=js`Z#Z=(|?fc<>e>Im405_YG7o+5$n>=tE3bLf5mT!qTaxnma0r^j((Y{ z(t+svEET@=L#i9bG1lS3vl=<;V_Z$+hF@mERu1F_w;#^u*IbuWkL@q4>EXjFa%p>C z=}Sctl3WQFX=w*A%FRq+nfyEcxFs12b=M+21;r*mOhWRlPZr8M*pvrW%%BNU5t1)D z$x7~MnJ>LZTH)+O)l#moKAC&G@Y;ElI-RbRq4f8~*gR&U7l-qmC?<;scxQs`XZ3Fu zlEybpV@AJ8?kE`Ck|W0~#N9Znf1XT0T!$lStfC_cGyo+p!&w)3GJ!={V)ZdmsrYk| ztk^owujj46V$b;4qn;djm@^nJS&$-61#$**=MOu!lYwkuYj&eQlw1j18%&a3rw$(nSNVc&bDJHE) z$Xm!4xo_jKLNe{%Mo|pB?c7g@IOA>RQ4)H;#0saKWY|DoTyAwKZ_>gKkc;@iLXdT| z1Y_z4gZaUYEJ^K^KU(4XxE8s&If*T|2_mHolCQ%+q>Ukqtk`&MS#9Q2gT6lKa~WPI zPbY{Nhu1~E!w}=30`%d*7gYxCfUv^wb%>)Q`JcmX9CDQ$M;7z`s6#HPVzA0` zyA#{oZ%qV89Fjv22K%@>eG}s74F-Dv(qN|?;34Ol6d`~{HpB_%dj)5MeaSui5aQ@2 zgFOLhu*aSKm~*v72zE9L+j71;{xZVe3So)x6^Nso4R$-E!EXJ_DECdyH6lW=Rh;6x zzSJ-dJLNw2y3alCv*A7`vOeq1_c+d6vXe{pyNCY*arZ@Qa~u-MC68d(brC%fu^h)> z@tbqs&$y>q5sF_c8_Klvy@a!c@`8K#9>l#K$`3H?@ldwD8bjIqYD|Sq*jNOrA{5GE zHk1Vq&PE0HshrX>fQeZO-xMF@5>3)^tMvp8GiUU3h9 z0dZ)D!JdLN*b~nFf^*G_5NtaOJL`OR|5b#&1H#1nI>e!!20IREu-pGCCc-x7s)-Qn z2u__us5;*voI@q*9=-{2=q`gj0BNvO&i;^dO^Og~BMUp>e6Qf#E!F)q_wYlAqsNY* zy4aq;V8F-S!!hS;ixBW^7P#encf1yXzXoB+@D+%o$L0d?b_@o*^|hD~H#y&k2mx1d z>LkRX13!+l#rP5T@LwQ~9%~2SDGUa@*MavqUqgg|C$hkG=X(if1O9<~_#VX3W5)yV zaSR4L=N_JMzF83hZe@X|o$uDO5%|jxmK47OarAgI0B^-$z?;v;q}b$qRS^PS%mObs z@WVJ;jQ_wr{AY-x#}5SHy%-F5w*%kfd=nxBT*s-C#-q;nJkAFEUH9;(5J!*C1mHOg z27JUl9Cp5z2mw!Lft${EbF~nFzX)MT@!JqbkGBHwW()>=#y!01z>5yNkOiK1z6bGX zRdBo}(%jv3Ag$9chV<{hV< z#hK0G+&vaW8i#n!aJG*{nYLkNGSx&VSw?W`$W+D9iO(U&IRJ6on5P`)A;+0?oJJOB zB8&5in5yBt`QNEtBO-cuEi|Q zPWp^u=*acFOw(~i^3;!I|7ZoDJPbq3y-4Cj>NoOGN8$C=OK zw6i$(InGXq1;ZJ?Bg%CfRwmb|2+38$sUz12hK^iMJI)NmpBeK3$Jy^VO~;wc;xw{2 zXC3DhggqynoN$~M9B1Bf+F6|0EY98am_FkWe{S*FUXOBZ!^-5UiI7|)ICbQzV(7?q z$Z-xpoHFJq$9c$cCLO1d#hJ+Byy7?~ApXK|jyujV$7wsxY!;`L#ku2mqg>k|UN)Sq zzZ>Pc2`iIpM1Ns`MXB0z6uIC+R4&o8RIpR2n9jE0u(^;Hm7U$+Wqg;W*Qd)6C*bW^r!Z z8Ra?y?>7zSl;fOqoCU|3&*HSRIQKcuPKd`0XMAUr>o%-Ru2B(^tAcbulJ4{}|I}9O4fRXZwGQ za&5!Pxm$aTnZ4nRC%%u|l@kmF1`P9uvmk;Qq%aZW%SG@Rp(bIftt zjx(FZX=QQlxGT!F9b(3Cw%!%xx(O?jYeav{n0GtQJ&rTsICY#l=`)I^clseBUcSWN3Lfb=Lp0R zW1exGCmd(mahh42$t=!|zZc~?1MeRj&MC(^={O6HGoQt2XL0UxoShKgHk|R_i*ntD zmB}?KLUPq`>c};Mp(EGRjxz)Cv@suWoc)f|bezd7P9uwR)^Scj%o@%K$9chV<{hV< z#hK0G+pK*vkF`Vu9M7g$MWpdR-NUjl_I&xJpbmThZI0qn}G3F`9dB|}l9jB4S znaJXt{X&e-DG>_u#1~?8UcknpGcQ6;ZJavMnRULqH@Qd<1@Ud)MBobi~;nabs zI^Q9OH~>);-;_H&!TnyVPk@fh>%kir;Z?t4)M4{OhNRBZ?8k_afpUPOk^SI&i9f-9Ea!?#GE@l;}EkB z(aJ(hJKwFFqaa%$`UJ6ga};C~HYP|_gq#+$5DO0RutV&HusQPG4snk|OgKaxr%qao zI^XjSF$ZBY^+(+4utT&QVmb@abiSK^I|{NHVo}J#3^?= z=@1JJF`tEKJKuc{u@hp2AjWTqg4~9U2{I}|PBol5f{Zxd(+)8MQ4-$)ciQg|O^2Aw zLNuK3tV5iFSSg4T?(~8~%sWIo3o+|_ci$M(VjSW;L2SP<3bG9w6Qm|WP9r#V1gSdT zA%{2salZJb-02~Qm~@Cn7GlErUU7&M5ElsIxH}zlh_*w_W+7V6cgIK+WIM!#g4j9| z1-S_u6J$h$oT@l=1X*;5#~oq{;v(_wb%;F<(Qt@~EJWS;UUG=z5Elz#&Yhldh*^hd zWg(`W@76CyLAFA0s~+{m7o#AXurWcZBILA~g;;QihaF-s#Jj||+ad08hzW@ znMIp)z8kkhwAb9j8KF%Z+9~Hc>5dDIHlIanJKuedb{B-D+fInFCk$C5^3FmtSXG8mudpH3xcEr$*JJ&IHY>N=uY!?DAH@V}82%%MR>PWiiXpiG;ar=gQn1UFaHMG5sw#OYCB7`=PMXNjCOE??a z_ua#Bh_Po3ZO*x#amQH^LThEwrk(HBFGaL3L71dlA;#tmZS$9+q?_EaDne+BS+oU5 zdl+Yn+XL=lFT~h)3~jfg-Q$iEB7|1QsgrJ_&i6ddhV~uzFb6T#Hnbzob=VzSB7`=b zMQb|W%{NE18z4;5%@AY94DF0_z3OO-j<%3Rn|Hnk9qnF6+by)?hPLzOm~K1Vu`WV! z8^x(3Y0deb#n~kNwtF}NG4_2!n{lou+;Lij(3)AaN$0z<7SUdF4`+lnZ)m5S>!dp_ zINE#`t?hjGIoe$imTo&C#$GVA@miGhHg_Bqp}5s>>PR}`d{5(Sl0NAkW+28+7}^2n z+V74{5ki~HqBWfFEY61ZvU@lMG4>-vJK zfEYVvXvdxFm^-#b2yHft)^ff(wnenBLYSo6A;xR~x^-I=^d@&35h1WDP8~rP9qe(O zEo$Fz4^t3hHjdouV0+xHAwpmiS+KhEy@a!YecwGChZwWr;G8o(<8HGe1lG!eO*`MM zw?wcnL713ZA;!X}?v^O#CU>if5ZGcCY{9`E#@S-_fP2^rF=m6a-41q-yG@7?SRJQM znvFW&^EeyWcih7q#F&k-jyTg{cWa3d*mM@G>3lbDk6<@In3$U(#%!o`#+hDqutf)3 z$b!u~--8ZzuY>Itn2mULZjWiU!`iCX zQ4xw+4X2KnBhL3U&L-xQ?qLRE%tiwToN2$iHAM()G7HvlzOy(R*vszW6vUWy>Q6Y+ z3+^^ALSXGI*sSy2{nZF|JA{cj4l%Y`KDK`~in-0*Y9iz`f>TG#s`DMf*<$vXdpH0w z_HOx@a;AseZBm4s8dSDCSM>HX=e!Rh&9vE;`ubI9trV;U1u?O^w~+k^-?)p6>i*{Jh9kF$Y&$34tJj9n%lN1W-fyR}5f zX*vtmbiSLv7Qt?SFflhnjQx-DamJZmb+APTTgZaVJKuv2cCUl&7T7w0?fhCyvmNeM z7a^xnoH}CGobOqjP0Vk*ha(VUSIWnXGd5%z{li-;L}zGO*X&!x@2nP(DsM z(@A$*aIpC-SUd8ClP!53Kxo|)WokPy>%%htQ5Q&%F@su3dMoTQt zy5pu@(PtH6Y|&zD_oFWPu z5QiX!@lse1!=P?}EApJ4pQSHwlq{U&)|(rBn6y)l4~JOdNmMrD4VLr6oNLk5IULR* zA(NFXF(r+g(m>{witY&Iv*?Cu7; zvjWcTc*6^~IONJ9i6xaqtaD91M`yUbjwsoQB+d(#{@2_fdDH5#^J>_0$M}JD$z$tE z>$opUd&_m-ux+XS+3xhUN@IduS;gcs~B^LHEFF&j>z1FnTL*&*>%aB%*q80 zLMH8X$#I#xF^^)NUzePaxfe5c&L<1&l2bC1n#nZg#dXPF$=r{*jrj{#BsW}vc>wbw z=9{iaZkAah)i{Q8%N5C}%tM$bFppo6{I1MBm~~9&?kfV`GR(7>e?Q_a$Gm{~{)o2% z^9Wh<2NAD?xsLhah_@2+B<4r2NFEpdd6-+6zja0OM>3y}c^>oAS0qPez5sKTV^-h2 zBKe-o7h)d8{NfeKOEO=Cxqe13 zcV&4czvq?DY zoG}JlSGx)0Yv!GYus9p${97Q5e>+6=gNmE2fPEF?rVlD^1LEK1{I@!P9b&Wb+gjBQ zj5iqnkoX^T{yUxjUWl8-Am`l}M&wzo)_u+UBocuyr-S_X6L=(Uit#k&&?24>~F-$@^;L5w&7%j zyar)~{}$)D8^XMgLzGoq?suCBw|UrY_PWhMw`sb~({3~4HqW`uY_y@@(_S53#Nw)e zkK}eOFXt4|JN13$k(?FRx(suVaBB@NJ7j1q=dP5bzI=l&0n2HfbV}9$jOqKG=&>e4 zJ9^wE0|2+^+cbch1I#SnkZ2%?3m99(aV%m~WjG!&Hbso<^=%nO)iLIlV4PkC$M++~ zf(-K!SVHG;ImlM-HRIs4=gvW~Y>OaG8Ma4| z{So9*eQO5NbdYgCG)0Gt)I=O#jTj9XMkB_ah;hHZb;D>l#%?e){Sq*CiQ~42QI}yn zV(f?*ck0_PjJjh?fuRYxfH5YH+apFzhI+)<7BOzow`mwP$Cv>_lPv*bi#T>fjH(Pf zBgUqPalO7R!>BsO92n|W1dP+VBGF^)xy=k#4LjJ9K(0YlxAfN@kD_ePAC42_6!IAT1dZ*`?9h+}MBxxqFk1&o8@ z*b_0DGVF~Q`ypMF29Pnad?SL?WN1c^Z4u-avow&JgUkT3JuNd^ z#IiqvRAo32K{iE@>-B9JNYz2+02xg|P7lEHSOi&+VLF1GltD_OZ`(i?23$!1vBOh1 zNlV1?L!>5u_@^@d&ahf?Tg}%Rs6QG6%>PQ;^gBuzWv)EXXh)K~BmbJ<+#q zAPfDjCxF-{e4L~wVtFBgv}HIEL5@X`=k#4LkhX)I0fehNI(j0OA4QOs@kfxu5#%X- ztLJavx8)#P&u79Z1vw~|lM$pT!>I_eKY~1}Z_PlO4l)ji?JdVidLovWBS=Gr#R#$| zg50lf-9Q=+vKtWFSRO!jiRIM@QkUUO1lbWm?$ozoAaw_s0_3}CZ(vL;uSJlW4An50B=16kk_r_e6}WLpaIqF8QiKF&1Q)h!`hjkc#NrHjIT{R}nC@PKgWgcu^epM2xl!yCcT2i1D1h3x?5l zj5A=ouY++^9QQ_ymJE%EaX4Z;rEm2@QxM14df|pd>sYuDkAvda6ET`H?2Q=vBgUip z)(oTR7~^2r8H@n3Pb?2akcJGC5oAvUxnJM9fixUsHz0NZBY^A@%R>>QF2hs=*%3kR z)VE9jv!4L zjzp0C5#&*QYX;JEka0llYl zhPeo`BZAziZ^J-XHV75;6d?aG1sM~|cOpnlhIRzm7C~;&w`m|X2blrHj=1Bbx><|D{S8Kfurwhe?;lGxq=a$5@W zqF7#tAZ-~=M37?<$Jh;q z?F7b&%-JQDS0hMWhBFalM+CW3--dzI9b^g+I}{&4#>Dbk1gXhTJrKJk5#$zqn+C!X zSdeB05Zm_~K(>fw(}CD6kzsQL*%U#p*SBRLRR@_k zM~s>b^@y=8V%(x{(=cj|F$0EHM{rS9B90vqqbkGBh_NYRT(57-FshC*2ZoLf1&q_W zTK2Apu^_`l#5gH~R7BslVJs9~MZnOZA6%p%;GF^)xy=k#4LjJ9K(0mH6J z2p~tra&H7_$S`c~g%8sZ>Z-?bsJoz(&4pjh@qkfscKBgp;;@~FNw18F+Q zI3QyAhRF!BCxYCsZ{0u|4ze2%J5i1kX|hW!4@Ho=3{w$gM+CW3--dy( zP9OAa3XpH5F&PufHzG()hGqoW7C~+?O9QDn$P6HdQjjfT*&jiwG8~8?nL7D~*o7E4AUkYf?# zIeixlr0pPQ6q6L>s92tiAT1eM5#(?Lc}m~vrKTqivh~sp$=VbgBSu4p*@&?xV%)E9-7p%Cu^Wt!b}-ogLa!uZ)Mc29 z7&{`yo%%KmqwW|}VAx$8IFU7DV);%4smaieAlo9yE&4VMgdHbAm>EF+G)>hlVmTH; zsxlmpAe$n{_4>99r0O7ZfSgT1PUm6yegs*NVLpPKltD_OZ`(i?@~$L+w6yGolPVLj zybwX!GMtDY$7BHHIeixlgbg-9oHKwtl7bu+%a0;R%lIS6;Ry1SzSUKxBo4B56*EXF z$U(83j37-JPDPOYG7ytT^{p95(?P}o*`9*z6U)mHq#?s%1lbco?$@_&AnYd!;_L<_ zP1jxGcr{|wWjGTtcE~_P?$ozo7(0z*5-agmmY-B9JM%6Lqz-XqEHvb-u8zRPUK#xR-YoL+j-|=Z1 z01p_1#5e&!nxGqDxGDPoH1yW!|NjjB|1UlZ=AVZRqHf?{8`Ns-^vS0<&OVP!mus+Uk|-K`u|w){}1`p%>Vk0A^35;SJTY=IT*eg z{jY-_jsC9;{(pu~-Td=#m37B<|Clu6!DgGoy~)~&09O0u!&DMVPj7>VG|#G!loQ~elDP5vo6|vvSYJ8 z+WgCo&8MQx#*WRWqs_nX*!)Jc*%IDK(yi~+e6$-&?P_kfE48b;-M-YW;dTd8yQbS6 zP3>B4$IaRH6gc6w-Hxkd-EP6{ws04_9+*)4cz@DTj9c#9uI6@ZU2?m++wDv38g6$m zwQIWF(bTTxb}y!OZMQp}+AX-{dOd!rUCr%w zrFM0<+n3rk-0om%*L1t1sa?zMUQF%UZg)DhTX4HAJYnJGx6k93+SS}{S87*xyM3u$ z!|e{Hc1^cCn%cG8?#0xu?RKYAy9Kw~(x1k!-{Y6s)!c4ZYFBr=eW_i;?GC1PO}9Im z+O^#7#ni6tcBfOj1-IKWkj8Joz5JwcPH-)UNGz zr&GHHx7#w9#&6K$m)h0bZdYnoce{P5UBm4TrglxYJDS?H-0sEHuI+ZGQ@aJX+cK2K zZ^+}9+SS}{S87*xyM3u$!|e{Hc1^cCn%cG8?#0xu?RKYAy9Kw~vMi0?GLK(sS97~v zsa@Ue_N8_Ww>y~HHQnxLYS(hR7gM{o+nrAB7Tj*j@-%+SJ$|WO&FyxjcJ*MV9@bv= z*M(kG(sfORiO@k zcsEE-*XmKW;Ud1UXZy36%6UDt61ddW^0%JktCF{8ofvrXv0`u5z&UJh`E~Oc(r}-Aa;~F0>H8dy&~U1vJL&nHTn3=J zjMBSn1*3+F>jh+BoX7Y;zJ&Nio_6C2s&Y@c?-RVtK19dTxZQS0ww!bcXl^?w+W~AX zG`Ag)Z9ldan+gvU<~he<$-JyE)TQ$>{lC17uU@FpaTKL4F9Y$CoIL`Fm88oJ(oN0l zSu{)Bg5K&Wm)=WnmwiknK!0$gqHCo9g*|{yKKNuHR58uHosv1Sis!mzeBLFniC5 zx52QQI^s_{U21AeDM)h32lXyyF(D~G%!j9jE+FwpLtYyT=^J!hC4gj!ZwRgCK_;bQ zxq@AI@*I<%rcylfR}BsebN$9O=<;A!ju$-PkI@<&f-F6rzm(tM!Tw-?>d7Vl>2QAV zl3c>|w?1}BxB-`daULx4Y!N)SwetE*95PmJ-0iS(>272NgDZVI4&3USI&f!j$AN2u zql3j!A$&gH%PUy#EmX+j%Xq|z;Z|-K0W|PJ1#&zJ#V88LU+1AvJXd;PB5@lWI;u#; zW#o}d6=TjOVX-ntis)4=J{w4{stwgho&ry^DdklH3aS+(J69ujqQ~vXF?yHg-djk% zJd-cIE2+=QGTCXL(j|l2@;s~+^1rYq2eD4CopFLFmt3Z-Eug)Gg2iPznfBhE_jZe+ zTIFRoy_;D4C%lqcP=qg`M9HChBe|dCx|7v|m*Rp-d{DuKH>wC;+96zfX^YK#CwO+R zq#Q4Jj=x$6apGC7o;A7BErm)iHD_;`hvFvle07eFkJWWNnfRfCYMXa`E?IGPr3*$* z?wvimLXY9*RJD3tMe?hf;#kh|V!oi)%{ey2J6$~3+Qq|jLjq2U*KV-KMiD_Tj0cXS zSI_3br*~#Ee0o`}Skk+dZ_W4qV(x(t14u3Qwv2zjSW>-F_#C5fWp0H>8Py2zWTFb$ z6e&~AAtZ^Wd4itg2V6Xp>jxND=?o21S8~%Udi=0|L%FB4oYJe1Nx0IJ`9WZN$WlsH zVZ~tb_!If$%yd3E)|33<6ZsOaezr)O>++vR5t=;N*QF|PWALc55oBM{`1Zn@6_p z7!Pub$-}3ErmIwPfqEx=?of~6t4>?fQ_ipHrjC1WL5$qk-eKg@_Q==^BW;HmxEj90 z!0qsnp`W>*gN4$XO9$8G3hR^kgPG^#Fofsi;7E?&kuQyK0uei2$ijvSG?~eGoy~g1 z5WK>X%;I%3hXaFGY~*z+<8?ag6+`d}N3uDDDmy~OMqYPkyiR7lVhCR0NKV{tp~?=g z*vRX6#_L4ZD~8||j$|6I$SOO$Vx#oqivCXeaZ7(pKj|A}P*16_N|+_O(w!Q3P{D4^ z1Us4y7DEUYj$|stSat-9jl7I{L+}bm zvNeP%JG^2uxQcawrwYTlB9d_Wu(XD@qxDq5iq&j4Ht`>I0zMY9>U9)-k(fCJ!RA!al>A56FywnC~hbT??H5wgeM`Qk`U>- z2jr2i{!vKKqXnhtY&O;yJl1$iV~rui8ox_pjf=%v9K;8A_9ZDrw?fSuH43%$fb4cc z?KG+ZHD%Nk)QnNnP;H}*K%FwG4ORQ5{GNcCG-?rQ)~L;gIVNdT4XXZ__{O0cMomC9 zjoJ&Fnzs-^`CP&K2@K-G;JAs-q>ZHHknpeMrSa3*gva0skGC}8F@%K2?^2D&C6rS*2p0Eb;bCdsZm6xy zx&L%B2{mEV0jO!CTH-Tm4r==&;+uzR7bOx`p-ve!3bmQcpael}H>v@( z)2Jz^y+$1%QHYPUQF0MGY@#-fx*VP;3kS1_(#$3b22T{crHO(eBnp0)CJHW=DB>Vk z+>=of<^9PSs5^`rnL!tf+75NEQFW+Eqjp0*V$>wmv{473{>Z2n)E^r)2lXdL%|rdE zQKz83YgCnF{GL%;p?+Z06p2E7lqiym*kKbZO&;UvRGPfU6Dv)6Q!MCyUF{m3BIpy) znD{vgHQVQ-1af7&NcnKU!wKrii@+4=03?pgu1ELfll`4 zKf#bIpFEq_W8DmMHztLTi{tWK9)xE8Y8#!=Axu7cHGDnSa$1iUtW%_dkZj^4pS+Z! z6hFRo^)W?qJR%*KQv2IqvP=h9u!B14HR zjnI82^m`=zdDk)+T*zH*sgVp_d(AbT62y)nm*O3y(vVhzs1BG0FP4HsV6=-7q6dhW zmU$408#HKSRJ38ZmsDkdTrO-J{B9RH&FF=(V~$Qeb{ewLH`k-t44sykQ3g{8dU-LBXSxyIHi?%9)YYRf)T=y_ zu__HxcBa9jI{lqw=8gLh7f)tIjfh=y&5~FZP5r4rqlytLRE+pa#Vl3@)-uz`#Rx7@ zvA)--7&e_K600DHcVz>K8`Xkg+K3eXv&+x6ZTuezvJLleJIbR7}66dMq<+qn&*9M zg;+SJb?M2rE|*h}c)n^fMa@Y$-=sd#%k}xci$(<<{z)2@u5u5$q}uJA=EZRTHk+5; zOg+%6vi}a7mmbnsjo%x!GASlAV#1_@@wTl@0F+KhIX4c@bpLp*jB0?wdQ-5a?Tj@Z zRGoI;m~}X)deD-B6hzIwU6nx`LmwnGGg$rv%}fXKzfNlt+ZaSpeQnh>ld|3hb|RN; zbg1iSVyVz$-zMAeumC09&a1|>T9Y1Xwr@jM$NM(FysR(ul|sYw3(M4PAZfh|v$Ubi zG(2<(%GA8-S6P0k8LIS~GFE7+-qX>c6>8XfuSTfzmUMTz;k8vXLem0(f`qg0+H0`* z`K#&HG|v)CT7he94;b}qA=d8T_g-D@zb2_p%8|M^R8oVPwv45NH)zXfWmJD9Z(o1C z+8t&>-$|dz!XGXuscF=hqYjN)H?!rW4cYgBd|KZb8zP>K?U)kM+A$g@+A-!(Nrg`P z^H%K`r6SAvW3*$0ejkez*>*8>x0m4k&9z~K_n^Wc%aC41{DM9^j0}m5Q|7?e5D=UmB}>Wwrb0oL4oyya~jRGzrYgg zwaGe#0F#C%q0J|OL)LUMgvwS7Fq(&R8C56QErKX_rwtAzs@g1mf(~Mu*`zpa$KOJV zcbaX=fO`6>q7&<3g{6YGZMzvf@~mxV@W{)yaqxIyOplzFjq@uAsB~vx@XPsp&vixB z<*5Euj1%b3)7q2Sp`$q59lD0BTdC4eF7>c%#1Es`&kPSFB!X!Lsk(QX9@(nWeNvQx z(*FaG)@7^`Q~6(BWOT+7Pxr8O=xNdV=#BPopv%qWU2Nr)tmXc}|2tn~$x%HEdWge? z5PqKU^I@!`O$CHz;YU|iddtPQ3PivfZ?DO*%E}`5breeVG;?en$PY%bwIs_zp)C|s zNocjC%R1Gp7i+XT#B!l|D?OF3sDq>KLhjNeuig$fNFp&yp1F;mRF_BWEQelKwjnu9 z->}f+UeSV=y4vW9x~Rlp<1kWSD`^>-v&czjxI0FD@MKSZC=T|{BTkHwENd7jXvoaq zMC#a25L#937mRFJN>k3b4DwPS1!-%0l%p|Y&nxHOS73e5##?Z7Qn)XqaESm*Wkv== z<&sjk6jJznZCuzmJV-}hjJ3Xvl_5BXf`BW;-d!F-fO7Y$VK$KHuQX+2Quu6AMYdIy zWs2-S5*cGk9!Y?hyfP)(sv3K zb~lj(L}FQahz4VLMRMJ+wSHWWSRSAe+F%|^8?LIXBp&6y@__U!@RpZZI4f6eR9y0k zOa66nAukmd#>(2DVmw61Vy&OP;Q>q7^@Ov6sOHgg>OZd1EKoU`)O}>g@rNj9kEwn+yjb}VrGW%Rd?@~;rUjA84- zSZX*%$pMA{f-WoOL`BsgO01%g1)_5k3PQIRgq*g=ghbHD03P_mj~dN77R#y*}PGiBZ1E;bKHg+${h9SMJDj@ zvQXMCB&Z9^%T# z(srI{D?h}hR6g&QD?`M)l$6nL5`{#>lK(@iDnlEGOH_Ed;gumy7l+E))a3k1ANt1V zk-bXgA*vaAU(^8QK~%W1oYbiFvp)&6e(MZrLMgw2ExHu!i&bp=uCjuH0k$q9UZIU<%vh-oB^oMO-E1cW zppR=&35eQ20ri(xY$O0IZH9-hd{9ryHin^iDl$|s#G|rYInbXJNgXvlgcJCF%y^j0 z=R`$41`|3*6fgbjN6un4G`up@A^jVNR}PZKw&h`EDDmXXc_H3Z0mI9r`{#2@EH{3f zZ<=ydWoQ*Q^)4%~+(7+l0`^fFa_|gMC!#S-xalXOFT-9D%3-ipz0l>+iBK0&!E;Z)?L&yR&mjp z^qxqlN|fr6XIZv#Q>|t-M5twGoCh>fc>(@OSgYIUJJ4(~n@RmPe3A5AuGEKYY9S^Y z%i0%65gI`23YXJw=#C*(B#LUiW#w*ZFipiqo0ARw1{5{)FO;aUcBIns2q`91+M&wo z@+vFTjs!a#YsBG;6dzNgi*}~pXR_xjNL+GEd8?!A`rC`@8#fY{bL?l1>!5o6*%Y~~{neDmdj-$nPiGMrW0SD*SCl`D`nbRKkyR7Vv`7|~rYWvV z+P|a8OtVs>22D3|P&i8fh+2NB2U~S;ANj%N;G2ih`ocR3gFHBUTiT&Nb(?qS)4(0+ zb%9$>-ld%UpR%b!x*}0b*J}O~OA{6q^#odue3r0cYQ8RMNib=tcGI1kw8_$>wctWa z(MenEGHELyO>lR@ez(jTXs5Z+VJF+)A^=a0w+VoReL9n{Go6IZgzQk+kpFScrwUk& zC{T12&RLe$*m-oCf}e|fL$BSy)Im9awJOa_wZgt+Ht-JqBN9lS>6>UJ&oT0EhCx0s z{MG;_VyQr1l}TlEJAf#~Vnoa)ZxPX8Lvu0A_=L>LBsE2qRU1ocmmmqgh<=j$1skZW zx1D+f!M}=$sY;HadH%CxnrghRVN(}2TqBX`cFs$Vwj8aXLJ*rcWxfCtTh#Key}PjZ zhrm$db%j;X--~t6eVOdp*~y-(V%8phYIsrDx{`YyY^ed{P>1ea&TA@Byv{bVrt{M^9&^y;$Xx7b!1_fF;Rr8lyt<6r`mBrju!_;m3 zGi-jj0fFB+`<=DlX~JAvq2|>M{ZP7aY{Do_74L+y1Ll88^<2WD&l)Bw+R}%Hdo7x2 zL`XP`q*9Y0*A{jb+0`gXI&odXLL+8O!&-yv>F}`q)L>+zes>?!V%L&N>W;lRBO0k5 znc4tN#06y7>EFjR?2ovzVPLd@z63WhX?woL9HlGqZ9RI1C>p_{&PsUMnWmXzrLZhl z`Y1yLqE6PKBV=aRxguJ2bStt;B!3g@G|f~&ln3bS#Ee>7n4{5JTbL~}?$d5oORkc3 z+$#cvtRLb~?kZ_(tVLfF_*SFltwHKUzlWWW^r-n6(hnZziwxP&zw4xb(tVmQD_MOi zSww<6H&m(z=jaYeg&U09Lu1{|7GH$#`Pt$neAxKVOTn9Bwnr4d=*M4aaWI)g%8E^PDGK!1*=5Y0XiLp?D|;#3S})hgz+y>vBDwskVd`Q2aSmOYlrWvi?-?tV zi}tJfU~NUkjJjIkm5|JD8(t! zWkyV1zOV}^E=L_$Q8h;>Ym^#gw%OyZX%BQk#bYHCCo!$o7S34lSS&K;SVk6GoHE5@ zjcm%D;$flZH3qbPf+>6_^j;N;W%?<_;xW?omc_#q1O3RNb+pG6Fdqgmv}YDnM*&rk ztYEDeR9&(!HV{n)ETMFH1Hr!jr47U+7aRQQPtZW1cbNuaH4TJ%duby9K8ed!5d7X} zzxUd&E_Miwgsx`@jf5^)SX)seafaIp?BbEXRwMEGchE+B-t_rzp^5msN@Yib-=c;1 zZ=recw!!k}vfO=Ce3#|!WoE_OhR>J&(;GDn9Qycin}*5!Tk1a5yqzs53_cZ`hE}I{ zb8gen*0Ri;N;DL|OPhuTgh=KY_^bY3K&8^A!JOJloCX5Z+cphzgmg~RFvmiZ>hrg5 z8Z4WwWdHc>!mL`}Y9X7*D-=&^7Am#~ z^2xf46)~sU&M})qTYmvv`mT+v zqpc@COxkJ7k*3z{;1shy3|AHWU>fZ=9eB_&?5X6VNH!8>F`7TUIxEMz@!)WgFgW_9 ziFP}%Xrm$bL1&t9)yaZ$fb#H04(D21(uk3{KDs(xpJeiC;Fqtq0iT^mWSLQ`lt{+Q zUmP0r<;qGiL=;Z-mn_^OhrkFR9iA;2Lk<^18n7gb7&gOY!=yKow4%=BlK7_)t#obF zHUhoacP>+uo@%el#OW;;OTVek*oI1%C0+*doL2y~?bUS0{pv^}oi^VuS zDLsP1RUO8lKBT!Os-#6h!4*D9Yb*-n?L>1OSI1vPEfl8znV@*u4Vd^72g!}DD6^^CkN~@ojB-@(Auy3Sm**ZAU#(1tj-iL+&jNmi0{58}JblK%z4_!*5sVX-SBM zYM%{s8`4;0syU4=Y_=lg2t62Gyj&VX7at+1OxrIt}tIf`*mZc{W?=s z`OtCmzw8O^SG_aTK?iGyA{`u+NN>`9Wi{{(+OJ<7mS44BrhcO&(VMhjQa)?JHlw!R zknW{z!5cSWY7{BqG)PKgtCze9`$%rNny|}r%cIlVG+`QWmHt(>1(OZBr*y5v7ObE4 zh0Ymu{3li+R?&9bvq*|$*r__}BEQ2$8C}D9wPodvl|Jh6H*d?R{yLM1Hcz~yEgKjd z?gE`n>l`g7Mb4SlQ|75YErf<_NrMs{2zrTiNFX(26xL6c86{gQ7A7`Bf~y_tql_Xd zbyw+6GL2cRnAMo6bXcXY3j0lh;1$?Ro!>4yr{crc`|2f+|O!eQf`D@nwH@{8Y5B}d+-7kql8g!MOAvrdd zb5!_xj50Pm83oN$_{sxzS|Q*Y>sBG?RxSUNRQPpUNVhZO&sNjLk0YH5|DFQfLJEAH z0Slu9w4wmbguoD%HR>Bx0~AlLiNta>F=iV}(Wdc&`$lt_Axbt>ZmZD7>;#1_cVZD{YYIVLps@ZKMgyI+FnA3R0{r`!Z1}4n*q8o z;e}OV?SQg|ldWf%=@QyNh8SA|2cL#Fgge|7YO_$HDENI;By<^7kpx-P^8HYiTc_7( zQIuYX1#G1Uq2>o~$SdAe)&7{3Qm1kjt^rA0tcZ3eQDpUwUiyGx{iM<_>&}`2uM?95Pp@c-iFD@y#Hf1zmpXe_6agjADYJnWvd7@5AJsdUI zM1&IBWG~(dklSczy(MWBudfCImrX%Lr<+Vw#z|aQ`qm41fS#bHL?m*H!-q6=Xgf{C zJaJcOCx^82ek6O3d4D8(XSC9T*}Fy=6wJHER}*yR+B8Ll9rFr1>J|39SJ=~IDD2cR zb?}U$XWEM9_iXZ*@@D{Q8@3pnpFB91hJo`xM@0eC2DF3YXuJZ38>qYiXmp6y0Y%7N zrohHw$NJo&35GA;AWwApb7mKccIAEy2LfaG0E6R;HMzpU{-Cr&p{P7*+BiOkM=aMw z*o=|qbdX#Pl=T3G#lqSqmCau;6B=y9N40EPTY7FGa=Al6Q8^=ZQTWioHuimft zPn>UXo!-josLiC{s#^P&oPS{=bUMYHNgLC*;h3YI%KYOPD?Rt6y=X0M6vly9stdAG zhvWYZCmv>IiOgoACr5M485UFDJ2?;0KxXf=scqe{T1XX?uZ8w`7VU^%ja^`(Q;Dz07H}5P@np6kVK}(S@mm z58Q<|i+vEkuk?SoG63q3`M6@<$k;T&QITR~O>ogyc7Fe>-}>|a^_jmOzMVP!nzC2a z7Y;)RCtKNj{n%h#)5|**|5>K#F?eZ z{$julNr$Dce<|ZykAyhfG9l8Q9QvItKkmmBYl_X2Y=Jml#>&3Mv7XNY%zG^d6Akli zk7<@SmrxVmt;0vOm~CEC#dN~$i^``H@+YJsWQ(nn3TyI}UN@s~;cl0xPBCItH`Ee?3$? ziRhJ`x-SA0=AVwhBfi-d!|`!jN{Sw8bS}xb1$VhD>Ca)4uu}QkbxpiX^JO48zqFhO z8Lt>3-4Q$}m+8=6x17*mLSKacR z<|AK_w}L9>*JLP%cgWS+X<8Vh*{hkfTK}=4QvnB_@b`HD{TIg1t{!Rbk(jx+Q;5|W zU6-MgF$GzI8+}iUqD2NOAm&HrprU3xrkG7}ytLL8o-eySA-z5}9ur`WG3sFB7d&hf zA%e(qqdY8Z)aW<(qhCI!#9(UJ6PFMi6ig|Lzl>^*gXfflq?FVzfsnK!oVS4kOVfiH z>Ip5i&4W?TQBQ+dRBkNd9695=qXXExM3pMZsxEMjSbxeCH3>&ln#~j@l zzSthD0@JC`?DKbp5U8=ekJ!WDL)r$-=*9Wyv#~gXd)jgX`?6|{DfjIXV@`(gvZR5X zG&UYBjGdsG{sE$b^Msr|B7+)KECXpBYT9ZoJ5c73fi=ghXJ3Q)0USf_Ua z9TK18%Md+Rza`?#6=i%qCmW8A!}NUg;m)Mo&(d(C?tIfzcMcTl&i2TuJLABE!QdGM z4{GIf!a!;$Facv2)bK-C6GwjjxNzdrk<%x;vJ?Hao@=}Y{suWOhPl*rN^pyR?UR}V zJ4y$PHy4UWh;bWQf)Yn`|G+R2%gqx_`o!UlC+k`EIeaU*NP!T6%)SRP+@r zt&}7H?CU1+4l0WE$J{a-*zIH?l&AG|;}0eQN$%Hjq9Cg=@lW8#aIA7)Ch zsIKa>%dpQ{X7-eSbER8OaXpEY(7(fd)AFn|9y{>cBAXRQY&eR%-aSn=jj4l zRFL>?%-$-e`%3Zc>aX{5U@u9Y4%FGOlIy*_x!aEfz%ivb29F+6??q)s)6f)P%z7_b zGQF2lDSJ4*cVIdR>w$XjLCOM8q#2%=-g}rPnEIop6gtTKQUaQzD0fnJza+lidzfP= z#-#U>aGZLt&9DGKf4!Fgr}u_q)_V`*QQksdj4;Qc_Z~hWy;s{LOcOsry|>r72o)O} z?(jJEj)GG+8E0rN6ysuoDs+8B=*paPXvKJs(3MRdqbkNE%=BL8;5)Q;ZE6$D|nV z1{tL!8ZwSqF?OgpUd33b2>(A}#TZ(vE5^^Be8qSKwOAKOX>D$ty6`@RY5cmdlK`16 z{7NS6#-RgQBg?U;B95X1jid`xul(?a@A#0a@Yp&&P!;ai@zDo(u&zgA`|12L?igXY zna@w;06W&%CZperuhxxz&%Bx&{Z0S_218~v3>aPq*3|RIg8{Ff;`^!a4N`nRI=tdL zBQS@~O!1Wv#A|9q#rM^+bL@ON*9GM+b_A_JGXh;fCu?ckDK)il&KP2|#ksOGuo+*T_7!rZ1XgKFImM#YEZ1Y^#kd$vv z@Q5k80xSk>u25GJ9hHzL>faf<@Q`!;;Ghq#N0on`dD)tO9v;sI+}uA;ssQKqQ6&dp zNWoA8cb1|7NIFTY)3@-ZS-2*Uzns-#!dzt5TydiaT?jw#@}Gm%rGh z3T%JF1S0!x9mIn@0fF}u@>|j-JY2VR(1`YZ+gxN%cA|1&^%VXc&G65xpHI*u>eNPX z{=Q&;p9d%ZR^3H)0&PZzbw5Z8HKo&p6&-SRh;k@NF61%=WwTm#X`I2=pR#s)dWJ=2 zzmy5Sz@kGVU_oLQM%7#FvavC);~7BJ0U*O*A#3g+$>;=OSX3{=?;AZjlw;Ac42#Ug zYDg@SLa&j;ju)h-%gZI(lGho%0EjpmMgZ4n2w42V7eCum%+SP7INSnA8E!@9?>RI0 zURbzrK50h{|gI&9*u8)m6HyYW_)*R8 z1M{(zJm#(09RX8sA*He_?n26~58aU1c}yE0LWh`ScQ2XAv~qifp+|iV`E-V%&kIV@ z-_?4tJq}W`zbeKs^ugDTp$8m>`izZwz);O-g`tfZhCXk64$>+x^uSL%h91Z<^!YJk zsGTOnE-u0TfS}EpNQR-Dwvg{stusD39BXKD3l1batv(pBa(pB@2UXE;5QSt2Ss$q(5%PHtA;sd1Wx{zhRgqHnu&2~L zR48?CVrrcaq8ijW?aAS#Kf9Rv|3nK|$T<0!`eKf1feP@i9gQg4+(_Z$;)J;kBU78b{Y83t6qHiKk6Q zl{XP?fR1@`INwh{!hJik>tfzSI1#^1e&6J9OaUve8;ARw*NMZS{N3#-f4d6h?+VlO zVfVGbE#4xxYNaLkaR&`7nzFf>Gmvo5|T51^S(@BqZlfxKmN5i??m3(bYJgH#TD z_y@kpQ{UvN{bx6s5PuxwiL^$fFn=}SIypl8smwP48*#BWtUUsS>%Iw%={D6ZqhyF~ zqiu$~gS@CglN#A2hHC<(&HuJe$>IGWC-LApwJ->DTs~)Y>CM9QhEIkJS+>yS%$(rA z`c`*t&>l4Be^|5N!dI1KRfS9v`Y;L`1gtGbG zmT88g+kD?MjLkPYgyY9-^S#Y%A-zl@v;n3Nd&A5Sf5L3Ow~cP|ovE!lV=?;faE3YH zk#E;wgrx+$cB5|{#)G&1P{nNnjlMfGqc1}2mH(_SOTF-)k~@+$U(9T6dwk67cOZ>y zY?>W9Yw(N4dj5rJz>}flM6cBve3)`5X>@DworYiZsKBqoKk>GBhOFom&C4X2L+fKwB%#e*> z4z9PbZVs-G-H>>Dr)Pa5yPIO}$*gZXGZY<>c^Znknx8TV{bP=z2YGpo3l>nWP;_*2 zaGgB+vA~}W%|B;>BP>|tDC*mT&B!q$c*;=pABCcI^+Z+rgl`B5CdbEvTSfqe3);cOzAoI4p#Xdx~IO+BJ|?D_f^34l60qPEjdWX5>)sjO2Yy zGj%n!F6>kOHe*HReopa~olyY*HalbhXvhGd16Ros*BY0xUR!qe$SA9pva)`1kSYCa zpr6^1((0$K9C7{B0oKFy)4^TqXX+`LJdk8}qHx840||I4OOyu^_g$QE&2E17y#h3a z020>C9PV{SojSR&~>~Al)6*4VSk93kGcU4p? zUE~^9p2x?9dCZ#y0R9budEqrV=Dl{bldqehT}`)7a*t8c)Yr-~4#0GH*&qE%gV7Hn zyu+il9R;n8j+fdD(xyYGgUaWI!pp{ic-b%rFX6W$IYY|EA&^r0@EGgCNNMMHKzs!= z7y>CX5-X5WCh9txrgCo#7!)J0fl#wAE1|r>>AP;ef=+k+ZRmoO@0H zIme!dF?{jg>x}f7f6p1|97A(mSfw>xTcqQ3`*k%FHb|7vNfdfMCDCY3L4uquaiRja ziz~fu6SSmd0Wm2ZKde8^@$(^m$d%teqcnM2^wIDp24O$f{j|Uu?0TRXQBM;7VXb}9 zw)aZJS0|-U{~)NInuK@N!auCKqkYrfcvBYnJw+m_(`SDWq~H002AtzRCUuZw(&Flr z3Z=C#lD@)!$BqZLc<=vJjwxwE*CwS%#R+6Re*D9m;uSQP-0=m({)keKQ))w+pzm~~ zFY)~f-z6R46n>y1EyWjTnZAXNR=L?lIt(!_DJL=amISLkweW%<`|ktPXot4t4%0ZI+!QVbu_)Icn^XP0?{P=x+F~FETg0_d*>lDHw;M|*EkPg$ex=6r6ucP;w-zQ7Iw*3o#H8TMRb%KY$>a+=7$thk8T~rh+?}43H0vfh zGAT{kvYy_n`dVAsN|VxO=!JS9NT?fa7oiZ9(pH+@W>>|u0+J>NqKKL#oAqnHo66O8CkV);u4}QTCd&H(6Jmkha=&Widx*wX9!9 z>Lx}hZ%-TTA*fmEnb#UdgsXmOe1aaap*A@wkuy%iWP+fK@5z!5a3!P5r{9^q9L-;j zy^|JKmULv{e8TzC@P-;;NhOId>Zne=AT*-xIX_F(b3T9$H*p^ll}`bbry|?ZnL6Bk z>Rr{T@GmYxN+!@C6i}!)fUc(QNy1emm;gX4Hf*4kLn7`Z2HX?e`AH0Ds7~QDEb>F;U}q|z2N!C#R7zSQj#guWSt3?*hfSyB+oo);odKFxb$pm) ziRu9(RTKAFQ#QW~I~uqWS~pg__4--~kC83+C8xyPYtzWB)-ae7@I@XV6uP7ooRSb8 z8Fdnl@5$t(AyXFCr8CoCP?1YJT*}Go)QCyfBpkRRJV1)|6JT95Ns_I%x4b1@fq>$F z0AzrG*y3x_=FLFI-dZ+8+F~1AevN={s5aBEW^v^v8f#g$w_L z1Pr^-AJSeJFptrY1PY{k2v>1981+QhP9-^mfeg}Heh4nd7l^f0E`y>$pQTnu(FjmU zO@$DKt=U!5nzoR=WoZXB@mvQAWff8~!<@EUNVgl2lqI#6+ZKBW6iWnc9P>>oAU`L7 z2}pp(33&%D$Id}>0jFXksqGG4Pbm%tDxw%0tN@I2rPpfjZuHo@dx8lWy<%eY?BQ=Q64OwB&KdcFj!bGWQwZ8aV!(1-yhQ@^+eE-2J6 z-Z%A&Vu`1innQ;gMIG#;Yb>avfGKIvDAn3Y+&#&KyrvoHBsZvo={J!>6Np#~NUbq+ z*j%%N&cBeg_v!R1+7^CI1TPKo#tJleR7vZmG=vNUi*z%Jc~_QPKd zF&J8ro@jDrCzgA(?;I}_m}@RAEVWR!W>n=(99Oc{u{+l$y$L^KBJj%S0)tx<8( zU!=v-%SMT0qY*50R|a#rNtFOo4%_nRwp49SK@+wi<-JOYkWNlJE+UCa zA(A|*z5N;~Hm-R|iRM{h@Dx%nVPH|Ll8}krwk1;A(`}V%KrVB64JvD7c<9mecZNh* zL|T4`o~Xo^YZ2LLYJXFJT8PopSv%EOI!)<;?&>3utgb;-h&!shgWOquU2VcXcXkzj zKa@N2biG>z7`=#F7|f{LHuC5&Uu6q=K0IdtiZsls8^iFN@iRC)ViLfcf0?DG7#_w& z`e^^*0d+v+Z3AgKp7`j<&O! zyPz9KbWx95B4=zKo!}mXArj(GPAP-5Y9J!HWJ1K%mx2Z4A_A9<+=1cuX*s+TO4(K|r2$*;Rc?v{d^f!SNx4J23i+ue zG8|S~$cT{KUJ?g- zF^Aw*Zhq}Rhi*V;P-HyMLQ)|z7c{oi%H?fmAvD0zbQ}9PDsXW)x7i2V zYGo%-wq1;($*O@6tXylp2-Tv*@>vTZ%`p7N4%sPm^PpJ*xaA85-q@i83S=U#Nn!)* z3Wzytf^IgWz(#CurbIKhAFeqfD>M%1OEhIjtv+(1NG4_}hcdgIC>56oG^Hfo-C}83 z0&G*XfwpqxI5JIytiG(1EGy-*Y&o*bSyBaX*U)>Ca8YvGJ&-Qfb&!<%bSBpVgBi7C zFjFBI1gqkdGRQB|dSlR0`ELC!s&!MgyB9WOfr(7^WGcrwWCu#$4r z6ZN=usN8(aT5AnfKdI_tCVMX9CABSwlPri`o6>lTx^C=KiKf&VWgfBq%@8`FVrXp8 zya6H0XuuLSOBhUFvBD*IUebV&K#hcpRm)sm=YUo=Rt8qZr&P`d%N+PZ$JN_wf|_Oy zHr}=wI>JPf-dVW@ys#5U<)f%MRkn6Ik#E%jOa8`slrGnPA_oc8hg;?fV z45J1wJ^FC4q@!{QUrG3jA?smV*o&%#&Mkw!;1RYmD6N+cEsr@TH4}` zD?y-5P$7!vM@!vX`}}CRVA_nIF^{qt0Kgn{I^kzxL(HBdM4=`~QChm5Bm1SnhnoG6 z0DrSunNBcN3E!CNwRTMjX+W8fY*Ox{&ma#r25-uVZeruGJ`1f zm@WzZ0)!ems4}FqHUpP-(F}>~Q|Lzn+Q3qAeI$JrqKiRED+7^H$JMeC+1q-X?DO6fzfW^e zR_tZ4L@Gm`t~l+Qq%e!IYHX63MaJNj>auBnUfmP|CAyhAaCML^l*36R$E}=1Vx%k# z%wT7B#4mE}? zBD|d#e?)nPq@XY}2cat{obVQ$9W8gr%-d2!X4~x&K~(ge+Z6sgETuC#Vt*gQ@M)*& zaY_<_PlgxLXX#NzNgUX(GAW4~tt3*$Uw}Jkj<7l*v@?1dEWO&jKEvyJQf}8vFKN@G z-{Xw}(`UZR%Tit#$qRV&vI{Co53>T%6yHKhTNS*{j`5AsV@hoKkLbDBVweuT);JQBw+SN zUR!tYyVoubbjO3KM{85P%c7 zw$p+2@txE)BRIF%@89Jz4FT~Cn)RWZ5qzk~wqDtq(`=EOWvVjD3L4HZo1ksH;}rEZ zeGustx)BC_((QZ(Zshc7Xwob8U?YEwPRs~Ub!-ukq1&qy2pCm=b$z6YLn;+ecIvu| z%5+;$H1GxSaXyhUSvr$AWj*ywM2~?$%TS?^ zsw$)1uAiX}K+#!c3C$UrhUQB>O2_|YVYKWlY3WdNaqWCr2MwgB?r(FND%(TVoOBY`*YXt$Hk zc|o0xDZ9l~kp!uo@YOUQB^LE{oHT)%vy)Zv>D z-aoMvgb_qd;ww3&6j+#ED)>bgc9=sHF*dCmBE`}Utv~7#c$1HTxMDlaNX*D=pG*YP z>DOSxR6^4S4!`Jd($fbXYKoe+g&##Q91WamAI%Kfs+!M%+3)93UKm`(ia)+gh62-Jg@);+lmpC3(6bJnU&GmiR2Y1)6=^{}6KheAj;owt z`dE69w$32OZKv2gfwxX%`~se?q|R&NmrR#kfF7hsvzl2^XaSR)C=OK?H5tB`D0X#B zbang@bzs7>I;4$hf@u?stPW(Ht0S>G;xX1CmVGr!K9BWGQ&BY1@YSD-$}kUtmdhR? zH_t|5SX;?s(wO;;4GN03<{Lbud?MGS;n^e=d=Mw;UnUbBmxP;ySUBxps?>tay$>%z z7F(&LS)xu>i{2l)`p}8pFsmG9Zh_X(lt|)&BPwG)BAP~> zLo7<(gv{NVQC$GFoI`-UZr764K@7dDH*=eCnmF3l&rAJ_ObUrME3^eUBoN3Il}hhb zJ7IddrU`lJt_I88{s3iQ(+re&wIgyK&a@*!G|-NSc3@1mb~t<}+L2?1W(3qlJ75~t z4wb5Ql-yA@Y6rz=rHmoVyMc5kS=Nn4vXi7iNwCypJ+;%3^CS%}i4DHH=DtW5i1zbz zL6L5KZM1aY?9o8t$h7%^RIMrdo}=MFE%1?FLJR!!C~9=%o*CDm5>5Dc=*l@BWobvk z2JXHxY@jO8r|i(DoMyGb9?YUcFnpNBXK9VnbVUNPap72w`;_p3u1~9tItVTsI7V`2 zw1#86w)Mj?9C96wach%}?P!oMa7?ATu?5GNHVem?GfDA;DCR}0d1w~KPqV7^^yOu7 zOCg}BNe_A_LM%B6^H#7Y-Q_rHC?&Tn`r?g7ldtl2R0T)gBcw{g%HQdR0E!Re-x0LP ze!2cE$FZOmY4MyWH^tFd)wqa|={FVvEiHm+>#>p~(Y44l8jr0i|CU54N!R3sBuuxZ z4C;4bhZfyz#2ZDqOmqU9gr$ehOCLEe%ODfV=341u#-twl*$RD>Ul?Sg4nk%Id-}W|Mu1Rv3&7M7$wQms7iN&TJ9n<<%(L$YKnl zUM5Fp_Il#)#MLU>!zgrO|KDsR`iXth78amDP=%kT@lv9TKpnWnv#ek4%-I zPk12cCH5I+iTzR`_9L@RsPT9wfg!OIwh#V`S_C}mnwgR7!0^gvGW83eBB12BwJ~C( zL7Jte>A*xx+1|iNaM;L`G_Yq)Rxr@MBB}VaDsGG5g+@N&O{~&nylE)zhwg9qt>#8Z zA7HxK4V<$FsB2dMHiKWAn;rr}y9N@nEp#yn5jWAxCX0xDri;q0Y17%IM3Az#PT4)Y`FmvDrs8f zC?k-JLXDD!0B4q5kxiby!NJ65;G%ZZ3#Oe(4P=w-5vr9mjc+)pxp-qX7iYUtM|}QN zX}OvHs%?!A-R>EdU zf2IAE<) zd}JArr5=wA*e-a#Mj7z4xa1SNC7-(WV;4$|~n z^0D$jD#_)6OFoV@jJD(h){At9TJlj{Z!Y=#_?LXdJ=j<mEQ@Gv1bMO(p)Z2q-QyK zlC5l^0cKj5UD+GuO9M{Z%az0hWOGU)Em&AeLve{Ru_bY3^ci8OVESOl#=_<84pb;c$B63Q)88i0Ti-;Z!V9r0YN8# zKyV~yhJ^7S;fOt-_2X;p120?rIIm?z5+W+&qAtnL#F6ynR5L^-k1U6(0z6V|6>nzn zzf%KyLr_gr-V{n^N@X?Zlrb$P$TdEzVS!&m$!b6!u^LL$z|Yk{fvTa&gpdGPMUl{a z7Ktt~ID-fLV>%BcL85y2C&M0+O+#Q~XgWD29_0<4E@Ha439r3Ba58(~1ZH4(<-TIl zHH59zupklSWmW|+ntPe$RX0HKB__zYW018Om1bL-W-;5+G>a*i=zvL=W@1db=!zK> zvq{%HTM1?@i9AyGy4_<2iRmvBG8Va24j=eq^Rd8D#UtMzx^n}=E0+~h*w762&)cox zAkKJvJkUl=ZDWG*^-|PO%mOqkrsr(m$!Bws(^(@lSjL4BwKX_M0JEf7Q_$Do2%}8u zu*{+=H%JWzo6~H>$SRXxUIn}PsJEyIc!<=kLfh^v_XKMFHK~ZKuo@P-+KW}D5VX%M zGVCEXi;P>>Easb#hhd&s+sd-GA(%{SQ>n7Z7`o!PC9SO?y_r+hSMxk9A#O#sXb4nPZ%9cE0rYu8%)woD~w%(hVlQ+G$&rJBv+v6hnB}OC`N9z10tE|FavOrSUZQvnMF>|B9}5l$lAgV zx>AqY>MD4jIHdcy98Uz9e(;J=OR$bmvbN}ZpJ215C%w^TT|xknd0&xNiRlOGauIfU zUNNCd5!tR{J}$NozvA=yS8ShStN3!a@rhEK)o5nH>r%T+L|6>~{2_u6X9lap(A1&~ zI&MQ%9XcAZnZcC{gEJ9^L1*y(dHB@S;WcEm8}p?ARuIwDt$>EBMUE{t2C7)SAF`NG z?K0pD8Ev&(KCqU`!OVv>^K&vO$b?tY8uYi}Z$8ggF$<&DT^j(3Jt5 zoDH-(>hu_yONB1t5VngH7TYX`w%FNq&4h2!HQ1&UF&?t(s)!mof?S!vE&P-%rMww>PVM;bh(&r`#@h&vIX{$=_W5cKeTQ#Fud~nZ-{v6zy6ao zV(j9{+@HpzOPt8+&hWZKSqs?LN+(|!u*j1>b{{K0vOn(1rB=4C^W#x1?!tEbJIbs zM&yI&W}4R9h>Ld*s^ZsZxW&2u-mgdLJ_pZZS(lFd?I5WF3wrsvLCaTv{);SM9n4na zj^Gt!6JJStAe2T611T&a6C^YN)+$ih{Jjo}Kuch+!_)s@9!=;9C<(UNfsCEe(a`DE znmL5&q339oEL++rVKY#<9O@(fol=B?EVo-#*KB?`CM+eKCpljq=P99L`RCkjL;3Nb zKiFdHz)mYPtCSbzlMwJ%m#jfv9IH!!>A+wxef1rH>Dt0%)(=S7BV_f;`$R>qw}-!D zy>ca}3n}pVXWi%voFUpIjWd|F z14w~^P*OP{=WznE7E(Bi%+KP$Y~eA^#_xZv6%1WG+XW~b&_D6)APjwG2B6Q@t0dm< z4Bfci>pDqK29N8&I6!leDQ_|EHUfw_wAit0tV$Vxr1`-XNdUMgl7Dh7S9_rV7vMb0 zdd*ma>0qU!PwIR0}QNVQ&C7sfKQ+Nr<{1SnaS}o zB?k3uV8y}uf!I8t1ZA(!JDzpWWuck&0-S}xf?~b+*IBB>^zPQLaf7sl?%}GHf1v7C zK@9Xzbz{sfhIOQhp@L;aXPtpFuXX&xH_%i%-jeza0uB?<#^HY&MErkvHnj0Yx%U=s zt7b;k)+wg?AWCr7Jo&Z@WfBuEvV%^Ota`glJtFk!#v%}CmI_kMCgzZ8qOfdbK~r@% z6^8WOygBL&D)WLlBx-P`+1%K^FqmJIw%nCLY1kEHu66}lbvFBFQl37Bb8MtT#%l6v zXFRV=NRTd&T#Ybx6oMf#M_a`(sskhg%G&(Gw|$0esBD?YF(=NqQ#oRD&@MxQTUdu9(9P)ob0HX-D&AT%)H(|4ANLwrMj)+%Cq1Q)uDZOAm%U`?%j zT6&z)&5-pFJMHD6Bg8o9#T`h%iiFd4feGX8+%J=GLKb2)BK}k=D>GZ|jGE!(z~*Rdo&C$f$<{g4EbJ>6Id2Y=Y?!AE zWe`!er8;w*TtU?v9nif~BEpWV6x232yP<0Vd&vwb_j zvA|5=pNO>t{dUdh1QSyYoc^TJg+C~bq$K%8C$F^1Euj@AOkg2f>pR-?V|$K7Nw(F8 z7Q1ag;G5e9M8^vDNKRvqS_j9nmu>%{%`790)DgJ1wjHTMH#uLX1rT|@{U~77iTp+V zFo0|qnOgIV_MRCaf3eu}kn!lOe#bWZ)lYg4kR?^FC8_HjG~eJZpObNqQT*7w9YNSItgmBk^ zuILR2iRhsG9?KmH#j~6v$k~IKl+y2?DM#;+bYc8ZX!%6(VknRHbmTl`Pw! z?LH9FA5(_30M>k^^_=30(rL3{d^TrZ+#Su4(n#}VYu53x@-HVQP&gR;D2vmHHVK0I=~Kf#3g zmZqlPeVaGc4PQMoxXDd*&5|JC4*`yWae(6n+~Onc@?wUOVE_{-nps1U`Ut`y&`^9N z-Xh)R>{4$iMGAKd-lzlR=_3cu?_9Ux($6iBT%lpg3Lw;56(bQVPN!1tLYieG_ZI7g zn_+7@Pnjg;pUe)Ge{Km|H8`>{X`-d58h^@8nG33s6Qw3j4H}WoE;6A?-N+j5mJKx? zNW^*34m*4|kJw{piqm?NdE6YTWhtExLjYsgNpb>^gA^bpt`z=k|+%I!N!~o zXh~SJZTqDz7s{w}kVSe39bTxz9^_gz6v)_=mh~|k|G^}{Vw+VUUCmAfz&v1YW*)FN zGb5B_C{V$T=x9MTjCv9|KhXBQp%6;za>Ql1g4bOMZVzuZtb7oZw0B(bjvokj=>McVu@sg9 z?YJhVP(`Hy*v@FbHD6GtHJy~WWCF>|0c*b_{>F#sSEN$nr{3K9r)0qft?xrHj!xhyT8sLvoD4DhPoo3T((QJ@|%WhJM2gi@~_*})X*QIppr+iS+2F`$-^pkI%6yB_T+dX$Z&c%f}x zMT{Ym_9K!8F!&wQVer4)&jtgYKv3~FN`r)KV8a+?LKb8jM#yID_g0(y0TRu@Y`c)m zAH6a{2Y?3Jg_591HXa$paoQCS!V}^wSrtj^9O@+i7^&;Ejm%1_=ftrC>I^SsYDStQ z(B%UOq`?&jr3$u}iaYh?Lug`dFPsE_W`m(gL$sw76GlXXC+tM})f8s>UzT{Yu3Qprj(PR5_oj}^ zpMJxK?~;D#2{%3wA4rFjXgI?n!{DC19?0No85J2uOlGt^7#Y5tfDEk=fXMe#rONw2 zw6xd83$*pNh@Ks_ITvTbrkEzI*lA{^)Z6s=SST&WjQPh)M3}3UWbi;*8^Hc{z7>$20>~&- zf12Z9s?%@}J|#R?kI%NPwQilO4Q>#o1LIs%_tVq?#sBA9DE|9mgKiR#&wi?QI$?VA z)U;8v8*BTXFkZ}Cn11KX_`lUmJqFLUhC>Tb$YM8bfyaoUx;0DArn_xwyrf9oS)@+- zr_Nb*;QG*vUZph0#N_JdeVYp_lkx=oa}LfBhC4xkR0 zDh-Uw2KgTcLGGn#K<@tv8Tm{@7w7$Kr&|okOjLQ&cFc`ky z0T@_Ou$fZ;2!i^Y)ow_!IV+(yQ{^-|2;SWP0a5CZgRPDRl8C;pav zjB)ZjWNm;EVwNO(n5I%Ljcx4<(+TVHV_r4TvfddIr_(s%t19iH5iJgTCJ`0B(H)HP zl}HT5oz9>}C>9`ULxZ_#tDJj(TH0y{M#lfChTk`{G!avDNjK;0LE&itu{h6gUc})_ zas)5!bC55?(SNe0Jpmdrh%Yu@Y!7?pP zY+1~=K}T3geYfF0Vh3n03|{6*$P;+F(#hxb1={u5)6n1;uR@Id?iu_~o&wiVJrAJc zbNypOx}(IT$uUV;a%f#&#NrmuW04@JHmRg^KNZn9(KqBSmm+4+h!YTORA&QZj?k4J zFAUn!ouS`Z(@io7jlV;B=ifWdrHXYB67y<_Sg{z%CRe+r|7cf+i}{f}0fH2sQ#NOf zfM$^;shO_|qqFCjoaBVrF=He9C{deAF|x9yO;$v-;Bh(90I zSd$u?#CAE3C`UtjFv>w{KpbAqyIcpzHHv?VOV~GhLJ@%|YF@MlEYG9f2Mh1_``L)g70n&3uU)mAK;c{>TwJ2jV>`TsJ12*P{wtd3hb~AT5PqpzL4A z0_wnG;5X6nKq`6lAbh>Usw1B9ocjtabyC4Q`e&J5p1;VxIsW0V`DD?*klB9CcKk^&~ERjD8XAgkP1#~CFvP0|M& z6Uzs1%v`9Wa%-GXEHkUlI?h+)DHIO{tXRhc`M#uhku5>t~Km z5%ZvXvZJ$7ZMB2B;D$4Z+Wu41^W9+=92`N>QXt@NW858>3Cp?|1Sd>vetNRRrue7e zJu2mcX>yq)IkbGI<1bL-c(~Hu(bf-p~Abpu@DGfppsXnpq1p%79npOLl;XEh-?a28I#{N?|Y$=@2|lAyHu4 z%lb;2wA+l(dHB6qq(m)Wr@5~)d9W73S#74zheAwvUb8T1n(M>#%vI5pMxn6!*tVW~ zbI)>aG@z9@o#?WWyKyvi;q19}wTbDpYYmkqN^&-);JN8^RM~bN>gY8b1#Vm;@3l5& zx7c{ob-P!FOzLTNnl$&>Nr4bJ8U=N>annJ14;0bIp{y3vs|s_%D?D_j#+yT^L>*s8d5!<+1@v@_&+Gn|*T zTrD07eeZBjylIJ}3rDl>=da9xow$4T z4Cj~j@YK#`7Cv~{We~J2+Ke(Pqj0Y&ch%#VL=n6NPs@Yb`Njna#OjQC>`e^YsTF`0 z0K`I5cy-3$RD`7n6G+^oVO=MMy~|vqTyOwKoS56qMx(FkssraZ)L>PrBEzhZTqm>D zojfpe2zP^Tt$DvImcdrw1@3XNYw6`la8{Vfn=T5L!flc#-ZH;*rK?)UoHvcJUO>W@ z0st#iW8|DV&!*YCF-OdB9$It&6#?v`cmoSS$sjeFreJo4CbO==T$@Mn#f)&97`UFxy;r*8tCNG9xYq&x51Uf}$_%59UM1k#o2}@wuq2fAMgp$~4noDd z0m2fxbVl#jvE4~iy+|MlCNZ&Lf~hwe$3W3gTa9KJlYxrwlTD;38KTTW2^#i*y?9G) zQWAfp7B9N}xBtC~3z3uZqMf`EhQxL~Y|hmK2H6y^5)YgYw4DIa%v_X~XA3CJ37iWL z*#aw)X5uvm3|3%-$WoOmxS{X;xQ{&Hv@!s&P5?7jrX%sia5f>+h4_pxNU+?yJq+d=-?jz{Az2{4N z_S8-}$&}=@)g84d7u@v){r7wC{2=L%Jszb& zG9@lerPAcotF%IrMo^u!By+bt3$*J>JGciIhoDC5mJY%-%W^Ua3}`8^*QIf%;ew+M zUp37c0TKJrkZMmfiOOiJ8akAKO!B3Q>nO~*gt1!j;hJ;s(%QH43*$Vzx?h;6T>>Sb zF~nzw>eN|^W`fXFc_uTJf~61$`^s1fJ|-DUQCcYiHUZJWAb%WYjIUZUuA&OGBrIGN z_hZ4j&)rBV-?DN#VPP=QI#Et1no}7IJTrqUflfJX%^l9lnZwysrHnr$Lz;j=`(Y@s zkx_wZs7Z3M^wFmy;`8yV;Z&DF62m5?1=}zVN6mIlN_G}7CCdsiNy<_i1 z3qbvEfWfi(dL2ZA$*gXf1bhy@HAI$af>wgFyfcPaI!)*`q$>GJ#T5caB=hd5R2nz|aFVlszpApi|LYEK z=jV=M=O+=L^dfrwh~rt}}$(Z#TN_ojk{Ctu4k4m@$rcc{9=IgJ8 z8{}1$KH&n`Bko@0#FB`XxOBUQGz}0gA*t7|OWW7WI*4nprNrI96@!BcXOdP?26 z1!ppv7~eWpyQ)#u>(Zldm8!yfnUU1IL7wjDI~uyI#VlvKK5!s|nr5U3y^$Mx0{yrs zmzls!d9r*IW;38Hx0l|y)3<{vBd`DIKKBMjVZfk%Ev!;8K$OCz%i{~M<$%=XnIIqN zOmzTDwKyYqo+8NeD5(My1Nb`31Zi}GE}jOQDm^`t4T*FsjrSb4B8fzoTEMtS6j)Q5 zH3ioy7jAS+q2xvC7+gh1HJd(*>X5l1B5G(Il#Zpgav^2XOtWm!VKrRJZ!iw!H{J{# z(7tS`+!ZxaL8Mj|_EVU$k~JsaTdAnZubA_7W^ki5&d$dR_u56SnG39$V?75SMwvD9 zir1;=%KnIwX`9HCe_6Mf{jpM0mgOU1sn99EC1GiEsfW~J{usneqco`yUcx3K34*F! z8C$M0&~zNPE$*2z_cFO@1**uADM_Kk%33C0e{*&Bc&7>hc8Ix)ks+=txb2nR<0=! zS}P}DrIEP-(9|2f*_HOhju z>{of8^QLf~#56%vg!qAixH&?D08NJp|Eu}tAxx!O+Q02dw*wOD4Bln7A&SmakZcR- zQ*U+G%;_=;Es6&5ff7}SR^0;hQ0}2zMBz66mU8z{8P%P8DA0yMXt@ndp-X~EH_DaL zeRf`W7EH93MlcEsCA-A%sI=dePI4i&!AWg*Fn)scT81j#GQV(pgZF4XmN3(F8}KKm zkJ{_2yVog|nqsb_OUq7Va(PBI5?x4RwuOg8OGyoKLuRGc?ieH3)Zzt7VCzy{B;e+w zq>*BqDAauSRrCe=vozk#!EB~BbVgU!N|JFTd74!v_P6D&SOBk`7@0G53FfZ)d9rPd zal@ozptwRAHM}iazu@8|rE1YIYya7j3EEzVYo>0$yqXu?2hw8n=#Mpr6)`&#En63v zVqFc@vgSx?mq*0SWoG2Wc~e8JCJ@H0&VlM*E+t6TIk6P+?0^O~nZk%ZZ@!*!m8LnF z!&vOK0+p3T}Ab8y+OBEr7YCIV+>GKx0(p<%@bs& z=}!W94Y*Pbu)&yUl_D#CMH&bbw*?pH)NJkF5+r8^@0SeKMlXQ_FgqrQA^IlT5elH!EcWM;X&=k;bi&+%{+wRjIP1fTdMluUeE2tUi*30T+cg;{W|B=(AG+Q`|N9h&6F@4zFN4U0mF z^oK!wH0;+CYc2*(^+ZFnT<*#5HD_w)m5c(WaPGTv#Av->LaJUg$uzpu=!QOMx>#)i zr$DWiq*=Xb>fak_=+G>&5H42nnL$Vy^pN}Ju`>+nPf;eg(nOD1IAg3LnWXpMEOZA`-8?-q z$N0T2jt8@BbSOj3R?0K#(!No-r`Dc)dID zk&I;=c5ystjaWw3BZ)vGw^lKYdbctf0~6s5r4#CwXp8&!hUgZ)67+49ZWW{SM6Zp~ zQ@uls(qk@;#~VIMwt5(hVOV+{=x-frSo&Q1dHmRh1t}>tg)6A-+Y=HdAYJ?0e7e`b$r4gQN3YkijvNE*hiHnD?d1^rx z)Ws|c>l&ZZs?#^MUfP0@b6rxlkzm}J!dy-3Oj8p{FuhibO4cIRM^x`Z7e?(G&?59w zrc0(PbWwrR(VgT4`=m(J%4q9lv0!~LvkHi4Lmr?MYDN<}#WB-&Q98p0U)p;uu@(upOckd&j_y56I80Qu2wCsrh^bn_Kb4(TcR)tElvNdKuH8C$S6 zmeh2yg~wbR4~mw^8nT6^AKIZ1{Td3Q%kG9TT9A?~wpKbMrzD5=H4#Uy=Zf2;p_`}? zU2m+8m*6r!t=VOIA@IjHV}k9PB}R^>ZBiF)z7aY!FD5S2HJ5O=RVEB16BJFTjTme) zfdx)Egv!j$XaQ*(+(|S^Ih)+e^d@(6yLyqQGGN&#S9;HkVt1NPFZ;>N48pu$0Gp>Z z`4WbYl2&$^h*VF>)z(4W9knCj%h7I@5d5hYuQ#q1R8Mu0tMTK#wc^80&9iR`MM*r*T8QJ2$9Y= z&nnZb!Jcif=BIh0;= zXNH@H_MbOdoZ$p4Q??pxkfk2cd(tZOV2+uMvb_n9lgJe){~=kQ%yUzcx)%_GJp|Sw z6~%eM&9p_A9@_!Vj1|NUL>t^NH&D$uhS~0e7HiesZvHZk015jXOTX?qIqNCJp5F*h zCv_Kt^&H<43|Ii&x*XFn`a&1nnyX#@*$TV+HM0shaiUi+QmagMYx#*>6$bejDah8K z%bToPKqw?^P7mnjdbu5AE$ZgcDsknOL^VROGY0CFE!b*@T|!!RSC%18;5}o!ATn=< zN|m#kIo@!?irPU~W_C2RIC(YE1-hKR}?Y*Wt?an7p%ImR;iV$_zn~|-K{bb z1`{r-dKt@Qef9FS)dgqED}&kDnr12OjQ}*OE=|?Qs2iDWMmdxo4R=*r*QMZ1H2Rj& zHs^D|TcmLWjxT4x%IdqRwn=l3AihI%th z#7g(dnj!w887_>xaY=H@riHB1dWuvY7owdCT3vrc2R1lni+c*0j`oUs((Y6*X$2N&ou z4-jeQ*9qR@>SvomI-y~^_z*73tKqNXN%*{yUO{MfTAzcDAbjjv-MD5Bn7^7Lqn={6Ok3fi`OD2=8kA$`k8p*}g)0;pKz8v}%Z8ih)BcUiGn&9$T z89NR2geas)Apy%P0-%%hS9dDXW(fQds&>VWt<~gel|rVx_bTtCG3O(PI+{!vTMpHL zb~lPDMN6PMO*u-bE?3pH=(?i(3dqLpKi86m1A)5^{Ut!db>P-(G^nw*MVXFJ{&JPu z89hcv=5ZTvq@m8e*@%L=SED|$CZTH`N={JdjG7W#k+gc`MlioLodYFvX#sa-Af)_C zg|XKMsV{J^5An)u5GAH0-Hkd$w=dh$6y%?CHq;rF@epN=4mT3&P7k$gY*28c&Lxdw zDqA2LC84hD{2p#mn)%S0Crl1FbAc_u+TN%?2%QUn?Vk!XF zGC}HDr_O{L3Bq#n8|)P8@{Dhh-sKs?joHqDfR_EDO7Q{d%3n3xrlh~&U!sh-sv^qn_k2L zKjIEAVuv5`;vMy(p1H#->R~V9AwS}7FJhM;@yh4xMZNHOuc$}8h(mtFJzm7_A_Awl z$0n)&$3Isu@a4~W1wQUY9QGsb_agTC5x05~eY?D(p4wHf<1s(t0WV^oA91@EvE7e& z?z8oxp8Tv=$2Yx*1AfFEUc`qk@rr-gi+IS7xZ8`^_^=1MeOw>ZuKJiZqJK4Qg(ho zy)sCmZ%1;gkbsdfDgF->vlM0EVjiNQrAX`uO&s}*`)hVSv@%#A@}3v$bJ~leVTznx(B_CnW>saY~s}uo6f;iEP;QfwW^gY8IC$lb?G`)aOSEv*0Q&bvFsiz zyKC&zYudejjAdV8Wiy77WMggk>QM^^78vO`Z%mB(_Bz%+R-hUY4|oy#{D|AVi0yvF zbDypk_2j2>tfi=LdJzZwh&#N99e%`%pQ;!2%%{Af9`+(0@+0o{B6j%^uk5H7^}>$4 zC^Ir^pSCAz1dd0&)Q5`HMBL*=?Div$f3jZw%b(24C&%Mn#9=?;elKFLA91S}(f6BP zQBVD5y^hEHhzGogeSXC4Uc`1k;<-=Mi*kqJNn(5QcK}d0_C_P<QuVr_55j*^d z7jLWA^UQ5tj)%R7hx~}Uy@*|Y#4ESfi+bT!uc$}8h(mtFJzm6aKjQeu>qWi%aj&Sy zy@qR}e-K*o9Uc>=E z;tnrjhad6cE%lcTc^jC-3p<_@)m1Yi`d~u zy!gBIqMrF(uc(K;h==@$yS<2Ae#9$ZsTcLaSG=Mg^&$@W5%+izyZwmcd+SBLyw@x0 zaWCSqA924IvDc5d)r;u+vRBkoU#{2jm>==1{*Zjx2Yn9E_W;8(77P)N}Lv5qZzmPixx}crmO^$gJ zLXxl-QhjNcZ*56#xLD>lxrOgmS&uA)jitI&ffk(`c4L9h=Ks;5q~ zW4Ev?!Pdmh;|%Y1>lAic91iTOyK+xhK(s7q(=3`)wrxCmo2JGIrl{@HI5w4dzR-yo zkn?CH-?&MmMr#3)=M?2M%PXf#g)|#gJ<)Cw>EAl%nsO2zB<;kffu&Ga<8(W5T*2+B zwh$@j!eE{{jvhawQn`&Pt!5na#@$fs*YNEmrru69(6wnsTDHDB(0ka$Oa%NQfPYga zsj(n|`mf2&3>yiSJavFf*7|z)>-|<=t=9$&>$Sm)UJu4)S6BNaOoJkvdpyF~T@cRi zm$|O#jRTT80Ejg3vP|J+Kr7n}+aU${Uzd6SB$xSKX5(oH%;LRG+yJ2H$7mrCxPhQ> zURZ3dB4$rE(!eNce&l%C7bL=dGC3kQRx`R0m1vC$ystK}RKZ$BwUn}$$v8}{q&oC> z2G-tilhIO+i{ls!afPgx83o3FiW{&aa!z8iZYv2yu61%i0WX4{wYE`=w6+3RmvvT< zSB`DBrxekv7FzIB$@Y_Hsa*-29XD(~R)vD1cta_W%Z!m3hk=O)(5oSMx%XGd0QG%Fn}h{3y+2ImGaL8HX5vU@tI0| z9(ULz4e&dap-FV0`JwF#f<5IYy!l7@iLh*v3XA(H!_9E5Qx-?Axf zf@@Owwk=8HChQY@Sv^8WEnBv!8>BGwe4*%-V$=*8kseW%i|HRwQZloyrt($`v*xG~ zb%ungv;kC8S*(TB*eIugFjuZZfnoJ5ZA0YOAXqbS&#z<;-ES7zaOocU>`h z`EGSw(+{plZN{aGi#^TtH>iA^Inm4CiGXqV>e2{z1p5jXZF@E3e0t7Kr1$A}p9=b# zgCPCa=K{XYWH8cCKCjnmUvn6w`|RC<|1=MVnxCx)AGg>4($`!H(yxBMDCCdrbz)z0 z83M8QvsCs=_Db2bZPyQq)c4uz<20o)NVoq`;hjpp&t9Xx=B6P1hP}T{!GCS94Smhc z_-5MsAuZsiyI)YwTdB1rNWc6a`mpqm*z3o`zUI~-{a-&)_{Sn;IP#x*KTZT6j~>^@ z%`W0*_*Y8BZ9)1id;d&X8J_tKh5vi0kBc7CfB1wxZn21`Kb2*e2u$tWWqA3w@(ia0 z=|6w2p5f>h^nUL<`#2stz4LGN@vW(SxVoi3cu5~qRo(WN^;+(0o*bmN+5183=p*)i z1bCfF=6_Qn7x9F>KS9J4j^_XW>Jdlny}7UXwBW3!at|A3dXFjg-wValQ)0--lgMSmA9)5S_yH~AVyK&J*_D-x?zkcIYtF~_3 zeBR~1v~XeewWf2++FxI@a%-~T?Bwkm-kz+v@v1dzR&PnJU3KHyYp=gH*>e4L*KORq zbqrPj)oxMU(m>}i65vOwD7xh#nw41SI(Z@wQ}W_t5Va-)EM-j7Te_+*?wO6g&vUT&?4ZphVDh18D ziZWJi-Mnh;)-B7fTD+LBbBaDFKtc0XE?co+rQVmXShR9E#m-(yfpbNV@vY+a*Z70-XJK`ZPt2oA3cf}6@gu>FHU&ncu1WrtmwB-|76$;FrO67O?%`^&76*x_0A+dG2*t z-ji+{>kn+a@v`d_ea^-WD*@q#UtM#_d)D8uc;x^90-eQ+m)vjztsbUuhGfmMEJd)F zzRabq>eCYp{uR8BwPKoY`PY+2|7`_n+IgPIZz{hIe$)89h2PKddn><$-w1vFmF{a- zt=+JA&h(XC{qchFr&~5~bsWq=)P3p3)obYRsGS~5e%Gh}LSF=v!}M*vh=Ko>Ll9M- zHGXIDo6hfT{C=L_+xd0!JDcAK{aZd-7go$2G@$e8IRr7vc#hIFl}iaWUJdj^ecMOB zmh!Gf8HLa48XmUL-r``)34_}x|KpUseSHwTpQrxY&(j-VYs({qUAl2=vKDT#=GrwI z#FDPsc;*-MjvOW*P)qW)>g8o&{d-s|RtKlFwES~?~&8x1v zZq4QaXbO}B=P_q5x;T5~yDq+LQF`&pm6yUJ=baCyx_u>2*)g`+v$Lqx zE)Ixo{vdpKWNIG;JKhb0odZu?ykYC+Ut6(t)z&rEivleMGpC}11Gv+?6*iIpsCzmE z4uFpFra^6iwsQ(rLuL16N&1!F z#en*ZWyKKXGfKhqP01#t#``Yhw-ohpQE)+^QGDm@x$E8I>VOnEu;#D0YV(>k8w{l8fmRs%={E)O1*_MP+5WV{sYh8$P8MM1y-t7`4_NXxoD8sR z7!feTv*qr^H?H047~g^c2rv{y4JHA#3dWp!}(e*he)QbK^6zy2xPjQ*(u32^M zm?yeLA#?pgK5+d9$6vw_6UY&$=lofa;+&P|T(B0MdkeG5#cS7oU`Uls^M)liNGqGW z_y%-x(QDD{{*}@PO)N7+@RE<#kgg#cGE6PfT$YVcV)ycmTegbP)U6U;>k0RC6PqTR z#yKb5u=d(jnqObOYRfux(x5R=P%i=+E5x-5)o0ca=$f^_XwGj%4#G=Ou?Dwd<*eZv zae|PTl}{CHrjV)RCnoTRE-F{I`ZN1k^ZUqY5T=w&f~X3hPm{?4+$v+eI3``gXm%eL~n zUh(twb%Wj(=uMjataJ4CA>L+p>Fq|nSvi;Rb}7Hh_^A!5UNx)I%lW;B-!JofFTdGV z+ZB4F#=@ld8qA_2n+S4&*H6>wUbJ!j>Vay`NV7bbA^7gD9sG9k+r{rre!cuY#_x81 zpXGN4zuykN`?*i?Q`pV?ZsDEupCj&bck%o0{3zpdzs2u9e&67?pWppCh7U7G9I`9( z7H!-tTgL!g9;q{VmJ_LN?vjmHUB6{KwPiU@tg_9kt{tR~j?}feODxBURMx!|L;ZL< z<}#c}RSTAFxM7X#`s1mto+)SO&K#3}&6*?o>IG}A+PGQk48w{4eu8=a<~1K&&pN>3 zcT2p^5demoQJHoDf(cK9(E z_qw$>M1z^m&3W(I)myK=Z1d7JYk&1>saLYn*%Av2IcSAL&X-@u(d}O0n$~X;Hxm82 z48^$ST^pijLv<{N)_4%G`|>q6nj-2gZ^?>o_?)d$^_Lx%0U>=Na_5)F%VR7<(7oW? zx##Nd>~paQ%&{;2@-?R`=#9`k~8=JS{j zR!Y(#%_P}O;z_DW!bu`3?9=@8E$N74+w~cKl8BO&pX2v=ev*!onqT0DB$TAwwVNLj zao6wgyPMx0eqZGGC4OJ#x0l~n`28-wd-&bU@2mfRdv_imMSbvbd^Q2(l1oGo#YG4= zWH;vqVmLzrBq5L>sOXXlh~y#%1VoLZcw1EBePBylJX%qyQi~V`EZ%sb?W2_adq$G)Dwo*%yRo8x!RwX?G`BOb;hcock!uHjR3&12w`bj{;<0#9Ni z{(z_OG&X^~Yt1wG6E@>nY{7H%iGJ3qpM0vIgy~Ig0G5rH{4rv6ep8KF3d>+%n7W zpqzqDjHMx*|tlEQ(mFow#aLX#iN`9NZ4!7`o?z4E#c%JwLY{Pc^+33b^ zoTpuowTtK758R(4F58#fPc*4L0C&9K=zh7r*iKL0=3&1O{U$M&dkN zfVc5?e2j2zJQ$5cBw;#cU^a4*hbyoWn~g2R+wf=Xz$GeR3AVG<@I6;qLpSvVKD$io#_iOt3q;%#^lJMc1I z!@JmpJ@^>9;UOGjkccEq0{7}#+;VO4#xT8a-I{IW66fIxti;R48^rHmm+?OFNB9~C z;pe6biNR>3AOnvZ8;Lh#2VO&OZoKG&SR|&unO1UCftF$uo*8J!?}qg z3FqQGT!eYZMLrgw7>iMfD{&KkVcbo8A1>qukRW<+<3~?KAqF#%g>qD2Bi_b`1~(d8 zC*x|Y!b66a8!d*zhcP&fn=bld7B0d(tia{Q2I4yC#*8+I!6Ym~1!{059>nkP2@YZ) zH*v&cC*Hz4*oQBSL&WkOen1^JeEfjJs7GgS$WGz|_;Q40eTB9R)^d0{dN`hWthQ)}&ghB&Mq{k;58_WS@MMoQ7>{)E zSdU_ISC5qmtDDCPLjaR;Ij+P8JOhh20EJ;NVvvlteu^W30&*>hkBchRj zF-Ss+F@yL5T#vgDd4|V|LjYrOD}IZI@D%)KG9ROjMB;NW7Rg94t|z`3t8oi%!yP!- z&trXy0~dR&L+~x4JWMYQnL&IFet}!D*Em4@74F;YvF=B~n;xqW#VE%mxDr?620V=4 zVZvLiM_7NQ9*jW|s*J0M#DweK8cn@G17=fN_vmjz)0qfS!Z6 zhYzX9!sW(o#PXo=F!3XJ7F)0l+wr>b4zYY@d`)~1-xxm<%Tc54VD8UEM|8pvBaK)x zj4a|=m~GS&-+>LrbHvhjIQQov)0jmpHKRBN;~pG@70G8m4&X2>j?GCJkK3W+bv@ep zNeVx1#%g?w1LzlJSze?d6VIhnPKIUOxQ=vq5%W0Cu7LHZW&P?s;vXpYM-E3E`})9# znaIX`EW{#sI3~`+ZhWG++4gFcd93fQVSBpPW4(JL@l9+~ur_$Cevfm^!%XC30m^Xr z36It0K*$@!a`RUqw-DbA>uZjK=!P*Ehg4)@2IipvmbN{NL@eU50+-=7ti{WC18-wD z4&adSJ#o?@$~PtuA3;6N`G(^nGLVS{SZ>r3-;Q<0VdClEdaN33$E(Ip;X6k-GBP_^PcTB~?X5LqnxC{_W0Xx$fP&YXaYz6*}loC;d_A&Y2eT!#kd2d8`hd znBJise>z$1l*i<>Q<^`noE?=@can#Zli3|qY$s3u&aU+Ku>Ge)Xfl60d-`{AB{`Yl zHu__A2u%r6>J$iV$n1N7^4xauEjbsY#Gk@$x+I{cj znH_3PD2F|4|8X^vie+c4Iwlu+!un!aAuWUlq)rpAfnWh8(Tm|6(5sbR;-J8LC^MjB=Jx#?n^H z;c<~>kDS<#jF3;|Od_w!agIEVx8ZOX&oOVq2_2EtmlfncX5M30Z7+vSuDsEv*>>Igp0l00_dREyIMF`jET@=;4edDhYq7w!obuV`ITzvJ%#{$@s95!cv7>X? zDl93iTxK7)nC=d5R^D&TzVF##HDxoq*4HNu*6}kR`zWj%XWwgAaYi?xt5tLRom}?( zrfqNL#bPlQu^+yExW4|@=ju714Fx9sd%^OAg|}(j?xgk|OumktI-lI7Yq#z_PU(4S zuhV+>Ilb>0XZAbG+yCqVp#&$I|L;}*A5Tqx+ME>L&V2l8J=C!%>sa@7Osi{$lfY`J ziRK!7FZikvd?U#{;kx%mHM|*|5obXO8r}@e=GHGrT(qdzm@v8Qvci3zm@v8 zazy?U=hEcwO#aT~@BFsb@ZWm0sa5P=Zq_-WC&ng@nw33yWWck^(~~K!g|vym@o8y| za~PkPeO@NV49>YG1~X=*C(oQR(H_p8l5S7d^oi5c(#B^q%5eJhjO6U`GtaY!le4nM zrzB@tY2!0eEK|LeIX!F29FE{go_bFhE1>DWa4+v`2>oj|r)j#-m}g#_y5s$8|9;DV zP1Co3*Y$6E`+w=5yM*?;T>oBd|1bS>@`riCc2Ds9z(u#v0f7y{{!nE@u-FhRHiU-9 zC$;0VAvAeJQ0HJe1JlW&PP*6-TRa-50|Fc3aUZ4Y&-}A700R+$LE!k(@HpBqhKFMW zMq(5q;e#Jh;4IjRfet{NlUVv}4S?euuUz5sG7_P!F9~BY4&yNaY*{?4!ATY-BL%6L zf~lAWZJp`Jz;t9{24*4)*_efMF&k`Y)_FJ|7hoUPC>KnrNvVfbQ(3?y*GyDrPZ8h;NxD~fy z4Qg>a?tnrK<=n~eT~Il9;~w0L`*1%Vz*;C|QpbY~{}M|7E3Ct>@f-XW3YDZ=&+tP~ zx`*)y9>wqQdsLQJ71(L{qis~%raggpeoj$^hPAD08`QR40cU5sSE?KC;wh+J<(zSrJ@?2SpAhFzE1<2A#%u3^>dOg~=vP8z#F z^0>BFyZnD=8zZ|ljsyK;EYA(lvNk8-aiPm%v3hv5GMRMxLN@HsOzW27kh4JPT7#Y+mKEvI4y^z?tIr*^}&Vt5mEna=)Z5o$RkBRv^3G zZpE9JrdT1H4=nX%3)GkAP>1L70(4fm4clSrkI&=g$-E_%Q}XisTtO?&Bl(TGHz%?Co;fG3Gm$TK6`cZ?-w*4z0sB_MY9eZ_ajQ>I{@r z6_@E15O$^H)BX@3pQ~MsXv1pBv^=`$i(Y#W+HlfwI*Iy1%i#>-Gtm!c z!HfPl8(I!ZKY-zZh`=BW#t;lei{q7>g$N+?X`Cy`ykrd271DSsBUVtR}SUqb4YExjyl!GNyG|T{?2~2R@2OS7;-+} zEojdu)3(Ug+V;QMd8k75?><5Oo2g&>wa?V=CyqiiVi1cs#3O(Nn04*<74!0#W#*$a zE!XFIe#FdkjzFPhaxZnMO*O;{?q#x(X&P7X@g-Dk8ckhVUt@?9aSoC&7UM7;6EG3S zXp>)UQk^~Z#g=faI@g&xCsCH_OeUU;6r^GbreYe>kdD^sTxyns>b&*@b@t{$i~5;C zS*mk7aVBP9CbE!?SvVK7af~_}`g!C8b#69w&Y>*Tc^>ikjpZiTtMum{$n4W^Z5yG2 zbkNp5aW{2qxnvW!SQloRrqAQzla|W`rj2unFKo4qKjR?Nw2ckNmL%#{8^3R*jdOHS z%!D>v98()FGHnbJ&uh`fpL<}@*BE;_+66hwagS-^y{0`hqv6SAljMQ^cZv0)Vr^hdV5os+M!Tw>Ro8+EhN4ei(0EUbed@QXPz#I65Rc9%FU|c zmXl>xdZ`^{R~1xfbap|0NoXj0VO6<3X>xg?=49pY<|%uiszkXgvM9MlLW?v?pt|&x zrV6^Ar)vv2SOx`Md(t(&*5>KdRrv}~f#!L2s-StAuKdSJr*alTWtF3~vUDw4^K>1u zc|B^s+N{nvWwe&Y=_ARS^h@LJzG&Rtc4xlRMvc4Mqj7f|G(I(_q$;O;nKii}x7;2` z&neGaXpJu`FD$asSvgayN(%T>w9Fb`wVOpMtXtoOZdFmF7GB*LqQK#+_y8 zUKX0~?!U&}{nWU-UmAD!LF41otxUB^s*; zH?ksfX=Gt}z1v^P(QDJUmS>-~mN91d`oIQ>Af7;`t z@~k}FM8<1Pom|2E(qMjJMOjW|-ojvIX)u(~s>~_p>V`9>%M?tg81DBbp5skU56+mC zJS%xpaB5a?B0tCm)5p&Vj-Q#5Wx2{NuPWhr;Go`g8D!W#M-LSqytsm&MBHsqqk_Eg z(^O6clV@d23}#J9(Qmq;5z6Q1-Hhz4A&W;QIWKlgre#B$wy9}@)IGb)KJTDG-m`gd zJg2BI-<#aff3I0IUMHouv`iN&`=4!=ft6BFIisq8PltlyAn#JG;?1yjdyDN&gF{VO zksf;Hr7FC5wy?x&I-wOx&~@J8aE>$3V{6VQH&+VG+v4&{Svtu|tMjyRq<7MAvBacV zT9C6S*pN`4?fIlr@W8p2tZ|>u$0Mn}XkUyk))(iC_XT_jJgVyVNBN`uG5%P8oIlEYH?%GO=F1dyMXcEVW-Hn^P3b$;;z3#x7zXr9Hz!DWL5g9 zt7TeUm)uEO-8PxWMf^oNoz_M?WMbO%iPLl+!Sw9u8B-<>_0G>JEaJpLrI=R)yDOyD zxqL8uL0nFK6`?wLpHj=z_RU(PRh_|LUUg1z0UwX~l(x94u)LtPY2JL^;hU%TiIx}S zafZYD0lDk8u(FWNe7U_*S`ihdh2F|iuPMq~Tvb_6-E>wtkA8Cb!_0EmZ{{>jo?Bj; zlb@HvhjS*ctnn@>EU&D}De^jdrdRt&L4JSBzK>OJX0}&`y$;krEssi;MU}lg5}G8? zevqw`8NzB}ZR1Nww=}fu{6(b;c-?YAd3kBMef_wGG%8bJn@L~Ym_DkgpkzViLX&|s zTFx6tr?Rsu6ZFdohpPGdShV-SolMWrg@wH8>YUudCA_Irdtza6upz0vzp9*lq}|;j zeLQ)Kaw;mCW>EUx7jxYUP0J^JnXWyxOrP3ndX5ZbrM!`#fOkwgtq)zpuO@v_^YV33 z$5}D%3}#uZZ>^3fcO9j{V*4bkX=e5315=-t-CV|(vD}yA60E?bXwugx-m*8C-YU$WpL`boMDATGq1)q?+S*m#7bNRg`ONk zRmRnD%22vhxCYmvX}ej56@{&>R(pHePuob_xzL{aqTc@k)I+6|}9*z+hiBX7z4}NI(`nEj-guSGXB92B3G&vTk zc4h|_m-(3KU3}tOW|ZeK^32h?BP5b1iFhnjXIRHjxql%IkHXv21~5%w1>+NlCqk!a z+P@|v1*w>VsZbqyGC9@c|H4z#t695DdjI42Saf?9!OOf?Bz(k%tRKlF$>CH z+`Tb>=N??fWcqB(fx-dGQn$`y{Cr%1xwsG)A&7ZUS*ytJv}F&&3ckgm{5hn_MIQ1| zfcaQ}g;4&Er!?kY$nZG31dapcT(%$$4`|xA;_2rOP2)jLs|a4JbUV=>O-G~Ed z!}Q)5fe#qpfokN#sl)wDK!AFiKNH~8;eIB-$?Lu++ezoXCtKwyxbMl{L3_phT!WUu zt@K-UDAds2OXU6z@4}YcjF%13)O#!JlY=aWBh(R z0F`yisiC6MC`;ScTBbjUU*cCvgJ0t}_$^e{Pvmj7t^8i0{AJ`{&-{l>n%kMK&kTk2 zrtF8A_Xr-v@9=v(h7EWeDqA-^J7o_&EtG$s$^Qgtp2SA{0Z-v+Y{DO*{1=hO$^R0= ze`5M(JPU<^mE0b~a2=k9j_WTFD{obw#^d@N(#0`vEAzHtJG3dhNSsJ~4wPpbd9Gc; z2%&~NJDC3xUWUqkg;?pv@oDdTW^6QNzskJV@H$lX8^rFiZy}HK+57={b~67>yakp0 zHnGZn%vE-`s!+S%Vcxsg1(iJp?y~D$We3Rf9_il4U!b!8O02Ta=-b%tB2)H%G4BI> z2$lUeVt3g^eUPmA!{pWnbqidxt6eW9IF}Kkx~fxBGop*$2q;Ptxqe zr%>6S5v%M&uCfQRezYz>XP$dq?q}TH?vyhc*QMI8JYSGTef@7VUyj;;7LZ3l+kn!4 zNji5O&D&o^dS}_xk*7a-4v^<7e2s%Rgm3UIzJvO66Z!Oi#ZcHszVDg-1Ac@iA2#Xg zN#|^5XDki1=?L?V;wPvN^~8z9&Ne*b%ut)upE8CO(#UIZ^5j7nR7W_m+OnE7P8~I- zjyB9|i*`^QClR~r2n6FTE$bU|0Bu9@U>`n{Wc-I(4TJ)kz7 zV$yv`I;TxNt3&~~E22Qn`LgD@D)x1~gHsQu-{ zRj9@#xC~d|DqMr>aT8YKHr$T8a4#OfFY#+Ugh#OfPvU7jgDrR-+pz<$;tjlwU2wvk zT>l9w31V^6PP|4o9wf_BgMuFb literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_radiobox_in_frame.worker.js b/examples/component/ftxui_example_radiobox_in_frame.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_radiobox_in_frame.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_renderer.js b/examples/component/ftxui_example_renderer.js new file mode 100644 index 000000000..87074a152 --- /dev/null +++ b/examples/component/ftxui_example_renderer.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_renderer.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39024:function(){throw"Canceled!"},39042:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_renderer.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39016;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51512;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_renderer.wasm b/examples/component/ftxui_example_renderer.wasm new file mode 100755 index 0000000000000000000000000000000000000000..5ce5576a0629b0faf28680a91f5e3d32672b198c GIT binary patch literal 297825 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_resizable_split.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31528:function(){throw"Canceled!"},31546:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_resizable_split.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31520;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=44136;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_resizable_split.wasm b/examples/component/ftxui_example_resizable_split.wasm new file mode 100755 index 0000000000000000000000000000000000000000..19c3fcb4e072110da2aa3d6122ecb43688d0dac6 GIT binary patch literal 290093 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

    X89~Z2 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 !XbjDEF9vEg=aPvr_?rhx@1WH9XcFc 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_scrollbar.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41400:function(){throw"Canceled!"},41418:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_scrollbar.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=41392;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=54152;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_scrollbar.wasm b/examples/component/ftxui_example_scrollbar.wasm new file mode 100755 index 0000000000000000000000000000000000000000..5b5128c1d35352a499ad194e0a97bce32ed2fedc GIT binary patch literal 319239 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

    6Fm;Gdlxp&HWEK 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�ID;+Q7?bp;9V!{f47IaOIVMzHY<%4M#uc%4=@eu&z_CyRMm7vh;dJ zJ+NM^X3ZVH;W}weWjRi@J?Zf9U}1dZ&GG0nF<@rY$@LwXIG2Qs!Sx*j zXdzllx$c5aw4pOS06dLbu%>P3h>S)?*45MNY3ms0fNmipbe?NFbio`QJcUb^8OK>} zltFG-&wHswgX`CWh0fpxDo)>^IX8R>Q{ZaR&tLZE8;*YYe|s&sIy$@f9Q}CA9ewpb zeoIdmzT@c&*MYyNi@#Es2S_!D4j`zut*a}#=_>@VBg>hiL58^550Szkef|2QUveaG z>gwpv9`vhgHmuXktgF)xbq2Z}XoBh)>w#QbtHuDDw*gSVhz8f!@rD}Re?22v*NN%$ zI!tnCaAW#nsi&CgnoT6FvFS!T`?)5rUTYo4 zTt&8w$)Yo+l%mgpoQa7Qw7`97r`PGy>(_Uxb=S!<95SAom{=)VJvut=*@4v0z5a$j z)4&D)`lDwn--bWPWZ1tpxxCiAzVO;-|LKOKr~l~NA7u(({^2(r$F3Qc?w7CCU)20Rchwa_@?o zUxJ;v6-`wq{s#xT-%&0y5RZ!f2uN`VJVT^$RK&5yMXMlA-C0bMl#&#cvt*Vp`Xv24 zCvH{GR1=%tZoUUxJfp3zLP#nY+$k;pL_^h1g*JLxVbjSOx@H-&;?}#gq1nVZNEG~t_tnS6wauitnY*71bM=a5f z7&N)KT~y6Z?MUTp7wu}DD} zf^-bGzr`k_Gal~W`nl%eKpJ;G95?T^tskt;5n7HRa(G4)E3a3G%V>QNSz~NteuU~< zv5UvuN=QSi8R45L*C_Jo4%;?kA2 z;5mI7_QK9_kppQMFBs(!x8gX2`#iT99cS%Z0+3j+tG=IIb@GY<3NI#x3RJFd=3yoJnq*Nx$#SkTDn=XiadZrpV4~GoSKC3BNiDsjsV;obm>xZ4!fCVk3l1<3I%RF7W!bnV3L{1&mZj9eUP9Gv_+1jJ)@a48 z8WowWDR8l4KoTEZc%u=@hT4B?PZ&f%OB!DXf(HRYg>^-5kGE@V3%3tE_&bYxYq;Nf z#nRxSbtt_bxzX9zWN6n8e7s0p6)!~fSVqh!!+i?g9#mMmi-`@Vc&+F=T9?K-@YEo4 zb>E$Mhh>VI@}(!uy?pkBZ$B6%$sgIeCGOBW~VI@tPfh?2q)E= zc_dqLmq9OT6CaF~tLcPM6-LwwHN&x{4ROj4uPrbqg?e`hT zsYG9lNzF!WOe;X`uvIYDyeH;*dh@_48yd7IK#c}`7;ecYyqQ&)U}tS>ehmXjXFKkU z_!a3D?zkx9>`G0%Qpw8T{V$;ZctTm7+Wv3C>JiarmgTCv8u z-O9~btzv7Qp$jh4iCQO0V6`(yIT5!>FRQ7xXmA2OYjEY6mpAjJ1dt;c`JVVBITfIJ zhcHICU9L~tOxDyoIrvYVgpiZ5P|-C5$0I}&>Y0oj&t7n%C)CZ&3H2IeT^w)l8dN>WsejM;=j`YvchVK(Vjgi{-UQh|QLT zC>*h{P^6=)!5D{D1&m#KB%vrM1hA97AJ(6$+8R#PdZogFJ++efR?K}9nPdQ&d}9tn zqB)p-6Pi|wZCcY*%|61_N*&^`huP~>iaSBf$j}8okP!=o|B{BfSL^&Y#O9cqI5c{e zH~ys&SO_jCG%Gz_e43pR1kbYRwcu5UfgKsDHB*4CTr=Z3!t51YOm4HgUxwo3*b}KP zlFer1q!alfTMf?iQQ^tZHRJ;rP&LAMFm=GU3@SRL9lJI{eqoOv-BfO9dYn)QE(rNA z9twfppyd;5$;>3gzJ)>zX=tTzD@_by!zu4+iFM>Z916jzWU&yReyU<2s_DWn(}L1} z11C-^9$QEG!%)XpaT8dDCYYLuhOM%)(z3{`j4Fbq?wA zJB{;#y~k;?Oc?y#$N3`33^{zvqYfv*84}5wa5HRq7keIy^@dJl)-q20SUC(}IFmJF zta^<}pq{`1oQ{I`(iiCKj3P5HR)7<0MK6xE`@Zaj_=y*~7eCYh*Q$ZRt`|cl#ADSM zs($X+x5{;z#7DHd5h1>N&j!~~d)Pey+Bm0SIT_5&fgogTkiCJSGBMGkh$#7O4sk~+ zxa1HwpG_Wq=HUV7r$(>jXLcLTPy$yH#%w)g9-_KhfapU*U4Tu59=O2G=Z6ny9SNF7 zI3bM)X<{J_Fm!n&p;Op(TsE1EI3Op;7?dMy#C(D$L2;ZX6)sGL2X8?_Of$YncjSU( zzE91UYmuEL;FR5DZ)-1oDTm`x(w7tx*|2#?^k)mA=K-8!fCisZ^E|+$YDOScl-+F< zNnuG6RH3%jy|JybJ9*1|o8M~z+|E0G?$?L&{6M`s7#CgCx{`ZF&NCX7?^g%b^y#Z~8#@Xehrg4R zRiMso9m00;q0wBwnvvbIh$G<#!ZK`i*AQeb(~Tvs<%{xSFLq};^27-@ehE^mcK#qJ@%7@Lp_~DO}W!K z{q$NiriRw$Vj8zj2?YtA_s5~yT_yIfEY zK2qccKSn&l3f=`#O-oo|N->YnY+6%Xqi?pk&h-jz254&>E@G1Tf~S^31shB@j*6wutZ@oq-ZPanF7IMX z*uW8jo4wTz!wLw}Bm|=?qZb%TO=q4Obg7aL3DgAbk*UipbFfSBP}a3(%`v|Z5h{tZ zyw`Dl5VYvQr|O_uLIT?S2~YgMBdA}<53LMAU{eT>j$Otci&2%&8#j}syZ(De5b zpb?_I;3J#gczhp=(DbHLMs6c)SPooG*YzCU zBcu-no5x3&12*?RU}x>ga)i}ZOM1$T*P@tGi&4~Gk=J(^G5(_-03gxSKCM^nIP_7& zaezk<6oU@zVCWvLO5bjfG{BwqNX`! zx>Ld?oq@h1v24U{)2IIE^-$R+1PRz#1qyku4*{H}&PW3)#XZ^Su^dO{S1)syDi9wG}k zG13q#bv0O=Crc0=CgR*@Ja(7`kJ#Qd zC#Q^6=D5-JfMDmNR|?Vv0h1%2)@^foz!6~=!cjPNF3H*!8}sot{FRIz4(yH(23>3_ zXQ9|F#T%o*Y>$JC-QQ*?qPN_4GZfLXn$L_R{MF(XHCNppJqIx1E9h6Mk@h-GN=Vv1 z;if6Hk~9<67QzM>So7Jaxf`mTi%CQXZu3J+z)k{|M{UX1#P-=l9?n`;d1Z-+0d>^k|mK@5MLPWFI&9CZSO^IfZW? zx8(25H}G;13oj z$GoyU+ZtdhvA>)SmyxR-s$_(=2I)b4?BX7P6T7ds&;8exF6kw&eHN@Xwd zV{zZyq-27nd)Q2iYSo^`)ef|g5~t-&M32I%o-PWVfnaLw15-VtJ-z16Le@VWe+wW( zfPDFmFLfk6;D<5*=t!6jjX=Qf*A)PzP&djk1$qAs104IqjR% zby<5iXY!bpZF*3<+cPPhBlKsYgz{;|$?@?;M^M|uZJiT*ERgu@HbL5UPohBbf;PaY zZ`K0j;C_LWM(IXC0vdvjEa3Oo_`&jkn&IeyM&#q%o!?*#Q)tKGh#Kl>{-6=Gok$KmR=sA%1UykUdrWnOf({@uI-ERwouQ677_rFR1G5A)bza!jihY=!8JZZMQ4L=GW z@)SoVVr+zpojvDEg1X#bC3_%z7Y+RyCevk}d_9pO7S@?cwD#7E?Or?!ZO|(L z;%!~pRllX~>*p(GV{|y@bhO#i8a_}IA)RP>tSz2mW#eVO?6fX~obr&^L7UW%EQbI> zw{^Q(m!`J?(S(A3kk-D^L5|Id5VhfN4)S(}B#;zPya9jKGsJpcWx5*ze_D~$BkM4j z3=iHt>_Y|FQa%QsxPM@?-5#jOzu4K&=d*x1aE4D(ZYX`NNi$l#Tm{Ha8M1cTk zAl(NgNGFIdH>Jg16g(OXwYQWe!|0Ok(z8e1v|5^@RUCYd}^JUPh}E zRZjyvT&(BBzUO24;bTxQto{dlAizPeIj-c0rwrZ(bI8!EwAa+wSWd9kPj!=3*xY=q zf`(#BR_vxE<4mJ-OqG2FOayL|NfZ&8Jh8iJq~Cg&Tb#qQ4;bO$(5B=9SX2k%6>(Jq z0YnA$dfy-@lB#AT6*d1XI;e3NVGUMyI(!-GqS^U~Ib6-#EpJ^rQI;?c3vjw2;=3Lk zZ^6014GzmyKrEVC3O{DUy+q{Y32h1BXT>c};i#TD?liDEL6%9mQAzUos!2?4?sKgr zaxVFQWJp0?v<>wCdF+_sB>9o1ve#9akf4Y|wKW*MlMoLDb$p&k)8yrJ%qE{D% zSAC_#;*@zYOP7;^?93-NrEWB}Znr|*Ujfu-tG ztXL>0^YJ!EN5&-ext~iMUOgL%F`*~&Xx%9KBb6$}%D(pw2z^z54Veh9hywjU^d8Ih zbGU!vV7f%hU-+jJ{Lhg8K}f2Cg1e&yQJa#xH`(l=+a`R!+}K5eq(jpff#x_hcGn}< z$IHEoR>K_#+U#J3Sox1A6MXKD>4KJ6aws7GW@hewDs{KWweqkb1IMbmtq%RtZOBmtQ9<@gJK&X;xLSbH)fs% z`GEug3HUvo;yi`w;St_{iX)w6&Nd@;kso=gR z1;xvKPs-f)3A5x6s#kPt~=5$3QrnN&FQQJn&sM~q=BKm(bzFE z_4n-$fi$&0?cyG=-=1nmFLk<}eyaaXr2j7_Qh!_F*Bq-5l!c(1-(mMeUSraScJM#L zG99}J1zBJlSr(Y3d=5q^66jP`H0p9EoR1Xee2r~I=~fzDiGjF)r;+9+M$WJ+F(S1U zk?9#&8Wxfsp9(CFygkhC^1(W&(JY*{b#DO=r62R0ZzUjD0sMkLSiexLx7uy zhb=9GN0vty9_W8Bc+563u#jmUp7inI=?aT3JSM~$lU8u}zx9f!`mXRwjy`U(!i{t{ znOR@D8_zE6UbiC?ZVZ;IH8A{a!x^2UyWy-GJpG0T2^89U?0|7K-W`MKj_CBgP4~3B>CWvV=z4vd?vXtH;a1XUbWF>^?e_WJ zaD=AS)_#20lV{OTqkcQS-MyZ(J&7kMMMBy~t)DZbAUI(yd_4es5Gsi7hwj$h7#5lk z?v#n$2!#zmKEX-0ym&fiXq4htSZZ;ulBgB?ZtG%f5cypR-%)t-lrLzyf03T7IA_g* zxd{xPlvcZB5{4JPfO;Iao6Cqp$r9;@Z)Zl$ES4RCr*lyLJYRTfFwaA`3Es7#u>vzMbPR=(=7|{u%TEq4%vo`K7S6H4 z#j$-4TeMRv>~bYoWZ4p%BOC0J6<)#MFrr78mSLQ*-B$Rb4kO9J_kQL6(w7^hNA!P$ zRWd_eOg79VcYf0OptC-_YBk8R1pQ@ueWBIf_kE#tKP^I3GHeB{)7L5kjde+iVM}S- zhol&!5tU%yA4!3+DT9|%Mh#D6=3EXmW*s~}jb$Pn`N}&E8q-;X-qR$FrO+6k+L%(* zXbdoHwq+&t(HH`Uxuf^rgT@$KAB|=GG{!IkjnVXeX^ecMF-TH;)TJ?quSY+U1~w@$ zRCmHBNlx>;AEN73Lc9cdfDzay2#_7);p4gBiM5bRibaRY6QRr3P}|{Ntwi!e#3D(B zl<o(*} z5HLX*Hgn-}zTb+BI<40CTakau=$^y-qcVd}Q-HISJN2y(H3gx7k7tC1136$a#}8`q z+n8!jgW^Pu=OeDK@@K8^Ks}vi^lePn9JqMyGRC6KsJ6C>5|NjEx)o2NAb-YkQ?O%| zf}HHrt@0kK)5PdX9UyI_3`mT05hnCW42X#gncc5iGO@fv5UEB$Egv-bV#(HC?T^p3 z4yPuuG`QssG9RWLLxN8kFel_tFzlOK&1!wE9E+UE)kLu4B`$8N<8b@Z4VSM$acO6O zY_n|!kYSp2oDyt$A2$t8i|(VUQ%xUM4I{(~^PhZY7Wlq7M^7XHVR?4H9C}in%U5VN z7Az+3LZ+Q0eEg@`rk^BWE^7q!-2|fT^kEa(1KF)F8l4q=0?>culOQ>yO|Fls@3%>2 zG+1_O%6}D?sWtH_F)uMw^a;W6WolZ5D;X=$lMsEiG=%;3A!#@HEo3S}b7EF#EPRpH zgqa_4(j76TsYc8y6~>8Za{N!Q87!=6=Cfa7v@VpI6zrO%V2@9AFV)Biw-7S<8MC`a zbW5#f1=t){&YwxMXDrwklQeh|X;LPFTT7;5a0Y9Nfk?(Amu;MCdeBY~+z zpVUKv==Z4u4Gls0h;PX9)WCPp?$Vcw5DLwvU9s*^eNKd^BkIOlb-YHw-}i0x6qSnf*{Q~vp0002 zRr4(u%i>rUL4y%DjXV1|4}?U)))&x-kkghYeYyH*%!u5`LF{BTyDyUjgfvL_9gt?n zW%^F-L9X@r#0RP><0W$rQhdA>lYHky3IAF=>#n!5a% z{KQ-9&2gKBj$2Wszp!^g8>|y1Ihv&U)(molhvxQ;N%%Y={qewu3FWqGZtlFgJ-Yqt_ zbd{z)I=YSj58yMg+7rSOx-{sv`d})jG9tWmw8(c+DRiN0w$a+zpNm`P?&mYT?MMx_ z-r@8EWp6}Ey)QtqokSRjl3^f9uKlu&Ny&|GPg+N`7BqK~HfZi35o#$JYAJbzuchRs zQ0p$zR%-`|P)o^B>ps0^lAE3VQ%p_Y=NmXbTQnZ|t|B<~BgR$m-yO^^t+lnk|$yu-u0_Tr@VELB(D zgQ5Bc($?wuBtms1LvO-)gm#T+K;I4e%1uR%;W9 zP)o^B>k5)r-ND5mkOaxKH(LXnfqLE?%h8ETwR011t(|QoLOV)^c5c2nS#%Zd;BA=> zfat|m-_&;BlyY>UR!!YS+M3!yA~dCBXiCYOJ=G|AMWCAdNL#I)Btk7ELoFq*yWOBy za%-sdAZe?0KZ#IF$xutl^S@@bl)NU?+D+PO?IICsDH&=hx$EmzOUZ4a*6K?_tqBsL zmXe{ClH0#)wUpc$YMo2k`dUjO)KW6kQu3}HR!hnIL#+*@t=9P@LMxp4C!v zSEzLnX{)u7M5v`?sHNmB-?v&yP6WccgtXP#L?YBuGSpIX+YhXkl50b)&7`f?6(m9} zB||MG@4CxsDS3XV^%2rmYb%LROUY16$+dS|EhRUGTGx@bTGx;WwUi9Cl-zue)lza( zsC5%*tF?_psHJ46bu-E9eqptgyX_m6RPOygsoa|bW^X5LZEYtJ+EOyKbqC2EzAfe6 z{4Hxsxx0K)x!XfqcagTXc8~~dDH+<@c?qgM&FSU0tsN!r2$dfsZI$oWd%q$n87lAc zm6fyoJ62iA9ij5-?picKB2-o~R915PPOGKl6#D?<8>`KnMqC^SfE=4xddxH~ zAC+PlkX7ee@Bu}UQjSO!9%T*aJGC7d)l}C0Ce9H+vlH!ptX=d!9-OLV zq6yhFGBI*7&yYYexT63UJqNfL;_Ze3Zoi|le-DI07@?e9o$~#0k8m;w2g;He2JQQc zGy?t7m>s5#?J({6pNSclR2p3_uEVsLy(%!}knd19uxy zZ?Nuly2n^pkn3h6%zoj6!hE9K!L2^c{D1&n9wTePd+KOXvyJH zA$&mff4?!|@Or{A(Sb0>(81jAJ|<%p#$;Y5I2n3R0^&62#loFok_QlD*Yi{+E8$V? z!-EQjXR?xBi-LN4URLcZ!y>Ct@`9#NlWbghdetr&&-)it}1u z#S6?uG;NM4=>AO3-NMw~$3zBkS}Z-(#62{&c}1t-6J*5+I@u*DmYc&sC(U)q@+ON& z($*jYbBo4XUv$-#3GsN?@_#FOYi@d*WU(YPu^Rfd&mka8aBtaex>irWDd(E!*~LpN zY4%z!7&l`0!Y#$uI^EQ-b=nf)nos`b!FvUp{`iN#+UKwJS8;{;v+<$}O4Hi<_0gxpBd9j*^fWpfyOX>8FP zv;rF_N9!fe7?wjBv3L4_9C6b^5q?w-aIpAm&z6}|x=1*q)4wY>~~SBqLk?a8W4_QwxD>Wm3Ba6uaw0|@0Dj! zt5b^|+xmfK#=8hXszxtF?p1R(Zho(o_uXsM-;&+j9^1|BiozhuPHs4rXt7z)`grVz zcddrET7JqpYOc8u2D38r+Og=zc3mJ4O{^S^$O9TUSRPm-s|f^6`YqNs`wH89`*JXb%}>L^A_W1CWt=pg zGr_j}C{e(qCeYU9vtPGUKV@%^C37|V(X0Thx_CzxI(agYi&)rA124R{I(HIUmY zE(y3dP!t})TvDPydSkebb-%y0_W3{NA&(N$Pr|1j>;FIhefDGRwbx#It+m%)Tc_8r zNaQ^qoQTJa$P3nIZb*kS-CB;Quo0_{6qT(W?dldkf`x0B8>dZ`YgJz>4TfLB1SIRf z5j$l+W@GMFvOsnCsqTyt4#c#(aWT&Q6q@9Cua4+Ux!H-O7w9VUc$~mRKtX!bc!qv( zP?x*Us!?;BrJ`!PWO3Xc?Mk%CD(-Hg#dHCXkcTIEju)7=G!G`UxuvrY=1Fjfxek6ryiw5<;O6c+BKo0gMBMDjkoB~CjN~Y)`IBS zQ>dUb9TrndJq(~*5qw%aX_S*>MY~#Bj_&QYHG0kJqnz~nOj4qL?HRYtfAB68c7!tq zzj~P=S_7+YIVPc=Fcx)}(q5MmCcw%rv86HCC7o3j#5O(>4mXYCg{_?n7o-P!!)cGK zJ`{edNJ?XBpxa{P&FF@WO(VxvcQZYKq8R(?KcXIf^DX1vHlsYDqI$z9PH6Os z&DFJcFH}#y!@~JN8jMK?-%iGqUbm_(62I|c87(ILd`*J~=?S==z$js#lZq%~40BGs zf+2}r&Mi`RlK&-JFoJGEuO>AjBZ3p+zkZz4-@5hT`}UR04<8^-1!$zR>QCMgL(jQy zi35r`-3p|EC;bxP#fzfynBx)!dSq-1By(jt*PRkr9w9z9SPTM#VzXGp zL??=qv~hW}#l{!ih6{nDvC9U3uwCbG9%F$SyR`m=9eC`L`iFGzt@RJpK$MYzLV&}u zSpB<2cRz4<5_6Knt8z@u6;Vj%ML4Ak$mP^txE4HWL|l5Lm^vx+ocUKa*u}W%^HcMU zW91a_c%3)l4#Trj=M3La<-P={^7g(Ey>5!T(EF9fKn0jo z%+6%NiC3){@(L+By1qiR;T8I&^v(IGm^xTa?MA|goft&>?C{GI(vtp^fndgdid!-P zj#n_~jN>Mg#Z-~!57VIXi?|>|uJ^lH{sU^GJH@bc;G$p#{-)3i;B1UFphJ?urnS0; z3~nvV1MXka40mI5z&!se>1`bjdy&v>7vo~{^ob;XcgEmE9kD{n(KDKeSw0KddWbmj zkF2vY`w+OzAbJ%_GEc||954_MvgfRedylVX+TSI71okCBR}|D@B>!wuj=;Riae4ws zMa*H6h&hDVC--l_p%tK)yqym+r7!AX<+{4c z<>(0VDYtrjK3e47O8GY?)dO55&|J*l9h-hAU|p9w_|3m~(=}a62-% zjkreu!k?1DSwP;wL3MPEwEA$J`=&DjMY8x<73F{2*LFHPz@pD7(I^WAm&uG za3DN_q!=9f#kDE;WFGnkz~g@aZ^{@k_ zx)RP_>8K!Q(@+!eFk$Yedgc{ZPQDpWJnCq@S-Pk>{2}C7R6v)Gwfg8xPW4mgB5~gz zIY(yP@JPB`Ka{Rf-#3$$JP@*yXm8ExG;fquEvX&cxWUMNfBEx+FY!s#OTBRr19WeO z%i`q`nVUZAP4(|7^(6m3Vht`wxXQ3ZsC3n+5Kb-5oT`B9s@X0~mo_;=U@Pv8iqoWy zRlh|gXQ-s<1%)YZd!Qg)v_pV+S?DI7#(ll<`CUqX;sr~mp)@|2O?=0Cr9VmOPrYF2 zb|_6O9fqmhFaBwYe^&h;=(D836mLz?FQ?7?t#*)84lMj85(&S}ZUHi){3sR#Cidsg zMftxdvF(`MTL!6!;Dx(uQddpTKUO62a`54A$^Naq?6bY>h0ly$cB2~@loV=l4_W?S zT1G~igzh1IJGABz0UJA_m-?|gWtZO+DdB`1DHbD;6jm~wFeW9kJaiR+;xBhc*6u^x z>qBfrv++JCHgT^HDE3$}b~23gOp`c2XKbTk-#elgd!KnTr9P|U*(c+qIT+5m`V+4Kn$X+2O?z= zQXo>gra+_!P6X-1M#@(qfmVS?+tkWK2t-PVQTh0`c0-D^wwri*jKFR?ZJzc5ktQG} zo28t!rO{wHdW#O_+t+lT1iE-$$lcKFIPgMNm&5wikXIwL8ChNh-D^fs6^Dn zv7TxuxB!-4Smsh8UuX2OHVDm{qRqO!Na9iLW#NoUg&~?H)gK}O^!m5^nYg%h1Z6jP~yMNiJFvcs+5$qj>9fB ze0c=Htgs0KVs50>rz~y~IN*shKDb-kLT4L}B6YpdZn(e_7s@{(U7^;$mA4L0tz)hw z*@QDz4M3Goa`F}(w5Qh!(!+kji}TW}tt<0uFs;KJ0ktrjD~`89>PYik`CuV4rPd&o zNxs)1Spf`IfskMn?s;CfA}s(qkVOTk9aOVU+TDu@!n|gpvd~3f&3~MEs%&9oy%x+!7yJXlxK}Qe7gR~4_>iwUu;}(NJLeI8ONc7Q`ErA7t)=nIb1Z5UPj`U6(0>QB#G`<*%jd*le-}?~j@aExR zz^bFn{qVXq6x?p<=lKw%ynS|F+)%-R1QD0cg($>stxQ8{{S%J@kdZRltZUZfP^Xs#$}^Wv;4zCs>v`s zD}k?J^&a5h{1w{+98|=|&s?|%$yaa>pqmZ!pz#&l1CvT#a15AZU$IogblAWcbiRUn zfYh*o9&Gyx?g5cKHqe8quizdaf4y)IdR8n}N0TA6Mm%teMLK_8l9L^OG4O33*l4MUfu@EdKFILM^r*R_kSoq)s zQ>s*Jdn$IDL`xbsLr8$45msH(VPBs)BL&u*f(kvyC1HP@fM_!E|7 zN^qp&jl$M!a(nfz{hVdL-GAL#eenE2e%|Rn?_i_q>f{azAnfJmk^Xl^cOdzoa0qH0 zx6_!h^@=cF@bvBudvv7nQ)hP3Fl}U!vb_khInIvgu}u!V|pB z9tI>=j)eF-#8K>*14PjpCW<;^Ut;Xlh7`#51cpx{F_^^YM1de&6NN-bj?jfm8R)nbKPjB_(XM5nvkVN_*T6^|t*>P$_=UZ~ zLMf5SG{SA#T9%c-u4U+%6OR9|iE<6SLZ1R`s~n}$DksVi);W1(^eQKeuo|<RhH2wjJHcx`m+O=eJ)$>F2fb-Js7=zU6kI9yHHAfxM74NY-hKW1GJZ*+O6kd&w~1(|mGXPhnj@H!>ZIAB zI{ns}kmz+%;wp>GVaA1P{NiHV4n%iji_(wXdBLZ+T((3eDUG-StnxDW(G!KHlsgv9 zpEZC44#q9vQIExn%KbdEn;V_U_q*;Wz$mi+`a}+piL%Kt%RG= z5t|rja2RAf=s~!x2VoH)%uc3qagVA;22l5Gyn%ap!e~Q2S2ONmhVEL(-vg?8#%<7E z04gIQiwWC$^h#J@)Imf&#PUPzCHim(e?E@S01WUw?bNZckvtP?-&2sCq4#Q0H*un* zT97~5sw~LgEDu+S*IH0KC0kHDR`4CsKkf1I+Z@;7I&k^{O0ib0=Ny+RBA!_e>EWZA z5C+Jjv7;yuoyV^xhUoWsJLJ7b?U3@OUdo-8lK)N28R2Y8L`Cds2yb8yN8Zb`;|YT& zHw`WZ36qXKU!Vxj~CJFrXoo z_~p~*5`~L9lmL~8iW)TRpa2%7pZ0~fmqJmp{tc$nNRI*+3I|oSj*UL>mvU43zw4R3zzPhsh*$IduS4Y{C+l$LOzT)s^!6ZL{(AsJh2Ux zE4+>T?a{k@KsH9(vliZTD z@k0s@G<*`74*t$2UZs}`P0+ObT7)3m_s0=!K~67MhpE%JtS4P%leE+gluA%|VyI1H zNL$P!#)9o}U}Ii|C)IQ{+w*{8iy$H-DE4PBns%{u_e&%z3K}d|(*Rkvn>4dM%l@%B zC5ScHu4oSymZ%yQJI({?*R5787C@#|Y+CLD1{hzV$YAZdl9V@}`vQH662}6x3#GHo zY_7vhJoypQYvW|uhvT0AH5*9Ku;lGz&i`yDpY2{DO=D!c6diX9-Y2Gk`P<@*Gu10& z@H^T0XITbd0EH|yj!FJYh`C+5z*}mwcUpMBNr+}g?UB|8hE`G^a-__p%A)NGz%pyU z_yZG5=6@1Qv)AS;J3aqKHhR|}oAe^7-h@vV;Zo##?TvaDoQk=Sh8J=5XZY~g{oCdy zwO=)hu_Zt-R=ZWm%57VdawFpjv#{^4N4C6zN`|0Tjt98XJmiBWWdyI@-O} z5kus5P(&OSP$a$0)OOt-G0G*SyXD1}k=_LHix#Irk{qXa()=m>KMBl$v8ujw!u`7DhmrPs@k zCaRViR0)6F}{9K<#h#Pz!^88!ueS zR1aqpJ1}G37oUlfBHxufWx6Jn5&E#kWTbw&O1JLeu1wf0`zNpwuPdSNe1s^4Ho z)S{IRmj=6wU0M-Wl<->3_?NQB73+YwA;PNYZSPK(!T_u^Q zx`u(2uV@XdA*PQ9 z7anVpZL@|+%zu0em6~`5@SMh;{cMa zScb$GzR~#WnjlQ(Iz3U%Qxq3saDvz5dlkZ?ZUmqo`PZu+d-^{m<#^yGkB(xE>E5=G z>fu*N<>0-g;%wL$xG*t>5yrJ}Y@P)c;fPFC+`Cx>^g!Bo0cRL;xo`HDbdDdYw_1St zu=3^?AU>D>eB7m56!tX_xHj|KxjD>UT}!iBmyI5^2serM&6R2fbqt&^msLi(%epsHM6A0#lUYKDiE zzoF|vO_#|>CI(Dq7|kip8fXI15t(E(9&!F-)`(R__#{w_C!96H2O34_SN?y%%cAU6 z8|nGF{kN+}3|09@)9fvS?y0nU!XjtzKpZGq_3Ij#CICxsC4d1;qZ@%29uV|Igh~>z zGA#a#YNxf>dMV&7Rg1IJ4xOMrk7OiBR?{-{c{uy6c03vgY>QTE*V&kmjeXrq0AQ-J zxB-WY@ty=Z4kWZ{DM)eBw71}X{!avWQfz@XaeR1hLelrsDIm)q)0&{g>olH|EMe9k zeikw%DMu5GTb3Iw6<((|m;zS5G+}vMq8tZ9)~*qbcDNYp;fLGf3_nWAuBX%`;&GGw zO9*%OPxv>47ok#cb}xm;D(qy@=DOzYrW6byqHU7fw2rM5o5&P8IEF<+b9EC1x|@sy zCQ8ooq1;+A9`}?v893OWgMZ{(ELEPX;zA!b2dr!^a2Vp0LB&-=lU7sSI9xFzEe;s? zO`Sq#*4^q*<`9K2+TE-&x-BU$w)Sf%Hg|KYB`G#L(shTPOlE*0;bXYkVVstmyoilc zEUe;=83M2{0)|zkpkAzeXTy|nrEAoLsyV(!SNS&yv@{ICQGkP~3qZS>B~PK7jX3&f z7^Ur%wf0+7XBSEfg_u*jyRi*}7eFW`&4zSd(KPTyf1$iUtUMVb(;p>p?chy^QJOX! zJ7P7Ao3i54ViR|xX3S8S-IQKsA4z+w#VC_m%8S@tlD|LcMhpSMEINpDHtcCSPoG*y zl&d4e{oad$7t}Y9GP_>ZZM@L2r_ub4{DaMEInok=ycmL>Ft?F0K06nG5jbtzQC9J}I7j#2MyA^JLj$`hQ;p zQ?^?x2Uw_YY{8UK&Av#cypy@JUX3rrl((*A%0q||`5RNd1f~qvSc@rdV(P+lxiRjr z7-a_*Av-Jgyt9d_bB0_Wr$e~TsF|c2V$>+Uo7ArXM(vn_QA>%v5Th1~;eC)uZ=v$C zJx;xOWfgWYEknDSJzsFVzGUVM-nv>!v?_2Y@v!k%&bqB&&UM#Ef%^i?S)9Gh6&ZN) z1sHCA5zIN4*x}5166Rcw%%wGUr)gEwcDlG!G#u$X;Uz{k+`rpn%t~IDG5^~yKNAbA zb(k@W42BuAQu^$71B^M;yP7ed`g_%nI zc^Kn?ebQOZeP`%KJmju<#%i3|ClecrG}1)L#R5U)GAV)<1bcKp@16Cqzp52{9KGv} z{F4IKdn2KtV2h}J1FN-JQ_Bqdfw)d_nc<#+(ngxZtUzX1QLo7i93`&nt?Q^|2EqQm zuR_=%LEL$qm^i3yR1&c+p`(?XtC9PKBv271b>QygOmr_~$v zdwuhYE33I)0aiEBjH5={i?S7kR50CdC=YHzTmBNYR{a!k8gS{C2`VgR_FXeetz zAbw1h>*#Bhnp;OZT)bgixLdcZDH-dO#f-In!EVaCejl;ftb=5oRkL$I*3?iJOky9C zo*H)Qbno|AF}i-MsP34Xbf%s?MlE0pc~17B9$2-e{u1_)!K6~p&D2)iLz#!n0;;>E zPWLr7L`E@4#4$YrrZ>j*h9r zx?2HKWsRZ%KSmq+5_)Niau10-7)t7vYuu5U8ucLy{UGDHIF_SY0>m~yyx{>zH!B#* znys=+u##F5m>}pGV1t5&fz2;wDzV+#AAMM{1yKbEJb&!`8j(j}j*qe^yaR_spzmV! z#7!}n8Qcr(mHQctsk=_-_@;b4Yx!?@+Gl5vxS-9oNU0J|^_BNgqbm7=?pH zpYr?wA=qujwKxdUu^LG1L?{VwrvpsDA**kP-`qH%n(bVKGRNuH=hbH zw;I`1FQC9M5zPU4wf3Tj_d$D682j(x6wJG#mzw&I;I;p*C~C@P1+C za7HR#cQed!>jh2(0v&fVv>CPoWO-JKwqHLQD}bK83EOb>jvcR?)iY>6QkHBtjL;g8 zD|%0w|0Iiz>LlKTqgR#iqegFR4PadCEYe@_C!-|=>_^XEWS%y93fdnf%Z6Qn95gfp zrtC*A+lYpCSD_&t)X?zxypV>b*RG-IT!Cw7PubHL6Grb;GCrsE`0{?n$k?TDuHf2mFP zLGC7oxVFv)^ztdwWO_k$aRU(b?59%XRzdYut;bpKVJSFbfv~j{Idb?Ixf=4Si&y5T zcrDGQSFtN}RD4nT%|(r`Xl(udT~yCDuGJZCL(A(Rpx5$6b$#_LxLDN=P0i#5d{~*+ z>#KH0Q0+{so3`vh+MU*h!v*JXZ^lI4kXxvA!z1mwb}2RD0_vVOi0-D_042Z#P+)Bp z1i6@>bY1Vrm#XU-8N!J89?r@_M!>eh9rO;<;)*zQdWOQgbf4wF^xD+*a_5)ee8k_DMIsVzXxT)Wab{u}J_rQ4hC&+10~A zydjfcP(AF85_4*89dUsy>y4g|oo2xX6vXM33L*y9mBE=GX_44yXIVQci zz34|M^*y~(xaJ~bSP|5;YoiJI`Cl82llZl|$pnX69>)o#SWPVC{|<2zZQm8ic#*_0 zd4q~X^B1vEA(hQNVo}PKkC!-3c=3s^H6Xfvg7cmm&c{4I&j_j56)smiGO-x9^V;|Gx*tFbq&Q-Myv zSp}yscnw!@G9IX)?G+65;hryBA3pe{_Mxs|tv=vMm}H-A^*jkjG~oH`2$@dIW?h9e zPE0%ZB{S8~&w-k56P0bojB`&fU7SdxI5M}R*0Ome$weuZ9`949RA^$2KIa_t1r>9u z0Si+y#~`*#B5=mHVi#0})h-DYJjI+QM19h)Q5@QIIAdkCZdB#~gI7xgUP8%lBxhUa z^xGCN9nWT6(cF^50G^hY7aa@qeiPrc|4BS!TQ_0kCx?J;8G~eDuwtB8Us3EeONTO>2YQKrfvBsM=)_eJtno&$)g?}Js_XamkP$A`= zE#P(+t2|jd@}VFco{kSv#wx|jthpKltBkF}Ogo3RiWVFf8U}MHkA@%&G}AnG%%4UWxZUFWcuCwK?XonlO1x~3sBIvGH@sIEW@}G|DV>j$L^PiuqqB0p2isVg?+CPG#3?X3{k=ppB_#)-9NV;@guf(+T60b9xBtxEWHS z><{}qMJKje`FC;RjCq=KdC*1i6!_4xnW?e-uiz=ZqA)GAc3mt_8G)xruwGg1D7aI< z7;aTN;yh&oIoIJSqv9zrFfNa{iSLc_l!0Pv@f4J=z*DsFfqfn3a-IUjHBWJ<{q80w zbmJ*6#85_!q1bsZXDET2{6OF)Lya4!V0x_JChO-J;wFx3xQTF0C2*6WlKrj?ag&i^ zRNQ1>R0g<-*XizwU>r8W>AgNTN#~L|bFgLB$^*Vt^AmXddd$JAguDf&GZXgSCG8mR zUIWi!33kF|kRM2z3Cy4)W>6oz6O|1S`2b&9qiI`%KBJ2SVH{@@1RQ1<;t;V3w2{E{ zej3pz*Ig|Vkj}Dk_r4fjM>Gor8zp@-S;*fDhpLu&H(MfO1$wd_ih&cdI`o-;T_IJw z&N64_e~}!QMA7DlsE3+#VrYzSn1pW=bA$moj5cXY{wtEwK4g0!J=)dghE*imhQ=CQDQvH!*Mc?%>dw%G580+EpgxUi zF8#!=Nwn>&+Hb11cxwXP~$Ztp0)K_S-O=K&Z_%N@vV#&lyi$X3-Pb>dbW8;GmPz`%Bw|et@ zYDDIse2yv8g(}h6DRc_;870wNv#hvCR0O6Stt5MOPb=sjv<3=VQ^bMP&oqgq-tiH{ zd0@+b8+SsgyNj1$Rd^&J=yIaF-EcB!Y>yI%iBs<3awdT3cCJWtO_R3Ad{u02kKmxa z71AGAGvRXdx7xNq$fiF)=qlQZ6_qkQ^<>v}g~f;i5#g0R*{g6ckEJ@ivZsN|zU)!} zmMpt84!B`T-@>oZTtKAs5{C(WG~hi z!3qo8ZFkFAyx&_$n17Iknvlz!9n!f{rSQc$H)&y;_4SH4ryOKUBir?)K;!0SMh@*b zO0UbF;4YfO@c~B{1D4Dw>ma6^eN6Wd%#dhH%|^3|g;(|8aFIWwxJ`Z#cK{s`=+Hc& zZqUIsafS{&0|wDyVv*-^bol#kiNb%xOsZ+5m3`14Klr6U9t}hOJIUWQ zKd?7Vj)$$$o3!5>&bH$A(zeS(CU2MN%zJ6EXDWJjvWynNVd$KY8CcMtHvCNA@xgU- z2?nZl^H{xZI{OswJr#2lmdYgp5XUnVB z${o>pVRmS()YYT;yL`0-E7)J5RjGjg<5$c6pj2zEmdDmwEsuxQ^6XdB97+dg5XvVQ zzt9}QIV9be{rfl}DpKE(WPsn<++EGkbne+0+HWS>C$Do6ECCzq3Wk;rvjBg6!#FIU z=3(r$184ZfHJGbEv8eSTYJce^;gJ2b`12b z70|C{$F(Hj76I$r;L->Gf*ZFCzWcwO8Q(I{+uxzbll^|V9}aKh@6`P;>dO5YQdN(g zEyr=AKL!YbF;)lS@ef)N(B<8Vfaw;|qqZX8VI?bqj;<=8l!TboR)p4o6@jy?Y9DbC z=|nDn9!cK>I7C26(kwJog9Slm0=^{C3h%*mpkY*&p05rzgC|z^0PsWDkwzVMWF_bp zc0^cEpqc^D2f~iD`e8?22y)nyG&>OBkn`1pT=sG{|3V~^LCC*mNFs)KIIsB>D~K&M z*(I=XB@NJ^ZVY~ZBWWLQ1VI7Qh^9?~J+ay@3p2t$Ce`t{5d9{;2v$VUW%*{Dhf#h2(^Z?hC87JLQp0aZEu`U;} zb`xpb0sxgA0Jx~hu2ii?bUwOS$;7H{&&x!k&Fc4}MZaaWS^dZQ4RI}avzr&vw?@B} zau^7?UF}X_!@^l~kofHm!-9L^4skPE>#=fT{_sQG6NXMdaR4i%I+5ri-~etjgc*=L z59$g;al7`}N29(j_QOWeZ7`K`k5@UiSIA1a3J%Vb7TN0nOfRr-0>#)#nrka&iBuRb z%G-lJa%6w~&^y(E4D(o-K2)S+!iM8QN}7FxWE7mKW|PO_Zd`~#Ce?F4hCIS@d06Je z$6(Q@%FHs7k>7s210Qh5JP2gyFGz0yXztpq(U92nfEsDH1*ZUsQmLt2_Dimxy|5Ox zA!9zm*N+qH#!TimkP1Yk8FT*0l(@Qri|G#4XbM4kVkOY=*aXu*^19JXlu?!u+#}8R z5%+4vZE57+O`siy5=h{TvR`K1W(ql|c_YO1K1heabgk<0w-5>G-ilx+QsmVhiSVU- zAARB&vj}w=dRjudM#F_r?S0XEoeaHB7v!}p*4O0&5OmuFxKgVSD(v+6=oXOGAoPm9 z413{b?bf~FT5Y>T1HPxIp5$oQEF{c>%|e=21i!^PGho`ZgqB74^vfC%`8yZ^i9jOO z`Kw^ES$!kj4e6v2FZJ~MV};kS8&jM0u7u%>QEsaXM#p6=O+>;57kS5HBO616kDia5E(xQ{Pz=^kXvQgqj`A0%hFDaw2&%RJUJ$IH za)EkCrs#FzIz~Rykyd0%RJP6(-ka6j$tiRv45v>GhSM3tW$Gz(y9j6IMz#o=i|}6# zNpNkN9mJMqswUguEMoo?Dbr}6M#4&fNXk+@yul*>>A7GTk=ZTk#>}X=L{YMkix7_n z2F*tjL-rzC!3l|v(;tXA*%DPx>01pGRwjE%Z>{sQAt*~@~2upl?|_~vmDWk2*H zZtHGpg*&eC!=#W_dVVg`(_!5~3?sWb*}<3QUi=Cl!bY;aR5zh(0*7CBpyUz2GiuYh-{2%q4A8# zR7~l<$|+;EEN2NU65<5atoPxLYrsqVdTRknayOXcVr~3U7kRn!dSZb&&Sj?H`<5BH zqfIwtL-8fmYj=~|m9qQ{*TsS?I4-2t9aD>-#2dA+-xfMc5(DI_A&fJB5<2ke`)cDvg(g9%7IEs^N-7r?J#GXvz=4<|7FjAH&eoAl1&LF z5>Y#i{48~NN=SA}9xFHJ3xFw7EmVWc={f4+%Lt9n0Y<&=iosd^1N2>S zBXxiHhM&NJT>;KjzgS`U4>E7Wahx^nS8C}P$y$(3rg3L_wr&|`(} za|ub4f1KIPw4OKKWDwJ>gRdRWb)n~oOvxQ$>&T+q-BRQeX|vVVHhc9Mq>(>1u^Ew_ zIHuJDN&W>%v?v_~@Bf-xj1e!e{Z~k(FSHf;lA7sUa*VWE$>=4>fuZA@g8BjnpC*c}$Fi<4q5F3@I;M0P-WT~Ws$Y@f) zFpFC=H^HZMf`(xMPxi9w^+mQ;RvqeKdW>3COb?keiT4n7M_s3Hp;#U2(*nS5r|CY^ zckb=fCXNKP8G8;S$Ho?ThV3`{>xLmVS)o5Araz535wBONX&R#BZUUDDA#r6I7HR?p z;F`^^SGo@pcig-BWh5V#uMHG??|bdW_bR_B%%kfeH#5AAE>~ zF{wgP3Ba0wE9YKei~}JA6?GRDW<)y0b!8`&zF`MP$1}bjGuqH244wXO9B{8fjT12N z=RWmO9imkOciXVj*5lpHlAA^(s%@ShJ;c0gJl<8Loh`-I1KrJaTQ9iA*Wlg)=$q%? zLtF3W-(|12pQDFL)mv^wqr4r;G_o@TPv|yM9F!YP`Q;J z%%4Yxy~On5q}WJ>D&R(!0I*qGK@2;Bn zRqcJ%d(lr&_z73BJ__#r5>SAX3=+EfZYUTpHtk=Hf@q!tu#cBpj?w+iw~a?2!?7To z96j>IcOP;qwu%-s*1Zlg7PPQojMn(18xrJYFxVv)Hc#v^R=zdn8-u@j{_wYvpY}%| zE4MsUY&mEQLNe`qLGb1-kL6~*RPv2TeEE^%P9!~qyU+lKac zl51>BGyHre{^r!Imb}&8B}Li0RO4cx)r+Z>K=i%xZNA zNeH4mtdJNZz@VVl!8uMwHG>?cTv+%_NE(#rFg0rb{wlr~^&gNq%Ls4e*p!xHYDTcc zjCm?yh0ews^uTaH57im=->r)+(Sbbk>e;p7K3P2@8U>uqa2V0DCxx89+YV5wkUnU! zli8~ypdZv;A;@H5q7|_R(MTC*#`l$xP7L$#5908^tn?J7T9*BMs@?qHH{rYa@xWfk zgJm;VnU|NZJILh19L9gkPcBCXZ)0rZ`OA)-#3B>zdY znNHw7gZc$vR%Pd*BQmnW@L1~NeagomP-(A0_FY1iYMx(Sv9+(Q44LJYmY#3lYen_^ zT$}ovp)XGYFeY2Dth8OnP9j0P?1{jWvo#~=Zj+})vcxb_ucy|*#oGAc6A6+k2nE}vDR6>Y@M|_hD6Uu_J-7C z%s7gn>{N=cD?&(`*t$1bi3A!G7VM}R+bBY!8pezQjsyu3iYaJVVzn;xgtZ2|3tOY< z-0?-hjl9N9B(^G7zl8u5VN-+Jk=N7(mdeL$Z9sD;w5eKooSm)FLkH$}9ppvmT0DRs zxP;-Sw#Nkg)a{@R&;QJiJoJ12=~w^a{V}^}G(p{nFli6lFI1bG6RfDP!(Fp>P8e04BFdEca=p4ww{B32w@QrDHxP8bxaR7VFJaJfrkc)wp>#dXO?eBF< zF7XhnrSLpqJ&=E#$4@YNVd4dR$daVF7mHpJ?2xD`?Y^o~nZpQUI;^g!yl?khuwo~7 zs)n=~evrwO`rru@=cu8$S8jSrLsMpWF9hRYRTN+q`Y`H7N1p^Oqg1M{)VO1445;kS4Bn1fr(cb8X1@a!5pTOmS%` z%a4CarN7Og|8LW+hEbObkF-1GWV0MSRQ&+lDPDYhe%H|>ip@J#Oi7#?Lm*EB>v(*= zIC?~mVZo+4CdhG-mo9dEQVBuy+MAeYL~)#$ zb+D(d+K?l71vVy$%cm)uq&>3iDXTK+Dx5weU>j5o`1OU0YD+KC{RwOqLLt_dmuWL+ zpkc*EUeR!xS;hVO4_7fO@^CIdRT}fgwtDJEQt<#ZeVleL)u!F08wD4d-i4f*spgtP zET6wlYN&x;+$-_c9^n9^&Wf8HV5pEaxW<{~Kr_|7RJ1pu9Z|f| zo7FdCxdSs;Z`=P!^9C`sv0q10$Tc;;O=%1fVsQRXdBA9NS+RBA)-q^s`3u+O-(>V8 zaxBWr^filG#22@dU722^*95`j46jy5KBn{6>#NhXq^Ns|8tMRHQ)@_~AcR9rES>iz z<`(N}_Nx5tUd^5^N1Cz5k}}u5q_#mD&IZR-mfaO2HZWRl(<$uijA%&uMamwctK6b= z&3zej;1RJ^l-N%UQ%p~gnChqU2P{sRwLqAJp>M@5j+Wn%f~6&~DIz{&mOB_!{;`CY zK9BiC4I>es6Xv85v^OCdbr@)ccb6a(m~MthKae#7ntoPR3UwtxE5lj%7r!M6|Gh7N zvk-OIGNGJl4m$>86IApK{wMn1jlq+60vXoC}xXeN)*?!OWBw+w3sev;QJ(Z{>j6P zy^;dbAdvr(bZJIGEsaR5UnjKjVi&_Z^_{{tHA6|ZDGoaOd^mL?Je~rFv@;4EzF7*I zw(S_JLttg{v4isk<98DN3wo>Q<{7powiXkQe>=u3thow#&Js)0h8V8jO$pr&QkK&0 zWmvBu@1#1LEPyc>bpCuS?8{p^Ao3hf&o;Q`#h8QOu}3I(j2dQUObz0SqrXA z&m|Uly;`OeXXua?uMg;n^0xuqjeuC}*~b#JkpGx)g5tn@GJuw?rl%4cp5xx^X-j)T zhMUVZrK%GN8b4LWGkkHs+Kfv3fO?4&R^pU>9=Fej6DxVn2YkuW@Oe~?XKnP)#m*AA zuklg_QjkKJ7$<6n2160Ww~7!?=D%lEoDJmhjL2gkv#>{AC&OiL^o+IhG?SvYBpS@8 z{q?fFero0GE7Q}VjVIi|ra5J>tT|!saB{sX)2dlqqI>6TnT3Z4QvNh}ji3cfmu1wtZPv5nzs^oUV|xUdO%OD`+`QP`lGu{vT;9bRTe3JN zB@vFVyX+hf01Q~0nM?y25L}^@!3^CdTpmFT10y0G1WJBey7;Lb1KE$U7EN(wqeZf= zn_69yh+9RqSg|)&v1R7dOORXf;)z_DC!ePAV(UrOfuqql%^c@8Dl}m3MI%VOj42i&4JAPe zN0Z%ZRC@ImSY`q@HvIdH%jU6qGhh;*;FmP+>c7&D7=a5WPzGk$-5<(&Rd%RWJMSuhn z9$qT!umXl&7H#?n@LT6cSkj7#>P5GL)ufoXZ-$=@2@4rZ1UnrtHZdVN)T#I` zeQFnW20!Q}m^vB&-34-tc%a_3cBJ~$E=*9bNTzw2qcxPaR!2Fbbp0-ae(6WIz5j(u6j2CiaT>uugAJDS?^$j0Z>4xSdqj$nHN%rFcF+X*kU zY#E=jPgY0@Jz<5Acanf4S*aMeFqlB5t!XhJs$z1Bv1^x-ad}gH{kXB1nBnBwy$&+Q zOgANm-TdaOfa#=WNHwzYt7;)osK=Ar$@GG8cV z%rwH`KGS`0xRLAmXx^}|9GO8>0;)xv9eL*PEUXkW{oRXq8xxT>ZC8Y%B#23Q2i?GJ zm1-sF!k5|XTcjr(V(!6W{g*L@luor>k`Z6pxPvK0)o=g#-!xt$mlPtxaP2A9de)dZ zdV?dVG4Q5<#qOXUr7usS`L8*Ow@W!S|A27vda9dZeK7yANQS6qezU$EhMUtAci?zh<#ZpaP8{1}o;C71A}= z^=PNu{kou<3{YC4bD;-mo!t;dx}Smr-*#zbf0?SS&G1u@C7h~40ITus&8mg&2uRY3 z*{OCyGmc(c%A~lZbI=g0ot4+_sx4sshJb-obM8CigkFxzYRB%Lwk4%xvwCywo5TPc zEqMha|J(Rz)00fS>Va{M(UrFzvDkGZ=wS{^@&u@rReC3&1JaZ4Wa= zJpv}5qi2;42jvJDY{Nd!VRuE`Z6Z?g{Y=xR+u0^V)Q45p`RWXXoiQ!*q{Wp2XRP?s zO=oFOQCz*zo8>0r+b9A%ca@^slxf8rt6ZEt86gNbP{w*f%$e(?@6tYr$Wzunz|wvi+Lyk@@3X17 z)uB`^{U+5*+=j@2x>waRp{ivPLse(2D^G{6Jk{{3mK$DG_KV#aF`@urU?G&A3Cj4{ zP~%d+#^YAw!=c7wp~j_9BjYwuyawn*zxZh@{zNE#Dil9KaS0NiG2=Pia%A)+8kA@a zArr_xpT-3P>F{l_tpLkw)71 zKo|$4jFNr~kwGSb_6&`4laF+CZdZdZ0C4Cqs@ax;lLoBM+}(?_+k%#{mNaXE9oX#K zM;Uy$YR_A9$ye{sAv}ouN2S10`MDq~Jd4gQjdAPlv~Z1amfWa&L1moPTZCd%Mud5( zjI_v9?b&>S;WQXJF*%V%${5@p7BT2$Bokyc3!PQ&wjA(q7NZP}sGRhO!MfoYEFl}L z8kUbco6e0gD^cI^>(pA(t}fSCQvIQv1o@Wv@p3d%X;erHa(~Z;K}o7BIk{vIt!0a+ zb1=IUo+{HDyf9gb64|LUfDe`d+jvI=M}LQVLyVEo9r1-7TybA^f$Z$roRi|2c0896 z*P3YTjX-7BJ&2P-(*H5Wv~4_8lM(9JgZP{@w0j7V#`_!vLP9S|O6_9xh4aRjBw28K zYJ8J$5M!|%B<6B7)GMq1ZN=cPuss;w7e}}w3VBHi%}@o&Pz8g(!k+6u1%(y?Dv5_0 zdg#brFv@%wsL9g6UL4YlYBp(6*))&~n3TuhTDy2??Z{pRnEg>}X`LEIYmDEn5!cNsvv;3|x=zK6K6Ral*|ntjap2fo_nE!msrkvHMLPct$BvZA z{E^@IoB#aer#|%k{~by{NI;xBDXQId?VB%l|@NA<82&tFG*JOb^t zRN97@x&NT0NVO&3T_OJ+L)oR+dhXjjw@mU^rh7u>xuMKOuj*?&Gx|4~XG7*q8-Q=MI;Hfyq=ug~c z+fH!Q?9c%fIa?f4CK|ZibgV8taj2Xme+teSg6GxPI2C3po0FFxMNY}l zV&YJN&A?hHczx{1fde%By2lTwCHCPD9Hdl$ccN%`y;P6E$nuwYsP_P!pdPBsRpt0l zmBj?OV59+_{(3dNu5#;%cXlOg*&#X>U{gtlP52OSRL90F&%$XBM(zWZ2|k{G709mf zECk2%FY2KOOd23G%ONy?CcI2BsiX;tTfWbLGfONX#Xk|AwQ`I%ql$P*&SQYiAf)WPFCa9^dO8)L8pw&~o%3 zUZdc6lP{gNQqfjj=j&J0`TF(iEZW*kKVUUUoQPeV*d%eHiTr>(Azv!F93p0f_O)aZ z^wU?$jiM=X2r%fA;FicCc7#xy6ILH*8)TDAg?AYb&2BnajjQb}FP?wS+JA8A(9PEV z^BOiC=cgdc(5ixIb#&<U>mB$6#HC8&QrQS4rGgP@-5!+04G8VH{{nc5hvZ-bshz4l+k zGFB4~NPQi(1v28-Yq4fmkkU~0=0Jwm4SA?3yTC4*M}JWc3S%xFsiUgi>H}CW@|C8#2<6 z7+-WzFLREait5^lupRNJz ze~7b}&~|n9UmH4gTrU4OP{WwOg?$m)Nxzs@8KGJ2er1p zq3&G!tmdC^Uh>ytVE*N}%WPq*2dyf~K9oes92lCyT`HMd{l}}3#fi}Kle%tp?_$X@m>B5mZurtjS%NS@!Kj;RAglR8BjXp6$MkN+}bafJo^` zV%k3)DpL2WEO@1Jm2!n-Oth!u*938r@i3e)K2$`%T&D9^NsYzSE<^l{4P+ASxyD7* za}oJx;pUx?aPHObV}!A1_?T343))Y$3yGND)$?uqU*P36t9&c!a$uB8=dL^QWD|nO zHj|%bj4@J8{zEarUNp^Oouo{hMEni}j!)`beF_Gc7xI9KWJaJAYBfWm{K^T$c77hq zHSEXsCcS`i;`3)U7{;*F0;e6A-&dcmS7{uPEw5^I&pv~oZdn{uBQw}KW(PKRvSV@F z3?WitC|(h=wZ^C??e)dBrLFoz5QD@ty%l)nB3XpY0~Psamyjj&~}w`|6TZe1x#@e@G82(QR!XA zh%5NTbRB9Zr4I?0s+62Uh{&~Lq12wu9>lW{XAh+tyO*$;(tlDho%;ra7QL|86#0`e zsyas_n6bK}g?`%^JbJ?EecF|UmqB{DEe?GKNdRqX}in&}kGpyG5Py2xZm?!8MTV137r9z>`R0 ztj3`dr1Dc?NO`@79`VJ#fdQgZNM6@6PD89;m`Nfn3aotGX}F7ec(5Kb);f2=b~re0 zWZ!5@OOIX4lSAZD9e(~rtkpIT#rHT$uqjfFu->oc5#AY1UmKavp@!~@8R1L63?uAN zU3i3HJ!_Bf&gfDfVID3p!Y9Ilypa+9VccN@H_=Rt@=qm9T-b^N8Q|)A+}3uaXsb-e z;f-cu(ahx{?S=f$<1Xs}WK&w~r5-t$&G$MA<8RHX$xTLsTi zIgj?>dFn@A7@q&MukW#1$s&_)0t zh$+|dAwKfxOs8}XbdsQ=Jeo!JBVC%MS@PN zM2R$2B+&)OOP>|ndzHmn@(Urb`uA&`!k^%zrj5A%X3@g;E;CDXHF1 zZPijI-*kEQ;n8?RfEC1h(S#TAFxoZ*V9{lQ9Z@C`O{xytRx>O;!k}SNw;PPTfuo^D z5oz_iKlSmSvN#9i(0HZQ*xlTHD2hn&AkZ3#<=if+xZCNX<#b_~L>sbojjx1t*Op7s z1qb2qtqyeIAcg~jAPsL2gJmUoaD*jXJ6X_%kq7lNJ{lN_vo?J-F?F;pl^>%B4tqxR z2XBu9C3xk-lwjedS}KGapWT5@U!^*Mr6O4tifp3WTO=DsNSo-K;cTmU2S7G*TqbjY_Q3_LH_XMIYdR83P8`*y`hyh%?Bm z;&T@@JMrXkj1J9C;`avTtySDFg)OMRLH(kv3(Zcek)7%Mo3R9i8EV%u)GLJUNvW%) zo1m+~Boz+&y;(saL-fI9+!1YYwjc`E3?Jbn4YSwz;NT30tXZPlCQWC5oy6?{u_+Z> z7z>oC)w|CanEC)@*c7K#9%jFg&Ii&H%z;(P#3!A*;(hEh-y=_`GuV^rna>J5H1iYY zm7%g|$XkF>9-Q~>RrB7?irBoDb4We!IawuFceUixm+ztJJJ1ZSzN?#AIel#o_L`}u zuMTi&lM|`LZ%t@k)|kFfxyLZe*l9H9)>N=PmYLOKA#*nWd|XOsY<016N_6s`;S9cbLC`W*>5 z60`dF-~g)+Rh0el2*xFsvFsqKjoRGsCjyQF7Z!4()1<~1WoIOTCe^adM!&=lkq&22 zGZ=Ye8Q&XTv}Z~MmFe7s-zt0@X2lpYyGU;X0*e8fyHx+23j_e8@i@}08-2ppZaiXs6~Z!K?A03Sc&v1 zRvvq0fp6>;MHnbGVh5mC^oqa*d&*JzqUna$sj$#4+J*(XNWAo-&61UAW~h6*m5JTB z5!}f1#O~Y-PLD4sN1ZTLVS}urxIOBB<0b*$7M>hFT~dP602vTWfNR7p7=&kZZ^Rz@DQoDb+epP6 zVi1f>b2%WZAki>zzNI&Wb+DLnL=STK1rIio>&NMa?T4^3FnSiUNhyjmL>)Hz#C2rt zpcc4Ksu!2DTnajRDf%&?swcfnQS{61K4&smB()U{1qd&DpjMsf?h5^=*7i znL;sO@z2IolWTZPZH{S5g)yzCl)+=NFlGB=+6ZHcAzxPosbFtRwHEkj42>!0Cy}D+ zG3CDaFsAgZYhBmqGG*BxkcCM|NEQQs=x^Im(!M?(>xxVfZ$P(eEfDQ1 z;%!J0CbMaUF#4mj@FB5c%?#P+#AN~czr?)YS@(re4Q*3D29b{?zUVPiJge2?lBsN) z7nV#V=y4o(m1IgFha!lyT3(REf@BIgO5~JmsyJ~HST5$W2+M99mAoANNkyiYyKK1b^{};XCpz<|`Bi(^u zDP|>BcSqjU!j&T7*0qt&uj{WbwuVT458kIHraIks50+73U z`R`bjA1Km3_S77R6bxDE3sGV)XeCMnLrv!wKr8})tc9vdlTw4s?L0vYGuh>jYzCSlazG9Gpd{@z~%?Fr)DWYEn z+BITZgLXf6QM7B_2BG5DYtZiB{!iNdDxh84KoISU>A79PzL02BIkd{}oRG@`dW8W!Qc&uVn@D9~d6B0{f3K z`!SY%s1bL9*;MO=32nBb*%Qmxn5V%X6-(3?J7-F%eoa+7kQs>Tznf+{)w!eCZj8mS zk0^_x_@CSa5tJEvi2MHsOs>ucg&Q_v1< z82=`w4D#n#X~&CEAcOH81%sk21MDawY+u0ukRRis8;hFN!*4Y_AY-c~%#O0=!*|H% z)_i&Q@T0B}QKesDq6!6SP?iR(gN|Y`#}Gb{#E!5=`<> zM~WSuYHAw+>X&6o0Zh#BAo4}m2a3E)uoIi_yUYR* zAv^d^16Thc`?0^seU0J15^nXb;`~ZRm6Ei}jHd2oDYY%mT2d>3v}W=v*=UnA`9!R~ z*ae8xVv_X3Y20!bHfhuh7Agxp7gCVzsex^a_r&-eurENLcyvoF9kd>Z&}6r7nZnB~ z5+qWJXqji!P@V7WxL!1-IjX*zmS>q!uzQ)u>dXKsNWx4;bq0_EvWTkB{RrUia&EYt z&OjZ7_ic{Hf1^%jO^BU>i<5AtLVHuvmKIK&-S$Bu`_&I(*L7T`|uqcLM4K0zq_ z>gfQKet)+oYltemFz(F$L*gWTPWxvyO~V3bH9n%`wBRYaGTG~N&eI;zxpvI>Kwgz} zl79fQVRKU-SKTTFhn-b@yz*u&jb@&yD-p?iC8BgHp=AC;Ok7a`U@;`6f{lwKh(4qe zk&7A5t6cL#E;P!inJ=#PFq&8o8%gyij06+iJIxdqa_%6TVd-{xOZ^CXsiZ;RJ7SzF zss{J%Wwz>jX4tF~RGVbNkMkSZ_DwL~iMM<*=4g=xQ}n$?+J=SHyuLbd!Ul+LbfC_9 zWr9&a=s`DQ4vU&FZpouq*IHrHO7i;zn;UP8z`>08WctPONjRhNN!2PoY0WYd#ipCp zQ-V{Jtt}kUpB6L?D_#7L_w#q=TL0UvWLe2bB%`l))ZBx|(uXg5ER%_9! zI47fB=qe%~sI;ghHc+5)2wF@Jax!Da3q*BN?gpSw@DEm3xF$a=`vs-b{ zW-Bv#NpgGHdUX^nU01Z;iOisP=$W(0UhR*?3qSj=BK_GPEn7cGp6E6ISnI+m#5h-N zGkPJG<5P(dN%OZNMEF!h*mqFR2A=(yJ# zP>fH?7^X~G<*@o`jvQ((WFd5gCagILSRb@w8r5a;S2K**bD)nmOUd_A@v)R8k4=47WcNWAJj>H)Sn| z5cU;34-&W14212Ud+{k1m*8bWBM%638d{iZ5JBV6kcpr%@><2T5!EFa?o?-j45Aqe z2>d^dJ5pxDEzX0!FwfGYcl~t%8@zl;MKaEhH2b_{>He&}wLvu}*}0B;Y%cloRy{3; znN%ww1Y14)W5%Fe5;3Nydd(mv{+#Ms7~=)!37$;!MTzt+4DgV438c(X_ zA0tv1W$x!aS`+kVexOP9EI%w@2cT|h3IkS>Yv?$!szo+sX~m49CzjSdl%HFq@Z6%i zEc=^lcBd?;%CpOiKYE(2m+7?dWtudW?&-wPb6071I05w4$z4+JV06g8x*D5`5DO%+ z@Ji_>6f%M)e$p@Va3dEB!d;Y74G7sn8`~Gvi6fv*XO8%d`XsDuXS!-EB!~ElCAlXt zB$7k;dnMmUnbfAO@5Z`_V*?TBgtbOE{4cCgDR5DXv{LW`vZbgg-4J-cKY_q|{Aq4? z>Q<)|)ZO7}pw2BbK;jz=ClrnzW);)-iST_Yd?UqKI?|YZFNg1^{5$^7d{<{gqj@r?KTWq; zygIf^Q9)h8J_xK#In@qCJ~HS($TLRS_5vAF?-kYo)E5HPU6F|SCXsG`X z+0}`TtRV*6FTDZB5ILzJIJ(~)kdc=vxhpo1nUKRZsIIVrZBBH( z0JrFkiW93w0nFQk&k@Fib*~~MPML%zGJ(kIY5By8X{pKUkN}&@!v{)yiPkbm_9lNnvd4WV&w+qKKc)3wn{ z{i~26J`tmyC3G6BMe;q<>e<+pjY8Q(Y)O43xk3mk=@{Q4%}4C_wb6U*`xP;PrTCkr zGOj1I=PQ$EnmE!;leV{ztV9 zAwA&1e%iCH2dv-cdKaSCXI*hg#|k)_?=Gsugf_8XOhtnmh}^#3ZWEt2`0!*lcTPN9-`dH92pY(Uum1 zf#x|Iz5ety_dyo6FVbX*hdyZ5H!XoB>_ww|1`rXaq>HxLwCvC(0IO9Ql6a=oPH0nk z!cHaJK}xxICp2)Qwz5T;+mH`M8;k`;Aov=OW++*XYYoU&7cHu1IDem1%fzt!l`xzb zE+oSGD`8YCJ)kgjpYN-1pSGbR?YH`A%a#^n1X+iKWqTJ1hcCMWye47zdriW};*}(< zuHfsB0<4~l=_r*wHMAHRQN!(xc;&t=Yl`OgF^KnrJgdofhHvU-CSRRA67u*0Vc9vm zaLQ5b*yoRKfM5kFmF<2pH`Xl!ngwf<*pXTqi@@L5CKEV2zP7P4HG!csa%11U1etQ@Z6YT9hu?$s9P zxrS{mc_x@{sB)W(2mmQ-q|azMSYcX5ld3)yy|Ek95I;L|DUuY^RCgL|bNJOI{siwf z$;aJZAVG@Wy;#lOEt3F?hn9szz75m}&@Ll^?SXvq=<;4!+Z;DATF~-G0%DjAo$zdP zfJB$g(rQ+X=+M?;b?(I~#j|(_VYAVx;Krf10w3{Nol!_xT$hAj>`IFjcao=7fu?Kys1|n#H9@gwiQveR0&<`e@^m zcj-KpGwaQ0hK$wk&GrY@Yud6EMJu^F{aQ*Q&E0r8HlcBM zyC_fG^FHQjEQaC*q_G4;rFz1OEk?={;h?tBaN!Ljm<6k#(81o542Q#}`?er8ajnS^ zYpBdEiLTkO+l;nkQhl=Zd+{~D1+3+2W_&qQdLHt%tJ&-M9S1;3@(X623$ruSY zJ6K@_XC7+Q)j#Xx>OwLBQvZ5ykt|lDn`U;&7{>W1+eQ5Gm|X}6&9_Mt1`dv=4`%El zXY_?W>q7okGrT61+(nJXBOd8rb;4gt zCwbT(J5-(IFO}5*Yk)!@Y5g-5%7J^JlcWdR+T;YFv9OBYBMfT9?=eee4_}QQ5Bt8FDvhpWVyk?@&NE0?ZW(F#-G{8==1XI@?z&ff{lDgy$0!TzM)5$!GLvu%O(T!-E zD(#hOlk_VQv&rjsYB67AN0Bmj>giwoXsFM6L}hqq=o(J|HG@#N)3XmQjYhF#_#gw_ zfzSh-0$1R#Oa?R^o{1!|Ve=n?-+CTLGP<#d`Q9lsYhZS27@NTO&OsQ-9$*yy>7N7q z|FictPjp6~gn%2!pA6F@-{+fyaoH!8I09u{&5cg)M}rg7|6*G$h{_8RXU*L!$=aeDPy-8~$WC?zT7m_!Ivlw*hzNt7c*h$PA(iBgb)6iF}zDdmtvC`lm45G9Z( z_xFGHe%|-35QP4id+)3}DLC)5_kQ+&@BQp&e}CCH|BRBw!(_>_2oNNDo+K+dpHZ^P zD@j(VI!&@Tok_COqGUf&g_C0};FA#P~^y`zCxy%e(#+C7)=0 zl&K6+qWSMU%5zW8FUsk{XZHmKDk@#s#zaWM%vo-|aMhO?d!tqKPKv+xzT)p2r7jv1 zL9xeD4OGQniHyMOTY~IMXVKVioPuKoRE! zil1u0vZ_8?HB|gAwK!=BOpAteUsx1Wv`m88IKtbM(3jPUp(<#W1~o~>LZLoPIqSnB zoj$DEDWIC#rL7V!3tg(7ujlB$eM#j3gQC zhg$#bab27iD6~HE7iLvx8{YPMu01yu!-grEGWtwmMwE||VY$nY3-w|I#ZHE>t-bOM zB$rM_tK+N2hkljKD8y+7xEU`Ok_X;Z`4E?TunCTh9&EMvt$x+ll$5QF{U4JHi0!}U z$%U2g)Z{|BQ0#dxeH)c7rX)kxDAZLd0lNLf^fg%7yjstE(^e~w@_139r@zqBq7z$S zfI+Y9=*0OwFE1>fqkb6Eyw>4Y#avpXs`-|pv{n^1GJW_-zQK^&IXVg&LSbzRZ1z?QyC>n{EhSM;`skX_qT+WBC5P%l zG5r%7B3^qc%kW7GAbU5s9~O!Hb$^%1aH?&);?WECjcSkU%;cW_%B_+Q+Y%WeRkjt) zKapS_T9)*?7iONZzc}?wJuvwQ2~i6%(gpa0`f--`iA{2Ee^MqiqqhW_9o3feHew=v(V`)^lxTHXrRt~pn3becp@}qt`;Y3Tk7c zz2lexQZ+pv80LM#ngnhIvAKBcx=EKMNlUJr@>0q8}R5Rs3R2Crx*D0v>nlyW{@1O zd+{Pp*EzRr12@uEZwA>0jeSiiSNk7#Q%H#9pH~^k+Byd)HT5-b7U3>M&;>w5j`{|# zaomcNbsea5E+f&}e{fM@GsS>abE$ra16yv?>56-P?1TQwjUwY)#EZ6Jz1ugebLm9b zu=QY2+xTB4Pri&1RtJr55AguUn8zW2Nsc2&>MfV*t(xdr#<6yUfG+sq#ev0%3o zYOK{=bz&{*edy(Umb^o&u~CbBn0cqsCRsO8gX6`zk_;5p)1!B2-8HE?(vnWAhKl>& zL*k~se&T2<__O`?^Y9&wVK+X|q?`X`q@r`9Hs>S9AQ-Ay38wpW!AyO9!F1;Z)BOg5 z(M2dofH%?9c9XhMiV(`)6|*gF{qJ(|cPTdP?hBjVyIc@m7Z(0?SR{8cPZMEgld1O$RGKei?QXupJ zB3;3@jiz=biFWp}YkMlCxQpSS24ci)esZ?&1I}U)kgCcj)kL(uVR;95DrSplFQJo> zHk#2R0Z@!)&~p50mzVa6c(g(|TD>?^w{B${k&- z`Em+FIWmg~U9RcoKPO6j{#3&=*0OKUI$VmaeD@ z%6yliZ|xuG*GpJ^^k#l-Eu2jf+CAxWRr~$Aq`rz`Us{w{=ZkeSZGd8)!6H(c%LQH2 zlkx}qXV2|Fo76FTxVZl2@ACT>4YjD*~TlvogPCK&!2^ZRSHfGkd_g+U163d zuoM$V2FANjJQzZZiJLXIe>TC`wI*lF|Jl`o5;vP*3L$Z`V&aHBJr%-L;sTW=uBgP7 z@`*$0ERp6DS0tUMC9af9Trnh0bJe-Tsa?WG(t2-k9smojK|R=~Kac9euIwf9U7yAp zPrF`a`(fpQB5V^TX70r=u>Zhzfd%hnc{eELI!p=i{+A%Zc9~o0VzfS^r`H`R%nTH-wZ2-rld^iy`GX* zXMC_frrDGaj}lJc3J_R9Z@zeP`}D0PNQb#p%@2YEo!KL8nzhm6BS_P!yPNrEC%9tZBevg#I|67x={mmueHRAt=CSkJpPm4R1PE?)K;!c6i zsm>2W+ynO+#2>j|NBp#FraBabe~|boDGSsgoSHmHe9l)vnVLK*64}dfa=yIDv_1aj z()K#}@{f`>y7Z%d{8w_nkdB0%WY#|1I53O{X|-9Eqt5&?;FzP~Pw5IR&wlcKWQAlbm{+!|+EHkjl%ShtJ1gvvFWNqI@xC>aKIcXNEoti<-;FvR9u=Sm8C(ykL5J zF!k|a-j{y5I^5P1){)`9ndL?53)5XcN7;s}T>{JC&W0xDt8%nRZCCFUl9I;S8PL4y zIqGKgggqp5>oi_EE6gC-g=;BH0gMt$z@aBRt<}$6S@GC}?Yo;6jz1@x*|j~ha-X(M z(JRxiojcyBI~OnsL=mTHAPADP+=a=t{@JuTe_G(KgP2M;?-}Tqtna`q}iUVs%3_1b^__;V8SY- zv9d#wd7AH3d4>W!Bss8kQQ(gwq~Fx4K_xwp~64o{D3h7JuO^fGmW06 z?ozFA0h2cRRMHEWhKZ`iKBSGo(4Rr+lOWD?HXy`ViLFl8l%kEOcmtYHGS9kRf`s*|RP=HO-%WP0<>YK5 zM`*m0?oU;|2dnY$MKWD|jOGw^-z*}S=KgF%V)-wLPewxiU43UyQUE=x@b^>zglr06 z`l1tDwuRebn^OSfewqUG@c5d>Z**cA4^G#OalFRPZG`e-oIuuq`B;-V|! zF(*+*~UCPBHX_Iv#==T5a~P+Dq-_LU4G*M9UwL+PpTsd(%Mu-tiIP= zkR8KeNnC3sXYA%oYKz{b^!z&}qnSqePjNL01}y(W)f(b3vw3N0-YT`OjoH@A&IhN z3P!Dp^c@ou5Hh_bm{`?NjUJWN(mpB%9f(zcf7we_TPJ zW0S5R5HXvpXX(He416JhblF%y3DP8ydedxfP;(}O+GFBZ2p?6~+!Dy*O|{g|K6-A# z=7Md_Kbb%-){ZJ}iI-6L!{Jg&sko-7L4!#*HR@W*nZ6!U;LN#>g!U0{0aGsp&6MXp zt8lfWbSl&FV?LG0n8>ZZCrGDxPIwk zdIOx=Q;TF5iu1Gr^%Bt9?O4=R;w+_nz%OhprdNpqOYc1>>**z5a|*Q0x`9b zN!4VO$~2WxOsVcnjGNNp!9+`r2D{R5&EnspxknyxtrxE-a?GVpO`v{2*uavW$|alA z^2*rkomvUe@f5D@A_)Kgc+t=JG^w-=3&jhardu@IuY zD;!`eYvL5L23eK!8qLpJ*PA13R82}h#>)!IKp6i@dtg`~Syk*~(4vmtD)E)y$1qNz zb6)2Ynn_(m{S%JsvXf6o+q4QzhwRhI#PxQiqfNVNNyMNpEZiDTeG!LMw#>yrzj&26 zR(6$mkv2*j5Qo@t!drmU94%5kO{qp!ijOLY61v8ObUdMq6p!moV1`_mKuM}6inPa+ zyGx*waTbyaze%WHIFCu+a?BQykO9rwWrdHUOD2M8$@mu`F2y{Joil98QMU$))XqSG z>Dw_U^YMP2I7U}+Qr|!f#O1U^&rk!AwBKyNYjoGmKVra#&KPiIec2MieZ*?M6!WBz z)Qa@Y(yE%I)X*Nf?dHx{E>ZPmZ(o(v6wc@`>)j2BdO>n6#Z(2C)~Sm*k5B|EwIYwS zlL;O4r?iM!URE~e_RmpY{;k^4`tiTLVq)sGxA%1sDoYYNw`MI9hd`*4SS={2;`l?_ zR0;$Y6FZPDD!fMv^YqWTOox?P&QTpXXw4CzEX%Cw`4O~tdhr-|Fb%k!k}v!@_)Jy z|2-&$jUAYnz91?5=}cC0Y2vhWSxV;WC96_Whdz8rvx7gxZa8Jk+S}2701h*X-S!o{t1HVwRMqv^a`IP_6aBQM zOEO8*9lX(;>SlpO_MQt1-KaKeMRpGZDp-;i@hTtux?{7j>u|gJ=(M}a>H5Mca=S2m z=2v-cSar9Fx=TVupj{WSTWEHx?;JeNjCMg&BxO!qou;Q^q04&hKMNcFD^WYF%T=gq ziRL2IwVYgj<;)qByZ8PXno>?K`!FZ-r%2XZz@!+7i#x56FfT3Jt!~rRLNFK$$wRq# z1zOpN9)d;Lr`GNcc-_LYocn}MZ0QDmUBq&Y9z^V)3A_qOcd}5=x3GJUi6YHTJ*wcb31+)}H5 z0eN9kp+|Co4m45%ukP>BLB*MpVL6<%Qy0q4KF;Teg>HHHFN~(j)mfa#(ZjS#0_Vd- z7U`T(I}$}rt#Cw-YLb>AzF&e8W6&lgg1S%;tQz14O4M=tM-0I1*8Duz_oEVQSNjfIAc{i(8n#L8tE$@_(7axjs!|08@$FV zG`L<&Rk0l%u*>GqrNr*$qy`UdcE;K=lz@mZ{QF%7@w_tNAbJ?^Y$Q zcBXGSbraXdg^FBrAnF%n+%T%x2lsJu6XAh}N~**K#BL3z?YzRIfK*`vUZR;ni~2(w z#%WAzToi;gj@HPjNM%8w;fh2SfGy=vhbdQLV$83lkA@Tlrq)B>XvtMw|MvQu6qJ&8 zQ03&>b@e@jPG`}!g4#@!8vN)$rL7vDrx4VZcYBewZ*0kXS{z2QmYngCwcqL|(9DLE zt9mNx#kz9RDzMI_ilZ7{X-VF3OUMbV;XeycMRdzAhbCR#V zy1k(Gj=-+8DQng%$uZTJTr?z#dOzBss*xgFOealCgB><%%IEQ|_Qw9SQB`fuF^X+E z>PGd_m&Us-gfcW@Yf5#FDovX{?G*J8%E$UDSqFM1s}8Q@W%WaPHSs?qFigLo5Y%7t zJ*P{~5T<4EegssVCK2KHQ&%Gi9iZ-?Y6tb`H^QXeq_qX{1fv~k)kckYJ+v{IQ9~6v z`+oLeI(We*oP9WtdS9w;*kL3w9~&rAUi~dGOXC%M3Y2(-Dc}%*AA_JhE2N=@>lJLu zD9j%*ov73^H)|TpfF>C!>QOU^gs4~g0)x)!tLci|&*%k2y9$9iSnuKCV}|N+JL5}T zh$Ix58PyqT<9V6pG(ljVBnS?Z<6lSf0$_^ZY?d69h~%Jp(XWz2*|8B|mZ!u=(VrJ4 zSm;Do)pd|e`_HYu^z4^vS1U0CC-& zOIy{Fc3nxknH1>uke@n)?^R87a}@Vky1W#gz2J4;ij$keQApiWyIV>CZdQfdN~o=6A*)5hW?(G@m4 zwic01Vc{jsF;>C50+Ps;2z9F1)@K|7og^^K=4yeWK5_G(T?K(=Tvn)>PvY9;@rt-_ zCSFpy&_?S0Bzt_3U2#;f>QYt|!(4QXQ2}YxY6otiY*V6jYY?o)8IyuVu|l-Y59#$!)k$vC%bsNZ|Haf39Y#CV&F5;J>7G+9Yj#9k z7v?|t`4k$&xn&9iLlf(5X{ zSZ;XUp0VjeeRxp8QXB3NV$?!oKq9%Oh6czcbFk1+0i=lA|L7Wok@|m+T?0)(t5-3j zO4I+h^d{+Wg+Vm?fx9YGSyI^X3f))MMv{qFipfvPl_>?Ar6KQoDYE^gS>-~pjLOZd zs+(zT>c?#Doo`TAuy`XYr?j1KQKraf#)fVq85 z4qqyJ&Gzf@<=6MDvd%2I);R2Qse0CNmbvmD6?rYpYdW0hUa4bZXPlj<$o~I)J;IiF zv~tDvd3F6zgNqTKoog;2oCS+3x7%2i1u$FssiwB9J^5X?MS}@DW!Q4}PR1nKwbNGw z3TnjGDXC1#i6GDY=lt&)`_Xwv`N1UZf2vKHs| z6~j^LxOk&wpUStW{4I5sca^m=%E3yb=!=-H4o4Nrb7k38r5Uq#!SsBm?Ir}kWKa#O zj&zmOZcihMC1y#I`#EC$hOdaR(c(RE{eu}htutd|v-8%=2}`vX7Urfr_GVaE7W#iH zVF%v*-#TG`q=UvR*{-(2WDCfv*>}d_GcI>tNh>cAZx+FXD`XfqlOHSvN@c{+^Kh}) zeXWk=(Tyu;rT~q%3@R?#j*SkoF5*= z`c*kRX2^l+F3mqkBg23u(JFJ7(p6RemguR!L^qX4Xs%R_s5LrEHDDJz(B-U#Ni^&I zSCOAaR2-4ht0E;yO8wr=1CpY3?$py(I5s9QJP%_&VO(lq&{j{m2%FJA&0~#wjX}ubn-csvS); zgA4|^uo+d`RN8svGZOG<}mMfzA4(|cNKQexkMpyWQuj!~R8hOtVxR}g6KsJ=js z@J&w4<}Pf*PKK3&FO_EG%$wNimsy zS>fyYV!zHAXyHL$SlFO1dwlPR4ByoE^cYDousbbA+)40yF=88W#8b>PU6aOaljKOi zcj?RX8{g5Fm^JyTQQJgYq1a1%n&ep;<0H~FJU*vy?`4Ib>x;(;zVdhkTB*{er-AbO z%9{<4ZClW-NUw$-j&uWh)ad!8iQ**%r5wM-Z2HhojFFAl-5T)#Y~M<8nZPP<%QauN78i= zKg4Xc7}16`G4{&2)l|9`<3;RGvUI5hCs}GcdoC-GH%e3?`23^G3QCpKsKX|^29#)C zJ}9q`bgg6uEzEuZdb8QjFD<&HpoB|{zF2x+@duH803n%r;TUC@ISDzj}N;;t(O$zDR!83 zZaY8GZQTGmO|gu{jxs{mv_jTE$DU)f@wFv_rQcx}_$Z(7qPx7=9>V%Q>&?PsVlQIS zFB2x=dp{F+&Le8vYO6k23s}1*`Z*22(iIx2U3u!(b3?@E5pJQhNPl(#jluEU8toYi z`Gn05fb*E9wHd?7VIY6Rxj>VWQv3!bIV|npg{k-AJrzPu$q92+XsurbrC&;L3AWu=& zwP|GX23NM%a&NXS70@qnf^SYrgD~1x(O~GaBHho2kH+$$sE`!ufa*zX%>Tsfo#K1N%6Ft+|bCSyu zl`V63F-tf4S)wegZVs#4JhYVzNf7Z;SwgS3LfzJl<~F*V?o{j*i?m;1WP zTDcXbf;Ni0==FVsQJaq051JINH+%0rK4#58#7rEbh>&^IOTun)b|JAX z9+7g>Isw^ID3|B!lDSHHQA zaEQ+*-Y`Cr|`bV{k~+OiIt)L3h$btx^<9~};MYF|;PT(7wkHe+;MpcMwa{z+(mbZ4TPA>|C3!594> z)W9&EBymiEBE>4JqK8=qAl19HcQ6I4#1j>c1cfj^8N!^>^nuq_;Kf|PRqM-9%AbecsM5d}e>((8w3iJ%#KH5J$^~OFRUWn9Qp6O{?JehZjB-}wn4Sjr}~_x zzsMqR@zW#}P#&AnR*Ga%wQx1t;NDq6VhML17Hk_7$CudDlk_Z3{z^Mfd$j+)T3Af+ zuF%j?XwPTruUJ}?)SBgs3WcP^e%WMMvt0R?Dsc?Ju2v{Speh$EnDDe--V^~6JSSOo z3c7IhHSkgjWknIiayF4KKyYNh-mRFTJC&4JDq(@Dx2(Db?NVK%%*RfX-W-O!=2J=O zQ^8$Fo~$>?#uM3ehprHjicA4wG83ScokHxhJrRW2h0MaGP6eV)Om(?18$<~oiKJi* z$+g@}J@hV#YYI*yZ1ak2qQj_0@c^H&+?{+cFrqe+#GEcl& zl084!xKTqigpss1mbC*FmyP8scm<%4G$CpY)fGIQSrD)>P!+3hTUr!4_=Wyb=nhi> zX-U*RtOLqq5zw`;T7XK{G#Q{VPE#POpt0xFZXp>AG!OD20`+zaA?K9=goIKlnmBbW zW@RZEyW{aYy8pB6EfF8)GEwWW_WUUeXQf5HG&=a1Qsv*rrCfTh0;2)`&$@C*188MF zn`$e6q!tki1|j^&LM5ft^UwWqYU&NeLkd)4i=sLi?r5|QizouH$zE?a` zV`iZLH}fs{>Jt) zQa-TJTgDVVJxcI8g0tX2(Rs2tH&dO;@$|?Wp$pMlOn<&9s1ms?3z0pbD0elS_y7>r`HPP~}1> z&r-6i_^Oe?GkLC>_5)NWF{g{fsLYH4wg|06!F#=;mq(Mz2na|uM+QkdWYMQ~0+1_h zu?xu?II zj!-Dz-FkyXq$ZB+^*!rEs~<)(`FxQ3&H3y8@LXC~n*^JRF>WZJnxLudD-th{m6VIz z47pZiRe%o56xE7cFepGaPqGdYdjRMN2sFM@8rA&OV&$_m4mwqbUbvk0m3Y^p8gB~D z>dm}n@Q`9w+Y&!2I1=U6?3qMGKjpM~IEP2XXz3L@A_q2!QfGlD^(YjTWkj)jy6;$v z_jA$=-*_o2L7XO6AJ`)zpwp$pR9v{IT$gtT>4fo*3UsRFlR;2Fh2lQTbi;zr9KN~E zl7+d>(gF0;ZrgNiD|Q3 zj%g#5%r_EBbwyQ@ok3Fx!^hP~IL8@_L#PQPTPaUam(ak_>i&go>`4w5LM2zMJW%GP z0UC~}(IPoy&krtGY{F2jhD4C#A-x@1{B+VdQCzG$QY0!ij_a8M!g#c(9zZdf?kJi6 zz;OnzJy(~?>FbIta)gYeLQZp3(Wl>bMQzpL@$!Gwuz{vo9XUo0e5Y}+FJx1!I!SQ1 z+(@}Sjlwq;lb&b0Lq)=RiuyC9&|NHr?xKCHcUC$7o!qVZ4P_aVL6viD))%zF*Zf-T1@cNeO%>& zU(`(1KZ!@4BdL$y}= z%~j#jDicu`A_7zbu|xw~MJCorS_K3-Exf)?{s(KTL3AWYQc69rG^i&mjVbQ<5v>g= z4C_sfTC!m)5mAb9WZNd<#X5~5*V2v_k@UahWF4W|pp8&s_9|py_A_Ac)E0hoE{!9X zov7idblDAp8dTurce%~YB4jB6w9k^JE4oX6W*22Blac}t5cHrrXf#_7dx#TyMn@D; zMmE&O*`$MD+Jtq_TD6!Go(-t3wbMZiw^F4?zods#lqM+_0T=$nR?akORbE7LEUJtF zl`E!GO1Aalb>oq)Btm7aM#EUv1N3MZqgv__6@vg+Wn~MgNo9cS2FKcbHKbkAd28#{ z=@1Yto9Qf7hziA&m^Hoq%rcdcFF}$44^y8JlYRq@D^iTycUj`q940geN>nd_sMH}X zEf886^t?bpdoH6AWNRv8{xIr1UQABCSWLcMOiuo)SSb=UpvXfTv|LhR?L9=0`t#qH zN`J%F$U@~oa^^Rc(lpeeLi?U{S7u6d)#4u&>|f{FMt|ww+Q5#O^c6@3Aga;6Rw2r^LviZBE}RpFoJ|BNOlrcABGlk`n&y+ z$w=gAnA1ycuhkaV?4B&&0i~p<16#RzR=I0#w`CT_>;LM?ne=vM5`RkPoau$$-%;a% zr}qZ$1GO5Lgp|9_pYk?2;AMesWGE&Ls6UzcHu+-=Nb#x`-d(B&nBOb(zFpk6f2P(_ zge>s&cmQeI`O`h{7KgvNwNFqjZge;k*8BkYKRMuMYojrR>xB*8jJNf$L6rqkIbAsu zg;pfn;MvP+9yeA%1!Z^(L|qz?XBK)n?rJH%vy@8g&SFa55J^Bg;PbkQ@O9qVWcJ(e znQtR=70y*5uydk#@n2{Ac*JUeH7V_9itA}u9}(b31L|9%aLBY9ViE|TNdQ^{Rb*M_ zBY?m?n}XRahWt@HN-0|da!&B^O?)6e`3MQD@I*7dTvWR)8Kx*YH zXTBxi)mgecH!pxJK6$(|^E!b0y^uf2n(-PZOJf%ow3_a7rOs(y%{}JX)WF1Jp|8sn1wJis zaJ;HvcNL&rg?95lETnW2+cj6G%7~xwe{E`2zo%t;O!a^ z#LftP6b$NP7V!zqqFd+~^KSg%7}cfa;IE|KlJ)q(;#d&T z?s+G>LrTO)Er3oAm1zYv-niWQ?q#Ft`(4Rx8ZZF!H>I%ww?O2jd| zW=wD9vcf0Td(+i?Js&D0jju~g=f`i-G-EVftvipH?0R#q=l9HKvWKvEj_ZS(8^5UV zNqw}3@{?5?P3yo?rN5`=U#GLk1NWfC%yX|ph%ESfW&LZm9j++72B0lvBiN!Qo(0>%0b%_zCXvI$*UCGPr-LhDD2VPTl_4yUc(xPPR zjpg5*RX{#0Eyz&0+!()L9rAKtF^ys}wz6zDbSJe{<)pq!vz46aVP;YUj>*^;j2y(7 z4CZB22xc9Lk}W$a37Uvxsyy_q<%x(;a3F{}>7s~*F_E#^*pFnQR*H_?3#ev@d$Q?^ zyU-M403Nsm24*hIRI%1 z91aPDYjHxTBrq8xn!_POOUb~O%axazsem8*$`N)Zd|8ofVSl2OH0$Iod`I69q*IMIigFc<%HR(x%h;evLO4|5cNS=bQ!tfJ_{R72?*o{NZmE-V^(iKbT8rnKy3xh2*?sa0f`yCa* zmBh&nKa8-~K^W|3A@+aHV3$D}>?sF$#Q{z@KqnvKg!A3&uy;D_w**mcbaH%tsOxP};cah$SFC^a)*2PI>Z+}ly72K;h~IRuuyim?``g>B|@QW&WF-;zI`}b zD7)RmBM@KqP#(i@vxjmVgN1U$eLv@(CPXNdc0QCb=X(`r3*{B}@Jom_9?HuY8Xn5+ z57Ir6=+;2IYM`qgjIvvSm5H@3Lg5YIl*+E=e7kVw+zmy;J?wxOy62H!u%U|f$@%Vc z=glI7*UaOscfOZ!wm2Pum@B?R?sUK*+72<6hZuFfTZbdWDu@|^7#xnNx*i)#)qn^& zF}}=Fb;2PYbcn4G)5W*RA?|XBrbDdHLo}T4D9%=v4nYjv^K-4zCFAb;q@#>E%4i;C z*!gaHD5Bf|VKM&##IA;w$U#Wcl4TFY^eu6&nh3@FL>{)|u=nF^k-OJDd>3NZT7%sL zX|Nj|_73M-FG8>loKj_2?R?MT94b-w@Dqq#>kM`r(qQ*G`)=nN6(QK+JZ#JPZg@Dt zUI$@9_$nw?P;w>aNw5sGmg zr&JUJ&bJR|6UAfh;Sq@ahgt!61cL$Za1Yy@uO&jjoAba;=X(`r1Af^({1RgSp&bGE zI0geg;vSxJz6lWmZs&o=obUFL2>dk&lkry|_8%Gvz-urV@T!q0iWSaR7a`yQoKjKL zoNpJ-7UPH9!w(_$9~uq7J1`jVR`+n9^KBL(;AS3pz4N_dAw2QyY-P++*Uyh-Sai8xdtDJ$-N#+6U%@Iq113nlY7EZ9(0tghH|r^ zY;u&l9Hr?f>+>iL=R1nCrES7J9D*3S=kbuXap!x|oySBdR-<{mVduN)(TG=vuw)EE z4BhiYz+3icOyv@Hu89!di9BA%@s2(d+Zrz42z=wuM2IJ4qw0n0J7Sb@N(IH`9ijJl z)3Xs`5aMYIYuU3N4Xg~KCc>hT$LL_7HyXO5_dCuehy%vF(Q)o@ob`^=z$uN(Y78mP zvyL+kanNw~I?is#8FifDJWeZ*bHhYT*D{DhhI7hsUU8fgj?>BGOyqIyb)1b5KQo+l z6Hz{Eu`>BIL`XiXaZ1xw$B?G$DaY9h@r*H#IL^b4Gwe96JkI7k&UHVJ={g1Pvxalr zagI4o$8jd|IPE;nosP2(V#09N{5+=X7OX5?t3@bXb)3?44PZ#qwa;-zAbxJlI~-@5 zhb5TBPAPyVOs^?<5R$yi6s*6y% z25?H#Rl|^`YnS8ffH-2zTOH><$Jy*S%{qH*sLC4t&anzVMInG^<({!Bmd7K7@R6a)? z=MY54aK;_yNyiy;oY6eaa31HTBQafr5Wg^-Wk+JVmSAP+s)^$7$e{%4ao(G+oa+&N#%2hO^gkc010f;|%9^QAF&gMMMbuYwpor3oz!#VCa#~i2QI1_oCb{^+W$5{t)!f@8S5Yu%FR+g^SB9yK= zPHDOZFr?|)=Qtw}FB|g?$JypMEyvlM$7$wqUUi(~5U&`{5yyGXaV8w6oyQr=*(l&nWgJQ9_K;F*$VMP zW8UOAcR5bean|Q?8W>Xf9Ce&S5I-`UamRVmamE~HG>;Q@;DQDoO>N-Bg9U_S$8bTXDwDHpN0s@XEjb~ zy6PCxbUo!bdm%=QdBkxZcAR0yY2|S?=W(ukF{bMjypI^pamP94I335C$m6v0ICnbE zI*3ONXU&T-UAJIm=~^v9>8j(DrfUF0ny!70GXk;8n0GkNHpgi>&gMK$GmrDC;~a+= zHJl@k^PJ;MI8Hl{GnU7>{dknm8i>aXXVvkTt`%5Wy6Pg7t^u6Vbk#7V>DuKuJ0Nx& z^H#^X&v7<8PBV|QK9BQ~;~at5V>pK#=YZq19cL_$Gn&V_^_MYSt049o&fqU&x~|8{ z(lsDL>8jzBrt3r==RwEW3h}rxZ*rWw9H;3x>+?7b45@sMI?f@89~;iN<2>m&V~#VL z#~IG!-1MuMu0e=>hO_KfF*b)4OfGwL|Qd7M@r=LW74wVBjq5KkJ;DaU!maZWf+Cyz6c$GQK} zh_gwAWU%qkD4sj8G4ZSyA*TjTS+bn(S%(;hD2Z>cJMDIeQHL1LL$sXlhFzW-h_WC~ zxzj5Sal#=wd58(;yVoH$LUajY-L9CBwb)of8Y1Mh8mBZNb?1A^A@)Lai*Ll89(IUf zhiK&?Hap*SqcI_;;F}_d8}_ImG5XMAP|Rb%^5-Hb;KMot|@u35RIsA;z5V_Q#?u)km8zjQ!0zq&iAZCj6<9yh`sK#+aX3BVmJ@ca=sh(#)K?`I9m{> z-02mEIN=bTJj8_a-Rlq=AdyC+L+piki}*&|>0yT$ zc8FFUVzcvI_jpXmDfr$hh~w^b%pp1sF_DL8JKvoSu@2%~L9BT^Cgc`uEFr5!$f=G~ znvenK+vgA?5WIp*ec?{q9HQkAoAVG&=X=#5jzhdn5J%kUIfs~Vh;|-g%=vErag@ax zi1P)p>c=r5E3mPI)J4c?0H-t|HRs!fGiPfG$&cK_4v3*`*061LuKV0^vk0Lz^Jwdx z?f^QzNc`ul>XQ~ z?1dQmv7wDP*Te2OEJA3lJlbaGyY9(|_8a$bN@!z-cHFs+xnsxCCh}-)=eyI4_hIICJb$p zquu3>O%Xy{pGRvr-%*?m?HTuQ2x90tLmPLlC*5&OgwRIwXv5BT(@!GW7a=UAgAhYU z3~kv@VoH~|V@-t6PUO)#j&?uJ7Pouc!zPHK7YuEqqut?->qQ8yfm15C)z0@U&W83= z_b?7I)G@TZ&b8YeM@0y2IFHtHz8iiT(LM)ZDP0CJbj;9BIoB(WcEZs*d9(@VyVuda z?Pwc?cHGd`{WQvLtvfbEC~m89N>f^QzNc`ul>XQ~?1dPz0qBS`J?w77A_UgTgKc)c z>z;~Wzi|(z1ZLyN{ssLIK+?*&W;?C51Y*cWJcpd=fV;It2y845HtKx0J{`esgs^0;f*7)a%iz;7 znb*79fCz!ra7vST!oeQI*<$ts_plXW$i^R=9PBQ4Yl;xq`aD>}`HtdjV9&URLl8qY zj2L&OC*5sKguq7gV8hOL(}4)~MF>mgAjFW329_O&$z0-YH4y?kkq7HI*!?(L%5{|Cm(yAX}7zLijdQA9<1ejHyn&$ zpM$VuE`u2Q9r-xrOs_cD2?y)s!6uyVUI+WOgKZR8RbcB5MwzX3w}uEgt;Q)$X5IOo z!r7AfWB0HZVyIs}Mx5zkcN-QVr&bG4y)^TXQHT^A>koEkaIpoYG_tINv^;Et!wHhY^UO`SP*DnYOuGON5*@ z=fRrJ_bSc?_AB>r9AfC*@^QqOo^!Ve5prth!N#2L_Mb(tuR>Td*FX$iC?BhS7L&Qc z-RdIbG=Ni@%$oDBloZaV(9nfW2-aW=Wd%t$f=nJTkm`?;cQ?pxQ8PULkr~N zkTV@{x3&m5jpe~co$ppQEE(91zJ+NO#Lyqg$DnUpy58LeM98U@-@Ig}ijdR#JXj<0rKfw6`b$yT4JTGRamPzQXoSzpGVJWKt^-fdgh<@u zj+^AjHd=zZ-yOHPV@r;k&2eXR!DSu8+58eG70k09x6wuL*Hj7ks{Sr6 zn$ul5C409fAt3nr@KRa?Lyzw4DRZTRKU!1btW5p_p<=i+ibLY@z&w<$Cn|D`jC12U z0AEFNFL6X?Znb=BhMlkBMkGr!vHVUyZ>4?U{A2_U4#tF7DnX=#o$~#qmLgf6o9r+r z(Cnopdtr+7?8O@q*1ZYUAY!G;Ql7q*qyss+qA8rE;v`e$FABPwWps+&^@cqsgvKvR zetKEu54kabBh&y~$d~1a_l3`U#AH`nCzmcx+LtAV#H$!{0c0|9S#m_?F3b~{JC`NL zWiDXm62aueWyvX-yD@W7eNtPPEL(_qD&{8UfrZJS%w(4?z)$K6lP}9W9djG=%?p#S z$~*%zcbp_^7bdsMtR&UB*l)waq$zVR=Jl92Elj>A^AyZ2%=bsUnV82g|1jds!rZ~U zGvdw0JV4ew7V#>W8<_V+yg8URW8S|oc}nd)lNV(^2Xl?n zST8S3el7D`Ft5hE^z!7o%Q3$da})CyE)VHF7xOUYFI^tedmiRC<}Y6!()%{dCotc9 zc}Va1nCsn(ldoJJ(mNOPddy$DJj8Dv<`(9!UmoK3cFbd#zj=9x-|t}VVE)$SA%5?` zJTPT(@|_sJD&_{}?}D%R_F>+P`Ton3?K1Z#N4ykIps^UFhEgZ4Liqy-ZnJo2^_`F? zDZku~$S)`S_~p(~etGnkU+%l*my2=vSGZ zfS33x{LZP);rFcSS^S<|J)7Tis^{?gmg-yheQWit{GMAqm*4ZM=kfct>f87|zj{8u zbE|XtomZX5@7t?y=l6H2zr*i4s_)>JfBg1U`}pmz_VY__Pg!ioFqzl9ntCL@JQmJp zsfg*(%>FaHQWh@I4gg$+@eGZ*sR0!9W(XY5bhh8?>63kTjy+I{%&x$1;V>9-y7U*3-J#yZwY3L{Z`E13;ec} zw+FMy?tTd47>4+M;IL)3hcVwD5O|%0vtsUJr~B9o@j&olOJYC9ygm4sAs>g`$3FMb zhWKIdVarzsFh3Z4@GK2k>pl*;j~5_z8i(AEV0y^>t1Ua~OiN#miFpN^T`BhoOpm18 zC!PBS=lvZ8VHlbt83rG10*-0wX1KfFyj989?nVR|~{e%859I`=V%XH)JDrk|zUFFN;i zuf!bv4K{~U?o*h4o^rqH+$){?dWfSb_W-8nQ|{%MEN^dh?i(RqOu1KK`bElplXGuy z?zIpvrQ8inzf8GrbMAYc``ZvFQ|^tJUQW61bnflWeILZDDfebfzfQTgIQK5+{?RM+ z9i+EAAgp$H(0TSd&u*NoA{d3R8e)(0JPTpo$04dJNH4n0gxkF8Hpks&`N`<324TK# za+^W7xy@}>yG_%H2i<84#AjN%XD!(SX?4)|AwnGl@q?XSkw4|`JKcRR#J1FZpIaYx z#)lzVJH5vKF{T}<=_O}62w|ZuJr%=0>NY2xxWSzcU^ARzv@!iC4gUzHhf~uFm_}00 z6PO-N-Cn^on!0@s@V%*N8K&JS=a2_{9fZZQ4)NpEeFdhm)bH)iz0$eYKs;&Oq22f@ z=5gZ>?Z(~i<5u^v{!~<=J0MIiHn`JHXWr+;c6U1HHoM$rzY|B@spZJq9C-w%pQdSf z6jM7*%NV8usoRs74yA4{Z?$^=gMYnm?iIwj33^o%f#vx44r1%|7&!whg zn2w~Jr!c*cy8Q-ICw03X@Z+gz0MoIQ^HvXdIfTV>6~wPn_Zu;tNd0cWWa7Tbx$kwG z280!{jgery(Vlm8f4B((L2Tf1M}=^kzT1z40@IM;hev|;ua%)WYcao#S&J(da7&Z+ zCv25907Lpd7(Lcycqn>YAp_7W^=%nI-2p~sElxB6g9{kT#j!JD)MR)hVl0UmOZ6Q! zjGAMNPr^7k6OLUGqa(v(5#yK)#N$PM+lJAZ8542@4BHfp6A?KqmOT-qEyLpx%YW9m|Uj!MI;fV;cJA&-dw>DcM9d(ew*^@waie-NUY02=D2(m4L zY}dDLAT0-31BmUx#EIl=5zA8%q$$JG5#+82a<{$>18F+QMnKx?{|1l^VmTN=8Z!JW zf~<`ox9Qt7kcNY71*D$IWJoN}Mv%G;KaU_QBFIX8TLw~hkP$#^vH>TliC7LtkeUq7 zN022EWU0QR22yj7aX=o(l5wndQb`qmAkmo*7hR;Wg6%k{lzAeM3 zJH`kYn&b=^%f+!gV$@{#Lc~}SF_!8(Y8W-g7zab$_JDDc+kBE6B1T7sFGY-FGDt=A zZ5u|X$5jLjtwiA>4H3u6h|!ke%Ms&1#5kyL$1vKCaS9A|`vb;)aoiL!MrF7;V(g9> zd-Sc%F$Hmq!8wa9_ zZ$^+65oD#lEd!}L$Os^-vNE$=EE^(7O@?npkR=ghslKBIQge`TKvriUCuhKNX9VfU z@SO;9Oa>{5zHI~P%y1<`iCFH9 zAfqyTFM{ljAba$!owbN{#6H3u07 zj8!>Lvw`mv+$Jh$S@1__-;E$7GO-=-W1o&Qw=(yP5o1(_nB#V% z2y#pYDT%&q1L;h0B?08iS?N72mb)WJTZZpOkOL9qpuQagX*Ob<^{pF7%R$xvVs|zMg>$ ziRHlvQkUVO2(luAtkkz4k%P0cKkXW9LAaxmj9zj+_kd^wj41}fUkeU%dY`=W~SuU2t5u_%=^ATi8 z1X-%@sDacRWLz=H>Z_;m!?7D2Y_TQ`uFgRB8WJ8y6yHCx2-YQ$*D@R_5rTM{wu*0*68>?;VV*$9Sq z)&-0W;#hh#c1vXVY{Xa_F>cehX&4R1*b2twDaMdEu8SCT89pB|Rz!@I`nC+C?ieFr zX!Q{nRVCtB9x-Y%d?8{ii5N@u9W{)aV~m5L<9Y$(B=0;VH$;q%3}1>E$7GO-=-W1o zPT5ri3>~(^MH(WGl@X&Y!hG)(E0^6O*q+kh>zt z-TF2Rga>@1iU49aIpBm$Hi+f62-1+@>k(va1i4M$rh%|OCV*@O7rdm>0%hQ}kw0T}=} zsBgzW*w_|8P66^j2C`o)`yz;50!p5UAiE>T9(`+bO-USNa4s`Q8OTnt?2jNV8GaH$ zw#h(Dw(DCrkd}k20c2GMvPCRUMUbWpPe+iuBFNqPHVlM)d?7g-0mg^N6t`Vyx7+Wf*nG7y(1)0|Lf!aU6~q zH5s0d7)xXz9!vEdHH?~LjDx{Kzk~cW97iJtciktyh!CF&2>+Q++Wtq*5jRO*{ zCmLfZ8wc%iB%|l)jYVQS%XS1N(UEuUcDan-Htk|FH*7P+rlLKD*t{pTsYaWHsm+3D^TE_+QMCD2sm({C&DE*R z$D_?(r#7FAHp_Y0RBtE|d`-_uDEy(!uI_dlGP{P`ZOQDKZnrbDYq{P2%x=`}xUt^D zZM)sc%&y~h%S$O=O>aS1{4%?`+il3~8g92GvunED&djdmcKb8CQMWss*|pt{Ju)8W zj@vEgjRu!r+2fbl)!lAGX4i1LEtwtfafh_+%Tb6o zvun8Bmdvi{b~`h>mfP*m>_*-0aAwzbyOWt+$L*F+$>JBDk*0iPc6GPgkl8idZcAp@ zbi19IUCZtEXLh4*cQ~_ayWPpmuH$ygr)Ke+>hjC%>Tb6ovun8Bmdvi{b~`h>mfP*m z>_*-0aAwzbyOWt+$L*H$?7EkaX&%4KuI_dlGP{P`ZOQDKZnrbDYq{P2%x=`}4rg|4 zw>z2Hb=+?G^eleirEBsxv#Yz^hRm+vc3U#LrrYhz>{@QOKeHQkyTh4X+wD$fb{)4{ zJ|m0Y43}SKS9iM&nO(!}wq$lqx7(T7wcKuhW;g0~hcmmj+nvnpI&QbTCyQT?$1k(1 zyWNJ&uHklDGP|bR?ab_2ZnrGmDv#Yz^hRm+vc3U#LrrYhz>{@QO zKeHQkyTh4X+wD$fb{)4{J}ZmgERSDiS9iM&nO!5;sfV?R{dJ)im2`cop9|2Nvr3E9 znWFo{ku17fJa`6Aw}nWl$g3RNEd;{X;XQ2NUF z(t9>MdMZ=3s3(pBm%3UUgHq4Te8p!=LvXky6S4c39HPsI!Mc3&iCceHbt)kwg}x%b zyWU%vr}tTji#-+vXP-Tu+ntoJ>6<2>1l*lW`%7Mb;xtotGUYGjG6Sm1D7}?kGOD)> zO!(tGO!2+N3dt{D(?3N|uurK@`vA}W_R_I5Zny1~txla7n%nlsb_TWuj2ihV_?b@+_;)sZIazOuZD#X*kJC(k=b*OrB@bdpHbGh=n=l3iqloll?Zq7Xch9Nuw21l~> zp<-o_LtWVMs1Y{uI-c`7k@t!rc!eWbjn_J|3SP01*O8ppvAkCd!7CieUV~xRMjkhe;7(%S^J2}?4SggfCd~i>OUywwPKus8R0&4K6?3Oinv(2bF z)K;U`K#dr+9;$8BCaB{^wV>*Zu`WzTpf(#d1~q2XA*fSEb)Xu*5Z@`Nrcnc5D<>_Z zRzZy#)qo1&ZiH%^-DaqcQ9Gb&rUj!=b)&|i8b(b(HH|tB)iP=mIYOG1Ba$5wz$R+T zsLRR)-~38m@Xfs7F}UFImI)q15IlY-3mz8}yf_FJ_hiTOQkShzBSsBFJ#N%qsQpH@ zp`JGC2-MGvIsx^ZQOmwsW)F@~>QKKjY7JD4jJzmW4>e%aCa5nN)q=Xks1c~I8Z`#B z)~G{J-!Q5J6~a9Qb%)svpcvmaY8BL7Mm3=BF=`{!eMW7D`hih9ptc2971OVn;3YdG zurU?7+mmp%LI=h2p+$a1&>Q8r*IG~?n&o4Y2F~z;9*g# zq1GF<4rem|p^V;=7fK^96bvpDyk$bc5QKu?$wI-!gdz@t#XVV# zP%cWwp>8#50_qz^9f$h1QMDlowNZmm4;Zx?YS^fCP>&hagnHbltx!)GH4OC=qxM2Q zZB!fTXGR@?`ngeS5DM{;P?RoWhfSHP3LYO;yVhg$5$M54kLBz~ zgMBajbXRP;uO}L8XLZk1TrMn3kKbuDjm+zPQByM1*gSic2F@#2F>qtKK`ayHV%N1a z{IrJZU{t668C|eKwftdy@Y&z3+XMQFrEBTE6+T4QL$8i+FMN;=R)Jm$T}y1X6+b{P zq?kNa{4@1Xs|DU!y-FMx6^bC(8}UpK(r-%Me+_(7KFukFYd)1jDhWwlLR^n#DCMj4 z((FZr66f0mX2RH`|QmItLcQ^Y5v~+S!vVb0CFK-EBgQ;fk29~S)$*e)SvZf9{=tXt^w@**Cf54{?w;j62y)Usp1_{r3c$FWMD;TlVC3x?Q(>e z0z{N$5rp#Mp1wkLD!J1)6{*s5tCp_rdAf_74!2a;!6bE1dvWUizu9{iI6JQT&a)o( z-oD*+TdJ02t5G{i-J51TU0Sb6P5ED$|1SdGbOH61I8Jvv(eZZeVJMji(@FrsL1a0CCBAD@hfB$o;Zr$6r zA9@&r*LvKlI(6zi{^$Qb|8ovHETc=F$}`X~gg|v|buco74)v^|ODL>p8dgMn*EFoi zS(N5m(AY>94KeZv?VlBZAcx$<1#*Oj9PE!Eblvs*obIb4oejeBcL0cJIg zhV9zb)2i6epA}{v#b^~MMtg-~)~X0UX18&^fjubJT!dnzR8g$kMC_HMY+_t#uI_1W zQlJarQK^*Zozc;A~F^f zz-aQ2yzm9tLiM>kG+qJagga!GfgBfbe!cOhC)bKE`K(dFoWK#6RnryNj|<^0zVL7W zT-}!p{=B_Zab+>ajGlZlR@qp=#_)Q|Y`qcWTdGVdEQ?*SPHgDyATvZ-Y1O(nf+k}_l?o%mVhAMnuNVLC7@zMas5`KfEOt;Js;X#=pvS}qL;|df` z2s!7HL-muBGU5QytRYyhoH5}6>$LrgOyPj_fF;@^NNNbYOS7F`)Ib+P7ZOiH%#=kw zJ<`U@7`h;SZR|SUS<1k&aaExMuS3Mb(7kR`6+AfBgxkh32MHdw!zpx|D@U77S8{^q z(ov}mfVR-vdIe=g@SqZ8a9-(EHeM1#onb@94x;LZN*r1%!9KK;POa-vck1Lde;&0( zH^L66lAO&Ocad=6PSl!(Cut>8V3*Bp!)GJU-6?-)XEwYmpTA!(Q8pcuN-DA}8Ys(< zGU8wP%KYn}>tVQBoyqENM*=lMja?j^P^-6M2{nfA1!0%pSvI=(q?cm?q{%Ua6LO4@ zQJ_%DpXKBjR8h@(5^{{%KWeh8TeVZSd&)a=GK~5@uKK{)Iyg&D!5f21gc>-10%T_> zWhJ-<`S+-rjB}Wez>CPk9pjEsF(RdRo^VM|A|L<_7j_h?Ohts7H#*eDXZVzRg=SY@ zz_om1KBF4QB=f|{e9Co0Qw|8sRvE}>AM|GwPm%^A<+GH*j-uul;+LTy_COrj@f1M3 z6x+~%G<&h=+%zobwO>(oV?1&cb7?$s^0GG`&-U;LQxw~Ery4dU<>E)fY+=eYckqK1`}6IQ93U800M&i(hNVrUeLi2!+19zp;@3Iwj)=6Nd2L+ zb!_u4gq-U4Z)4tS(uGSz#cmh5JV3t_Ql%j36 z0}|~D=i2mwRP`3iJV_Fi;ks{n@(+!$4EjPN^`>unbyRsu4~dgwN81%v?J` z(O1U3&ACpCoGsVEwaQ-4T67?*PqdjB(_dlATpqn4pQmpVol&)Rt$sk|H+Dv{(JR|y z+}|9&95D0vvWd|!o@JJ3l&7(Y&It8oYbdp~gM={sT-0IK77);g(X55QXs^w8w@v!7 z-C8z+5ZYlMq&v2C#%KrgQzODJmp2==dd4Q^)Rs_f2^Y16u~b{Il{N8Zd1#QeT0hP9 zhyiw%de+j^5Il$fu{B==bF^MJ8IUzmBjD?nrjuGuI&)|C3|qy~@~pX|V^AB>@KK=< zYE%hOoifNhDUA{haX5o}Kc z9)blz2x}yq+eS27r$H8Jq_;;%aM9;*7~r-LdaC7)BIKM2vk1czBBd;~u5L)zea{wo zyn$^p46;Ja>40O$D(AZj{x<1|YM@MCw>F@J!(k=6VyM93vRY14#0EiPkwUc~lp99~ z^@0!rP5ZePsIoQ*S8jX0W<5uJ^Y zUsy1r?ki;w%>m#(nqzlGM|1GgbF9PdQAcfOQ`OnosL1DR4aC`w+QvaaBy9ACb}C#K z!9{bOgv_ox9iz`W$m1}FfLME@E;gUwp78MH4rK$d{Qoi#wCGt9gzr45@hB!^PCgU}-g zdxOY!IQ@@dhfslSs0xrF=+n&jtOm1R;}E<_)?pDF^Ry}zoTna;cegSIowX1KWovWO zwVFG{V z+M~k#v)FZ#mCR=urflo9CfNCNG#lFi|FjM^p@x7wEqEdrgU+L$3cj=pMyMA_W>}R9 zwMN@M4uHa&43yw6QIyO5tLhomS}{y~=|)$uHryQs8QLvSaF~i!a?3S%nC8+(oXb{*#-iK|Aw+~QrK_MpiIa87{ghJ-*Z6m9hzH;b>cK79X;=Y z&luxEnJhFB&)=*#<8Px?<|eLY9KvxKg!70TmFxK)z#4BucR+06&4j&ME&Q-y z{AVsxyaOaO0@g*F&>QN$H63+DTyHe13xg3AbLNwEdIN~+^a}yib4Qp~(IB-1rtMf( ztzcP>I|6{V=ZNid)E+~lb9y=AFzrv@>t`a~T~Q`)EtSb@0>?4}1_QlAL=;eeG=~E1 z-h_GsXLB(x%-HYfXlCVQwga!z)cBw_p%x(vTtmX-{D6*xS+vcH|w*?@r*>0hdhv*Vt0P@emOHO zNkWZ#)W}5T^c2w1bI%7h>ri|VCJV{ZbsWCuBimyBROtLRlKV80 zFRVfZS2sPP@q+7o__AKWf}#b0*3dr#tTHVu0xbX&mTGV6e$eK8hS5nOY;Z z<+p7}EhW5h2d;xG+$pA6VJpO25tx)*41n}8x`}4;iZa5b%3vHYzh%JqvP96^Do_Tu zT_J*)Z-}M1hRE2EF9wf~8>|YbAysB=4Aeyr^0N7PaH$z8vzknVujyY$KgQ%bQ69d5 zLDNI6ZRkQE89g#U1O?@cv8VW2zVHRq^t_&@JjlcU@q^Kk{UT3xCwH@;@Akas{T2A{ zE8)M*^By=10IY8cl6>fmVi%~LsIxNRxs%@I^lnSGpIZ7Sz}{JhRudaMPj1wF>o-5! zC7;JWTaeGE>*0`8!{f2v6;Kgi=XM&Kqhp#Xgww0>n1F%y)J|U^9*v^SoNEVuu4aj| z0~m>JrJ$Yjw&$Ih1`!fYY<`n*?Wt&bEDpA{;cfi0viW6YC%=!_?-Bcbh&rb_a9-{B z&7C$G^zZ8a*b8ELhN4fLEGfn!O~3Fi0=LL=a4Bz*2)*qne&B+Hlm>*wrL= zVJ6OzjiBuKftrdQfw@jaM`G!0&U18Eoc<@Ilo~+I`k@W%H~#N|rZryk#Jv?X(Tyl~s$ax3&!>!6|#i+UdOeYQ$w~w;07? zHaJ6hPhTKUQbw(0Q>_~42dHT%fATXSiiV<2Y4`&}9aBL?34FmQYaEB@8V>~^hKtdb zazn0>YA({;XzQi4Sk@`tL4#xCp zv@CVhm#P#DBj{@l^d-}4je|H26+s+|&ajvY`XbFiTrU-fD>g?hlY&OZ4*R?ZmNKwJ z9%DF8JglaoCyYE!#Mm6846(JTLLQS!$x8CD+C$lZrY9J}m$eUxC`R>@dh*yqyzMgN zVTb{KR7)$d#}F`d1`P7dswxpsgk*%ZHW4rR6E7eZFjyRQ6$0XZg?v;6#QiMTeC25f z2=J~VAkIZVNDb@?3Cah!EOF)cqxSpz_NxV}PDp6ksS^@fJUZ2pka&Vsmcl`E>23vxD48vdi|2Qbs6%F?4XwRz=muW@O z@CY^aiH1j*Xc9kPUNqP+8)cuoTsR`hTcy?`bmx_YTu}YJav|%N3y+{m^~ePZpu>ml z_Y3y>dHV(Uke=iMsKA}%!U4OJT)30Fk{p+i3wN?0XbM5Tq7B&O8kKCt z4nP2_Fx+-KiX2|L+HoOO%s_B)x(|xZ28E%tdxZHVqs$qB{(}q zcTF@}UYU-@D^{)}`Kc70lhB;C2+amf-Q<;0nKS9l_?^OhrjkUz(Fwh1FiVulX#NcC#E-_jang>d zqnXv@Xzw)SDwok#e1S4ey;8EsIkLoy{$vAR|W0Z!GI}Qx?vtJGm{4Ov?FD*r(@lQc4~79 zfzt_K{h564VS6>}&Jc$s-6UmfN2g}Ms}$LHs+huFK@jG-{I}SI!XSeui7F&(&H;uR zf+Nm`(obNMyQyL(Z=btS85?>rcR8)oR4eXMbjdk6N7Mg3mTgw4z8oqzIFPqBb%0nd zJ*wiZ6h?kor0p_QC!ny z*^Z$DFIqGGl=maSPsv`&!LSRUfYvY9_qnC}bnvag3|+4ha>GCgazM9hd`# zKA8&cv4D}-!#*U8O8)Vw5NtvbWOy74;cb_Pe2NEzBpD7`6-P0gK7_^(z31QlOgM!n zF!*@L!{eU`&kLAlW-}H&BIWq~g#FH|48T;_RfDxoebsdY95geSAn^YXD}0P^%M|99 z*(v9Ic^)YgaDyuXBfO0skmkUsm(m_wCI)9y@F_t$$~VcMi~kCn2!l#x)Z(Iwnoa8R z)||(nhe|fK8l;E$=2CiIRO?2sw_4^i>$IW(fVz%zhTmHHpVdPW#C>+4HgsFz@l*&Z z>%zPhZbZ<)0Qf*mJ63a;wh%6hYSurgITcisG3in5c+Dw=$gdAqST%8&!R4AbDP`@vl}8VKTVVpQ}nRrBIFF+VK)>82N&729JN)1l@`) z+MY>LdPbVqS&i{_3xI3wP_itW>ok{@Ww5`}nP`6E9$7Y$v}=@3(E40gkagX9Vs7H6 zkrQNtUMwwVAlAz>tYnj7&avqLE;-hOM(HZND}AUU%sgY3FcWpCZu9*0)Z7(ioGMx2 z`8AllfFv17x1p6eu5o%xB%a?>gzr@rqZL52G(!xZc@0lbZk7gmg1A+kmJA5T$kO!a zpc>kthNi?E`co)5ib5wihtDzy!=edXS%IPqaETc~?*$WcDqh6?_lK)t|0~es0dJ`N zm1qA42nBFn29X}j#Yj&~Mx-b9?^?xo+%IDP5Nj{{SL;jiyG@{=1k5i-f4uFo|J!(Q z?0=sXehZw}NRUqo_WzEMhl2gjQyGtr@BONM^G`v+{+;=>8uq`hVE-me}z7}V1L0yyTf0EVwa?7Y~iAZUf*YYY_lu@r7;tp$+S8=elsKVTE- zktRQ${7iT9uI;hWdua(1r~gM)<#B&DxaTv(DB% ze}XWI;|&|a4b2T3hLa7g4Wk>94I9SRttUu<$phKML-|&*CYetki(2C@9l%!7|1fH8 z5Oel{Z4B~Q7_^OVNltGy&c+zXg6NRo{C6 zwU#V~;HL_l<0aty-=ngCbNkwn_7t$xKot!@qeHaz6`^pM5*wEs>lc?zFnp;D@*4Mj z!R$iOuELMuKwu0HU~qbsj4J}{7v$*>iYk(()iLIkDl`!`W8^srlB}{+>#RRYAqvBh%mz2t zO*0Kv(8h*jPL1@H8FpJEX|^Z;f|i3INIxb`N%Qtj7eh#P0y<87w@fS|4*&}v3N9`w z%o7J#g@E%iNm|VD4dwHn3G-zraeIb2q*`0RW`pU>VB+MQJN^~UVlHR06cL< zt}b0jM;F za5Y0bNj-5R!<_YFjX;5H6%-i%?r~9Dn~jmz?N|B-E;hJJZ#8w)EGf9E=DsE8A6o;R zuD4*)M*ds^bJSD0e;i|_=T&JhTFV>4IPgk!L00N;I!h1_mRTmZndr&U9F{zYJ&5My z^??XH)twL3<*A>Ci` zFE9w=#*Qd@dExp2ywE7zY}`}P9FkW#0OJNQ09SZJqrw{+72eRuyS$;&Qbwg=g5RJh zqZMSj+3SN8U+RP7i}gWfw<_2(Btm$lQwf{j<0>J;=~Ti$?o|oP^gmi&B^<8|^chkK zccj0#IU0BRV9^Y8gd0v>AH3*8|K*b(`LoCV^7d~zNmWHq7zgw_1VOoKrSe_$p+Eei zk9_g>{_^%mSI%!*-HOdzL91Kw`_*Z6Wijy*&{|2WD+^c(+$(E!D;BYWRyV$5d9Cip z(dxuhO4+iEK8G(WSs=ht0mhOr>{(}_zb-UWn&D0#oGDc?NPnzH)stUpX;qJQe%DpK z`_7cA_t6L4gu_}8|87hd%{QRI4Wf&)JYAUP_wff&T5$ss-j#pMl>tx(e#Z&9M#iS_ zt%wxMD|{DyXz$lP^2NXS{Ow;_x}636nod{N7cM~vXIiIw>eygcp({F--scs%A|bD- zmuFO=8!r{Q{A3k6Bf7lM=qCF#x*u~IUB0|VH|{h#FNE>1eYB#{-F0dj-78N;qr304 zH9A#$3L4!XEmo{fQk7hF#h_6|qx<8<70-Q_G&(p>W;!_fdY2x+b};Y47wGt9mcU z@{S6!Jn^7xe7R#!gl_)rFiu7@0rKB|FnocIIXEPJ{ezyJvFq3i+89JylS9A#{Oi4h zVy!nj$tH-?%bD4?cg*KA0rM*Rf|@M0J*8O{TS85Ig*G42WVS^~mF9$7J5`tyiYKHZ zgpSRV3Tuj)UT0Cbbhk=WyBIO68{L?(PsF|TIa#3FCY<6;K(szM?46po`XI}Di^!Ra zp1UQ!TLv4!?u5SP?|Be?9j`?C2cg=@i+TB}pNIg3#it_)dEb6T^0W+3dLGh#R(o4@SB35KQHg@#jEo`9VQwz7of?q;Jh zm!Jj?)qu3OG10flJPln`qwxCS%8X~iI~Eg zid=x#v6@>GGGE2U69UW$MjdSY%?dV(5J6;xQ63UDYV_;WZP=*Mue~T{Fg5I%%Lon% zrj*4mqgvqLi((-uCG}(wk|x4=8#u5uU+}0WwA3;WM!i5i4Psfjv4|Hb7~gFjz}h9M zR7qBKiE}R!TK2vZLjc*xJ4LTtXr|3%YWbqgE~pkBs>nu0CP|rcWtEB;&Pb)r4|!a3 zZI*Z5N+t*Wb-2bW>m~`pwT8nrLbu=}!Zqz1W+56{wah~W*A9Ve>ZaiuyUc7Qw7ZLI z>=Pi|q^^U8W$=Xne~`zttsOIrONNJ`Ol<|j1B2Aki}k~pdQ7wS(5xylmF+P&fuYrx z1)QiD+UjE3<6&6W1RTb@F?_K-SOup;v5gE91 z%zZ}CkD$XgFJvvDM*WMSMx-MG#Y0U@)3l{9`IeV+MX&P%Ud(BR@lG%0x?tEh7z~66 z_JBcbr~-z(wW|*Z%teBg>g3U2uA}M4rMs?0w#27`Di~ul(>MW41)MN?1^nZpDwJpEpj^L3@8m+ zvOnTxs2+X;=|j<%!0@_yCD_Hk@v&xL+v$+o*d9VpBvYYZ=s&$9MDv6+$Cq>0Qd3Rr z+!%%s*UEPjrag)0j%oS{B2&>n#q>(dSMKST&23Cgsj9Qs%sNY+^pH}ZCfSWg5KDuk zWCqEerZh36!q}r8^SzErCgzxY-E#;Lsxij=w>^uvmOd7W@HKG2iXLoyeRj@k!AHdF zy%sz>w@M}Wl}_ZXtOQH9q$Tok8@OD!i+CJK;=L>egTY?RTbE`F&GcIgbYFY?u_v z?|c#aBPnn~IZnW*2P(hl&8Qo)16Hm4@`+b|DV4I9QhxjMNn-aazYCNF_mp~gYRc~+ znqWGRno=qvTjC5nM_Znv?4B%AlM3bc5PMOqO8F(@Nh-f)W&wa+<(CAf{D!Mmeh(2= zK1^SXGEYMJ{lqCLzgjDCI?C_7ixYCn?+^nE0o$1Z6`p-h$+HXXxU^D*t`7-aF+2xr z#|MP2tn^q>J0_!7eqEIFBJH?8!(#1tugA@k*N$14W9p8xp9_o3X~#Y9s@gG2b!_3% zirO(5VRUo3h^H@PA9JrI}zX&;==KB5^9h&vezzHK@D0?A*SL} z(1%yo^L~A}r{^mV@c?~~*7j)ra`G5$IRof>a)=#UZHcYkR$;5Rlx+1Ba9{vvR>Fa$ z6=B(+PY(_}b=vPc!|#&zd&@G~uMh1seV1*oR-yg=kD3edJX$D(3LHC(Y9PDd2v_+{ z(<$kyWthf*Wf!kN=RbZh%zyPkNs^;THw8r%{#tI9U$|teh*`c$44MxN8?-hdeO{)? z&LYdKq>RN&M2S{2K0wt}p3>_US4Dcov(YTKN6h_&v&Tij(VPdgMy;nH3qn&0OAI6j z^?s=^H6}6iJ+ps4fVapHJ^eIx$ z;%zNzh}dTXZV{;`eSjVOsFJNPq~$UffX*y;in$Yr6t*!*Zx1!GD{vHXe5L~exNt6g zUOz-UXxq}IVw#IPT9zTV=>ric))Hy*R!W8fr2A&>ddiNZUMdrzrGrq*4gUet+X1+$%TdudUG4A3SK-E?tOJE`U zaDXH$6NF(=w~T7v=+VIfi%xhfvS6!$SR}1pBZ)&V$j?zAj9;8L6+H%s*d#^(*Jub> z{MfTL+|^Z$I$x<3_Z4L47GiQSkEQc-zR9ZJCb2&!4gRCGCt--9ryDX3Xu9R z^h;d~Jyc-mm%;)=nSlZwU97aq?Z;47gXpzpDr_@aJuqUm^i$D`P!@|tv}zEAc!cbZ z)IfwhRzXOx%OND3#~fCub$@rT>*0Llpv0i&bf3l4E*}IYT~2#ucSu6eNQdhR^)tiazT)EraM_k?w#Fkgjc&X^Bj2sM zw+I)Y-~6?yLpIe9*&&BH8+I>)U zT9jQi;6Q7`TwGwslFQ&AKwuTSjcfhVvH_nHtl%S&SNPuh+Qtb-AfSmrpF+h_fPyC3 z6v@DxsNLYiK*7mFmZ5T3j=F+ZWxO56z{?$mOrw|^Mp)1|eHUyO#`z!@?4EuX>|XDJ{eX9H9jGE;&wem+Y{?{ZF4%9F+3@%1-txML z;he66OR*4?w6Y6!zo8KgFVX1G_q>DaP~qU(zp{hN&b{z_g7qAeD3VJ z1K#De*Q4mNJkn6q)%+Dh(Z4QGbm8<-bbtqekr?2E?NVV6r~CfUehN;v%q&5HqE#oX zc^0OFuNaE{wNSLHg=n7|O-MPsO+AWs`Coye%lQ~K1*hVKm9L?6!gd?fRg1bqH4r0V zn2S9Pj%h~8vl#i5`dUkm!!r*f3uo(@#>oGB1wGO^TODaim_G?q{4LSyQ^OtolvJ0- zzK_}AGE?u49rim|r-LUKaY4mLq>I$Q)v!M}md%c?Zth8JZv_`?cTi5A@jZ)XY*Tbb z=H?gixbH_aTh6iiESmX1qNgq7KeQcfe-*fk>(V%v?YBoG z9{{?hCiF>$y}@O&V-k%mlUW6k#hjs{;iFw`g#oL9YK4g~WR&ER(g_MCyx(3D2kgXP ztP1#q^|308qZX~6Ne*jKbvnZov8BLmlV+?Tr?Zq6d0?p&R(BiB9E!1ifD-}JPNyLR z#p22Df3Hn}@nu?k$tUNrQ3u5-6FY>e99@VNwdou-HpWTxMz^hQ3~*__#v>H<#C5vM zQYxBkyNR+4eU5H*>H;T+lY4Mlw7oP3fwL}f0tJJlfRNA@Qv#@)AU)c7RPAhK)Ncgj zHns3OPSf~i$7o6r!0dBWEU+`bLp$P#Ci!-(IIIjxF``Yi1BE~}TRSK|>((@R=4#5y znkIcsw$e6f1o^}7ij)7@9QG17SA)~EDQ8xw6Q}E}#eB}@035l83Yj%b+Z)l$A(V5;Xlxl24j0=d-PsUeLhDqe zaEL@iZY6OJymmHWCzc5S7p2cJQF>C-UffeU@a_e! z7i=M6y-@lj1#sq~B^90EgnMLHBBT0{ecrOHY2ad)wZ29@EiKk zPmR-v^7svxkqCxZTcmc2dfnOtI4HYsLdZxF%~1$>)SDXP&)>@U+aSB~ujhMg4V9Kv z(RQRH0F6B4@>|?HF4U;;_bX+q<4@Ch%eU3R7n=bxY=O_v>#atfM(c1*j-D5&I6bx; zdF#F(bVQ{Mx*zk$mK$?6**K*!Pc-Hlc*eY@S^EC*R{I@{FA+Zq|9Cmj9kKgdGc?04VBVI7*0VBR>qz%cTk9^@F zIHaA~4d`v8^(rz-cZYZ9T(YP;%#`KHLk;7rVvNB9Yj82fh5^t|F~;>iasb41na>>^ zAQ;oPCi=(k%lHL52#jj7>PT%7Dcwa=pN^3}3|QK=#u!ED z)g(ikLBR55^#Dt|202`nbQ8aEZ4itNxT169QWjn|fkG|`73fZi)UexiNBTEmGNSLAbGlvh`r~2pNgsF3xecYp$!P`Bo@PM08CK_MO__xa zTcc98;*$PGW0l^Kf^J03t{Un@sfV5~(aavx(nIZTN)5NWX{U!u)7u=K@AOb=irAUM z>7mo&Z)7eNry`QZ6sOn}C#i|BY-ue*IjWlBnF|%m8j120l@BG3EhaCzP3Fum%cR)? znuhuNHlD}UodK|Qhx3H_hg=HlWcU(&_(w9=VG<~d`j?-rKSw#)f)MmPx+WBX$ zrkPSxJHOD>v}<^YU0{-_R>yy3uxizxp1if(TE?AQ0_tF=WCG%OQL62x><;ByJ2jDJ z8<=v3VBZ`~yR>t+pn!zZ*EOaL!ejyVJHs}>o(^8%)B#{+>VObh_Ga?MFlWx>lU~3HsU?Uo8Jo7qJBxLgjF1Cn4WmW# zbmhlXXhxG92i&zVB)HpdI*x62&SrIJWiV*fof%!BFmmjnC?L9#?LzbdQW=MQbQ&dj z8XR12W+^3FA+=;$2qx;MvnVVy6S=wD%yE)hun_HW)3Pkd-lzls=8*?L-2=epkQ4^i z5b?rkb%dop73cK*lxc)YK|lRzHtHw#9Q;=O)Y&;p_0z#cA%buaWvzh3AIHe)W)39A z5?MDzMh_D8#o%I{L8|RQJOVU3gHb-#5(-m50Rm&V7(?e6m2#o%&P5R7An?{yJ$WG* zsbz@y(RV}K21%G48N1twg@y{y9p)R=B(U5WzB;LIzI;-chv@P{Iso&+67xIpdWoo-Z=>U8vW>3Uxa>G5TY!@y~Y6ClcQlE z?%583&{#?H18~n%Qi*%QG?1kN7wL*6TpS{LEaXHt0gY4PmP5e>i}Mr?l35o=!X5`3 zT^u}c3OKm>Z{A+>JGutNSz3<$ioZDat5dVMvvsm|2m2K_Vj-`r;B*r8D%Mt}0LT1G z29M3gd>epI2Uj}2P3afQ zjDwRWB`24?o`>xyLNP>f45aB%dj8g(xwHYO5uX+*>-969zQ=Sv2Fr~0I$tR_N-$F& zY)h$fOn+ggctp9V?KI3nD;oijd?SnQ;Z3c zq*Mx^8z-YOB6}`v%OuO$g9zRmCI8ZRmkvN?h+WqicU-c1!l4p6hYHmJO7MI=-<&5_ zs+u|5Ilo~iJ=0oafDXEVA^bGcV0f?TFVVg7zkO$z|IIs1^6u=6P4LCoCGGXn z{l+hnddHs=PX;$v?tdIs7UUUS8_RJDjlvn8eDarerawV*`8wUs+iz3qlayM|GrZjs z`9JdfO`c;l+Xf^BQWj!^@`G?@|Xi zO{?HtowM`52{Z$U^Rj%FI~y~58f=F7GA>v>Rug8+56pEEeO#1$Z~nn{*v-bFnzR6w zc~~2jX7aa8bk?+oz%Xs}T6}dp|Jm|B2>vY)&BEUmD1$^EGFhFd6GL<~zW)Q(hkx_A z&*dMi_6O7hz|h-vKIQ=EYzWr1rfo-TaZwVL#`zEEKaPwRxha(u09g~)ZPxm|_H!-@ z+T&y*?)`<-`J7+L#&7D3YtZ(6{gHScM6jE;zU9Ywi$ll0*7?xm7fJD0d$Zw0l8t}Z zSp{s2%F(4J&l8Ge=S-)k*oRWBTm(!#;AED_s_Y2TK7zd(>Ij(;fY*X5$>`%$8R<_0$n-9+kSK@r0-E})D zV5SB(MHaqtBofz$3zXfF&u4S((R{>w)hSys4_`k=?jc60XirPrvXwWbb5~kJheoaO z8Oq=UO@hvl=t{GjN5v6^_OyGhGpa*q9e!K7ic>cQ1H%mt_Pqn5x!kaL@lYm% zhcf9ON&}JxjsF}N+z=f#fLinAot9j9>{AQ{7os%SZE5Hm zw1~#tpwmOdzW#Xs^fH&G%3_*a_nDAKwXF zHXDIBMvMviOoS&dnNQC1^}9M7K=XF$Wr^wmBURIG`YbL=+4YPwLAd>)H*{jcJzoEN z+1hk}*lEn=Ar9#n_{yEr$Y-PiuFXh~j51yl97Cv&xf~9P!rcVP{>zE$qaKo zd>P$tASq+DHj*5JUFjH1s;6mc1IUlBTR;LdPRKiOId%@33pk05q?}5Xo>CkPR79~l zSOFMyUB6QQ*NbrIz1UP0FoGX|l>i;#cEt6M1Ulj+NZmmW*OX)#(^C|*Zb!b3GYzHL ztOLE)0e_joBQ_-DXyn86Q8{ej&f*aj$dsN0dZ06L4x7MpC=HMe91Gr=&9*l(5*s}e zoSFR~tj^)GhIPbvpgV#?zEpEQ1?QBVUrLXU;t)7z~DG(Lkv_5sdFh5tRVOqdE4vxk6sW+g^YHz zIYy`Z_B8^L(?Hjl;%MGI%AL#Cpo zJwT|2VCqhMj^LnTgYAJ6pU??Cfrn@k3=DsPW&(W&!3CvHLUT-fTAzzf2n*@NusRX* zlVi+^2(2UK46frWw6!|v+20juVV$8$SIY8064*{Qtj@%K(zE7lV>L_G@~S31<6_d& z;6_^t%aZ|PM6jF(PI{tAnt;Is%-p0mWWB(&kwJ{}gE91NTXovrH|gp2SI@aHQX2cn zjXjZ#0-H^UK_7n7)6ef{;Op=o$8pL@PdC_dLO4>bPI{UyP27f?;}MKRqc-0E?Tn7M zBuC$P50&FxFDAKN`-|~rwpLy2AMZtzo_@TC#1s(8mGS0;)V}f7!6%Tl_chq0rx|5X zjU$P{zJ_wdmzm~{W@YSW@NNrmU~CpRiAR(QedNbJXQTa%&xzMAS}*`5!vvarlb_@W*|FMtZHMVNWKrX@Vm{CKsSbpIxN#hn z^Lf+i@)Z6=89$(p2hP&Yo>L(Q@giAt6z=MqlSXF%gC#hCwTGm4Xwe58(({#k@8=C} z@BX~Ot%tYdx4L&+Jah4&t5Hl9-A0i&0D?@X4L{Ke{A4NkiTn!WiaiAJs++saIIiAS zeP+&;wHoyD#Jg$;mYBESVb}WyVctIXj?2@5c@7ZZ=XVM7Tzz8Z=2sB4E{}W*4m_WA zpzB4x2i!X@PbczKLHON4zSRP;#J}Eg~GU=q=Kn5U9MMi%n0YU@J~mQ!FGD17>rx_D29d$`6vmsNAjb?$Wnpxcd6T# z)f2^F(NJ`*Pa!bHXi>icf|Y?U@g#n8>uVsMcLOx0dJvMY#OJkW~Ni z9|;A~J=G#Ur>Uxee}0mdyfN|UZk9Qtv2>c!1O6(JPhErB&~lXgC|~>UrE?RI3YLB? zROpK08EBoAeJ<}V2&R)g%a0CIjO<2S49^BYk#`}r;_z&E1`dz3q`||(xX7v8J3OGy z%ER;DmK>h>$ZcfFCP)yEM&f)$iW-W67okuO-OZXbgATp>(hC9$fznw=R`U#W|Xn49F zkCLCX0B!|~xhYx~m=)N>uUjS}+%{=MGsJsu5QFLn;pG*lczw)0tOD>*t6x1b%uBo) z)NzSr8$d6jB~ASBUN8)M$moSioX&@JH0DKcfw!Ihs6lvVEir6oeIE_mKSgc;gOocD z+{M^_QouczfcM+t^q2B`_r@uEeBX1s9_H`RL-LAk?vhbq}au6w7*uzwGt()_NPxvJyg_2fALb{f|cEx2iwWP z)dN#)&0-+UdO>P*>RO!dwWD(4qz0KM$0K)SDa=seVaCVK?GPo*TnbSI>aHj5R^4s3@>OoCF>@9QH#?Hb>kOQx`TW)~U~@)kn?{@Y)pRkT~NsCMi%bH+v7O zw9|Qc8xTi88))kg)G>;lVCYtxlgbhoD$7-}%DDmi^G1vF@ciev!f8U~Fg zgFMc{Jw)H2F&pXBt$uQK$4rh##tRLrgp>RmGduJ2_3F9+1I8#|rJ<>8>)*7{3Gtw@ zVH5zN8FMod7v^5jTj3I-%{(T!{1H}KI}kgd)r{eRRq5K~9LmfW>?m2LLdxYqYe=31 z+>`WsvX%@5KP>W1jx-!><{j?>z`zp@rBQ=D+3~?Jo2Icei8lpLi@hOrmENf{eH71< zQ{2j^{vBb&GlvMH9dmiJMZoFqI^mzCU9TPqr4>DWqk!USvQk|9^z~XAB-j;Pqj2#V z*QhCex>#msqTSVbgOmZQ+L*7!PooT6MTc(F+{rKVpZMvk`L>Loj$Qn8+>M`hyfjjj zk%Fkax2<9_wzP?h--v$}*Vysv?*hT%DvnbTTt&OI7k?s6rwNhdUXCOdL+MWH>~_AU6#jr)-a4&^-lP4 z#+Dl1P==M?h|SX$CeKTL$iO}JsVG^`Kr&OCn}Dh1|K~ph+a{8=JZ0evLb%-PUmU_( zdCu?slsO{Cg1kx8KM`m4j16aD>4)F0x0KZ-=@vD7hu#F~@i0j_t>imV{)kKX^HAqu zefB%x3{lj~-scav7wyC?6znf9`AjWL{6ay`BrSH*$5VP99xJfju%5f|EzlK+%(Rv+ zHH>3ONhlW!<+5m2s4cO=e1VV(n|{bW=S1%jyi^gqAWQQsf+gteHhbTDYL< zr0A4Fi{&~{(9Gh{SV_Kyws}pctYfn=&Z*e3WoGit(l8@gKu%lCxEIRD=GWn9!50O| z-$r3mc;r{(n5C40wo`=vh|z+=U=zqqAxYHb&X8gi zBAA#>sL8>C<^q`X5?%_vxwK8el;9t43PkcuV_dA@Gz{5`C6>kgQcSe-q8UZ|@_1e} zWs8M$mnqs8&xa5^25oh>q=E_3o)?_GB{&;+)Qvc#Sa8?W0&Kgpo;AQ_8o55*12WTI z#T2*{HGe(GjryTmP7YJXw4*U?UN#|3MPd>NC{BeDh)~yIFODgEsLK>)D$9Tm_oX{7 z)GE2qpFJ!t^c-set15tz-BNK4Feau=Xb{rmbFou@SwC#14In1hRnAL$wE_uv+-~l% z4Aok8M*23B!5K}4IZbvvrjqZ9td6xx5r6=3zDY5hS-c=;Dy}SAQA;1tv>GlZF@yA_ z3UR5Wm#ETB!D|^(?n3&nz^)W?!LR{5w1``<*I8VVsTJcQHZlP)v|MQ>pg!nr+6F`8 zQkrIBk4p+0SzV{#8oRsRq9j~9!>vF>92&utVTj|YSM+>BXSJ&o46cNZC5zV28m_n7MM+FGHu1{rOWxI{gQz& z(e`jWOAR0f`n@n)K?PmRjy-0R1w6bis|mYmx;H!fx-xcPnaL-z0%K~ga2QW<59$$8`#kmZVf$HR+_`6!gfTx#YIOg{w<3cyY;7@)Fj|`GVPLGBs^U~98=ugmz z>ENRT7HDZbK)Q=gPgV@aYXIE`e^F*?k$Znx=)WrqeXZ*c+MzFZ<|IGSfgDM2Q3hRUIS$5i`M|TD>T4sE%;eI(}>}LRj_WTfqS*_D2aYKw=}x)m(;c+ z*X+P5%ZuPE^CIbryx7r2-j-=2Cfg~Lf13U%8Yu4K8c2`1kEO#zuqp=X*P|%j-FPdE z@VBiFryd|d=nx3cXImi;E;F!rE>q}eTrzkAmvK94oEy5FQugo`Gmnt%8Bar7P<2uA zw%|TSW^BPOMD3Z&YN#^#dbURwK!_#A?K8_8eBP-0NTP|Vi}l(yaS%ojwSa|>8Came znOc)YmrW=ZM{mq@9FSxCgrc+)xRMFOKx|PuRc4`h_NZeXCwDMOq>QFD-1l1!CuK@h zwTAw5nJ|0qT4ci9{zWMd4@JdJKi)IO=t{HX!ep?GwHU16JnR@OJF063o0^y{(m(gr zp%t1thU8c()38uZk`aYk7Ct}P+XooJ4Og+dkNb*UZph9wvdCSxEw_?5k}N&7U2Y=d zw<=X8ANVKj+DtxlGs!L_`R3@gT%_&sU)tOCbmbAj8@iQDhUHu5#HC_~qho^@ULY+pe?Vh^2B#127hv-(;c+x#pPVn=TKrU+s=iS3)Jh|T!Rp^F76c>*dM zM&}EH<C|6(Q`oxMxn zoZ*D=i)X-O!1!1l$`Ne~v0^Ds^#v(T4X-${#n(joGIkeQG%MjPD%*uX`jouI$z_`A zQ`^OcRk43Gvvqi?N?7_56~>YUEEGaBl=Dw~3flZdhnaXT*TBd6%$| zPyt&aV-YOO!ulB?0A@`y=cet+2HqKarKnmWhmurLz~WS;_A}Bwl{)v-c)xopTa|mN z=j)1lYQWd4a!;ksJvH9%p0e_ma8Eg$@2udS5>Egp2f3%@3VYT)_4K=^#6MUBy2w4n zG3&g*Jtg&*+w~n|@9R6Idul!E%u?>D1D;d#E1Lc3-X-0~agvLJXtwyP241^{oqi(N ztJ*?iZ;vekL$|+C+=kuMkklmkanIGSg(<~alB;i-00{FFOlONz!p$Zv^_WjU{$(VP z?x#1$sqvz>;aHFz;Mn8A_b+0PwgF#%dh*ve`9EIq!{1Z*;q%|Eq#h_!-(N}HSEk-k zN!?SXzN3=*#1oQJu*>}0PjtQh$IH}jR8k);Q@>hCJyNEAxsrOQO#RDB>Ozs4JWl^U zR(W%G@h1OpCH2lS^}UtUy=CfcmDF3x)SD}*C%#?u@0;K5_V2MW_3M??qh;z>Dya{b zsb8w3K2)ZDwvzflnffP{)O(B6n&O$Q9F2*fpuyBxsES#Q#j7}h1}x&O zud@eM@v%sk zt3k)|$PK5NCtt(XY7Mc~fO2Rx#MHolR|5sA29}~wf}q=Gcx1<+UPtr`f)i>t3;3 z*&sezLYvR2AR4hyc-Wrv3iqkOc$B2HI!Z^vw37q8^*mPnKa`B z&@D?KSAV*!+avE=WZiz`|B!Wi5At+(^cLH&+1p{^^T7yc_xU!V+iT{s;U>nML!mJD zH9<(C1;UL)%d#`l4{P+%_%Ka{m3Upf-Vf3m8JXT6*&cXVeJidLf{?c2Iw7!5-O?a~ zd*&-~juJD_%*s6UpUA-L!Y$&g%$8Z1{qL|c-`wMlFowH2pJriHX~xkEDh8E*D>)uZ zJo!i%Mdo=FxX_-U8<{om8mB_pvTJcs9(92b#{%%lvwAqdxVWu+kszQvlT|Z~dI7Tdg4U08!SzY87=eajnuCh@y_Jj6 zmS=sH-?Q>ph0sGeD%dDIHthpSW?@x5PN~rzf|2 zAA^HC8%{t1v7^m6_qo9hP|FNy6Wk&#FH~$2Nuy!(3f(@SinaHR25Lod0+8TLC58Gy z{SV%!bMjLN1-TVY7w5z9BqyH_*zO&a+?gPx@mYP4Z^JzQe;u7<9D+axTh`?n8G>Ls zPH481gtsk0qv}(N4j8nH#Yt$8f(GW!~s&p;BtWkIg<*W9O zq5157={wtFu2=QRAex1>3~vg~wka9%T%$OTG4cg3k%q*?&s1>s=0GD#w&yUSn*0(U zRTq@(x}|wTH-pBQu}mZi382#_8}OrXIR{;hi-m-+yq$!+b$x#KhZPcKu1>{wII+a~ zdJfx^`)yOu;4?1F?W{4YrW3Wng>r}Vh~+3&5si2ykmB;ck%7xkwr#x_GJ*T$t72`q ztC8J6RAWR(0Koi9vavflXJu5qQm*pH=e>8w-! zD_@oA8U(M_erW4HBHa>wwTAwARyI<6wl8ZHx2r9oWhErVXZy0KxUH6;K~o!S@LU_l ziZ*B`v5~Go)_O-ro6wQ$u+{|uWR<1bY$VQE$P<7VyYu7Ui8d)#D}UUa8|n~uIUx z35R!2{H}o+uF?DfIG`PixEb-$aQVE=lAJ_SZTSZqaJZgEbU-A<49(5Tba%%1hUcM-SmPfzagve!?UiJxJ#bMcCl7$|dSaelVAO^nI}KN5pd z5DmND8H1@gt`-;3*+f{-(L6BiN{KelD$c-EtDc51lX>EzCuTp`VP9GqOdRN=on<9aF`psrKDgx0xYt zx=_3LD`4@fkZd?3gOj!k;_)iy%DLJjxS9uur`IRJi^GN z>CZ=|>f^wwJVljC++b5dnRaziF=cPZ3Fsa7AzE(`73$KB%J)8loAR;TMXw+4% z76p%5Ed?kB789yn2AqMft(L2$)l_Rq7W|^E(mm^}hbhL}Sr1tT7r?f56QA4>%5aq# zOGPM?2OS3nq~-!pCtO$yN{7$|Sh_7P#j$k)R4NM{8gMqb67f*UwabOIBj6P1hl5d8 zI=ZTkph6XsSJT{?7I{}OcyKLlbx|7J&B)~kbAoX?n+K@ihE<@fwm6WS3spJ$3|i1P z!c__@(el!frTTaHf`2RdFQ~%8i~lj~3!LhRq?t8&%0s6Z8QMu4G%@vB$cuwO3F~<@ zrvre^3WR15c~ovqaRNt>Qn6*Jcq|`H8*H%Z^e|%&Gw$Jhd%)1so2~Y+)fwQA?jOvF z`_q&6VAT9pWp-eHF*}gIyOMfqnfhy$)cG>?$$#$7W<37S01RmDHnU>Q^eM50|N5s-!+trhc}P`aqfb zCzaHD%hZonQtv8Lf2)$Zzf661CH2-a_17w?^JVIj-|Y77@o)Mb%ie!@f0X<@-q#2@ z3$v2k5l{5dJjy7}XG}>;vE^SgwLuKa?uu3O+A$3upMO(v$l`I%zrlIt1%nu@1nw!b{Ca(acVYY>w_!aa6kBU-#*1mG0$^ zdsZZGjt(f*D&?`P^nk0Bq}5iMD}?%2C3Pe)Sbym%zkv%KzMhL!eVx_Js!pv3jq^Rs z=EeGyUlMI)Abozbb(w_K)$Raw3vFI$Vj#AqBx)ui$01K@<7M7riF@Zvwzh&V^3Z4l zxt+p+gVU1L1YMY z9k2qbn$B$Ey{Akx0;dizO@^PLw^Zo^6vb*RewfMQY#*+gJds{vHJxA7WZDa0BXUQz z*xjU}CD21CH7eU`Z>C(OZBve3L9IEt7WrT6ul3%Lj_O1-WINrXfKYZhFeq2?$s=W>&+}`55X2 zTM289(z~2m6&CY$;1dy#Eut5kqjbH^;4PgCN9nJ{7R$q^zE>OJg|H$-BT~$>BDYztZXXN`&&+Lc91BBQMgSKo85~&%k2f)3&IC=%Ej!c`wKLcU4#rXr^p8gtZC6BfM!Nl?|Y0%;PHBk_{6&)~s8_F5E z{uqby8CjEPw~Za!I?P@CIYlF!)FjHKh>P)R2e{?cTD-(6-|k_}L)t=pZd+&Qg5W`u zWD3~qssF-m{d;}=TYdfIv(?X{GwR1dsjk@?wz2_N_y!1f`Wi6o8-VZjpuR)kb{qcM z?su5_VMRX1=PcM&fQ%5D6$4nXNLD>Vt*{?V1{(Ww1Fo(qfe+)3KZJN28q>w zf;2hYhH-+a#zG^>%&vy6R^+t-1t(yffvwha*kI2Yz9r$2HvR}oEOD4+-&0MfsK){u za5QE*LrT-hn}Scfwh4X8j~TZ6gt(PL3asic2S-F%)StSdwla&;?dFALH?;wrwb*s@ zAwj&apN2OM_YH5XNhq;uy6@+B*-x<1NDmC|>1P*6V13!R1=l!ND;+Fw`F`Kgq7*v1 zxD_@#*zM>iyW?4f**%M41~D7#sc=S^WU%)zW2ga@@1i60d&|az#n3~JMG0G72`E2Z zs0&-nN^(ebaVPfV>$adbq^eU>RzdISE_!Da$)t@K91(QI>PA~zXLCpzDlM1rv_av< zSU`+G(RC=2a@HeOxaD43kM0gpsn`#WdPGZqj)Hyx)b5@h48>(X?VtWE6sx9Zmh)iP z8NMJ`;K`9Y4PM`_7h`VZ4z?7SjNov1))}!hVIr2MW4hMcagbm(npGnV;9^?hy#jnj zPT_mU6{wFfK#d*6#Ycvx?jv@~(?@kCuvEXYW5pV-(#=f)2niA-=^o9SQt;NIl5X)> zzmO~Qzr(w-=B{0rTo8Pck>}(O%|AuSi%bs#jM5)u)DK=MV+&6rgs`$nJx`KoLe;Sjy!yjAeQz;JgcZXC(V&W|{6!aZiIGt$i3Y9twHGiv-QAltA26*;(6-LUqM z=_+@}UKu(?-ST(M715G$904zyRRDoe6yReRGr3hE^UcvUZXUBnpII?zK1ona(GZzQ zUb=2^xN-p7!6V$PB60=<-li4uZ4sZ%=s|oJ1lLk2v%;U`_Ei~TCa0g0JRRnYHoAvT zhvn^pZk6Fr!{mbCr}!40A_UHAyMP6P?x$44ixxm{fKRQ;3=F<6MEADyaye}#g-;45+usRc;ya!P9SkSFs zCVJAz&aiFv#KZQ@Xlkz6SI9EHHSD!!!HXGYjlm1s7h(@t6i36Cw{q)!N|azp2T1Z6 z@8TAbCXdsB&>>f-LS)yQ^99G0b4MA^w0U5=)2h$RHc64|O53)vNtWZQatMH*Vs`8a zr}EuqDuS<)kbI!0+k?wq+hSF|pdzA)6@sR1pWJF}XpwUDncKCZH0}z%YDS9iTX=NL39J*O`+->&96wO+B^}%6dVEk zhlDG@_8}XEA}*TZyl>!4w9I@1*0Rz!Kn28-%7R?RMa4LgZxvjrVD3|N2VM*=KNJEC zA!|&>U{OZE7^zAXh(yBG>czPs6cez9CvIV%3S3Pyje1s@@vfCi%!W&wPrDzw2=1@a zZ0++QmU08VuwCc;79-+c_Uv4%G-uxNl;h61S#)h_w;`V^+U0t#!Hcalo_?MuF4qa7 zS2)0KXG3dS3SWj&dwbbblu}N?5nrQ~#>~&Q3Cd>zmKZB8KW!6?6nEX`XhCB^+Vy4y z*{~QkBE1+i#bi_cL->0wB%5y-i|h%Bl<>559=4^gxNe3HzAk*T;cWjT*>D0r0EU zA|DKV1rnicby@v#7=jww;ZIYvS|hueS|p2bS(=j{fXtelnOUuvsmo}Lqge_<02f*s za?`Z5x(o>8&>R<6WHN&RU4%?qrHj-n2Bn={qmueH%(^M@#P$Q#K&7&-^js@M2 z0@!EHHUlGrUHaT$Wr}dYQL7b2pb!(Sg8Y=hfC!5M22%!u@zugW@ZBT$BKsVCfvNM? zb5oXzQ#G@oDH~}9yP!0`Lm(-paWQiOG#QGkS9U?#ZbPheJ{qF3I*F?wb;?1Z1eLr( z8RUoGWu7eAg`wwRrdd)Gndij`B*a$Rg$%QLtepHWc@b=->bUqsQe4vxDWa zZ$|lJ&g}bt!{lRUMI$aSdS1&5Cj&q!KhT zmKB!`OG3}U;=xLSf5N^Ic3dvBeR%SY#rGR za;b<@qpoO|HLC;|$iHEku~c1VxihP;&9=XRwUW3u0_R4l_EtbMo^;9`hFe>Qi4!+f zOCZqM#eQFMcJ0yRoBvySP0y8k3meh`%oDO}w+B0&4;|srUNAwLeP*8J}dqLf$!!GcUDcN)th?j4uR(txBIgubM&ITBJJ(%EIPoYGC`bEnSb z8)`=};yDM&%xlHlkZ%}Xkuf}*o1R1YC?h1D?L66O1PSJjXS0#iGRwDzAXvBgC^-wA z5!ZZ;*_*T4reL@075jEu)0KWBBPlGiG`tpy8cdwS zC1{DLS>{a8`8huF6h(4zH+*^W?a&)GoWsYW1NnxvC!0AF)h_AI!~V>KDE+MA_we$g zw8tHyciW%?6mN0wxIBHM#G;aC@+ift8>N#v=JIKvrNw7kKBH(USluY~9!O~rC^=r` zK+30$<1Ids@)V=3p z=W|E+A?P{;=jfu-)<<78!DC!L{uGZ}-Bz^{ktjD3jjQ;AbH%eY*BV<#%SD-xiNu}m z`8ST*AdhUJJ7v1_GwOxfq&Q>J%vz~wMqOIZ5JkvQsOfYBrkD3DwxC#v2hQ%cLo>qU zOGE5sV5`}rwD~<|^9yC|d>Y{va$E`LZrZv!R4$y8ftwV{ZH*jm60{1Ea5Hdc*_@;1 zmKD6avTrSEC_)P@@rQtT2TE8O!LL=7AzH=_WGCP%{|N^aS}BYV4RLQtqY- z?VAsnQjt~`r+8LvYD6Qpw4G&p2a8r}6mZ8offUWaZhvXOpLWwNUySi%VEx9q-yX&e z{W!?6zNmWIIS}5eu8;0!rpQ_Droqq}1h!W;s@+vKwLnk4({Oah1SLz|pqMMf>&c7Jzw6UI4bJSO}CG9x>Qk*Du9UTWph0Wbr zWSw*JyCV;%K9piBmnj9xdy;AB7z6X8n9}RcpHZ3xZLsuyz482d0n z^GPetEiyydkhi;ebEw{d&c)`V*qaCzXJgIy-r8gfmD z`6xGj)qYEx9Bm?bs}{Q37+bvL=gxFpgKJ8D(du!%kQ-s2>kjRn4~uTjhdqsSbB)@{ zfgS=;@?K|sB>1GikD@1M@_S_M_V5j-S@W{>X6*Fc(`a9B(h4%j3A%xf6MSGi*pfG& z%=`tGj`);Nn@mjwao_UJC^-v6(SkQJ%J{y2E0NU;-rICI;HV?#P^-1ckh9Xx{Iw!= zJjI)^UE~#)8_b_LTZ;)Ki}-Up7^+7{0dZ8H%op3n6ejJRjZ%KmrEO#+aE`xXIY{}ur9 zI>r?LA`6asz(KFHrIXs{;&y$%9{F|amutBL6g;H_)K=F=;Jye@wmQcezfZ7PqVfIj zX#A@k)}6S+zM{k9ohkuJH4qp`rCJA08eW2PIhu8Q%U^rC6%0mPS2&EuS+ZJ_`byRq=C;4^v31L`gwvm zB9UM3bQE>D`2mN_Y;(RT*xDs-a9sNYBD2xZz##1#EbM*g*9$U_X4Q_?ieiuww1WrZ zzK8jX+0t=ugw<0gXj-YM%20rwH3&k#_|yt8jX-bGDoisC1Yi6Fx)7j!nIJF|^4cL$w;-N;Nu zB8g5AnKO15B%6bO$sPNTz$m1ZPjg{DbPE^iq%@RsU)px)Vs=gs6lm3%u_fjFVN+qJ zMZ-LSORt6{n3|0>#Qbk5Axu@aH;ihZh`=Acr3?g|7Avt??Ly?;zhC6_zXKQk zRx4?N&~C(QE{-QwhLIx{*lrSeXq%o%Y{W`Cx6_cQ=WZGWDChO2U?xv@VuYGXsPpxB zX))7KIqV}ye=Z-9o6?<2h(R>RkVF|LCj5xHVS49O{v>~fcH-cy=Oan_r^Khan8(<4 zl`=DV%83S%;$_EdW55V}wrG?BV>TUhJ9;uSwz5?UlMG}0BpCtKdzoMUcE7jKD9F48a@B&UYx224%#JyZ&=7eSl zr5MV<_3gMrnqcO1vN2E|6JN-uSX82~$Ic0o1ES>ktxDo#M5CWhL%^`9>FKP2PvxTB z?Gb9P<>Na$L#mt++(tn|`S`X89_z}kfn$@$jAK(hD#=}eV?CL>2N!oVtG`*y&Mr11 zfqz5eO|@vA0GLcox!Q3NfU))jY7MuW;v~(RIw;Hk3stcX$N$PjUmHZCtJEA{5Po<$ zM??U)>&=I5uN>-xR!wA`A+)4&RD{+)M{AaO{NYJm>WFL-RE{QUxUW4QCx7V^yw@F>l;`m%IG7rycGnEHQMCpXj>| z_2l)A9=@9}mnw4TwkY||bK^BItN132zrAcFWDd`Kf4n2T*Db6hKA~w2O^`g_+dMA_ zwgkdCqaUOZ>%;zf$X^fo>jVCJpT8gxuyoY5fk@f6dV*F6VJS0KVaaIw* zwhDS!#`Z>sxhJkDG50o$s2H8AL{SIq*R=XdXp9T1yT{jhCnboRa;~M1A}eaPphI_5 zYJMQn2v8)=-(%Mcg2&~S6rla}QGb2JUmy0@L;lJ%vgLn3*Snj@t_y;Dbq`FB`|B}( zJ?gJVbOok|brnn>(#?8ctLqf7)phvA!N+u^z(3ISfbBjM->rKO3EE%4c@I72#fj)7 z;Cx>+7|#3ICWFq{?_fCJ7ezL@cTvKMaArxHLh?X{TM0D=3%YBYN!uGs|DKBW#hnK4 z*r~)8@k=Asnqv(OJr;)DYF7-D&Cy;G-124=1UWeVKla`QysF~d<6b)nAt77>qN1Sg zL{wCi+!Memn>)%)0k5swkZdH98@V7DsWu7Tv3jBNGAIM%^bY*2(Qz7$3) zErXdK=M3b|cDgj8hT$<|FqbORL#xL!8-|C6%}!@NPih11uW<=_jl#tL2#k&!6ucRL z5F;~Y&IzSXVh~B+W5O^LBSi)ylET=Ack;Y}`Fe=_;m(tRxxAC-n^cKvU_bM1d-iaq zxm*{1#&7Xgk{vb>i7uO*8D_?6Qo~=&Y4$|-0XKq@`Q}8o(pX_{f+;N0fhn9Rs#1cuFrL#MjG!6fPC0b-(?9*-4rkkvHIR}uF!J`} zW~qnbH4q^Lhrxa0uyEL*|7g$h4xmi)NiC3SEwq-KqKszyzw{eH8KM9Ur?g<`1GgbF zDaf`K1LbTi_ylg`)tgK$V8@b*bruCJ)f7rwFg1{mJhSokpL_aXFWDX$Rh_Gq2&$mR zGe(-MHMim`x@?)r@hD;_sQcE8p=Af2hQQ>RTe7D`FBsi1gLOm#{j zh1?Ghwhfs`liV0#?RC|jBie)X@SsH1k%%Fr&%uZoVnp;aK_ZZ((^++>)9ht-8jGp| zo3#SNFhV!gL21cCb3qa@hexGl$WO~aMMp6<`h-aza#2$zB0D4P8dS`T3`%}5GBYwl zBYD-l%*ZH`iycN(NI!cxKPQ(gQwMpisE+^(-J@x2%%|VR&_`^y#g45_nr<3H(fBPB$h5T6RgZ-_f2#D5jB+ z_|z75+Nl>Wx5i}{)PqlB5E8rnl)07GsJ4bSXORV0o2OJxw5Iv@N2lH>Srp&9tjX%B z_3^g<{HAYimr0oH&rh5DAew8hr94SZe>i1 ztT!pB-DbJuGFP^$D)x`~D>!sGS`RSR>U4}X-43Msp)o1EV1~-2ui?0g>Vj%uO18>A z{e?fAlL*5RQn@m1TksB+DsNnkFIoUwIT@0v{V`9Y6$Tq1D0~V^B168AV1(G)>oE!9 znh?q5YJ5F$y}pd8)|hSG7KXj!LsB0;y=u&hG8?wOrQH7@1LkEuZ=Oh5 zl{K=?yc*G_%)42e@YfHB!5A~aM!ZQEQpHaylQ==V?6Aq79@^J${$Zj#R(5IWZEvOF zhP@Pno@@;LnMyn1o80h6N;L7T)O+}%kvFlW^%i9Y24;9-oYelC9N~%1!>)Njad6Df zj||&egy=r(!Af)C3}?eGWVwx@4CP)9Do8A{axV-WZ#_LLd){+t1yA#?%1!UkR>c17 z64Yizb`0vXw3NjkIIq3oZ9jDKYgmNZzwciGZLD%sSerWv24E6Yf_SzWwp zL?j{C45x;3dFL~%GD#)V+oWbwu~JR;wjkA{A^D&<9&l^5jk?Zp!k+!%Fz;%<9#5&K zp_2uRL?k@QruA?{~_52v&2*^h8dlh}U|iTDfi|M4-XF?UO6&%_|&_C1P@bK)^qX{&8ScP66 zMpCGF8Y!8D`r~OJ@**RrqoTTDH8xr}q1d9WvEYLAv%fU>)V@OSODa=%Q>rbq=RKGu=hv=g}@sy8d_(1lXd5BRV z6tP*BeHAC+25QlmzQxu7yMJK4J{PZ2A?4|m-A|eJbmMJFx))i)T40aFc;R$sb3*9D zqr9uFaI^QL58*xC5PoG!=$e$z+e+o9CmTYk21?Y=Q9sCs3Et<_E2VO!7GqmFbV{fh zw?8857!=hY(WAS} zuAvz*8Hyk67s>i-roE_1+kn(EV~<({LH{8-Cq+%E{UAY$xvlY z$ZSjW9X5pY_JxcwZ$or>5(9ejQ5L+q(_woocte5!<(5_oa#S_-b`=)csZ-L0QDvfX z`>`#>Ib`!+{c&WX?a0^`dsDMeZ-uP|FKmtth+j(f6y3kX~(Y zOM1lQhuYeRxhe}PLrtN&3}!Zrgoz@NI*n~Ono=13*M%Zs&Eq1$zN3iQf1^>XM*%d$ zQ)M6TOl_(VUk$-Y6*B}^PD(?SHe3j7xQ5A0ip+xB3iEB|6I=5$6?t6Uv&BAd=R=2vHm$} zsW`Iqqdp0rr+FcBGKy19d;^A(qj%tVW7LynYMwe4opPdi<{fDEDO&l#Z9G8e%7X z6{$4Dq??EhBq(o$t71pLYIVV`=Bl@3zy0a-yY~`%`UqLre${^|Eq3lZ`2U z&qZPDqv!G);a0OPfFv=~5zT|OUFA0I9`r~WY6dll>cNXAQ{%3gtrX%Amsz8O*A8vf z4UkjKkx&y=juqvkPcDb2c82D%)(216>l#4vQZ=s7$w4MWS?t4NHRnp+?%9h%10}3V zz37sgibS+wHNa}46+;x3HW*rzBOFH?YO)_LdYK&*ykZa8a8I6N_iy3g)@u@jY0^ef;!iv?qU0c;}#; zc!#ZE-W7O6O2T8`f|y%}Q{)9{%we-4U1oLPR`Jxxx{WH7I<9({)=0*9Lrk)fR2&kb z=^-67VWiD9tEyT&VH!0;bGj0bqp@b4IoqCdL6Q!*bVwvyOXZOP)KWuvBTKwxELZ5= zb$uxlfmHRP^-AOkULBR4B@~TmS=2|HvEE^cp-hGvfHXU~-*=eiH=;c%_w6TBxd+h5 zsfmuKWL=^HbDODuG)-Je%hwXsR{7V{T55Qy8G2$j%IqAJ>*!Kl6C`S^J{@PMA}wD+ zaq63O>a0rIrAUVo^*dm$l* zBHzi)UXp7jGOU%cuTsjeT*ZqEl|H%wQzH#)_7#zra8!`-=q-ZqSUjv3J5 zp4zR$9ZeZZbhu_q*d&cF!zx6So{_d#VUz9K^jMw@u^=4mqr5GVh@@|iDPm7IKaWVn z9(nZI38dT)LKG5GE;vg;QXtYU28SYvo&0ooEXS*5Lum-Jkgt@`du5hfH6}1GfN-%V z3MSF92S+bBg=73s>bvh3O)*Kp1n=P2vi;GJIfStNOF>!MHyL`m`DN)#DSSgTl3`{A zraXoBDN#E|lP>JqH7iM;ic@m(?jy(GM`YF=?@UbE@{E4pT7Qn0fBDaCu# z%gu*T{w8_U4PK+N>dWliOm)IuQ)I{ODa*C>){6``+cqMjn1@7mzo(%=gy}<;KO@S@ zy293LyBMm5Mq6d*wMkVCUJXUl!8S14n#y-IA{)$eZc60-P;E{qWm06FwMdJs zwS;Dpln$1{n^@~3)(nqAa91yjjHuRIX)m(Ta5Cn%Vpv$WqbE4~B{@?NlsbttQPX@# zEtTGJDkZ&Tk++XyiZ9ya0)4+ZDs0QLuQ45#jRVJerJ5QG1{`60r!>=pv$c5=b&P^f zIhP;bAHvjJ2fiJCrqWrFm%JP@RR4&+`C=ufm5E&r%k?CpT5w%yl}NTAAz6g*62XyJ z3dQb<2{<^lXp>s3vJ9I9U&bbzNXm-HHH}J6Nsrv-XNl%cl#;B%MA`I@Xq$2!$w9L%c~ zGUqb#=Hmo%p!NH#>onpZsds!a*?IeKEQtjN3`}95sH6lhKW&Ut%<__QD@+%vNqi#y zPxhN?M=AkA=VpUO+@O~;q4x3A?;Zy!!$ zv4^qOBwB68UdlJ7co=+fF6{SJOyKOz08IGGNHw$an5v>-FINa&Z5uxA#tF85vP@2c zgb!*5r%EVM5if@}T3*dX0O}*`@lz_grsxzaozx-kOaU^PNeiHxW7QDk^s_C8TfmGT zt=l0q&lEEH6ZN^Av9e{}G%Kd_O{McqH43S8ri4v-?C6Y^weLF7@pvs;~$-akrunNf4h!R|s!3DmssKO|a%@u&aDNlmSh z(*kb!quMr&%W$~Iaaij*y!VHsk3D|~eDs*QY#d4pj+Eye=B){49PV=**1Hbz-AVC# zcL(C}(djrm>pHYM4jWyER>z_1bw|`IuP4LU;W|9xI6UY&-0C>2b{*b$Eh%c(Ye5*# zq;l(h=yUX5ukub>!%hme`RJ)GBGE${!%yAk!}mg{rVyjb*h0!mW|_JF_t~$R_FHYf zwiK#I;KB(0%De2cmtnx8xxDU?R%O@t)0`OYc0CU3Fyf_q(92u#(wW+EErezL$Ya)n zy-sEf9f;IB=uU@}JlN}GSYSf7y$kuEIy7X@K47P#wDL6ArszHHWb)=jCgX6IU12QO*rJy(%P0Q;~+K=(QXjGc1P02gd`kV9fz*pIbpx@yQES(T!%*-hX-AUTOEhh zuEQI@O^Vv}TPKXi9f!@X!(EQU8rR{iT}e^9cR8Y-b{w`O98U3qggW4~hqSoIk+C)* z1Bds1lMHpwZ=6t{cO1654)-|@>s^QVualzo{@M}M={P*=Iu{Iju*P+Gt1~HTcc&xjX~$uU>u`_bu-0{W@8zVZJ!W5l-?2XL zIBazt?sFXMP6YXwqyeD$Hs(i3I7WA*Q2eE&E_+{cqSfg*JnK5NI}RINhgQd-YlkE1 zl^w}2cDN3YI1UfG4!1fEt6hgTUQCMG^`aBT4MaG&F_-gSs?Pm0>R-4WI4 zI6Uh*v^x$PU58f3q08*#QE4mrNJ*wL_R8}~)pjK0;qZv#@Sy9!rlQ2q)9xkmYseeF zOgilPr4!4?9f!@X!>!H&@oKZi7>N3ZBkCWnD92&5>u{Iju*P+G>)oWN-S0Z0o^~9z zxDNL?4r^V9_x2`5?b+*ydfsu^>N?!#IIMRa;_oCy?S01))#*4q>pHYM4jWyER>z_1 z?~bTf{+r4)BNCDBzgcM)qDsS_Vdbl4^E& zu~5Q?-B_@SJlaoln@#5L2CW80bYl!uc5!aHzKRv;FmCG-9GrkiaP&7E$huKGO)&3} zxy|t2*zXGCy4^gzZ|)FK2m>7d8HQu0;dnE_F~s38U*?kJotjBuzHVkz#>Y-}aY(~A z&C|Ao|KX1R0fysk!|`Z><0ywC%WxohlOMvvGT%2oHu)j6q$`!yCHx=j_#bHe-)K1O zO$mzS@eaqJAcXgo;)Ha)Lb%QNc%SI8jei~4la{IiY*I6gAmsFA$&t-hw-61FBFGu z=IO?S|1%u_!wkoE!@+e1R&L~{ZgD#-2;xmmt4XGJWbQOx-sDmQ1@WqR+L;jWlq+Dk zVR_TAY)i2G!eu!;2*X^)Kp0ObjJJ)KNBuC~H&6DW1ZCxRSHKZQKudp99ui@^*6eLMUB{UnOVS304afV2gVO<)gRfR5IdTH|EC(r- zj>l-x0SlI1jMI(g!TeD+tZ_Z(8jhX*uHD;cwzc76tuZ4Mb1pf6=Jpsa8ONlxHs`{5 zTgs}TrgVnl0uD{;x?h)}?a+348ktZ=tX6Fhmi;%J%wqjv$n9PJ$=L=Lsil!bx8X624~2*KrA+<9wcD6E?>teO*t+`GKvJw__4a$M{U6 z5;mif-X2bR+hlgij7)Hi^tp~s*c_eo_j=ObPUG*W1lLhM*NBA8h@`(eQW9$3$O+f1 z@R13wBYmzT5;jL9{XLQN_o(rAc!KM2pKEx+W_Z%yJ4t_U8h?i+xDNBVh9zuT_i$Y_gO7UQGJiX8a9Fa1HUf1}AI=C;eTY{7CZq#^0a>*C3y3 zV8VtAIJ79QBKC07-zLt&aNj|KE6eBF_Z9;Dy`J>9)A-x>vxFH5N!;oZgm(u6EWeoD z*iYfvJNIR!gAuaX=Rk?{e8B&13w2?G*&Lg~z>vjMUZ9vp!o21;6o+>7n!kHw%>|M^db4_C0$-w%pzYrp=ELuf&|AiofR~Sz_4qIG@dmM+guETqOPKw&| zXGhfYj>A^h;XcPICQ<~hkDetE9hC&^3y zFob4@cRBvoB>bo0L9TB(Z<%%{-ZG8Ew|W(>ILe+%SyTJXEBx%1l&q|>KHVr>EGg2B z1pMKCvf%&lq3nRVGsSFP>|L(j?49Nnv%ehnf$T3gvyx(27I8euJn2FRUchH2#b?Jk zAY?q|4rstHjPU1XHRR|RRC*+3COdFAa}`N#x=&mbN+CEcJCM)E(y^6jp#5jRHQRdHZ@2af|u601H%0kybYXBWt#(4>{&<; zXL2-v)7Pk}a{_#ld4flz?2#<{I!EejpNxJo-bw-!Ym*oz)+W6scqRLmWdi5_h@muxrds_n zSzp&Amco9N#-Zo`yF^k1NFuudReMuR?J=dDs-PPTQYVp+T$?mcCCH{CV?hdxNkG2< zmzYANl5BRYk#@A?I!A2E0;P|AJ2@Pqqgp1b2zw*345!1Es3jz~u3#{Gap;+H7%zso zmz8T~BRWMkR%LRzsY^jwJcP_pt6&-c8v(UP&vC-hR&u_kZlWy~D!Cb0n$kjjHrv&L zoYv@*n3kB+GC{kB9O+H^rK`SbKaZEV8^q_fWo7z){Bc^+ONci`io&HAu0b-=h;-B4 z4Kpk2JN@i|dG=fRA32P?e{BjkBdZ0*WQ0$O>wu0jHtdm&CgDdcPva}`2sXzeBYWbZ z>=+-pqw1%tJsY7`Co6lZK0%~gJS0P7WKSb*C4dSxvL$y?@FnNLax8=!%0|(zX;*X*Mhn^#Qt|c}mR&tRVC=uDN zAg2*OQb}y)jc0`W%@AwVkrIib#{2znD2F3kuxfut>ZFJl)>r+sPu239@AIL)IUC7< zsL^O;gew88PVgsWTKyET;*tzh%sE6qM~UQX=f7rLbFC7}J{Y0do4M_f#+PfS-Iz$A z&y*Vx_@an%_C3x zj1zgLgVtg;8Bfzm0`q^=&;ecwd%Luam9nM&M!Bsr_I%Tt0gCyCP$>AC2OA)H z3y4N!qe`-OG^I_ivW%I`DGmf^dhO&1EuQj(d5ZD`?d*PLENP()bC4&hT{cg&OVH$q z8V{0$ZYPlwS(JIZ*NzQaXpf|ViTd(S4*ZO^koy5aD=$q~$&mnJw(b$R3e( zyT50hwwT3qmeo1WMrWoa@v*9D+6hW1Sd7&g`tj+QM89p%Zh{fR69rAe#0H1*~;t`Ti?8_4^pUbsKP-K z?qJG(GBvk9#lu|g#!UnL?deFqo+>$9q;EEFM~+$%8M545$*NPL@gd7|&?+ZY$sYV8 zgj8Lr&#ee4+$xS=&bSWb3`QDbLoP2xeTL6!rc`z{q_P~5{#Qg+E{9LcNe&+uDsg~M zjoJSBPEGZGP-ZWiJ0RouR5tjhL{e7J3@dZFGbT+7K}?8MzqXjBh}1~eq8kB6{`9NR zM30fbNnZ>u!b^)h!vb%5B=d@JdiG!{uDW>=F8hlq`uME9ASq1a6?yvIP^9afP~^4r z$j{#mWrw`1?Ig`LA>HoW!8HTwo;fE^cxe&u!y~E5nB3`05k@9C!&PU>PtL)T^DQ^6 zRF?Fk`ADS@aLHdNGJGbU>9S3kAd_iT&Nhci@TcgR!3-tGQ_|Z64X5YAXCj?)wGBM` zDU#vTRC_f=zwD<|r+WS`i;-Cxx-#Vt_a{d0?zJ)M>KFOCjS;mX{)=Qq-usK7B42D9 zJ;k#hzNvM{QJLp>FLMP9Gk;(;PKDc4N-n;zaltUfxSuqmz&sQpZvA{c$SqESe$$q8 z)yhsM{AUy4t2rB;9uAFWutEhDW4pt+F~Qg$M&?OkXmuF6o(W=-Nnd$)YW4|7XXSY* zlOo&hPUU_!l9zK^ddNP5Rz)0<-Oq%wZwnc_iCMCt?TkF=czx9M%7gU^M`R~nS;Unc zUa^ta^^Vs~u2&wcS2!Z8ZK$%tD>m}F#__t&^~!_w3P)tm&rPVZ!z(uO+Vz!WTyJ!} z@?gEf5!r@U;wn45Vx#nX<(Xtj*pW!T#PLki9n#(0z$@n+Txd=jemFD5V=Sqs(Bx}A z3~~2IKNgd5dhMoAR|d)a_uDDdk)tR%kuTjLGN&seM6w#%SU(w9(*pi6X&pD@DP0+< zUgTSA6GDDw$iZD1bb8wjeY|A9V@PD9+uF7S_qPq%>2+n$`K`WF_G85UpdnMbGWvUw z?-=?7S-)t=eq9+ET$*F(t)A@H-zA@|gh~Q`I!{vfT24~ zL~s15Shka1hmiv2!8)w_nH+ZFFr3@E%!74!=m|MwbY&dw9ZyHZ;j)gcvRS*w2vo^P zp>4D!=9&*ZN=Q~$rq`7j>dH*%%1rIbOzX<**Oi&xmD#^5Govdrvnz8zS0+3IyD|rL zWe)Dj9MYAU-IY1CD|1*^=3!l#!@DxM$YFHix>7YNLjCz@1?t-SmXtbapFB)xJTHX+=jMg_bL}NAe)#Vkj zSr_M*O>M5JS#^O4V@h3ZQ>?aW#k8VXxX)b>9baBuT~|@wRM#+TL4I@^KX3N6p0|*& z(ym50zxSaTBCv?+c>}>9Fc=I0*?^IZx4%$uHZpf2XVP_g^1Qu7gr>|p3=9W{gCoF^ zU<5b{91Z-qB(`s^!h)r-v6cg=4i< zHOLOvREb!@V|mTk@bc!W#&B(2V^c$OWjMAn)=*K^RIa2BH&<7e*HqM5$zrN%tWrou zWK})P;aE9}*Pv6KjQ~M4ogSVlk>$-zv2ayGGdkJ0R@H_ZV)YHNrLo$|SOXEqVntnb zb3MVuP=}a?V~vfma79&hb&x_ts5!i(`SPmrrf{tk3fGr6@X*|FdU)E(idcP9j09_} zA`R*)D#~LN=5R%GeN|;SQi)b=xW1vTs*+MqDk`N2w4%AXzFhGR*DYC6RZ&$Qu8cLt z8su72S1mQll|WS_2i4Q0Yje%%-oX|*&*c4Ms-*nZQBg-?jsnMkW5IDC401p&I3Dy~ z;8g4nwyfuU@?cL&6xVp6Pw>QOtp=tfz!b_kO%TX0Vo7TAfeSqZX5GIR(Y9?o+>XZ(M7+5 zEI0WdZJhj^^+!!rlh{E7TWWh#nG+`XPq8tL zRiBMTsqQC-PpUnMcBvv3t8AnJTv=5^L(PjjgN#22JoUp;2;L6@9oS}i(<(hC~O z>+53;Jqn_F7Ru1Y2kSi%#e(RJ+4CkxW=ErQqxtzIQ_AaU++uU;n(1mt8w$4Vo(c+l zr%LNaiZv{ukN>|&lps>2=f@hFsw&E>HIgW=s*N@Dtd9jY8TR8Lh>!Bt7h>~vT1|b^ zDs>}P@&WQG2x0upx`wLH%F{tB)vK3-46bBBQ+dU*SY<-@10=w{{NBh*@+THgwZ;@{ zM65CS07?XftIQTgoBCzJ(5RPz34=O!RMYFYudI8)b!D4&ubce59wVm(y~qzD(d)3y z&o(!dXtxl022hX)!8G&JrWKBk=Jlw1Eo{a__#8kzx554x=L-Zoc z_7(eWem{OB=boczR#a2E`ixbt1KcS}3R21pVlVEkz#K}Z61ZA5N1FnraW6@1l}R*z zZvK9R02O(vgg1J5csawTOU?!}y$F|TP4!e|&MGLbw#HHqj-V|lT~N^wi`C9j(^$@Q zVFit&?^a@+63@l67#@GJZRh^Vd;Y$vmCmYdq|vITOCh@XJ&Lpve)@_7PDLz7kj)1U zrH?vbhnamRV|QH(`quTJH7WQ+G%5T9G$}kNO}h2c1$lnnEvRCORXwx3wz8VWxT?3d z$;rq>;vBrNgVOClWvl2DNTnk0EN`hdaliT`;0$-C) zDq%|gLkV*z$r9-BNhC|{eiNqetSXwevZ~28jb%LwKyNi_-xB8v_=q}`*y?TT_4tpZ zMRySiJ<1q#R8>S-b775#zp?U~Srr73pI^ZmUbLy9ysD{jRs}t8w>3H}oMB9{D`au= zl0%o!+qzocS;C^)Tqe5Xr&cjtYh;0FT2l&F#`;qu) zyf8-Rrs;di%ZFe(FMg-|_+t`&j4*Qm|WJm!G$wn$^;V$y(@M z(zE^XrvrUtVGplKE-P|gy%v=v)C<`qBlCVE1^Sa%)fvQFijng)kp}Z7V}f~_EP#2M zZi9IG6cu7oPc6SY#5kuwKsE|>?TgMwGc3Unb@1kMK+fC3ZRg`x=YlSnXs2773w z!@fr{>ry?6tH1u$N2zlBCCWviwY24;F)=+qfI>Z11bb)^EI-+n;{c+%m;B=MVp<-Y z8mp*l&>OKHeXo{y`6aYJfajp{?RQexLk2BFmFh^OwsHZQ(7jgmJ*6Px-B+aPZG*L* z1zHesx|@Ry$9rw<8gLs}3)X=aa2>c6+yU+aU-e#VyBWytT5vry{B5|k-3`75kkR&K z@NMuN@DOMZ66H|xrDSql0}axlEmO-mplos17B}ZvMRRM+v%g`sGvf zQt(iMP521{++TSsuJFY(F0&!^Ibl77(v^_fO=zIcp=5Q@)X8-#4<+{2!$%3KkU{LB zgk<HO`AwGZtmZYsr${vQ^F3zVFxEM#C%w z2LbnyZ^1}pKVkQ_x4>_f57u{LpuC@8%o5>8=);PqH}Jy!Q1agQ;k|Yz4c?u%02;qL zX(;df61WL`5!?t`!42RGU^Sp&ypzWB&T9{ls=aoa#WTvAS)uIF!R@aX@_qP&D-4aZ zTm&v3A=!#%9%|h*9)j-D_DsQ3exbHnBzxK*dG=S@OB-TKs#zWRNl<#8ufZW?Ny1N}NW1ZHqH!=uP^9q*1wyYlE~u((S~{;`W~}P+rJA{7 zm&ZFP))IIv*VOw`Z6tFwLTRsjIA_te0S5+ z{;HGpz_cQ0w(<+uchj_LntflbX{83jedtnOM?SW$Cy^7Hb%@%b3}-uMEH z0&jdFMxi&p2&2dwUyM=gjW59{@y3^8lzNld`?kzGFIMTz(EA|oq8QuUuEe@I=FQ=? z4=;6B-)Y*?xzAK`jhsb^><9Oo_BsHjB=$s-r@B^BT%)FNaHcO2M?@1YQ>~>WbMsNRkqCUfrtlYB}V4Q&`kx zk(V7Eq&^84BpU&jSH}_&Cd-;)G2R)-(UfsAOr%buzts3KU;5L%WIh3r&#F6bUQOEfD!u2cw)rc9WX#=AR8AkeRQh zmvDlb=BJ9y8r4BR&#WqbC9{ccBVy`Xp*O3xlC^kwm|54PObaq-UPHywDnhX3(LQxc zdRu&E)K#Fu9Uv{hzC*MsYPEiP|g>8WyivlZH4Q?Pa$SspOe#h3m zI29zbK3TDX${3WsAjtggO_0qx!{p~)G9Qh0LDq>SpcM_Dwh3=5oZ(O8p*#fH=+Fh! zPGx4dyv+BjtRH8a_5NRKZK3Cv8Iv;-W-3V{y9>RA^zC!18k<&;*R)#;mqJ%VsLmGz zxgn1xNBv+D{{2+9iEFdCtf)s82kn6$;Y3}w9ZfQi_sIccF_T@6t14qxI{9ntDeDOE zQy$Sim9#TlL0T&UJ{_c(5s*mp{A3mKgEiGC$Oq%!bec8~438;GrUH5kOoj0q1A3wI zYExJe^;m%_?}9uGl%SnwM}%L;Z2RR(Qbtnj>|Zj(*07+>3F@q=h~4wGKn2aIeRTOj z9_I&n9OO$+arri@^KJ7@V@IdjSXGT8YPU7YlxZ`&)Y|z@#rA2uF$ye4fn{MlYkXOj zLd(LaR+bE6WfWVMV!y*EGnOTmrNpw7T9#7FQfgVsEK8XcU1miy^tCIpth#Ci)~w8G z^;IjeTDg@S3lwIxR;#$Iz^=U=XysNbx^3W2pjBM0?tTTZVyhM1wd(;Zw`;!+?g1OX zz2LvVH^4^l-{70zKClUV3)~ML01pCId)KnsyS5#$;=A^{;CtXiL^o8riVN*fC+Z7i^~vCz`Sf=e3S;%io>iEkV6H7nFw!6v?DrJDG*5#KiA+eUobh;JM5Z6m&I#J7$3wh`Yp z;@d`i+lX%)@ogi%iPdf5YgV|4V;ga7BaUsvv5h#k5yv*-*hU=Nh+`XZY$J|sk8_qr zhXn`eoz6M@$>+t@XUZl{^hSPKRs}V((;q_>8OlBzy4YBlzomvWe+vz1{*E`K`Rmnu zlCO+u7Keh=O__FJtZkuYld)4e%!TGx#eQ%6SkW51b9Y2_6D}0q=l+`#6I06i0!P z;COHXI0>8#P6HQ#OTdfZ_uzGq${B(Q;0$mkmM@stW*^sLUJthTcntGN@HF^2 z_yu?lyarweAAmRraquh^oZ;h4%&A}omFAxUVGg_zJii)P0jQ0Zrg@;OpQX@HY4xNZDkOjwxjMI3DvPFxE#4 z=CxomcoMt{{s!VcPW%?_5SRfLfEI8)co=kmKlnKLe$OibQ+&+EoCB@`p92s1_#WnF z@CbMmJO&;IKlSk!%(uY1;2+@i2WV5l9`ILi?7u9$4>^+x!eAWudYt%!e}_T_ucm}N zVMS`l`z#0z2+^K}ynY}Z3}EKZ4PNLf%Q>fx#i~K`?zt$eRy5?pH_w zWnenE23!Xo0zU#C-*-#_CxId`4NM1(K3XuZ0}q1^@N@7i_$7EAj2#y8O2L^vUcvk` z@D4+NFcF*q&ID7z3@{U%1LlAWd@RPS082nMs0U4;csTliOMN_q`2=V`Jmh^JJPJC% zF7R8BcSOjW1Rem7fMbpfd8dN0BS<%pcN8)~DJTOI!I@x^kI9%*zzd)g{2IIpcKZk& z9r6Z%LNFdo1ZRR7KF-Cw1l$C^0>+IBc_p9>oCR(N_knMLAAtO0a0e57oPqf%a2A*b zX85=X^A>O$_%gTy+y&k_Hst*SynRK;+Y9oRArH)}vp5&C72FDL2fKZ|jrlk5wJjm< z>mc?*$g2W1paEP3t^;2HUjp}oZ-dFdA|HYGYr+8&K{aUhu^LnOD!2#S3)+GAD&-ht zfDvFM$N|TL(cnaI3ds9Ca>1V0Lf%_o`|z z2DXAH!7qL6z!d)Mt7M8KUu?R6aV%ZC-@gImCD z;C1jeIF^H+VK4*C2anG|&Rox1vk^Y<6u69b_G;ig=y~7h#QZ06KcG3H?K=wOf%CvZ zummgx%Rq=W@iOo#_@m4o<<+YXdGEDSo^A|zFRj76nKA{uheF=5-=)n1=YdLaIj9H! z`d-LOd)wl9OyQQlS$rAuZs7f$b`WHPiC_|#3Fd=y!DS!@Je56g8Yl*(;A-%Ba0l1` zo&nE;7s0FGZLrtJ`L*NIX1N;nZ2QLG9bMN1A?Ve1HZN|@L@z)!$q;Bn9aehPZi<) zdx+;#m`{UkAP6I$yE>XG>zbQ_2qRZ<_K>YO>$e(OarrrT2Dowg1FECg@_yyWEZv9S=GPYZcYmI- z;i=(pIPb!|mEIWL*Ko3xX8#W5W%|&eL-oLHTE9&F$P*_x4Qd%}XGI`3>Y12>3yYSS!3rXqI@>ZUjw=ztESJf`@X3d@M)w23MH!{~d zJ(TiNN~ja@&+w;mmz`qB#{~@ejgMeRlzu|coSP1V@zygl>70qKM z2RXNcE@TU`yMyPoU^Tq!9R90u`z>;Q2LgWCy~6XWU^Beiz(8OA@cGPskwfQb!jw+3 z`y$UbfxSEnvilOx>Ognne*-c%gKc0J7)X!)KKA-mLjRtyUISHijZrOgO_)%jZKy#_ zE(`2cg-2h@r~p6uZNhvVf4hNS>&N4tvqkvm{Xmdu2Gj~%jbDYW-`kjfK*k??m2;(b zsdPJ86~ zCj99a0!qVFGOZ6eeQF>%TO2t`!(Qan9gIF{lnMRzqfa1bzxvE}2DXUdx^9s6_AfW3k86kYzboMm_xHzvA)R zACEK6wLh#5?dNfGVp_lS{u!CRzX4eT2Mr#QJ#^S%!w)~=$Pq^!J#y4B#~v5X$vxgO z9LW99g8#(1iBDSp)O5f5RX%i(lpW-K2X-Clpg$m6I_R4_Nbe5%uMWyk#~?5m3<30a z9rVc^^mQF9(sgi)R|mIvb#RMU2Mci>%Jfe}eFzAp9o?{|Ul>g7BXp{1*xT3BrGZ7WBuAvGG3;{{!(q@I~eD z?}nwd$#m1Lk zd|@aaN+AQf|4R*Xx4He-!=*c)eF|Nc*0H~T89Vp=*PTD(CFkFh83*;xm5}kW^Y5vQ zgZdZv=R(-aE)4yX#W>p_P!LR~N1ZRLx zfir>TSd%~mOa_!J?ziwf6|CuC2ABzEfwRFmK&5jImJ;oW{xj-d)0ayqYf%Cxy zfRg521TF@bfKP+ZfJ;FXTn7HH!oP~Jt_Gh2%oMz9LMio^{{Q*!m6H~WK?SG;F|Y(& z4wix{a0OTfszD8?1$CevsIzMTjX+c3X0QTW308tt;Ip8w{QtiSf8YGybXIa&Q@*%@ zeb9Dtv+}}IPh*$ntlGKW3H8KTlhWCyUQ#<1W$%Pp6Hb^j;e-X@6Y5Wx2`M}MRCkp= zs+*#fo&l|Nke%woX+AC9fEKUZRo_%!MbB|))vqv+y-~uaRYzTZ9uq(D_H++;CGUjU zOPr~lcf#p;Sg0Z3S4QT4Ko9vZ&;|5chuy!SKlJVV6(BE^N*fANK^o`>(t-Kmr$00| z(i%CLm;*o-7zhS|!C(l`Z#(?i&_jX39fo-r7!D2xM*#iy!gnO}2q3PFEj>nejP+bY9>`w2DUPN*Drg0jt|x$-K=%bxjacvKK5 z69NBBh#;+d=A+>$51+6&d_rZ|lps@>R5VOj(kJZGiyd0w2KM`tAMhA~_;Jdsk$)&< z4DVhCiE=FIc^pt$`-AWjyChbui{P53!KaDcCU|$LvhkZl;>usx_m_j23yue)!3p3* za1s~;xUAbd1#r8$Hx~He6jwB@s*lam8d5O)&ofqLwo1UG2{)IpG}zBphVnyAqqod5 z>}2Ytfqp8}sH z(8%iaJzuBWdeP}wN2i%Iwo0dBAe~AuOF+#;0(}Hr>TwmC}q-Nv>I@JinsDl zrW@uKKg>@dQ(>Noc@~%iB49F@0;Ym}!mR2&%ys(-v!{$J_Z4CE-gRIZLAi@Yt7__l zau=pOP&||2a9=CuS-7^ul*_4oxChIumEGO_GAG}*T&>1kKQ}#ta^;6vR@+=tud9Mh zpzx|bJlb7ulE+yR-R1L0{)N!fNb~7H`7#4@CYS~ETZ#MG(B}ZT&&Hes<^uhO(^;!5 z%>#0uk9jUQ4=ex+!6I-zxBy%TE&>;WAnk}p^zs2L!oNeYx_eV8&;@2}yO}@Pwr|rI- z__s6QQa)Y|6sM(_Rp1J+3{-;}Pz$t`%#8;xCH%ar`xtp=q$Fb(*--rb3wCXX~g z8SNKI+?ve;pmK;#m(A&*hj6pb<2IX0QTW308uh@wEBXTRaaozZB18 zel68NfM3sejP~u_c(nL-;$O!AVHNs)7APK9VO|YB2R;w30WIKKpoLrUUk80XSPi}a zZUC*|M&QS@tceScK6Yg^LbS9y&GeP$61Fd2hZut(qPi4{oz|DzR@3%j)$l4G2V&}n zYKi`&5<8{GZF0*1{8lqL_##X<0j0y2FxP;a!7boca2xnCP&$bJcIZ36TF?gW1b2aT zV4rmO7!|aS$ePR_O&l*m7sYkBCOG^EexJBrEjK@|W0(Ye1*W@!;`-H|`hLucs4b`_ zbC9EcNIGT`rgYru>!|b(`u8wyfo_|i*Q3wZeBHj@n{FSa@(_f=zf58A>nr>-n53v) z-{XhB0rOt)U*H>HBlvIdO>iIB1pK_t&*P{}Y?a@Y&R(3S<^Jw&K?`KlWE5dZr(j~_ z>QscAp7ndk*Xdh?rTn@d^8xT6_%`?sXa^60?}G1v?%^hM%9lnqIBOpuih z4+Dj{8T0$#2jCI#DEJ}x5%@9K0(uMcNnLupMsx( zC%{(lBzOw+5oRKuS05nEGnim0o=*dXxefE@Nx9=qmVVrZ%nZL(Hmo4Bz|@JO30vv1 zqc-Y=IXM5H0V>B||bxgD^kNG;T^!0Je%T7nf)l5Q_j?eiz{u1-~ zeRTY|4U48RCLN8SARQMIw$gEwCc^w&9k2H7WIu)pwRGI>>-YlZuX@$-qckuhXeDWv!(a zE^TfwR?{2!_QWbqKs7Zt7^0b@Xmzz5W{!!Sb4tw~JYtZp3xL){)Rky$p&Xb656n40 zO?+=|3$YK@Qj`rn{c7!(shF{sf6=}1Ne8!{|AMy3Z z6T}hcZt>Ey8y7vhx(Duoj(T?W(X*?Ap3g3?Z7y$ED%jh+gH?X=9JZYH%i^fy)!)JUdJZ(<&+(pwCO`94$dqH#xFJz;0A{Ry@=gnB) zIdb`2PqeBwTElfWQGL2cb2KYFdPO6zL|h%DRJ5)(2#x@zFPb|gx?t9fDDQOb1M+#j zJ9puNG0RUoGx(&!G&DQ8yH4E|QuIue^TH>d7|xwlyP}-?GsDvo@elh+6An1Tb@f`P z%*plBz?%_kI=4AS?+~krE*DX0BoZ@yn~SEVzM3y?m=7{3vSB|3m7)B!&U;e|W-1$* zK+tou%Hx0Gs-lk6nI>M%T{_?ocvvj)d9I9=FN-D^)wl2V*N;Pf81k=QUS1xTu;dly z73CG@mE@J?mF11+a+du3g8ah#qWt3glKj&Avi$J{c?J0e1qFo#MFqtLB?YAgWd-94 z^9u6|3knMhiwcViOA1R1%L>OAKCASXmyuobIs_X?zQ-A?EdB$Ct61ILFDSa~fh5jBvQJf*rTqQb{rYtSOY<35~vn z;ikHioBYox{NCOyV?V^BTVp%>8nvahl4>vzNV2b*^J)peJ% zfiBk2P}gAAk2wcn@=5$tef~ct`3tIJwU;+7^*z9&bk2iMvKKUs*P9cXswL_cO&y$% z{ah_9RIFTCzPM@yU;R-{tg4A7SWSJEoTczywhwLgD;@sVaeE8;ZSXhncc9-|!V=#*AkbBOd%?TlAE3M5q+w%KZ`o?fQ#JAw zwtjE>vfo37EBk$({|P?WM>g}g6*avISDI{dWRGgGdjHFj-31-GT{~CI7aY|*mVkj^ z5Eu-GfNU@nsCu1}1;MZKy6)Rxv}&hUvI_PFc!IA?u7htP_WRo&BR{X>XZ>w3^4o%+ zDVQ2^Da;ZS63-ya&A92e8&h>j!|fSB;m-u(`zm}v_+ziP+p=fjrXk@uK=GOl6fX_e z<^m1>uZ*x|BRe4{`Hfo^qCK^?p4mY*q;aVTMfU4mdAPSuc-j=JL3zyCWmhf_&3Yua$8M-m%k>=F}RDq5IPT9Kba@Pe+tk~Jf}jB z1*d`2!8niy@<9R6Z!>&_&_$palz>uD2F8O4U?PwXCBtmEorL=!{$zI{cKYr0<(vWU zr@)!uEHDW~z+^B5Nbl?M6Zn74_g{2_)nh6=)4+5v1Iz@oz}es&Ape67OZu;d*00I; zKO3GoU@n*k=7V#=d0+vM|GOOjao_)D-~U2*7J>7@1>iz(5x5v!0_4ANcryIkq4nE~ z|4-xo8E`3xg3CZTSPUvaC6NCo9RHPvTmMC^Ohs{D0xkzjK^3?HECbb`2FU*|`~>ND z)e%hnv9AO5K))7bDNmP!2G9taKr>hYt^_NAWW9_3K-RfOTK^rs|5fmO7F-3c2A>0; z2iJfWApfiI6Zr3ho@7OMTW{p`7d+R2GVJvFM|Riqyc%@yEXeK)JhQ#pdzEmf^4tQ} zf=yrxs0J5;46qlTAPo16L=c91Mj{BqJtGnLb@!+TeC{4~$xz*oTC;HzLg_!{^+xCd+i_k#Zdk~JM!!O5)o$odBM8^M2r zZ-V>4Ch#qAKX?F)zLs_ZfAW7L=1ly_ZtPK3r`vdb5Wa7N?|^pj5cn?m9(WjR2J&Bl zALZxwdHw--1W1yT;FsWeupPVr z{~z#c@Ef51OJkE=&@_)G&HfiZ zo32G~Uw(?*@tZ;(sn5~#@8Ew0ybAOi`z6K_(0>4b1k&LROzCj*u~vsv?9#xS*#8OW zw-SGUhW-oK1O5sEoz$%aI;9_Hb$T6H`bmdCmwIGKH~lt4|1UD$0&fH9@i$EAaV#=| zwAcmT-?4uO>;>X`7gKyy4qx^fJMQ`iZtsEj!CCPB6ElK28OYC8{5*Rb5Bz50XEf#q z@cavOfq#P!K^#bVcD5UTd+@g*)24e}7&m?^@t=x&8t4b4Te{C5%1OrIL0`B2;sKdJ zx(&dLU`__o?L7PhW5ONy$-;dg7z8AHFsAtG;S16y<7ON0A-K8m&gMDd$bJexLA>+u zGZgn>;4mQB!!afMFOKX=U-sd+xw4Po*_HjN+@$RF_)(f33C{>{6gV1;1f#$);8>ur zKAoFP)90Y|dlvu4;T{G#K)U5(ihoaTGTz=THr~hMHX57&l%|t_tJ}omlW95zKPSR> z5*Py{`(#YXz5u=;O+W3+J_R>7-ly{H%KmTs1Zlb&KjU!E1NlI*3os?S!;$@{FS`)8 zB2Wx^(|ZVs7?g##@uM^?fwvTtf$?Ahma7?!`|K@16LWi~Bq|CxPFv| zy7fUnrK$L%@Vez~5_WDFp_7vOr+wL$iOcX)4i4Mg8gRfgXyvsoYXar558LR+T z0_iqtOj5UP_*;qnD)3n#-LCTa?t?GTt;^T#YTP~tJ`Z}UL;t{!@vm4?0BIqsO z<>wK{&lddL1n-x?8gMhX1&HruN1xsB-HQEf;LAXI-|q8WbxKn25qDS}?!av=XajeG zN$|URKZ75m_o?(@ART0afnW$21`Y=!fNl&q7UY1@;3RMgI1S{1LQo1OfHOe^Oan8) zY%mWj0Ox~?!Dm1@s08{g^-a;W(4kNZRJ^4DIwi$x@fO8fRzjzywzPPs##^p|PD>*X zABeZChVIv|#cO#f-m(TdJ>6?*X^FRd8M=S}j*bqR->*VvWMGY#jnJ8yamkN=8+yP1 zFOK~9qtIDdoUc5UIRo^-fp9#)xl8ClgW_KNrFi@|(1Qo#u_Ye=1N0D1av~}I7wBvx z>i0M3q39NUARheydKh%;1M$|>vGldj?GMD;Gogngzw?23=P>BQp%vB$=p#~CvRD+4 z=0YEt&PsMmJUR|~1a#}o@z%4TkAiMr8*iTnee^&t+PN;?c?tAL==fLT@yns`i zS_^$ly4Mq z9XahkfIdFmYmZjP+n<0Q4c)pT-u^7~3DE5=@%CRspE%fS@4PYI`3Ce!(D7S1M-Dw^ zfY*tf&JUqahK??ccMd*{ax~cMY^{%Xj)XoHx_xE5GY5JsbZ1Mva~$+((DBxId;;|8 zett!u$3aJ9@%XvWdE`s$vUvPbXl{**w>QM&_0R>-ovY&U70`u#-dzn{6pE5t@#t#k z;(k#t`cgdlW#|&<)}O~)zXDwf-Tt$9`$p)pfl;sXv3Tc$(Bq-wKaR&Afu4{WjZ$W! zk3&z)i1Oe?pMpLkEgEfo;GEVS(4T^Cf1s)T73ebuMx&h%+|v11=(C{X4{V6P4?QV0 z+Uk|YThmUb{$xa3ql?aI9R@u)JxYF^)0zW4B`w<8erHqrsnAmgMq4|-c1vdo^fc)B zy&K}wpr@xs+r2a6?dL+zNQt&b7d5pnhMo!CdPP%vHT10XDEZaYz6$#6!O`~4TW{&S z4*Hyd(f0VA8{#)Z&mIu%^d`qU*F(>NjxM^T^M2^L(5)4>bZ&;8H#pkazWkQX4(R#N zoh`R?ZihY>I{u{%@!vt8Hy|4Krp4obg;)9{j z9~_N$HgAX@1APH>yk$dtEcAt;R^?Y~DfC7CTD|CN@z$x(7elwc6mOjmeF=2?v+?#Q z^rr{4dYw(?4>ed(OmJD|(c zTBGe9P3`wWFCN$$?fl^_o!^75fR2BEL;NSum8q?*H1R70S zUxdCqt+loNfeG!eK`$NH+S>WRrJZj0#&3{`BlX8VF3Xt3RDUL5>WB^U8#W>Hks=ub2oE$ zJ9{&4ws*6Aee)g;Y%NYsT0 z;AwrtmrRMw!_#xb*Om&c$8Ta=pRy*L?j=IIOEZ2eBH|?~r4`S>exgKn zWNX-7x*9KutMg8nHsPh%KVrHWFT=9mbSJLEnlasrmt)&$)`?eStLOTgp1~`z=h7Pf zp13})o_{*6Ik*8!XIk^|dss7REx@a=Z4K;BygH`7yNRxwef55}`d)5YS+m-G5K-Ez zLhr*8S6{j+^g+A^Yo(##G#3(=qrX>=mT-8T@fX#m}!$)?jyQvAAMQ z;ikBXW{PzZUYDa{E$lb^NlcY?*O_=d_7Z8Gk3Ws5`iTl{z@K4B6l)W1#_UnufH&l* z+NvVkjyJ~C+z_)2-h{njfgQmu*dLLy^Z4^TH5r+-?7KNvg|)26`s2;ms*7w8{<0^A zDa2cdPrOrRTt&vUV*fZ}C2qrV*lZO33hO?z$MDxUjAzE;Z?esE*AO${t=Mycy@0pH z&GXL%R*kn~=?ZKr-huUCV6*T}Y?;97aC^*rcReu!-jz+)-Z!vy_}e_Ay;AlC-W@kz zPN!@a{tjzr%6`BZY?+iD!r#YC+|6dkux8Vj=LdEc@5wXqb5oWzjPqhxT+(uIN8Cia zlGYFJ#g<9h0K6||>TWf=1@Fh+z`%y!AM;H8f|Qlw16cBt_9#Ax)fL%Td?;>enId}% z{}j6v6F!FzV=ocdMBJHY<|k4%86UxtNZK^~GuA|r&B4FmFg{#_j}n0rvqzWVW8v~j zgoX|HxGN~&^j*Ok+~o=jnGzPR!@q`KP$8_@h)=kZ68_g%vITcXOG`@`{;GXLL}_vEeMZ*&v) z_Ri`}OIcR3&lL|{d6kmk-Sy-*kOpiHOI|LJb(x|1{##@D)ZkL~l{H`OHHD7~YYt!2 Zz_v?e{<|gX$}OzevZCShJ+UY0{s9lpTj2lz literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_scrollbar.worker.js b/examples/component/ftxui_example_scrollbar.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_scrollbar.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_selection.js b/examples/component/ftxui_example_selection.js new file mode 100644 index 000000000..3de8e5d75 --- /dev/null +++ b/examples/component/ftxui_example_selection.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_selection.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={42200:function(){throw"Canceled!"},42218:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_selection.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=42192;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=54856;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_selection.wasm b/examples/component/ftxui_example_selection.wasm new file mode 100755 index 0000000000000000000000000000000000000000..ad3c0f0acba0a49c2bbc2ea389230dcb96b90018 GIT binary patch literal 319516 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_selection.worker.js b/examples/component/ftxui_example_selection.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_selection.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_slider.js b/examples/component/ftxui_example_slider.js new file mode 100644 index 000000000..a23c28c80 --- /dev/null +++ b/examples/component/ftxui_example_slider.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_slider.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={35896:function(){throw"Canceled!"},35914:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_slider.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"h":___cxa_allocate_exception,"s":___cxa_thread_atexit,"g":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"o":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"i":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"n":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"p":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=35888;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=48216;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_slider.wasm b/examples/component/ftxui_example_slider.wasm new file mode 100755 index 0000000000000000000000000000000000000000..33d0243c9151f0f52486548f3b1922cb53e16e3e GIT binary patch literal 280446 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

    5n^AP3>52 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 literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_slider.worker.js b/examples/component/ftxui_example_slider.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_slider.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_slider_direction.js b/examples/component/ftxui_example_slider_direction.js new file mode 100644 index 000000000..f9dbdcd7f --- /dev/null +++ b/examples/component/ftxui_example_slider_direction.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_slider_direction.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={36680:function(){throw"Canceled!"},36698:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_slider_direction.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=36672;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=49e3;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_slider_direction.wasm b/examples/component/ftxui_example_slider_direction.wasm new file mode 100755 index 0000000000000000000000000000000000000000..a3f77469c795b7f9c43d051f1773c1bc66561dd2 GIT binary patch literal 282889 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%0D1?S^x->5QHPStpVu(+cO^>Bb|{(C za5$c(kLwB8!-*eVoZQrHzC4PSt}L5xVJX+U8}w(N)aiKPU2iSZcm1E;=D(y&^s4_w z)9fTH>xN9v zu1Lp0VHonRM|Gv*o>&_vUmp{*aECNj zucin^K@4RR)gQ*$KF8S&hBHT&BknB>$#HhQIwM2KMsbGh(GZ^bqqE_xI1A3aA;;PA zKdNzd{UFW)NvuPP)HtKeFwPi8A7^TJO`Ki73THo^ST;G|;lqF+v$#w`F(t-a_0WH} zNhdv7QcaIRzodbJjnSRuTWVdN>ZqW3-{s7q0NYp(#4s<5;`Xl5l~Yx0TPvv|q-1&` zvZf+_6km&Ur3N14Zl$lZjiEYx zO27LF^+iEs>+hY^w1L9&L0@_>(F(tfd&60bA$iel7yK#(Trju?Gij$ zgp{FR+a5a0Lr+7wEV)R2E|X9%^p8@eV4}G(O9l+6RYr))%TrG4o3JWXOoBR@zXv@4 zp{YbLdUT9WvB(4Vdw2A9`+R9kegOWTr7`Z9vF|&Qr{l|$ci8*g(LLdl9umbT{iyX` z$YX_^=9w-{(<;lhB9U^6cl!nSNrR!)cgPUdvwQl_o{shG3}deC;NF;ZPZ0wvS^nIw zSv~WIB5BulbKxLp=eAUHSt_1D#N34HTt)&xf8Z9%e)~WovK@Rn*mGkhO!6; z5Rrjelbg8B+Vly)>XjWL7CE3U+o4aD3BEFd)TEsFa6$)H%b6<9+>TfmZ$Jxl!p9+v zmQBRKa=gMn;%R!4ieUNT=S*G~T@*O2J^o4F=a${0x3*=zpBFt$6-uqm73qj zVBUB0U0uEhYiY2fhr+*IW5Ozr=W`_;_7!+`QzGScJF)}O_O&f!+YE2zCAmud+US#Vj*A>)Jf-9KkX-r)?>)&03K4IHhd%(#aUjhXzl z7G!u?3$xw=YxSH^!{YD3W)`(cols4syhpW0k-T_4Ya-a)9f4&0&C9>}mexV}<0K?d zA^vTe(4yi(0e}bUfWcUc1=@r4Yf58yIL$+L6I6#GVga601=^llWU0T7w(BJgm#$br zPxwGh7jtjY$4g`3Lz9HHQ{N;2(cp*VPyWsFkIe<;E zRA$}ryw&s?-=Ym7p&qC9)L|t0r3D)&D6_PhYI3_pvq?87OBW8>EyN5e&^10Dy}lFE zk^G)r^R*$|_(T(h8HvQBR8i?HL({ z%V~SkM`eANsroT-0hIMvTp<*ddSgkeS#_e07pv3HS1rCv9HH$I=Ye1kqZRm=ZyJn} zjIj?V{Bm8^V#OVmX_XKigT5Ht11PbS7cwlwLbV1;%512<(NcpNC8RPXag^kYP#gM$ zH^KhmC;)ADV|_>|b=w43iw;PlaRi7NP5wTVrdTO7g2+Ww)(SQ6$Q{BO`X&=tWQfEO zO!oZ!DRFj*fUxIg@7YB=+Q89tSN}E%xp7@t-Q+bv4^6%g3yAnAn(a2t6k>R`&x<`E zrUFxnm$3%qKthdibrKha_Gi>Mr6^j(v_%9I-{jw6yIxB^?Pgd6u#Lj=q(N}%;NX6U zrDQaKLDjZ+GnLNDd~P#Tww|TaE^uc|QxO(MclojG8~1*W`8U>8t>JXSY7Up`8=e8lWWJFiU^^X`-Z45J9gAK< z2jPLz{)fFGEkRnx@fk^MkBy<(473?-k9h)ITr_y{YZVdr3lqtROI}V0jGDU(*IlVC zT_}hcVG=Me^%=;?RMg#-(2=A8Tt}Eq@}NOqYQCOH z8K$EoYCUab!p{j}#DHK(U9dxP7i;>XQM~XF@%w?V&y} zHuY-M!?t2vp7c-*j1uS z*wtfnVj_fy4_9Rg>erx=O|qSa#_O+P$d#i;tjWu2??LWrBmj-h64P2h{#KSZ+tK9? zah6uZj80qdMPTBbKw{BJ*p=s}V09b5v_yI_&)nR$au#_o1g#aYglN9}FiM;gG~Hg@ zVW-UaP2M4_t@=0c`vM_B!;}G5z+&ApM=G?^ELWeBSU{hqq9j@ZU~AAoB#_TtHSk#F zu$k<_i4MH;(5rQa7=alrTG@btVtf+4+i6~iJDqjGrC2x8as$V(?kn{mp3{m4@tv@c z6oeSvNT3!!9-{y7%n~y$p#1_-A=&agYJ7AFrE&Ub!0!IB6}vwHSd;Y5Vx(p0(tJSf zto;a>Em1LPQYQ*~5j>>0S=*h{Ppd1qg!1QebQ7FC5&#=`1WzbM(KQIJpTLy6#l%}20 z_HJt;!QBO~*xJRgbN+dnbjd~iulBE)$g(u~AMCvgl%3Ue=XoFXen?lmEF&epb*%|< z3}dxJY>%DQ*5~dJJMP3@-RWLE)0r8s?#!$nDLpZScxA2bG&e#q3R29CP>h;V%(YNV z8Od-XWT>Euxd<7`sEo=&Hf2;X*FuIelHo>HOa)cY{Qmo#eZQ{+GNhC4o?ff>VrG4>a(keDK+QKq@gScPPtSemtqkkE;tP4yfR5cBnPjkl}c(6V}T-DPI zT}b)7QXNRms4;A@w`t`{Pl>RBG$%E(>WWdTL2>sL{lj0EhhKyEcja#G`!s%&2Pj%v z)lZrYfB@aDlJ%zq9Dakmx5^DHjJ#x9SDu76rv7M)-N_g;iu zF8yQ9-m$v-i$tpUq(puU+Ln-Z6gIyivNdP9F=ulf1z??K<$WfR=HQ@lO3%|OgtC%a~RinWi29=kv zNwjF^x@pl^ED($+mH%#DI>_6~gW1zRQF{-^CHUndi+uE3ihje4(_-IXm@n-v523Kw z0Jg3yXXnFU!iD$}QCDs20-wC%cL^njT2C?MS=qs4;&~fYeUbvmW*Tm8B1QgvCF~CF zwFPi4qh&*cHg60k-x?}yQ~Io-isAg!e)bsPpExtKC`-COA4ol8e|5(*^}yntX+$l= zNHL)k{23qpeP*Nl`qmKoe7Tt2*I<5$!iHM@=9eS+HA{NVJ3VZJ1$tRER+WNKJ z$FyM)!^&T`ITk#WW!AhRA7)%C3=dYT_R;Jkb+bM+Mfxm-L6uTcT_|3wMR9E3lVd0^ zM-B(bqzm&gy_L^O)n&al1YyCJ5XeeJja`t6+L|y5@FQMYrs-zKEPI09uCrR2k>zu> zM~ji``-oPT5IP%$nH!>Y({u*G{X1H6N!sU?;bGhMJ6i`E90Uw3Rl)3D=s?QR$#T%Hlqd{V~{YWF`h0hOy`r~^t5Okr-k-o zCF4xu#FUt&yKvM+ASGy4LsM2DSK`2s5utS;H0~+ORZ+cKT`(&@Yr>8jo8dK!_nDe3 z%EOTU2x$d$)gnQDOeD2)S(iDGW|oDDh7G?~#rD=pB*T|5t*=69hARh?nUi__M>5SZ zkf}KpWh*5l%-|on4=G5IyYrnjl3tXj?ikt(G13F z7DCl|S4D$Rnqe5?gPtOdG@Zl>o69;;2(tBFSTSlimND!y0~)dUFC+Dw z8@1_-WDMz|lTD;c_xb74d*O8H&ZJBC8>EX31y>iQEg>Y_G?Jp~T`|+*jbMiL)yc)a8A}B{ z^e+NZS^1)Rh_*LOu>+4z8{3dZmv)Dp9?LO`iDT0W%~KQnr&q}0*DS}iA*^@s^tON4$-bAG=LL?#&RV-Yp)VQ9(L#Wy z+w+DLT8Yqlifaqzyix~pe%*F+C%3_kFXVo{C~$ zSeq10mjtB&VmQrESiz+P{Ymkom8B~x7b6`5u6315!Q>WfdbQmD$=;HJc9Pt{Gq`Ym z#O^O*nieHf&o5BvewLh?9}4I_k{9oLVK~q11X;ekG~1 z=2{ejy^<@bKI}d%BHwjA*2L`aId+qk9?ZiwY01oemAT}Su&F0_FUq??%xAQ8$kmLK-gK&R$wRNcp_&e5)D%x0Jspz&AO09U)v10)qNt}v${|MH4nT-PDlNpTbg)tm3>;nev zqRk0%(H_N>+A;R9pBUn_8yBEh&smEmUA9$^Haqk~3yM_eInx<`W{94%bE}^nxYwM= zZG*hm4x=e!q>+ZvI$36Y;>E-0*LJXDzd0Tzvwrh=ac9)ki90*iG=lc&yskxY|E}Wh z+=_ePrtJ=rM($z7F&p>LsDy)gS1S|#mT}MY`N=eELK$&nliwqy%^S`ol%|dg}4Xq*Gc}!eSzesT{G38DEyt0pOUgh9m3w^dE#?< zC~Pl^B<!kjcA@mE@Rs99VI{XAlN?|-b!ldHh?hOV5YO!Y6Lswd zRIwAt5ZlcEhSXR%ipac}aV<}@(^Zw3sirXM7znQFNFd`HuBp@X6OwADRbnHBUt~A9 zF$3Kf4#xJ;(bU~cB?kN2Y*FeQ=$<618u}m`W2g5N4%+?Uknd-MHd%s*w#-R0)W_X% z4A!~c6fK~K5M&HI+MmycZu-V_!PB@YAzp8%cZjouE%$3a(FRmJ%tk1wXItu4!%by0 z#GM{n?4q2-*+!1gb|>A}mG+Vb#>1DC=^9}$hZ2k|A%dOUUrLf#{wu{7Ba!}HBNs1H z09|>CqVTlB-&z4|?YEgnw5$SHY!$0zy5Wk>2)m6JE5IOcB53$VAC}=@ziy!5i9~KU zsr0SWYZ2v(Q@vo(uu}4*%i}SVbS2XX^j|vBR~}@s??O5;XcIuZU9eaug1%o+CrD+@ z+?Yv(q4Cz6(+KM-Eh@u{m0>9ggDTk0SyHsLwU`vHLHl!>L(Y{i3UkQX*H+;$ z2jxCaJfJU{JK@8bC2A;JQdq{BRjKk@I(xW>G@B>I9nx;*qOx zizxjc_J}T0k({))qas$_YbwYNRd9Ukbrw287a^Z*X5S%sevO%EW>J14E=9qB<-aXk zI~=Ap&+o#iT(1d1XtI^Vw5984omgq5af0BI$Q-Sd>hcPGWX+{(PG1Upon}2Wfx{%P zK3x^vXNFZypi9Gt*($Xvh$u^DVAQHe-!a)1Y%OV+i6sry=wWT3ob&a9D|1Uj`cvq2 zgPK&(wr6V+lKsTgUz(hRKQ158C+jR95HXvmSLa`=1-^=aTF z$wOp0^T#@bnozE;mu3zJ&6MX6t8lfeuNUi(piB!^#7}=#{2e)%2f4mVw5%7rxQq-k6+>PV_PSX7?lfg?($iKDTubU{=2w`=N= zx0Pyn9;fDUI%)zbe%SBOIh9B@<2O|4m7w{9Cr&7|16mzf*o6ilj9fvmnKrzQvaN@!y(My>!6aBpy`lZpX@l5Ux#Qm z>#Fq-gT69%M?Awr9JbkZ4UTQas|m5Ps|oY8QQ8D{J0~l6qJx^FiPU|P8bHNI6+{7D zV?J7^J9X3U>cSa4)x`++Jy0^w=V^~Ackh8pPO*xVdo`hc;dC8+%Q;&?A`NKP-k|XkUn!DDFarb)Hre z-=Sk#=4CG7=};|m*=6xs-)l(w7`uoYdno9Ha)ljTj7m}64K!6dU)k!_pN#}G>8xbx zX|gmJ4ou41s$U-NE$bdRRnhd;f0;|cxCE|Xwc0BU8tH__OH~dp9=2D(~ zS3z6H6d5)SX!OJKdW-{=<1daZ@hFnSbSM~(Ac1XxSYiV^i(qB=mv#1&D6)dkZShhn z;GtjJtc<<8Y)tMxn-jxu!nMJqENy-A4J37?^VASYaQ$GS`i6vs9!uwF_13@G2kt z`ZV)w*K2i+&}ny_>p|ywMkWJ3EFiP)5A-f_9XLgvO}NV%T(DirQgau3T9wG*_Xn#pLI%86KeEz3Z3Ilw$IJuJ@wbL0WScw_+qN z?#LsBc>vAsD(P1n&0x%=(G7z<&ZcZc55c1FqaED=uUmMQbHA=bGrG}}3rh3X>ami_ zFz_lM-N^@Z9W)zki^&JBu~@9-Azy~HA5_aa5tX(y$l~JE;q0$In)? z&0QxZev8o*FGF)GLhnUM1diy4%+ooeb|i}NloZt@Ekox%=sXAjJ8qF5fhzgN2%;0xNoo4t}~6_O&lYc*4-G}Uuc zr5Or770uUkx&c6iK97dl>;lqj8IxY|Dk^ZpMDuuDm({4KfD~XHO6y8>%AM{PWUOju zs<@SloO3@UCz+!JrI8I@7=d`&(?E&wY4B>OtiYnmF7yFehE!Q zu9N;qZC4K@Kd>w<_lF`CbCEU!EGIFMhVRsQCTt#BgxC%u3<|wN}&u`<<;W=0MahNV#EDu@COEfUdy%zo zY{>_k90;+Nobi#h-|8o*Ct#ARddllLiDJ^svCO54qa1F1PTqFyNHJmWjcvNQnW)=BSp5DPMVem zJ8aaHujH$j$E`zcly#_$VwaA(QA2d5@vh2GBMNq=l$WW}w6Rz_uZxv`b)*#f_e1au zv*_STUQ|D1NE819fuVm@E~vlK_mVC-LztFvHZ{=+R%;ST{0en7DWNm0m0mk6MZXay z^(L(?h^NTxSfTc5gi~aJ$&A+Kq({m6!BZ=wL3o}yZQ{2@x%g1O^?IR?`)^ zpVM0}b{d^JSnq4#V?gz|owKAaBqbD?f%1Ubcy78rFCj25N(j#L;{W|D+yuZ5g0q=8 zC=ueIdeN`Mq3mb`m}V)_QS4WSc_sSLW%V4Cq?NanFZ<`iOmE2DCQ|8!+RAxfg>IEb z`WzU4?Fnd7LnolcK-Ym!$pGT2d!M?N)G*i3Y$iE+J!EHAiLA!=W6*;dqlVnFv$(}f zqS;wohNhNc%1`ZmRwktSqlzrpbk5?UCh@4BQD{&(}#8P}=L`3`ji z3yBV*hEmZ>sh}sRHF{l-gDV>YP|zff+)Ss9 zl1>w-)I^C;HcT6fBckhTc)KAYo4&$}%rREMyR{%Bxr9)kicNjSA<#t$hS^*#P_##z z0Evbj#z!;WpDUYB;@ai$QdWZdX5uBK3r(c1W4E_l*b_(nsvc!YxtEEKF)APpTJ6ju zlqHY#YDicOGZqDlVufhEo+q_*;G1}_g|rk>(RaX5^n0xm4Oy;nAE{UA)nQuG%fV#z z|I5r1{Y5)i%V)ig)h;U+H9Ml73)7$cT!#j6bdCvT}y=6Nd z40I985LDIb_j1UT$~Wl0DVcTtvb89E{Emu=$|RsfqA!PbMJ1Ba6)co+6pS95hHBDd zf)DDVAVaQt@o{bA*7BTUY)a$WX7%@ZN9ChdL~RQk0zFULLcVvjjp?VTZ4B{E+Xl|M%E4P;XJ4ih(js|L@S5q`wu$&}^9PD)q9Wur{xU60#{iOGB=PRr1DlVESh=oDNNuv*@gfs;^q_tUfJkeIB z>udAAMj;iWzuU*Ghph-Owa=_a@qMz_WWQdSyRc`KbtcKR#9^QJsbd{ynRVk95oeuJ z)8Rz-8jgtlkL8H40CWCwgst#s;fl@k>iVGuSCe>l`$CSiU9+yV*M_RBf7!}Uxns-H zlVA0jH<-Anme-;hi^1dhkvvdPQ?^V=Wun%a#!opjk=O5-)*?kT&A7*n2hG@UBb#2} z*(ap{T08f~xbaUAA)xmYM6hpQA3V?Hbzdb*STSymqVj(s|lu$wJ8>*R?&Lz?s!p@FUl;E zDXJH1k*uJERuq3sLiRCQ*4o@t`EZOnF5YO>r!-DuVbWRNmA)jS9IP~ozKYrEa8RMR zLY7^mhMv@`J**6&^HYcqa4$}(YAmO2a1dSJ}z}oucN}3e?#i) zM4wDvMv+hs=%P-7NS6P0iMZj?|I&&0c%FB#b#jm1Ufg7xvwSS9)mc8))=*YWYsHg% zBZcHIE-w9ZCal7tKYKtIJ!HbafqACIRielx;=;-O{Y=AstGs|*UdJM$*= zg+D}6mu{d0GidCJ&#r&)MivQWT%*_BNl%8-d>Dr(^i_xRmnTda(aY=K`0*7sCn#!g zPz$;8!mh8>6Af3nS5=-arzP#w!R#vi1C4CoQ6w?+(Lf)U()StIsyVd}TQ@XLz`hf! za?h7OwC2+rnKV+wwQzFo+y`&W#hx&$4Xh@S~QMvr!txqy!C{hrX>#A-qL%WX+)YCk9;uX z`G-SP)}9xY8XLlv-Ai@PbDoNb105s~ zyVvypqjs_lX>1m~FrxVv#LUxG&0mk8fO09J27C#A)-zZ4b~Psnr?RQ{U}ld6QxD1D zy5zStJwB*K!g6jM8?Z|6R-ZL@c|r|VSevwNVo;h(3QX!JCvGa1Y(=4v^sQGYM4&7e z+7IT$7zT04xc~{C?RMI#nOlD?yp%y%Q9!X=O5}48tZQ1O)T47>5*F_Q4To^yzz5M) zZff+c7L9X;*ChoWC&XwQGc>fu)@;qAiJTl! zC#JgogjsCDCq+77)-}*>HW+mIWYNM@9Py&ALyQF-1PefWpGNX&@{y#Lem~FNAnMar zKD>ifvfWe3_D!Vh<;j+fRMoobHmPqcYMPu!)i)MDbi;cgY7o`B>I!aa&k5KVXkpYJ zDXgUe)_z823#|91R*sIFedw*oWD(HC65TFg-D9WNGMy$G$=u`U@(?-S#m(-N^#9Laa0n2ev~RS&kk zv`!Y1_DRc;nUkoog263mp0*HAL8`4z<{)ms5jBx&N&ET zWIGwiIY^7#*x#6daII6E5il8-I3Yg^$=s-x8KEb~9!+g?4#6nX4L7{YWF{#aw zx7eR%$KVfiM8(vgkj&tWw-Y#HFK=63D9EVPv||=Bu%~dj+*&^nWDR8ka{T)RSqQR) zAB?FV4CV(nvLv;~KwZKMA6i^vUo?CDBzVdo`8o_l+8EA{jn_uiW==KKYlA+Y;lyhZ z7RTW=kv~5UDnRcYOkTc&o}0?ROAw|jKY%#4DgOcNPC>4afI~DLVmu4caK3XmTUj~-F?#>^t#LZ#t}i&s zoTId|C^OD?*RF_i2ZY7^k0B1%twipCG+o@bE6TUkxoRR5?@c&$RxcEZ^obgpp`f^B4B$DHqFoDKFR_wWOV!@CUj6r{nPaQ5TQ)e<4tnJnzI z^WE_$5%x9+ON2jyIQ#{J-3Do}TmB>_!p+XLNrYglICTGfpTJs0CDViD*$i7V89!{5R+nq^HoI%cs>icD^wY04C!nrp{c6!&%yWV;B(s)kcX z+)d8+l%q@;%6~GHgYJ63QJRi2o<(Um-#MJEd6{<)XCOxJ|7MWwl=Hpd&T}FZt5z0o z#`*60V#KRMSX%9X7`^}70dLzEqm*0Sxh6t*n{et#S#`d1569+;WrVfs3Sf^1a1 zun-ZWgi{BCWr)ywyz4-O*a7if3v1f}j|NtTQ4?X&z^Q{##h@{@4Sf$g&OwOd#ysIT z4?51c<2153V_BS+9p@CpvxalRagIAq%W-D1IMZ32J06L0ZG$*rI9ncxa@~xT$;J3O z$W_IuBiDQu=P}2bfcT!_>~oyGj?-|Qu`Esy+GmbNz#hJ|F z+;%X^wFTmN!`XN+%C!M2ldCF1`8A)#X=iaBa-4k-bH=>Kaqf1UF~_On)JdQ17&>x2 z?>Ms%-#472j&sCurX6Q8i_^^F-15~Z*G7mJ3}?Y{UU8gx$7yGA=CU{sIL;o3lZLbF zt1*3cVrA)57oqgoj#Edj8itNs&p6Ieh*QQq@u45HA_?LB~1Z zI8DbH&*C()IOiPa3`E;-PC3pCjx*;ttt`$=7U!g zCm?=gIJ1uPwByV;&U6-MGK+KD*P>ioAYL|{jbDp$ZNSRps)~?Y^I4pB7UvymH=*abq;~a%JV9ZmF^SI+o zI!-f-GoHn{=}?qw0p3Rp=Zxc=cAU23%w=&}S)6+vXBWgl!`X2t%5^(dCf9ZmlB;>=`m?wX3} zvjgHW!`U_!<=Tps$yE~}xi;a{k*kWKBiCWaIS4Un%oC3DpyP}?P9uvmmc@D5aZW*e z&2UaQ&T+?SInGQLXF7{>$Je7=+aMk{oGo9Ea@~xT$+by@Ns`MV!QJ_?+~*PeS$dZPDdPK+94*h5KZU1Wlt1jBZSS7FSyey4l(Z# z?JUHc^F81YdmwD4e%GFu7CW)Aw5W?v1h?bV5v1mP&p5$O3#rf;i(&ryZj05OZ0Gmh;`~5W66T1+n8xQIOlQF+sMAkW&q(jv$+y?`o`q;Q-#Ldk1F=*Pr`+iUhnRDSRu*E$`R=+Wro|43k|4I-69w6d zjR{f{A*W3^bp)w8-(iP12(e6j6Ylh&LyS8_BMUL+d@no1DTs>%al)OBJ4DMNX0i~| z&UeSXQIKsA7Yky`y-|>xu`xk5iI7tjr;Z@=4)K^nOh8;BzI_g{*C84XF_wj>JKswV zaRTB}LCm_-(+)A?5Yt(RN$0z*5e3--ahV`CHliRKurWcZBIGomg=jm(Lk_VI;w|Fa z;}CZ{#F#_Waq6VScISKEA!Z@C&WrlOosKxfv_nj0A)3y2%b!L;HbT5r5DV_~ibKph zL^}&H=X?)1#2$#t1+nW-V_NLQ#?qoLLQdOp>IhPEzGrY|i)$|VmU}n~F?zrnwkhX& z+#M%H2(6h#8+X2&_C~Z<-NS;=4jS4S=Q{0Mr7ooV-aOz09$@!kb*(80!JxoE2P8!-l=Q`kyO%XyH&!RP)?;OsC_9ORj24eJa zLp$YMFSz5J2%)vIXfw`t*L@M~a}Xx!4v5hyL)&&=lys{*)$p3%L(%Xp>pArt{r$e?@DxgK}NNfAP8X3@r-@1_SL+NJ?YCg*z!XA|=Y_b>%9YU7WC&UC=tnj!=?o&{?--#MHO>__h5 z48*7nBThNf3+^^2LSU^d*o^bt_2&`na}Xxx4v0}34Q%`KDCSmotBDZUCY(BAR-NxK z&K9#r-NQkMQR~!CIMajfHZDS7jV#!h^Sz9-fxYM+PC<;Wl#dh6bllxqBIGoa1)Fxh zJH8UZJ_})DZi5*8N%`3Fl_=)T?zTyUoT@l=#GH4q$8ffoeZ@UYK#Z2dyBP&Ib0JdpH3xT9J=gXL{P*W<{wXGO$2m69=VcG>T`fh>k@NG-CyW4gVa;jywH*Iphr*O8I zJ>edvAV#m2kAu#1z}=c6-8fswHr>1Iq~2TAT+|)QbsfXl^j10gQ)v~525#t^qYB$p?%aO4vt(Gd&@ge2^g zuY?!niYt<%<^-CZ8Mm|YaGt;$UN}9TD~BYOR2H$${oFe1rgPxotQ1GwN*~J&k~h;m zew#Lz8=v~ANr82af@`k}t~=}#mr^b$@VLf9Ws-e$t33b70I8- z+>g11`HNR1_sBeenL8_zy;md;$Sjd+9K+dvMbeac2=f@`gI6S9leq_T6Z7GSH;j1( z^EV^j63lJP$0FWR%$vxX??${5<~ru*Bi=I1JYz`n46ftygJ11Cos=o{1oFppzCygGSO=1Q{QrFb5V#b8B27mO53?}E9! zuJZQs+aXa>emNY;FXuG*$5H__jMg;I@aH?{0{v-W^Zf+>hay8=i8OM<6VuXWizo+Z=P^ zC3iXi@r*+>G5m#xJ%!=BZg>L2v(7ey;d}1#G=}Hhod6w_@YRS26xj+!agiTb=)$^KUwejw(xThA^JZ@K~_B zo%sPL?sTU|+~!`l+3&<*cd9$`PDkE@(_gt9_h5M0w|T~iAG*_{5a%4?Acntj@M#Rc`!i9ej$pX)XQGPCV)#9G`3{Dg+~oxfo82&n z;rE^G90rTsNeGMG8Hhh{=O1CX#XWBRX4LtYo%c4ksX|z}*b)g^sTMDV=eYcVgVXQN z?Owtc{5$pC^NpOvzb?Z)-{5W=Tz1OPSh9}a`VxB)J*QQz30VU$YR=JPO@_VE<5n2} zxK-b#0n{8|YRS4p-S&X7SseQ!MpcIUBgTe^aihM|hEa8l*+m#mxF@WqA%TxrZ%kV@5*%?9Z)VE;}PUpecJ}oa*zc; zem6~%V`6DVkZBo?N01{C-({G@*iv)I=O}5u+i)3lU>)#JEr2x?waNV-FY_EC-C;;y4vC>N30-F?L3bJN0cC zM%^(cz|izbz!()rJ7UyiI2|#zMvPnaZ5l?+F{Z%K&^Tah7RQ;0QI+9G5o1HdxKZC} z!>BsOEEw9&5-`qk!9+42G1@Y`5;0E8AQjQKWf<*2R}nBYe~F7UL>vndqb0+u5#xBo zcvj!GVYD1$0SxUV2^h!3Q9TmsJ}EtV}2 zq%Ol}BFN4Na;Lrx1F1X61R%DTEP#xPr4~VIGHi_?TO-J=`Zf)u<{(pmY)i|`X0dFG zAXOPY8$mWikQ?=#Hjt`=%mT7K1vxta%k~J;mf`jYa#{u{iM}lZX%D!P0Afd7aFUjY zWk&>Q$?&-day)`Ot8d#tS`M-R2uDggY9f|;1eum$X9PJCL7vpNdeJ(5ryXR=MeBHB zsRMFIEW08|Q-&`@kOMLx&LjHP45aBGI{>jA)Htak5zANvX~=MQ1lb!w?$ft!APooE z1Bh*(4j{Y5vL}MnWwf11ox`RvrVtbVX$f&VIkeUp8BgobWa;v^g1F1R4 z6d=Esrpacp?28~(8SalD8zRV!`c4~2)j?(f`TZ2+Y(FgH5u`1{gAwGk4AK*QTL#kZ zcRc~bwoKzBJrT=91Zm0el?ZY?f;_8l+dx_lvH%DdEp+rmEX@cqEyIBbawLL0sc-e- zb^J~{$d-%OB{!!ahs1I)f;44#G=dz6Adl!;S}e0^=k-5zAx*X~^(+1lb!w z?$ft!APooE1Bh({4j{Y5G8IAUGCUDMc1Dmp^=%kP-9aV*`EJ@97!}KO1gXhzB!X;> zAh+tx*D}ro@AUEneZ6H+#nFZtz(}X?CH9yHr1Zm6g zbObpqgY-n-mVvanawqgl0NI*?oD|D!1Zm0eod|L~f;_8l+dx_lvH-~EQ;=g~X+@A} z8IDJgBN60DeXEz4o;b)BX7o5d@5**aEGHsJQ-gV#L@PG49m2VHkDCm;mE{>R^nD zqa877GMtVWTO-D;`Zf)t<``38X#O7;>4-SaM2xBoKZ+O|BF2sSP8&wmF=oNgPO*S- zwwLdG#AwU#O2jxVgH%M{mSMDeT}8mqsuC{5W6P!M60JJGPCO2YV`Ic<%JAukaUfzmqHoPG znvSsp4BIguK=zAeQv_+qaB~FN8$s^Vw{9Q}2iXINZI=%qyT!64g4AXBOa$2(LGIMI zVIXw}nE=Gj;s%gWvD6|+O@^%zWNQSuRo|w8)Es0A5Icw)KsJkITLh`f@Yx8mA%fhf z@3etb9b^^|+a(`B&gx0o?GdCc!|f5|vkhzyV~xSjHkqLx#H}$leHYpT2biX*kFpKt7v_vs)~CB1m0^ zdm_lr2y&;s4Fh44H&oCQfc!}cGHNUlq$b1O2(mST+^TQWKxz&$1&AF;#z}RFSoTGb zstor>kPQ*!Mt!FZr0O8EfN*1o7r?VT(3*@#khTmDMv&7oNKf=_83=RQvAqH0_7vo# zSSBJ!ONOsRkmC{LS$*3E(sGamK)#rQ91}}3f=tVBAc7o;AW!OBeT(UdgKT-ry5#N@ z5Mvy!8Z5T-1K_&pPBg_G0R4mgGq$b0W2(mST+^TQWKv=K{ z(o6wjyEFsHX0aTNAXOQ@6+t#ckQ?=#Hjt`=%qk{nx}N2(#$+afv}JfYf}EB?YNBt; zK-ygU7rG^Y*hx>ENRyLdnT;SV8NL%ijz^GZ^=%sn>oWml0g#8&m>d&JD}qeRa6Ez> zi6BqvTU~By;vid=6O$C=kXTMckfsdJMUVp#ZgHH773zeI)&M`OPvf;?#)Z#4~ZkS%Xrm)Jho0CGqy8zV?lhEGS30}Ct}oP zxF=%lj2L(7+c1o}V@!ZyHz(jk){GiU1gXieH-c=9Ah+tYLEMqP#{BF0V`h{&D#HVmWg7!zPBpN z6d2l78Zb7C<7mXF%J8j-u|WpnaihM|hEa8lSuj}2caVP%$4tcdB=pk};<|wFn|xXZ zz;*5+F-`%HCg^$?W~2X4Kz}Ft|JT9)zv0t1|6KDPbp!v}PK*l)@vr!_qJQ3MNRCJU z{}dVt{u!U@N>dB>zlC=;${qh7h2cc>zZUwr=>J2(|3BhWGyiMXhv0YMy_#m`2Vj_s z{?|ai5dFV9`2QI`b@R{jCe|I>ga46E@bAR^RP(=hMl=zRk38`I!d zz|fBVxuQBb9sOSv{9nwcY5sY`!-Ai}zxD#-K;Os~<)01!z*Q$Y)yK@taJ1 zvtW0GVK)m%xYS~trEDCuGlqOv$vxeCS)kTFk|a8^J7!yvO(i`3$L0fGVX^zwxw+c5 zSaq+zGMDQ-*Ae!aR3eIa%el^0FI^_AeJI$(2R^W|2R^Wg&w^l6jyxX-sMxHDHXrTS ztc^DRs$=ujc1j5eFY3m3Y_yPA)7qp4lZ?RKYjb+_A}+BMwnP-@q7 zyJM-{wA-Cb?OJYkHnnTJ-RAgQz2e6!WtL*2sa?(OI1p_Q(85=DJ9d}5UBm4TrFKoX zJC@o_yWPpuuH|-TQ@gg?aTTQoEYl?N06LZnrz2I zwcPG(YS(tV&GCU;rC*oFFSV<=-R{(`?sofAyN25xO6{6%cPzD=cDs|QUCZsxrgm+& z+Z-QiR{Xj>eyLr}?RKYjb+_A}+BMwnP-@q7yJM-{wA-Cb?OJYkHnnTJ-R7P&e|tQB zsa?(OcBgiAx7(lEHQeq{YS(nTW2xP=+nr49T5fkXwQIZG=H4`Zy&k{RuI6^TQ@gs` z?N99*Zg(iPYr5UB)Nb1CPNsG(w>z8KwcT!WUmCwYk6&t6bGzNCUES^Wr*;juJCxcr z-R@XwH|=&OQ@fViolWi9ZnwEVjbFdVFSV<=-R{(`?sofAyN25xO6{6%cPzD=cDs|Q zUCZsxrgm+&+dPoQZ@}Z1+SS}{cWPI6yZxzM!|e{Gc1^cCmfB6b-O1Fh<#uONySCeH z9!%pm=cAJOO_zipfQoEYl?N06LZnrz2IwcPG(YS(tV%}dhwE%ErJb~U%#o!ZrdoqAaN*k2cVQAyWz z6|T)~EGbxLitY~^`RQ)`g1y9J9j$UNFUsnj75Z2Ow(i1J)e@x092PzdV{K9)KGD) z4l3wxnceg6%JYI2yp?joWR9WXrjPfabP?vK_$ILUY>z+4f^= zv8fb3rV|Z1P{2!F1wE^d>&J%q>OB!19#HD?qz|uZ@#sxCueackE;mRw6@xtri(kF0 zQZBun-Y)x?N`TnQ9|mOj>^k? z>6LskMGo*EvptVV;9Lo^j`x7kf`36;h38VF1W-{4x}*eM|Cvgl47N-sNP74MUSpEX zid48ZIMoS_DCqyIYrJnsN$)0VSioyc4|XA183~9|xvTVnF6F8cw9J#YX1y}u)kP?K zGj@>In$`yPT!)=xp~H{%>q{E)R<7P7RQxImw0(3XI+Kabv3sE7;63&zndn2TH$gq?wa8VH(kz!Jl3Vh=KldKwm0SuwNGSn$Y^?M(J<(;a zN_Rs@Y_TjS0?31xzDkbBN=G{2R`?|{dTR+0aTIUTPo+*(1TY9>HIOBcWeU+lMK0)% z=jXzxPw*y%JcPh484>(~VGa)7(;eRFTf45(waPLinR$*plNOZ=DoMm?M309mW6L>W zZwbHrT1pd-#OcXq5^U;3zVv@odSvKPW-Y%q$^F7$=>sFYverEqGgif_k`oVuU}&&~ zOFEebBnt-8Z46?~D+)?Pae||yC3t=4dH&|LNiQlv;5Yncx#!xXmBXaCTDFOMNMgXD zY)qy)QprWp&`7-TJ>vcI$VV!P&E6eMa?-*W9Yvy}YCK|C&X4f08>}M*DSDDCQ)?A2 zC#^#CF(IEyq9UqjDpny*Scf>l-@y!S3RtoP5R=@(P;jQ#7CT~{Bi5%BYl(otUX?1{ zSg<;hm+G^U2r%$2mZHp2G|Vv+#J*|vY{jc=4w?OG({+wZJQ>SjgCI^&b5o zSuD$`22}k(lYz!oZJv#kDe%f5pS-#+1$F5p3%4Y9V#Y1(caku((o(K;Pc;_HHp$dB>DTM$erq z{t|6}K@ncA48);(JsF?mx|5ZIs+Q1(s}-E}dlbABL%8;+9Xqif;|0l*GP~fJ{YoLk zi5KvCR^>|D3YA{eqgQVpj_3L6$f|nB!r}GL_Y~AseCwx@rPo%vq(_R_QoTV-*)5Xn z{uh_xwVZ%kQp^|hfH^1hsD>(ZPkBReNWdzds+**{dPF>MB)#kO>Y-Z8MSOZBuvk(J z_T%~9Sdb zKft&uIT%%RB~O2@fK&fEjvy|f;3{Miu5>g%2y72oN@Z49I+)z`bUvA#$tTBqk}p1; zFY#*aG)Z$q{y(4y&HQ?6lW!;&39l>3z4{jQ@08W#g3b(+GlS}WDLd?J@y)-jICLlI zB}zaSF`r!WVLa1Ln@*6))GGFTDt4yO)`LNFn6$orT}aS!PX#^`y6_)D;H5vJZhmL6 zk(VUhrOy`raW4MRqqkkeRTA|g(Ko*xBwFZBUj4R7^uL9=P2zOJMB##6s@*MxTFu9L zmGs7?!&dfK{s~d$W7^uS2%r~@JR)?*;H-|}dh>pLXzcp|tAq!8N(U+GOl>=7B~G;ekdt zl7si=OTWjNTI_gp4jW-UmcitX`4n?Y26KBB6GOm+BN+$tcR2?fFtMT9O&0z#jn1a5 zR}8@`9NemC(UBd|!A4$BWxUS+WkwPV!7Cie6kZ8cc6h}`US~62=dxZg1g~%;V54SU5+ z_;6tp!H7e@{ki<~$J7I$_;D&eM}CXJeb zI%U)esEtSE+J@R;)B@BVqc+VKSQ(e=HmIXU)uGx(?Sb08c#hyL%@GVCNASBiM{uzm z5eM_8ZlNdf2EbsIM9|1NFF3C!h`+)rR_(Q43Hlqc;7B zmv)TW2KARl)uCQ7Y7f+_MvX&lKoj1X9EAF`QPWT%+*zob&2A3rGe(_(+Gr}6IN@;#)I8LfQ5#9dKQ*cb^<|@WK>e9fV^Du?)IO+(jcP)D)u<_`uNk$_rdBv@i6Xg( z9X3i7x=QROvF0n#Q`R1-O!F8|r%WI0lxg!Yp7GEK9yDm9185r-Yy^kF&W2jo=gM4v z{Pxi_GO+u+7L|?KDT?5DL#PuR&j`gTWUi?BM@#4e9o2I0FWJOIQPY2HAIQ;h=hmDN z^_=P5{WASgu8KMLNbaLH1(RQAz2oFS{v$R6@=RWj$}@ajuR%K<)2niM5SsaGZRkZe zF!|uMAoN_%Ici>7Pmu~j(pUr6mr|7Chld&PUzIC_nZ&$ZC-Va))zm$1*<4vS-)oaP zcEushSam|{(%>SWoXLMwGt-Jw*N34%D+aUzbDoM}n3#`&w;AGe=L!XeQ37LsjuIeQ z!<_g~kJ*?o#NfQp2Frb&po@$XTxih<-Dg6-P10X2c8sSK z?;w@Ns~RD7z%+enDL4d1s~91AfQV_C2cfu5BSMBe>qdG>RYt$%!urAQYNnZ?2?ImB zT0vd*A)FWj_Sw8l)=Wld@MlwB6-Fdd2j)6$QdnBiXIh~twLa5|MDxQTH+wEeL{p5U z!1@L6@}L}yvJ+Ph2EQl=V+1Kjnr2-z@gGY7xJIUMyZE^8rR@8{tb=NJ5RngR+ z$}*}Lu|ma&uT;!pRTx19JCTbKT%=-suTe2cpOmWEhkBkfqmIp8;jDH!rno7tQ z=X_u{|6xp=AH0R3*qc)@L!nkd%gRzOW|?y%1r#5h3Dd?b##KK_PBmybpG`1zL*J))^Os2bp zNeAN%TbTeTose>_ADoJ7Qg61EQ4LU7YYMiwow3G)s#9zG-VR7hbT^*5A=F*kuNj*f zik+GnEdLJ8Ob7D6O=}a|7(`HgZDKRy>auqtmu+;Y>u6%B&|}{w+wib(AlQ`BQsTr#Dn=)2ts@~Sop`~ir zd#^>PixzcvSZEGA5(rJR`w9}yzU!~U;^(fVThlzJ%LN<7>uh%}^=u*5?%?-cTkgLu zsgBE$x;Io(EE{*)GS&rNr!AwEQT>&?asBm5cbNZtGumw7YhlqEH71}#qt?w-IB7%n zy(^#AcgBW@-i|3DtsSFrq8(%AlvL=nKR>P=qe0HH{w>-uLcf<4h-|wUy4#EJ{{Gr9 z!h1mBp|eaIQ&~uFEL{q81FQ2WJ6Wks3n49{J6%okIiCzr7r_HXzB8y8P^Y)bfv;FZ zLgOp#@a#w1JPB<-4GRJV76;C2G}Hb9n`5p|)+hv+G&~7yJ_#JMrh`UhD+U8j`$L zXiK{agMXOM_uODrHX5#dDRkRu)XCG(9~|ipJwVo;R5vIydRY45hr#N<85u~B)iR&N zJM$tPuN9?xqz?n7e+`e;R;;d4F<(+-5T?BYBi3)H;p(H)*}smSb)nqLUV3YF`Zc!Y zo!!pZmZx^(*!KU<7gL z>g{k7D@nn6W^VmQ)#VX8Yn^OU(2$&_Z$xNvuV^((U2SwlT~uPQegrA7RWdL#X9bha zaCeOQ;OUh;43vjIHnI%*#{4gl%osniVmM!1 zTOKSAV_LSNGC+9TA38(~u*jEMg$nylNdh7D=zuh#D%<6To^0cz98`sA&a$s`bGvUVb>DQQlgrt z08syNC2fJq(WLGpLzWbJa`IxCV*3*V3;_gPRtX|1ss>SF6@@Giotsb)y1gLev~e*+ zijIN=0ANG{m5aZisg;XDGUccQ6ko)Um)bynSuAsxSedhYCa8f><}`>d55O-i7?Aj~ zdA%}60wY|u%w6JTj*9j&6L@4el(tI=>eBMCiqECWh)Y9hTaF6S!WMpOgzW^zTPv)u z48k15saW~!MtMVlyEx{m6}V8^E;4Q9huDY+ITwLix-xxizi?lpMHAC-<8lXIg3Rjkp8kK&w0fN?Vogqyq<=1g| zf`a`P72E#OhJ1z1&ezaYpctY)ePz6L(F!aH3f>26zX}_B4up!%6AsFIgBWv_r4$UX zb*cAK+A;#LI+SRrWOcLA8-PBp7bYNT0|nGyUb>zDu(TN-zN&SpCuJMMP&^eGDj4EX zS)v^1Pl}`tdD>4nf$wh_50m-4sHn$aLg$F$<^TDSvzQHyEDLo=|N4<-gQT%FcFRJE zCuc4S@umtG8J6x}%x%lu#dNW0$~Bdt72J3|Twb=0`qKpLqcr5;8KO=^W0-K$Pexxx zydsptVA-^)B-I)oi94AA?<1p>{%VR6P5&x*ay4#O3j0~ZI{RAxJ zp%CGIqDvexp{!JirA(!#7+a;sT2?`o-f}9vODze4{+r5DlT!WWdcX{|A9=Wz!mnyT z?I86IRHs>I6QgWn-9t!Tyne<$))Q9X?Atvj~+ObU$8bIr;-_RXnQ;{gD^@hvc(qNj3^)@FP`VA;* z=wB#NW9>+#kW?So_e-N{t#c-N-@VECL{E`NbY=)xmw_2b+Tz4x{mh zf6Fl3!)wB@47)2X7~Pvm*Ik`-{n>1)kgiA+)3uua$l`=WMLmI*AfF|yn3}IiS`tiJ zs;zS8CvCDgX)ULBsFE2**Z&V z7cJ??#jbK2sI0YZcm%<}ihit;V`!fLEiz4pt`SogHnSkArBKdG4m&yrm*PWg;*|Lk zOl(ZczxtDf@is8jcwJ%b^X{n1&wMo|h16UGz0Js<4%np7#{yvKf~si zD`@zgwci>0og~cF6>45RXaS`gAIFShJ|fu#WtVy!rFzz(c{V63VOeqh*^yq0W*QOF z$0DgjBgoZ-T}5^#N|H`o7qQS*8PkZC8hbiCY#}um*{FNn$L!bjq>_4F7iL89)bUc( zG~X7GVW%4()386{%7*dJI=T#8g~!O-h8CrFwFO{JGvFwMUr2@I!!ZG5aj{-G%=%A7iMXjRu^W94DYlf)sm~kl`E<@ zG1$Tzao`XOyK_VIHBWC9r;Z3<@aXrj&5@2XKSTP#_gs;Y8TxmF^iL{ID`f?!PX&lb zaOsf>uWE<~GKFPNr?AY@9g=Q07`KO3yqo>Iq)N|wi_7`2F|?P0H^DTJD1K3#b6T8b z{{tFTM*w>WMXb6m>Ssq3ZpVq+pG@6?(?DPv86tc8xuTiQd+91oF_j4w1cfRMm>{Iy zRM7lm zFO5`8FURn^V8wObepOMduBbdxh@pm|LP1taAIuioHCU_;sklbzYs>np3kQoFx$9>u zF`@T%iing&)r@QyuV}ECzdp%d7mMBn7_I2(p@TK*ej>-gBB;Y1)ZvIK8wN%cyd@Mo z4ZW6x6lX$3DNa!@Gh*_Bhh0cOVqRrPL_1haPuLd!P#{H_MnfiD|XEuwdn8 zzQ~wkm@Kw9Wy;Me*_1ow#zN0)3~2oXD+!&@dsSM7^;3%FW>eRXEjOkZ=tmZ9ZBsmGe3{2YYb4cs(Hqpub z0)3br5(pQ88d_;fpAaFMFd>8_Ahu{m%`3E}CDmA{Mu`;5MJ%bN1ud3QQ=v6VskZ z755nA9GN{Dvg6_&w~T{%++z6r8t{%=G%GU<9))%MDDaJxY1sJ83?7E?%?$nw%Sy^L zZYh7J5zknE>^$Sqa8%saP5{R2vdlrD2XFk=vxdWTB6$(TU##IU zC{<$(7WG_RRJ%(wCTloIO+#42K^B@s&qrqsC&Cw=5lha?dC$P_yVZFoA|;mdlO&S$y+uZN8k%P+0y=+@r9id^2fy& z0QU(o1=)c-M=&VO44$${@ikeYJV)3W=4M5XBWP9}BS&~99CcQl2uIlOWH84O5XA1t z31ZtaLF{v_&W~>(n{8NbbbzD0xE|%1d=qhNDo;C!67Cr!Q#GfMj%31`E-#+4smL{T zgb8_BMbi)yhj=Rr0t{G%VIC$Edz5(Ru9y%yqw@ICp^%?NaCS-*8{i_=Yce{DXs@lf zk(uu(3AIM1H<%fm*CY>%YDLr~%49U6*p>z7r&5GbTyrMDG@EJaEHAA}&nbTm;UG+U zazV5lvK?T}f!9w()-U$4j@Cyn|}b|adal;%Lnrd|nIq->{}MiE1U4KzxKtq)PBcoD{{ z_DgRtO)&Dy3tFY5XWXFoKN%zkEsncz4JD=IC9Ai<4lgRG>1}n&Wu@R?z*;TcFbkLI zPmOw7l`vV?{#rw;#Xh+a=;q6ziG1%Ndu-#SJ1uP2-7H~@E$arnT#>dl(V!LU3^uvF zf-0is-wD)@i8~b1AZ9AFXI9 z-xf(}%T=EZ6%?GN+NmIbSSCH%ORTWhp${+zi?p#`$Z8RW;P$3U#_C#%;}ZNe)!bw{ zo2s}Xk*bo2dq$;~bu*)(Q9R3|k{v^TW`S#rlQkvDOb$%D8}QoQKNsCn_2FVFW#zyvWmNhnNaia`Nlg4#WWq0EtrSF@W}1$K}L~GWzj&2sXjcQDqznA+|7;1V%7vx3J3 z=_r{cd#(&mGKov!s}u`q6-8UrCDx3`&_9)IWHl&%n>^>!^R!wwdiB+EY(^8UNCBX( zW3}P8SpI+1Ljpv7u0?F9wZh}65LDWQnK9gmAb|n!hM4wZ(P7#^I4Y`H|0L!ZwmVdl zGU-u`1GYt-WJq{nZ_VmL&@GBfC3 zW@a=Cavd{kFI9?^j@LRH#{tO@gP%rE1T}J;td67jh>;l$v-P4FHQCshGkH3Qi;=Z5 zN$D!YtIVm#88`EkS=>z1Lv@=?u&!n|2x698r;Nu=O7x3Rc>zgGl5R6u`gj(~PYo}^ zH$E;P7BFdPhA2J@8-7B$Wf~?Fvs=~4Azw&Fl2(ros-Y5UXuPPPia}=AI=P|aokO;m znPKh(uBock!H1*&JFM_+kY1aEWJ&4&tsx&N z{qLtTJ{{rvUCZ;IK}!Ff{xlx?zaypp-!}JQ=zkV+oW%c*F^E6qpETmH9y=Hm%g+Ih zzBqv5x7Shp6hU(oUt@r)6&-AhTiR>^B({eqLh*OmO1e?}$8!{aPe$<{jF1bN@Vn4h zkhj5#h<7Xk9RzNN-iQn^JvqUb!0EIYKbC^o{SuDZmG048-U}{qsum_^rHqwZ1V_Z9 z36FN@6aHi3gpyQHC@P+)7bzQ}DnU|*-|%Dpe$qP%@-IOm6@ot(RUk!p1L(Lgvan1n z7bxSL_@42NOsGN%wAeTt>7?IKZ>8v{nVV5e{8k7FGNTBI>x)?5OCoNW*l0}@Uc04j z!Gl`E()&ZTyI<6wZ$auvVD(x->MlVvI|GV>#@!CqS<8pj4sgYZuS46xG_!VmVUim& zjy7o_phW~i2L&0^2WHYEO=;7Hp;V7-K?rm!E7djyXR8fd^9=|X6$uG&mfmCk53c)# zpl{;hAe>g5)-A(^{uZYb#Cbm^NWrY1*{O zQ>Nmj!0LgN;+ABQNR#xZC!&r{7Y<-^;a`qArinOv&o%~mawxw8$so|$MMl{e1E~;I z1VO*G;psFRWp#|$y%Gpqrh{mnvcsR2;U%ue&t1p^ z^aM4#c?XeGP+yG9ulOuNQc3-ipiX{ri) zCRf=0Twzb<3L6+lVW*6%gVVB}X)jv7XH&+N-vg*)#A5J%%E7rX0-XOf$_ki1q#YbK zlPh4Pfl3>ILX8}ovc%SNRpBk?wu?KldJ}G90zadShyYl7BUJhE+|Y&4zTh8C$d!PV3DsSdG5i` z9oW=hLd^6N0zfcx&{yraBi`>qUDc6Bno-;Rd!reJDb8j&yDG;q@@HowZv&GX`8MT$ z(pRMEJ>cIpy&ugrX7?zKNvAi?w7JHFBTR+ntTCM$fLvqnS2M&D*Aq1|%$Yj5Iglq? z4h1@Ya8wk>wI*qKwSJZV#yJPq=37x6HBAbts#S6E`9l+#r&G3N>pYpx~D!Z`3sbuq2f;quwI_n?`@vYTl>xjBa_Kf;`o*@sEsXWcwzUGnqbEe?OE zf91u#P+J*w&51*ABQgCIsG`ZIW9wjDx|6H;iQyG*2=bGno)%7RKnrb#n}T{gl0)e? z9e^P5mV{BK7W3GD_Ngi~y~%q`Ittk-$B+R5xZ3V@P#6nR3qGC{9QYY%kb}+K2M>~JuqTZ)YmZ*2fgKouP5{Q2rs*4sJ zkl-54i&Ol(Fv;)E2N7B^1LEJ6e9)BvP#fl(;PaWlHzrbyF7Pe=#P)xF;Ol?;HE!-5 zv7PDsHJL7}FC1YaoNSrywIhQyfiCS-`AIL(r2$D%y*#M`U1uiH{nD`tbT;WSiEhRa ziEfFL=zeK*iLTR0be;*brt;F4YHKRbe@SYa+_#TO)LVHxqTZ9kMZIGbtW@oBNOXTY zT(EkrDh7>m65Zbouek3AB+)@JO1<^+@{pNdC$5QaYu&rN(Ihr!zbw5Hx^=ew*b+?z zNZ$Wo_{M+}{r5>;f3K%nPlh&2 z>@(-~GPUP)3AN-h9WtUtYx9Q6)CspoDpe=sH%LYB7F!P$a-=J|PNQ()Za1h-D`NFF z+7fdf#O|g(iCX7%#i7hqctk71es8;Enmm!4CXZ#)_g| zJ=d1cm%a>$7Zxsa8Lw!NZa*%RY%ir~bE525mkzTnSfhej)*O1JWBx4b*K&qN&}>fI z11QxVIbu@@3pnXI^Ps%oD1Z*iMLKIo>@su{RhLA9|2k^~p0$zoW}?C}FpMV-%|a2? z$%kL@rCXK|odLgxYP%tabbk4PS{GhnylP!&mL8-W>Qv!c8Fs99)@=gRz!r`(F3+jz z9tfitcrH=6>X!2~AK7ZN3M!dnli?!nA#1hOG&4xESu<|8{$oX_B2GNv_eB7`&*<6O z(Ug+d%)Q;hxbA49$1@`evIIBh*T1tC8K{6*J~9OrHRCdcHpSu5T32|n=yr?r=dtk> z0p=A(9c=tw4jVN?!EpIe?h`g@^qcadUtC;ZFg5J4O9&2X;3jY12`v`DmAyQ>I~;NoSU$^I8h3a zjkMkL%K2v6N~ZQN+UkO8;UkZ1BxI44C0F*Zh!V9^YTD)}J+8SnOBJ({NkM-dt`TM3 zBtW>PBecOayZu5Y7?f4Y7OrXAG9Niy+Xt?xn}%x~GqVWa?i#LfP=Iigy7n5DK^Fq- zK_1f(`l5XF*+`thJ!#V&Mcm@S zRp`W+mtpz*xQRVBHXdz^ouHch6+DCkg`7RYLycK118EIv+G{O4koU;Inq$_p`yqbN zS&n%jX$Ca6IG(Z(4>UX-VKg~5V8T+E@xQdwNxx@*T3{S}z~p|;EKi|uq#+b^rbiwM zLW~>~l8#M7V8BWwIH^897uXT-DZVu5x%w^MXTB)M)^oDys-MO^AA7hxm-|T?ZkYbv zIi|lOWBS`7CkGt^9t;Q17w1q)y0E=V+$ds5jQ_61Myb zBlG3E#nQUK>65ke#1vD}SFm7K5CgC;?nf|sT((6XEv`4Q-ANy1%G3I~(T6e(w1qbN z>eiZ&%HrUEH1{T?G10}+cf540Sz0e0Ur85J;rI%uUrshQlHS|rCF5sA=DlRx+c!?Z zc%|cZV++O-D`|<$+XgM?=>l0)kmzoi%~eh)mPFiBFA%SXZ{X?|sIy@ym3#YBw;wTp zSCrxvXmmrl7g-ufL%PAZpp4Wq~KhFZb@F2`2uiDVYqi zun>dh2+G}*U6&*;_wM5yigC%kBs@mB*HkY6P%rlq;N;$L+;ZFFME1wirqH{Kue|HHh*~~Gf{7XVF z-a1F-Ve;?L1jFUu?H&b>UH)bBjY%|4bxw6IC;!&P<>g;?-g9MJY3eJv2`-Pj5{{toaXZ*Ilzvlc9f1|poarstbra`)Rl($ z!x?C%_*1zlzBilVubtrgyWtN=@cpfk1z+#b=>=bLN4%y+6?|VUI>*lEQdv;$V*8N_ zq!BzL>l382+$}LRbIxe6+u|~${r#xS|MGyi%X4r%xk9DpTV6)ruVkBt*|my;t9J)$ zv?HPX`dD6JX_8)X9`lljO4`JzYjml+Os_k5%D=178};(~j2XQ!@i^Z%nqzmr)fHr} zX9{6sfq0`T8p%10rHf%(+j6dJu+Z1XxXNT*0Tx3xSEwto&PqrV)pv$2Jmy?KI0A&N zeDcpTFI)4^!{gb2oBHQTM&RH+s^kO=3An5PATG;_VrB&VgKbR8w}x8I6*yAwJrn`RI|>%WW?@vl*)AI!;~Jg;RGk1a z0v56u50Z>MAqQh#xwWBdh@G!! z<3s2WlkD!rn@mf0cnm$9r;yKi41G~hl3=gai|ld4lKrX}!_Y@h97Fdw49ycZ>H$Ng z(F#MGJ%+w$bdIT&Vd$P8c?{i?V(5$G#!x#>h+SNQ{T@M^(~=BBIc_1{s#+s_ayZt| zq!n^CuS}zY#5Bz2f8}B*ON6IbnNeCTzb{Vrj5!`+o;coPr*+Xjl`=V5l|G?ni^E4-*YJ{QwDD z2A!dzp;i@j?14ySDjJGFX}vq!&d;lMz6}=-Qx^WM8i72J63B0P0(oqNk%8d4gYtpM zTqJTWsFB98CCQ9eOEt+!lTqoX2scE=JULS2k3YgaZMOsEQU0e0mu^S=DTSLAoOBBJ z%ugv?O$#w=%THMWGFf-`3!l3B&h!^-b8YmgoP1@D+VMt*OE z>%>EWRZu*CQrSyB3tEwrD-`Rb_JVZ-$tMZfmC8jP>IzNltb_&N}_VU=ttJq1{RIckCAEi zwy{mK&g*|1w%Olt_A}s-Znt5C1&tH8&DLN%eCrNX+&0uUyWQJnKkhAGyYdKFcRY+N zUeeW^ZT2N2J>Nwr|EJJVq7${v%0GgV#EVGIciQ6XL)8#fp`^oY6ONijrJrJCZIy~yT3ZJ@$u^3g zJd8~3wkI1S|KBkLOlO{TQ&U|2C`9qYnyar3b@Yo^wK?`@(0DT_0;jLR*l0bTN{*PCw$T%@2~ObBlo8~`ltBEIY%dDnLjhoro`{Z z5&uTB(VhtY{S?i9ie_Gw*4oo(me~_QGsxW2IWo8Jr)2K6m+^ia$=qm$+7rRQA60v- z4gx*_dn|6XucbZqQ{%VC>IjA;s06x^J&w-f=$xR*++2}}i(F96_9Xsoy`fr2I&X># zo8n+|1zRn~X?OQzsVk@*;DaL%+j_aL!QUEqIp(UUSLR?lD3<$f&1Qby1X9SD&E<`H zG_N24+cFmP4O{X+9-3o2c^jmXHAG|LW8k_O?`fgNuvzhlq)-SJOB8{U2 z8*;T!-d3n`5TTCuE_NXT<3AY}F6ydA<&Pm=ldeFb1<~ca^U&@Uvf?MnDHej(v-j2H z)B{TG z?XjBnc1QC#jb1kz+wuixo*S;&{)f1r^Ofants4o79Fy4U@VmhBMH2>`s-`_}+}$e| z{ZFGuYTsk$7Rx3N4N)Gub(atm}mS(2F zb!U~*Ox+Z%`}35)!&ZRI8Jyw;%a=Y;gXQy|NMX4>${@pL1rM1f4;j;=v_{f=f%!Yz zeJ?6gOIaQOoHq&pngD=5`B?za)gTT4I%j$$062hY{Y)SrQw~=C?hT+$35t1S#U_YK7@gYAI` zs_ezX@Un0`c&V)!9Xb*^D1E3A`ZW(lzoud62U*pWGu&%#fP305$B+)kJv&W<$>(qn zV$cBh{1nS@PnZU7<=~>d#u;1`4QW-MVAgW#6Qvy$1qW;qR5+*`os0*-SW+Bp)^vR$ zH(ejgrfY_r{l|fv>!ALq`jWaACYB{_48dg+v4{j`=}3UL=MeQsJ|%GT)J;Vq2LZm#8NV|eTupP5l_ z9DcsqxpeDW#QQ6glY#FCTx=hHxEg-G;!faA`pY-?$S)}pR-JtL`$6)B?+X(+rDJjz zIVLZ!Of6Ab=TgZl{CnkS@V?ypFN5_#64SNG3G8wLS&tt5?HkI!OmoRyUP|n@DD_!N zZAxO~ov!2?d_T>1K}Rr!Z|zD7<)vDtZ=<6XZeWpcLrh!3fywVJ2v)nQ;j+O0dn+~C znea0?M?~jh&s4#is;4IZE8v=Y=L+DzB@uCY{LD%zVV*+kf)!m>6AR}*(^oAib6WE5 zJo%dC_iHjsk00X82C5q)p635akqu8@fo@2laxN!%!FbI;(^s|rz?8qRl zJvr^#r0qHj+IlfnwP@Z>iBC=bH`h&1DD);^DpP?R@1Rq!0|fMki&qkBYW%vJD$|m! z@$0rETQ^tAh|-0aqqArXb-3$pI!I#^qa!Zg5Kmh#$cc|~gbZNe403gY^A2ckm!t_h z63VeNojF!%7ADju%DVJAll*4J+%6bT=%UCeVv~X|SArqP#8WQpVwC7DN9pSTa(Bp4 z+^QSn$fPt$+j@Gh>Z=_|J55TSrx)shAfaw_T!f@lNZM(7hu!GX4oF%Yh`RcCz7U+J z3u4db=nqI`Jkb}MwDk#B3Q0eQ7FElDnHo52O8Cl2(>xEPD0^+vANN%zB<*&sSeX;9 z+Sd1xx`k0n+tWdN2x^twmTL_o!j-%B&=GE!D;&3$yCIHZq4I60Xkchj30rv!V>Hq^Nte&8| zeH?yUxQbIZ1p}L~+?Vu0Ce1~L#lwfP)OaXMLx<9Uq(S44dzhLvkD7s6>zk?_%V`3~ zKQV);*rpQQ)o8nIa;-O1rV2M(Kz*h_J0NfGVz#$jNYHOzC>koh*`91o-Yp_(k{rzY zhAJRS-cf0$v<@JmDl~wa(qO32wSA+#c4+9EX%UUvsMZJtDjg68a8dK3LUq-x^cY0BpB!mcK+Zq~&TKX+rbfGf%7PsNkUzt1rm+&&F~DF9#HeAS%v zNLrW_6CT;@Bpj!dDRGmRBKne9$uFwN6WPq@Qap`;43cldUBmKHk+#yM%xKVO zh1HQY0#s5{nFu4+>?&zb+Q{CvqKle%_JKmaLP}IMgs*J5y1HL zkMDvC3N?)Oo&Ir=#7V}9=}@y~2ix76v)Pfslr%_`YVBn1h~(m2lZkmxOq8i8;9Y`?_R`aowacv70^Oq@N&A_d&iEFWM6^I#rr4b%{@ zOZK7t&{snYhE`M0wZ}-tKmf_0gx&6LL+A*!b z3#B(Xg!D5ofbr-SAtwT78YPmAMqSp;6)0|Tc!1KpfQAX#05D$HTC=RK7hj=kA% zyn$kU!McHj?dWX&Jsip%d4}GtW~^bvEeU3pZX12rP-NLDo{rlzV3dTu9pf0cX+MGE zCL+;z+!!#)qxItkPSuTD!{Pb25r?Nga+?hCLuXcLB<9)GmBKv`M#~39c&0U}2dQT3 z`AdR%noK%@&T8&qLb=%(^{OQ^9AB@BqVlWGKRRRgp4w=5Jdrn64FDB znl7g~%7RF1nv&v>v!#ZT2uNKTq+H|BaN79O- z-Itp}JF_YDo)ZT;^X8Nhpnl4a5!7$Xpw63z`fy}DCa6zmujUI;c~i3e#i;x*VRHMw z=;Jwl|HYOBj{ZrF$sGBUl*uqwPv;``Wf2!SyKMhIgE}_q*m5<_lER?3BD3Z1Sx6Qk z?6VVQ4c}TpqzWj=Pcc{;lnzJkq+({AEZxQirdON9mMC^Aj0GImX&M;Fya^xcxX3FO zF_v2@uzV@Y%r3+R#|FuGwuK~`6x_+!RxK8{o&je9-;=HE2`RxUXs#I{JE}#;wYFZ2 z(8|(;dQq&lUWAxZU@5MR5Ds0Ao4aK5&}D;WRp4STxI}Z85-2ck#nyxoi^U6gsWm~D znNeVK7ci1Qj-6nn<`|HgG*>l0ZRV(t93tX*Ipt7hkK@;(IDynt;@!oSmLMH^@< z*NnqBMHJMRJ~7Nf$}lfu2%WiB0Cx?&FAkT+x7`OB;OY*Na<|TuYG5#<77sHOf^o4T zsw?CEQmtJEU8R4jodD*BkcR6jO-Bzozce@>(AbHxGXV`G)Qu;D+zDAKM!iw5Ylq5B z$E>~DWc8D(HfAy!GhPw_Q#i>Q*>giu-mI=0DORGX)n=Jmtba3wPRKDD8%6;TvQ`Hy zA=!k%Kol!nf_}zLFdRfuC}O3^ZFLT4MI(z~Re4frB4y41t~2Q1jH0O8!?~GqZ#Gj} zf-@rQElO}}F2UeE=^R6lJM!VEG?ntu(ik)iRr1BBgY&vdllY3mH->D!+I&{X1mZh+ z?8DlYRhk?mt>rVS%xn8b1fq&(@2O4W16dUv?9czE)%S8(DsvzFH>2b+7l4-++3x#h zE!$2PQ87yWNUpqxvhtoPxXH?4a}qlJxLpQb1JBDPmh)U;qNHsc;26{L9|9)?PXtLG zGpe3YknZBR3D&^SBSvxs%q&?%{*{7{Nh~4@lpTJ4SfOU@`X{D&z99}D3 z)!x>d(!qNR4Uv@0+KntHOld@8ms{JnKpcy)dQ1%Vk>$zkJ_Bh@|48ebN}z2`gN{i! zX2lL-BO+ks#KOU%)Kd>VGk6r63P6B0;7TZ7-3PNz%!F#xw*s-Pl0jVGAaByL<{a{< zNUyMRM!t3Jdbv-Gc{Qr3ACvCDvZxoo^|8Kmk;DupZ#-pFD7g4egvu8_LDQziYqn-T; z>MOD3-=Vi${+9A@V*-w#rK(7eEfm8+LAUU@{ohG^u|sXf0r1gKhuS)F2}&ZgLb0ee z$reF7IS0P2&`Sm21q@86jq064?Se;bk}wn2#zkQlB&s_yJZm$Y0kd3IWvsS$xzaF5 zbd}FM-Bc+Svqhu88nn%Hz!4b<cLTaCjuUWCp;97ouBY2#f!2R@fPipK^dQsWx%$<^QFw7T?ZXwolQU?cwuotPOs z9A)+18>!+Tt(Y#2UU5jJnn~Mr6n<%j6N-cqA1K(QgoS{{35|j6iG!C*zYq|x?LBU1 z?abh6S2s0XVO5uVQ5|^`OCBp(X-<}?gVYE6(?YM$3cbel2ieD$+jERrO89u#c`IHO zGJ3$NSfT>Z2=0hNK#QX@qw+%LpS^W1bSQD9ttF^un)GNTvVDibldDWX1Y2RcPRf#a zS6tBr2R7QMw7@G%%Yt*77PgHj|fq>b$xc*J5f> z!fC>mSB~0b(t$217M-szl);gt>L?2Fs0@N3 z!zjWlFmvUG2(NBZLA)vI9kC#7ML`Wisw9~EKrp5Y6~!>wB_(;4A5LQ58Ae8Qr&mL9 zO_bkPe>N%_N{KmA>EwXm@-HxXEn9gz(k#K%2(S<&@e<(!vMzebamYz4Y?eZ~Ey5N{ znp7@=x-Zwx!%WLLuDp!T|e_$r!J4djO*W|u~ABSFx z^prNCKrvEIx-+y)=T%2G@$CvA0F})(-WU=$#h7O@a!4GYQ6M!VTZkD`LE+3o_d-eD zfI{@wq>$3K(ADXwjL*eX5+;y~H>QyU274P1`8f`{VCa7E)yC*PG+gMu`>1ob%c1*@ zg`oSNMp1Dnx)&ua3c*`a1b?v(!F~Bd5xnIjBX|gc8?JX$&EGT>f^*-E5Ij151P2ww z-#Qp|I4CG>n4N4BnvRUh(2+2?*8$vcMHpZD86mKAo8fT|Z6D8}?Vb#6@9_F3Yrdw@ zLL$JOKm-HwELP4e(Hz$?qjVaMBhrZx+l~Q8T%X)T`Z}4bX+SbpvzNJWlISF@bh$l4m%oY}$vKR* z^w@MB1pjD=%F`nd&hzkGq>r=5PSx-H;1PO&*X(Danv$>`k{HZoNK#6NBvEn~ zOJg}<_j%Nvp~CJ}6k@XO6%uvtfD;OBY2P+ye>-MTmtz?~?fY87iJnLJgIYW)npote z!sbjW zBZj!}m{Dy%uUZm(owu0sbpSnTYpqV|irdgw=_uk91`U;Lj?x|Rr1j2yM3fE0Y_};l z5ho|)@~vzfh)d=>U@LY-NNPcHjE%sBUDp9h5KiV&RtCw#&~vk5pHxc~7rEk0@TUQ4 z4+f!pi6TCf(7K+ID47w}pGsz2eX+P5XsMOb0ossa)nOKC};S1PN+x76fBV{f^lo%-R4yPvr3PC4*ZG#2L`VOR$%$lT2)Cq#|ggmk0@6p6vI z967N@cN7@;lpw{sDJ>HiR(wrJiqs@p5%n=S8 zfqQ}T45+i1BC3XtL+W;4v3uy+rJ0Pa=bC!3G^EGbF8MN7IRdG0MJ5hrkyDTi{|H5> z2HRZNte{(n9q^=iu(M@ytmAW;Oty}Jp+_w&KrPkhMGFfMQN0nyl-64}biuvFnc#_4 z3cHhH%XT(1GF32tVem^a5K~^MReD3n>~U|g6ffg792jrp6qM1FGX!^LU;98Bmr6mf zr_Xvu`kCAwj}qdU_9dtW~b!2w+~8bGUfAwjb+NA;iY8& zF#S)}UOAEDPNP5yA1ps8f2?3T5%l`e^cCme+UrLPrP8Hd?zj@>P>}nk^0EUWOt#N6 zf(HeiVS)Ybo5q0!ZheKcvV1c1?}7G8lXYFVZFm=8tuO7WDG<-^5<*LXF!gX~hSEP` z#=bLWXudr)G$+583+>NBj~=L%edK^IJNfrq=!;qC3%SsPS?ITNq5HGYr*fftv(PW) zLLbdSAIXJ2l!bmW7rHAAEghkMAI!zvmc}Hv=0XR*k@n=jzESJn;Vkr}T5c?cQM zNC||*CS?_L=l`*6IM5EK20svT(!FdoDM@4H&xsapYMMisF~%@QpH!tIP_oyUVu^L# zh)tbkXOXND&=^@Im_23z5=Due9S7nps}8(aHXeAfs46_#>8PlxvY)E1E1-#P0zLF! zjcLHpa29AFxTM8os7Hrwok1T*uQ53lDwF&*Eic~<0F9N2oY@<6%Q005Pg)EFOU1NG z5`H2#T_4M)t9CyODgX0hmyi0p^S_3vzh9Y+`um|mYVD!TMc7WgVds$a-X;wj#4_3b zeS?dHm;m(;bBDM^D_Re4n0L64PnK=WM6}UckBUf}lIc_iB)gGK=(vnQh!;RNGX{;I zD|3Ul)0O4tE(tUHIoDvpEx7u^>2=DCMfMj40U{!Ip8>ssy2z+sX!h&P-hIBrj1~0%WaLYt^W=P6C4_ zFx*t2>OXUC5Ntj7LzT&{UrjRtQ%Txp1*e)-kTh3FbeT-L;GEwS)ndUvICViFS%PGz zfwD5dQe3zCpkUW88MVDn0$NPp#3*DfS6QZ^cJO#z#lCF45+_&!l8*Jsp7*kNp_wBy z20|?YmIM@5rdy<~%nF*x#sl->L{)S}HL75LaSQ2DZye!2WEBzj8-R+(uakhsucdcx z>V5R8TFGcNf@i7`=iRLUp#PkB@&~J@#1lVr?pOD9^p>~mK>ERFApMLd@A$yEZ}{Ac z|E;{GIz{O({modM8v<=!d((VRb^cBZ`Rv&GVVM%~A7UIie=)@1)Tqger> zcXGfa7IlcXM4JN?rzOlFDU@)6#FrPT2wk?LG7+?o@VEz58Qf8hZHP@lvmvHnbTHPl z<7Sp20lW4w=mWz8~E1 zJYiMU0gh)|L zKKTaN97|(nC{LHhSb317(OUjw$n@ha&N(A+X_iQX>~`KCA@zU!ZVS3fYWGpI8V=OALbr2_2U4tw@9vd_tYoatl-?Us1F#k~So@1bgZ+-;uasBXPQe;v<}Sl*5hAt8wF9&jYLhx9R8n|~)k;Up6yZ7` z`o+xYfmZ^(Py!M$F_}e@d~el5VW-QD&k4XFNTw5Etlsi{6_s?-2p~|BqH>o@$w1xW z*uAf4B1gT{nAYQ)M|o)--PB>$B;DDagC}(?q7Fne*EE~0B$e+Bb})>^8g}mW(nDsP zeX6aj+EkyB1eJ(C762+zdX?oZ)r7q{1D7DT2o@I-Z+jPfoY73%@<7KHsTH7`-UMFJ z>y&UfCouFMDRDeBEF`4YDmsSdr_3Ypv?nFU!^wVZ=(9-jqP?A+B7+AIO3sU+E0`lK zjBAX-8>Iib(Uy}F^MgSjH~SGbTONmRW4E1V34Oc`c+!ozT3@gpmd-Zfr3Qyk zOxIwr*Tz`Dj^SP+_715n*pC`qZQdA}8)Yp0cV!Bbe#fX_AC7D|OzrffKWj)vF)Sen zF*+0KEL|-g6dMm3p^A*Z)KvniiY$SgIs8@!GHmrOlJJ-1j^gLbKMv?6<1eKVAaQ?{ zddnUqG-q}iTqjkL=DM*nkIV~Q4K}$0kOvs*IA+~9=qX4x&YGLUWgJHTH=TEucYk+9 zjaHD)(zwM|TItsrA{yan4lj<>@gjScYvv+rX7_lT8Kup<;x#H-KE$tlJxT_@F7zm4 z1rjHIWtcJOOFs|8y%w-L?MnQX@hDaxNrqU?-cA|Dt0KpIMPBgZ2@z@NJ(OS^1j;YC zn>)e4%VHG_J>x4s z>kTvKBKHQ5?Gf7uXf{_^maD1f+eQcl90Qxjf@mXeO?J1WJb#L37FhAP%Du7TaRvF0 zkiS4?9F6&s8{vJ0Bm`Pb=5HWNiu2M0Jx#8l;6*SH9%tLuNRZ|^%HVsMRa*YMkeH-R zbc@g)Gi0Eo-K9AK<3~rmD>VAhlsxnw2Dhf<&=Fp+Ga%PEk7?v0*oXKQV$l_Mh!fF3HBuCd zN{N$f^1KMgLrZMHNwrEiCD<_t`Sk169NM>oWwO+SVcsYAphz(`emQ{`QW#${^ zf&y8z$x?lzjF50vQ@fz|h4LHB{oYVA!D;COVO{gBjqR@a8rPd;h1}|T#fBMcy27`3 z6t^&(p{(gFs;lYkuIb3jVWmwnQnPx{Qr`m_Ebjo!cF0W#U+RYTCDRS^Mp{lG{mgJ+n`3}FWKa38-0}S+9k>-lL74`@BFH%c$Mk$9=mC_V4uc>M52>0f@bM=8`O z!OqzGkGKhC$5cCmC5iwl3=>B?S8O*lHjSNGi|w{kEsX1hu)6XGwXnf|5J#4GwG0Ly z;6>z+F=AHhHtG$&iuK}VN%quSzS4>KCU*^oUDmo#=*wD^=9DAvuv0<|K$Z8c4? z_-0LvsLBtc3ed(PICbBr8AN^eefmR44m4yDPG+`_TaeUFV-oN0VLMxQYTX3kdo7RF zMbR}x@0R}vvQON4Zot3)UhL)Be-6xC0sZIvruZ-GXr$I4vy5`N9xVMXU^@v*{n<7M z)jqKp1lU(enV3wEF~+uA6_Wq5^Cjwog%b542xZA&gj=7id{MH9N;F2u-2Cph-$mDA zZ>I^NWNJCgM9xz=w&98i>LEz-cA76%4tfZl-)veaF;b*eJtb*~rD$rjonWm%sX72Q zzW@;WkaQPftfsk&z|gb`8C8^h+=dvMb>SeMjnU%)6|>1u}7*4)X?;65g(;ym)}tH0Vzf{ z6TRKc5GS#&#>R!xJDs`1dQnz8U3b8={xI!ke^_VB^4-JoKo3D=(yp~WGB1Yq(U4k( zLy9o`tr^1Zoe;Kr=U^Q*Y03}&iFmq;qO?PUw8TWN*y%s0Z3Fm6O8<$5=s(brfhyML zVfv4SL9xVQPy&>@YA&7arX1j-U#CE@aE` zOP#Q_h9c@v5>}efgc7K>>rAH4HJbx7?KN!(Em_(S{S6__zB^)VbO%K&>rPfC)JT4& zP3lll+7MfgIYUl<;cA++A?&4~wi_^<>H!_KaXc8bi%@gTU^j)_P-T>W&skeizgAPj zNv8uUzz`E7rpty9s5eE%pZ{{>Z{Ts`-;^AqW;Ja5X}U4ioc7pUX`%-}25;p||8)b7 z{)=WPP~qK>fy%n?2OSmL>%TVUBPdpG%<@fFGRFvfg&g>NSr<&uS=xSTU{TWctv08?!X3IESe76KR-XaO&Qk$=uolNU3~d?#%a>ILESBCpN%8r`p;Drxx`hMq z{+JB{Y=_}3VP|F4q;L)mloTJZz8Y}0~B&> z2B<}@kD$XaK$)YyHU3Fw1g|yzW38zxE6s53w^WC^f!b5(5wvvbh}&Oih;M2x@e-nq zR6;YNUJ@2?0PF9Mbmlsd^D0_`FKpq4f-{)X1#P%NLq*k+G{VzP*>zMHcTQ#g3QS+=ZB8F1Q1Ud?jAOK;Nm6pCrXpO6#0ZY45 zPgckf71BTCUM#1!t=a04VDfZ(`GQ=H?vx0tvBx9`v}ef@fJfWg1f^=x?HY+tNp0#o zPbq=JnFkgLItIaR_0ryEYB`)@4O#7wwMh7?GT7&>zReU{C-rE}CO3_+(@=D(iw%!u zre=w@I6-KY)TYDIJ2X=7b1o9JU@T1O)gGED0v@_?!!AiQxfg?B%;?>dfE_ z_Ckr!GJ)J8fkC5#)*EILzDR>21%n|{U^#Y(1e(jmZ-x$A*4m0ws+$tOL4=&;G$&c) z{fzxyiEPJ^rZW<%wqLuOF}RY74eer@RkzX74MKJRNC^A&BhMx}^IaS>M89{!V26DOhgn&!DKN6up)w^w;6?SQyl1qFlP_@y-_ z5{?BlE;QtqfE)y(YlM<2TY$GIHSexRM5#}Vy-_lDcgza#7fSgP!Sa!!)zA~L zL2gpwRD;}r4njdTI= z0FyozrG?y(6=F^R$u5D*hEe;0ov5P3;FFD(C|VtSoKJwDQUlHYBMvl8HV*V`Nq|q6 z_XYSZ=jKPhsnL0pg(Frg2RPMj*weUfg#K(yMynXqz98$Yfjq1A*kP}oe2z67UrBX? zfQt->y&c51{dq(2e(1R^`=*2LAJ>66c5cgIq*BR0px|^Q6b7w3ID-wQ_U86UnZ(jeGz+c8 zFxEqaM7aCHZ14O`V>KL5lL@`g=xi`ULnoHyolb_vfgvyGv`ZjlmrF@i5EVfJ6p^d6 z${$F7Vhja6rdOLK?DIAgvs*&cte__;-+)$!KN6w9j)zXk44C^6m7x5gFlpB!yE}&x zOONfh*4600sD4=S-CV+Q^k~ZsXiQB>J7=q7W|tgOLNGLY5QVb-qq1kn-lwe*H^`p> z__-sk5OB;Hl2d~;HmJHLL9to9ghp@5uY|Xv_Tk$Jv1)j$wt%RiD%!WFS3@6EwALgM z0)wThfCyl#YU#84)bK#T-Y50|pw$w!i~n_yv#}1OTixxYjTbIKsq_cZsSHF8l6coi z#I(Y}CYC<%kFx|gg)5zI=HUEvcg`;|rEdxlf}$r@kB5DcYr#O4un#@iRfn&I9Le*U zq;^Uwa&0P=R@q4y5?PIN3~i1E*ZB@PI63<&%_>);i!^3VW(=7shBGh&JKmBe*eXux z^gwBh+a;2pnI_6T`E@~Qm!@*z-3sC)Oq)RNwiZM=4GmVN($cMV0DUp(ya8_#lc~e= zD5xdrJg4!71ObFMbh4&e@OHSqYVi4Drbfxb%ae{h^;uKs}hnRs34tN zsN`*C@WzZPndMfxk!%Mg@1l4zI#YUIXpph_#?gUvR0oaNA$!avcfJU9x^wnGcX!Sn zaLtG&kTIeuDGQ61KiH41q8g3{M`*gv^%FdAafiq(g2trh`yn$U*3{~U{`g}W)fzkO zkCzNaROczTuOE^#`uTnZRW1$38;gFxU4G9G9qy&y`k_I+wAoF^A0*7pkM-Y%S)*P) z4N>T^Fq0@v7&F|N75sLE14Umj-mwv+Lne?ZV?d_YVwYwNCx~)yC`Wa|4*#K}yaPH! zy0H9LoZLe`kqyzNS#VvKjjMVzG00Z1Y|vSM+LY3Qj7*0wQ-;+4sgPqNnn|uG-2@kw z&*Wh5spSsMn*T$=NUf=9Zoe#Ks*PsBEbCljhsGhLAT16Y9tMnmgB4`@U-;^2!7Wbz zGxOUBg%6FR@S7qwn(08mR5PJ((xZYZ!p*y&*MU0ruJQ(n8)p{!Ss8)!6&CVF2aspp zwddUKz73arXc1C^CbH$HyXZ73MqH1+S}7lf!FV|Q3@tRR61CGiiIbH7rHhyTwau+u z$^usSU;_Su0-L9ESBX-&CnY13ZrzYMe znSudSK&Jw3R{*Su0yIqKu|bzjt~KVthi4v(^j2*$C*&R%3j63L@m{1|DY+bcTdjlw znT%~}ycFm{fGj>7q0BwRbY|X6I@iJ7u6WiI^(GEUS!mBH7`KxosDx2(EMp68zc-}d zNF3^3D%J4$I&Dok2`h9;?#7Su)Cs|irlsDGQBI2!MR`X+%l*l%MMu=T37?lc)T-!+ zI?mQJgH?|4G47Y!oJg69h70bLXU=I`9COy8tvby%vGKsb$tYq_lBu)RJ#@6VHnG!1 zI@QQsx@OZ!-KD9+^m@+G(eNR6IH=HH*{6U?-tyyC+L__tf@H+|m5dK8K?|ZiKF@AF z`F@BwE{VwsG(%d{tN-HS#6nmI@CZ^)nrfv1*zRbzHD6GtHQkhW-UO0Ch!zkfQQm;B zp~?-DYr<3|@g-V1H)!g_o=^h`f|hXGY0k)!EP@OH4FYB3s_jjGeU*|2s z*MqbJkJ$%-r<}r?2Sg&9Z4qmSi{qjF%lPtYsRo#r#H9hQ1JJTuQ?mQdtw)dix%G(g9iW?jS?(bh$AihJWjWfbP8BIe`8hIzifx@4 z$}ch3e6^!OFKDFoEA@yNtzpu|Ysrs*t!23ulBdgZdV;($UD)b(hm>(Sw?M}90t z3k!a|1_FQNrC|jABhw)8zglN`08f}u<-b7k8p5&y8^*}9ERbykmgULst)`Cw5~)Qd z*UC_^_a*TqK*QWcYGg(tG;3g(;*34h0Gl|f7-^+kY3&Lgn}jU&=>RxNs^#Q#EM|Xr z3EC2A;y~Bz#!L+^^DW@-)mp-~iP_>E$TiO7FE;9}6%^EGm4hBMizRexLRX6 zDi4iX)*5EAua|b2>Z+@#T)n^Ggc{dl>#A9VAV@oO@MNNiz5d9=EvFB2r41;v7Gv7Wi3<;;!pYsgj| z!BS(c!hJU*{Kn@}J9A7F;*LV;H%OK2{jO#-n8hKa>G8y8MjZ>?TsTQPUx_XOea0U|nP8=9y9-YtnBz;jvrBr;c1>nItf zx`hWg-Bm79F0%Q^tPL`?ItwgIE)=7-(_Rd--nh{tN#qI>{PH{HU|^9JbS1!h5ta4u zOt?U%F`b9JSB|;P3&cow&6w#D`SldlS>MXowUU-2iL1Rs%`$S=tAnYQPOQaoJxD?N zw8f00Y%zt>Ka1-*TTrSxR_s2eUCeCR0pbW(B`k%`l(5$`QCBmOdE#sj(3Ck9Yt6evux z6<4Zb*+}{Yjpjx785$&X!w|(7y*|UQ>EKuC z!7yw_fJt`vrfUtvBp8i9C)3o9=EokX^CwbA2lJAV=IqkgvC?5Op?1#+C?Er-A#pMt zpNopbpJwwYP&r!XM^rTKr9|>wk$MP$q!Ee*h&rgk93NE9{XZ^kwcD%8ud3m_0k|C` z(=Wm~X{%Fv;$Ta1-~-VOTL0ks30rVVrsFD@9QnE~3QbTYI9STGqY}sk!x#`SFxOnM zBv|GOKdQnxOX-ELW14o?5hVxRE^$Vch;QX0_U9v>%0=wWM|>$4@n{zDg#!1UCcEt$ zqwj;^23aGL`&~dWx!1i&Ricgf&>_Z%m592NdVOEgxn3SYh|rc2G2In|Vnf0R7VK{-JjjOp5?f%Dp^LGq9zA)V-@& zbpT7XIQN@01qT*5P%EhdV*_{}ZbeCSlddKQoGLxp<%a|iXxfzKI?|5)&;0770m)U0 zrf~DmM_3CsE)0^&mKizv_HS=2Ok@$OaEo{XS|Ua|M;SYyj2+4*FA#WR2jXpoAT6kd zBw-n*B~9C&zUY=6bYX_RsR}z4k3jvDQ4Vi(3AqFUEm1xT=uor;aBp`?n=o;R8J8ex z1rKAO%%yoG{kwZV@V9}EFNb<0)7MwM=7ogvi{@7z+6f435m^1d`R!4BH4-jGoAWZ(@!EZju z$?Dqw%@v00t077)>wwew<`FBH%h;t z*WmzmlOxk!<3bj<8Q-Mqm9Su$)KeY!9tGH7CQ>KB)2o4-2lv@n60H+8#}m{IS13hH z8fOuctO({9=_wG<8Pp{6;7Tjta)F$do#YW<2|CXTO+1k4Q)|xvv7-I~%h1CzZDOur z+D8F=7)4$CN@ve6Zl%h$JiBSDv70ur8{KcieD=c=7fZ~9xMax9y~wgm=uhCSLCQkR zC9oU+zHN>rvTa`L-1g8pd!#=*wnX#f1n3~kt022b4_kRtA~LDt7?u>%o=Mv6MpGz@ z{JkLkWjyU}K`dX^Kr3GMclH`A30Cu<30LueTVAOzo%>)-xW+v=s$E09MR8|^x48V< z$?wmWE?_HHw%|_pj5xi|avb*GFZ$`IwKxvYf?Xz_hsg z^$Zslb}7w!qO-8`@v{Frl8>}~=L|-frEE>bmc;vMw8(?D?1HDK!JT}w2rjWQ>a{m1 z#pS9FqXM+_+|KudmU}@_MOcauc=H0mPEYt_%3G}Ef&#e739~dARbMkyhdZ4{m8wXj zS}P=#J^bsxT#QE9b@dZ8x_;^$wk1B>_yY=x9AG?|t7Vg)_J$yXJ zB}TjS@i9IQv$S-VK6WXFkL~(+fR6!^-KLK{ioqMHUmuV2v5TTXS=WNyR7&p)OZO6^ z=779~rJv_xJ0H*KSIT*fej{A&POv zSH{x5;6IE*#ki3W1o2oBGIOR?#H0;T2?8*cDF%*lKCB)b2E+I@fwf!-tD220bnA7 zDF>vlf?Gyko01(i(_?LzDu8%&(tAC_0?g~#;agTeYsTc@X(F&^ky$)&_He0}$4R$U5cw zqf$#iAH%Z&New8X%rk_BGrmScnv+zem8&|L$_qqtO>rtD_p>CSy^~mjY||k!6pW2; z!UgJrc*0#mbBOD9J)dWYZ_^9UetRwnSPSQSNpQP=Zu8GuT(X;aXb;OS3qC9On4XiC z1RvFtaJ>Irf=~Daf1)QRhu`B9eB8oaLzXge)sUsnGvU+_dtn_FUZ*&9k!y|n;TBp@ zEu0yCEL<2~;zI8tbcL&wwuyeLZS(}DW6!lN-OaWJYwMf-MByfrHNE*FxlK}*9W$s2 z>38I+2#ypC&J2HHVfcm^7@t{)Rgk?gRb%&N#wiPfp2$mGr?AsY|%1Q z<5oy=VtPS4Jt@cOQ3BTrh1&K2$CX5qS5!=TL+JAna;~<-AQ=`hxlgkk%Uk#c!NtP5 z1s0vOqy)6taMQ?(I~l7$n|stgu}LFTYfYL%v~nB31qN_PlIL1A$!I~1RYHM$h;#K` zD})DOW(+;DQKW|hw)EimA&+B4w}rb*1Jps$1z&AiYRXL;upJyHHOaJdP=48xl5LX{ z0}aDtx^HxEEb~jgF*4B3Na6tE2o_Uki{JH-&F!?_jK0t`(ygUwt>a^dF2kcCIgCH2 zC63Y)=!}+doJvqgSl^vaJHg>j9?a^gJnT9_t@+D)8j;p%Od*s7>=Ztm#Y3+LsM_4n z7*TW~I|voc(K5<^18bQE+Yr!BK7h8R*ylKqh9R?_ra}?eTsP94C7RF+wyFu3e4sWw zW>lLf8&NQ;Rz=m$AEiY!&Z=e2%0rYC>Z{mT<{Oe$OXFmqGIAR#tEzRJm_C7iDjwE@ zqz46Oky&L5Y11VVHEa~yogr#y4nm;aOk^M)-4$>V5(6D9NY>qNbK^iruX4tYV&{`E;!1Ls4dK^7F*?L z%AE03SYv;@qUB_RIACScv-{cBYBG(PV3UVbf@ABP9*l2Z$(lsRATRR4i=>>R zscI~w>00u*rB-B&_U6aQ-rNc4G}QE4NH3(Qyr&@E9r=1EsX5NffSO-`%`Y!N_mDhjxwHR42azb)AmO^D46VdV`UqCq z%A)b%VyW2cQlQ?rmty*o8UMV|k(^8WcYNnyVe4r1dILz&s*mx0lNQx#rihkbDfYU3 z6csjeeUOp_CPi1u)D1JK)#N<9)g|Gsfcl3rSON=rsIIyNNF=Dr6uNApeKDS*mX+^= z2vKTqA6_gSpfTtrCnt5dU?-|DT+PYNGI*P=2Ga@+Wc8eFVLC^xm^;SM`*u>2HWU&v}ZE zR8B4Qx)S13<5SAf$E#E0sqv}TbXBJ=`|uy@-)GNx8|fc?HA;ebYPoPamBy!BZANKO zsVvTDn=Q^@67?iqYf%e!45Mcu z1Y{(Iz#2)>o*TCSrnJ)Q%r^?>P^gI~e7Ng~(5V9Lr3qrxOf$GaVT5r?3eHSe5=^vC zM9D<+24-=YO-{yrx!A*b3P;{k_;jT#Z_=z5plLtgfQ*QTjdu5tcy!7@&~9@qkBmmI zC@0U$Jf|2VA&dw`vV4?XO}rJU0_43|fRDIFOHcBp2~eKH`pC#I}6I3!keMb?|e!Iv&qO?8!&mnTxnRAMw&> zYehZ(*<4Xi-)YG|$effxoa}oFEBW}$_ z44S7g7$T57`{%Vf4&)iLIrMLm&=cq|`rcP?T_KH}v+s}*(V&vHdQm5bP$kGL-vu`?fW^i#E>j(jRt z)YG|$effxoa}oFEBW}$_3_g@A>e+{CbsWe?Jd%reC?9c0E@E3g;)PGviaPkoTpf?+ zBKG7X?#xBpo{xCx!CFzzo9n$th9`0nkL4rq+RxC(IqUlzFF#O=IP^fSRZrz2_U0q* z{(3FP4%6t;qW-=Xap>>UqL%voyK=*kOd-2=ulC`hz#s}?PLGuosYT{WQ&-F+L~5)k zh`z-mj;C`G`|=SF=OXUSN8Fl=7Nt>(cqA9`P(I?0T*S6~#0y`m6?O1yX&vhTo|8#4k6)b{1?ZHbY6`pu9WpC2Dxt=B z^u{I{t&1Yu6*A4<9Kx|mA%<#I#4ld*0$?7`HDOQI1S0OtMckf`cZx4B-YjBbP(B4k=-_uzq8>sILP?az%*Gqc-l%gD zVyqXXBH`-VeYrw*W`z)O^eeS$k9;Mqwu{_CPSo=9SyFjX2XHqne+7J8G-8}T1)xe+ zm)a{Z?PB*9HvhwZV&C565L!SLfsoM=YMsO`Lt%#95pXdrZ34+B#}w=2pUO zV`n4`A(_#k()*im-*B)jeX43+&2 zd!-QCcBGd2_rI@fA)I{e{ZA=yMJHrM~UF$;XCy49vAV4dZ*%! zAo;Ytf1s!gdpSZRNWNDXWLISJ`9Idj`z&JMqdvn#U~2C!!-0>d872kES3gn9u>S$Q z-+#_vt1b?DQ6FENGl+d4`P@e$K2BG42kf;t*g7Rhp0W1<>*!rOm1IBgIt8B{`*0EW ze^e3A5HU4K`ah-*7cpS(t%I$n24}Psdoiu-zgw}-zi0&tPoh_+F|>Ny`f31%lm^>^ z!M1R)EgEbq47L>q+nNU3ng`oj2HRQ(+u8=(+6UW6(=pgKVX$rDVB4g@w(?-xFmq@+ma>zYfbm&b-%S{)s}d}nepp4 zygpuY^VMtCT(dd8ZuQOUuDkKNc=L@LH(tL<6)0VB$;vHrSFM^er)Slw&1+Y0T64{+ zjaxRYT0=WlU%lpnUvFIXf;X?(aLt-c%Wqn~@GYBGZ``WYz513(j4=am$UH*1YNZ8#k}HfHo~p6V93AqpoprKy1_7 zXz@t`N)6x}wya*aVa+B7@a5NS-11Ha#s`i8ycBkeS6sho-ES$=`g7B)%ZC7Ljsw`J zS%R+Ln0?m#W$tmVdnE3$lt(b*hWLhnmkaq@0by7gEDMzEoH_H?yT{sq6lom`S6;no z&6*7t2z0Bj-m>l{fal{DxTx%V{sq^qe*4LStwXrkAl%z-+(5n8Z&=`7YuGltX$vpd zuo?KR2j%9@ST%bH^yUG*^KQCHDChBcNbzrFzFgo_WJoz?Eh7}BW{>&dU0MDs>u*}V>XMaDMGN+Cu%+IytWC3QuYXq2M z0ZZD3lL3|uqXK4R!aZ;K&Fi)}(zxij&^KSeakgQBo8E3-FFvkT)EAMpV-eJQ-PNl$ zZ`rhN!`t~?v--LVuBL+7v#&;CS+!-;>UCQ-UvTyEA-GRKjvvg=7xLB{-*)UJ92>(r zcQ(zLyK3>Wb%=ADVRFmYt$XY8dGM~GG*1)byqh$o=P$nraj&k~^_6-y<`E&6e3WTy z4e4pvkPO20wT#8z=3RFE<}CvD!kboaTDN+`mJ2S-wVv=rDP#96*T~h}WW&1aR*T(V zzIt{JRhA(RQI z@jX6<-?*q$Agd?#vlrG2zfLedF1c#CxNGdb4ug#M>qOUCN)@pz2k#D!rV)U*Ydp`Fjh0bF8*2^hS**17Ln! zN0<#MyIJJy07&!TOOEOf!yd?SijvaOmd}$iKLjxsx#`lVY{Rj-@_UA${mKUAkAUEH z>}~u#n3L6DvuAlD^<^<#0MqBKauWIwdkynW!uN4ayrH%qH?>DB%k{AlC`TWrVVyMn zqX#j2lwPIUMV+{Ru0R2###G9O;ff=dd333%Df!_#7NqdBIM9APdsWDg6^d;7W9ufN{rRRg=)=y}o#8*z*jCFWo4i%05oH8sL#v#Sgn zASBgvbXE%EYoc0KYF(jedyWMF^Uhnp=H{WS%Ucy2_TFU({^^hI;O`Ik`+fdy=kNFU z`(6HihriqSyOqE9^Y?%Aw~fE|@%LW--g7+7oPYl68!?Oxp=6`A)93I!P7m?B{9hV1 zItgwJgcVD#KQ^dYhE(`)qnduro+}|@*_x}b-y|FJNMx&yoG#q7=56b-Q7nJ6Wd6Bo zO(VQAm1k7EO7evASP*C7n|%w8VN9|-*|g91BiD@-MMj%h^JG>BBe2lSeapIQwyeE$ z(~33g-o92E6Jb4=fYD(wDsO3Q0(%W%GjFA9S{o|1AB^ISb3%T>Ijeuem+Jyq;k0>|oyPVD6k?-kf0W++g0^ zVD7wN-n?M${9xYvVD5ro9#;n}4CXBi7WV|RdwPP!vw6%87SG`^Cs;g}$J}7?JRb9c z#q)X04;C-ru^?EykjKJcDN81O!JF4y6Pz!@dhly&Sf6ZrMV0sebEyFmIyO)*3Wx?wuOL!FZ;=o|R~b?+5C};~ zZXj5rqSv)VRIXx=tE(vLU@yyR6x&*{z__lii0G=da&^ z_dTCEbI$klGv(fy1uXu^|IQ^vYJpUvuUw5-2%1PN%8EY#o8f0MRl9bt!zQ4XrFSY#@h6aNbzIJ<7O4J zo$7XnXT7Ao)}y&$iPPAsb|4~5mt>Y|E;#F9Q`V0!uZNejx0!Xd8@TBI17Rk^aLTy~_Waoio_ zZW&*l(fTx?-)v-DR32)sFkKc7h1@hPDou^6tgcwV`1QIv#+cV$&Bi3taYdz}uw>ez z+;;MY6n*Ju5L+m>H>4zPUwVCGIyOy>Syo%Ll)Fn63|p_}&E<`;=H}g8ORsN?iB#p6 zkp44aDH6ZMvb*Uvj5MZ9N(K?_M1M)d<}PzL2>0i(#4+06<#m~Cc^xFm^q)v~)VkfT z^2=+Nrnl-$zk+56Nc`q5O)-l|x|*{nR223GLq?is(2XUdqm{XseQu9XJoev?)d&6g9WqE0+qPnuwG-*-!(#nc7CT7jbvDK9;D%=U3>6`Hi;11o` z8O{oZ8Ly~Q7ZoijlSRE~aizP=r+FrFOa}hs@`r`LZN`pgB&OfpMVz7FPYZ7ajtNNh z49kM++w^KNAANq7DXo_vuj|}MruSO<(Jh_dbrQwbQVpZM zhW93%8^5^^C4t|KF*=pmDV^D>FH_8vHFfs7-h47^)07!AZqJA@cak)Bcbb~bv3+`3 zO?V}J&AK&v5xN{9b3WDY4N2(ssL7@|y=ir?alJ0iPT#AG{q?|9xOpyn2bz{X-lqrL zfJywEWMye+MNI#?;f!?*n3l)1Q7vI^EWfR#0!I5S<{D^j^OTk;WU_Uqk>3w)diS8| z^?@759ZT*6R0ZyYF^d65p`vnkur$wO$yEBz??b;3tn+-eZ04A^e#Kgnj%3(*pLB>f z!~8YJpR?{nY~8P^GSFgXABTLuk5l|U_WNaTb17a|r+CXZiya5mnzC{VBI~xCWs2{0 zc9s`rc4c^5Ij)!L#Ypv{a6ap%@}i`9Q8=rWKu%)C%kZLPm;*+(8<^=u$@HRRc~P>w zC|O>VY%fZ-XFA(6&8hG9HT7_g+8*VydJUJ$Yq)HVa;d$BOYAig#wGU}*)?900d9nwpb>6{Kfx_BDD{m}-zfEsQr{@`jZ)tz^^H>BDD{m}-zfEsQr{@`jZ)tz^^H>B zDD{m}-zfEsQr{@`jZ)tz^^H>BDD{m}-zfEsQr{@`jZ)tz^^H=;D0Pfd$0&7-QpYHD zj8exab&OKSD0Pfd$LJGEC3ICml^{2Zr}B})9r07MM~qPYPm!S1r4l9|u1a^6x9#c- zH^BYOa;5v3=1TW7$Cd7qey^00Srd}G4}5dNx5X>VL)P@da`#R| zMt)gcsC@kReZCEmFG40Pm#<0odoR^|={n2g<(rcD-mS`ile^`o;A;@Yml~CDUI(TA z2$y$M>aXyG;Ys|b;AwaUo-_39q|_lW6)dPSY{h>E-h&92YhWWhYe?)#-QYwx3Fg6kD27s4 z2uooZgyCGc6fQGdi+=;0+K2fCy$@8XFQh^`%z^@_h8lPP-hg)vJn^9t;C#3M?l1%o zRw@yaVFVm_2y+YyVIItfGvI8)2K**a{TUyS4tcNyYM>s@g`44S_z1p%K?7(%*bJ}3 zoA5DwZrF`4d=EcB)1mnA6KIGJdThqu1z!$R>MJ;VxW_hp4aX!al?2zowNQB*Z31C9 z6K;f?U>AG^?bdm8!WX(3j>JC-h8gPd&w&Tv8Q2D2fi?`egLMcdLIKpnd2l~8!H0&U z?^G%i#u=vJPlwatOxR$!5B~vp7#@Mg;R$%suoM4F_!ho{57x7$!e{U~9QKok`cM*=`hDoj9&r^pd6|o3>keX56m-cz~2ORzkqrW z9)Tu!2i}F`0|II^tcQo;&;tW15r!Q^yFv27*n}*|h7m9dMjOWBkAv61fwy5B>@Wll z38=1+201VSM!`hG3HX12i{Kha8o-;MARCT{E8upx10I5uL)j0xhLQNk!SOI2CK@in zZ-CWsIa~=>!#9To)OWCJaX{^cPy)CaX@W_yiWpZ3jFj;gBO)65(h#20nq$ zV3*+=eBqbDoI60@AxiawNl*Z18?M9`ZZ_PBzaIVykHgdO47_4^6JPk$@HPH7@U7uT zeBl>E$D@=Ixv!E0fLKXaUUqE%(Eq!5MHCTnUZv0=x=uz&6+gyA6BrNA1SGVJ!a7py9Z0Sr=gj509L~~*Z>bf6Fdc*VJpZlvVPI>tE~3;?f*MJ&cYfa`go4y!1c_luVskO z0pNJ=_wEdfOF3t3U^sxd)j6C?QH+D&U>HNu4#DpadFb&l0S2&rDDdam)D*T4$8Y}0 z8c#fhOUo+U9|LnWcUO&4b=X}!n(K#(mdB*z8LRS8a6x5tkVjA|N{gyXgJl&}wPCj; ze zFPP8nfn$2cMCl>g{pjKa^U43-g!b;;JJ8(-FGZKYz~({{Lix;xTS&L=-2!vG(s(Ic z?S8}*l65>KH7z|OGb=l1%-C^x<0lMHo|~9FmlhtLT$h+!7o?%fDi)~8GbX4CZhFrc zGeaF4Xg8)^pribCcpZpzmk}i+b}Wo$M8=NT*clo-V*ME^MU#;)vuYgV!Tx4d>`3%y zRh$^Wbr{1aChsiRL$L%2%Vs+VR*h0>E%@=Lv2Q$iO#nZ>giU0dCxq1l#C;yPapSr* z?90Ute=0!zjBP=}MzVbz>>%!*nE3CoZ!&hKfFEDNrm{T^`m+8F1;2yBW9bR(q=4ip zWs*c> z`!R2}A1+gO6*G5(NgFqsyF8@Jm-JrT9Mbb_1}WNppu(O0GW*}bhU6_Se>8V&uraGm zJ1gXeL9HI`U=eAyGl;Ze$6sw)p6lSTko`W_;jKbams3c;-?aPB+HHrmF=^9G#eeI0 z6v;J?!^E4U6G!(bX~Xt(nqP*!?CiG$VrRe@vEtd0Hf+OA<$qG1(il7YDUWaGH_LNZ zj2*u`{@9J3d;U0$oqPZ39P-;Ky?LPh#sfe!xU^H=SUEqD#o1c}#Fu&5j)~5)RaQ|J zUg@q|gvYwq!Z)fpH~jUO`l?wyv>tVote>UuF~)jwHr{vvXLw_KsQRncavSv9j@;x? za;m}sNG)L=zVegSS3IFLo3111f96!6UHc9lJ9UohV$yZ(7N5|)N6%ip`}FO1z<~!H zd`SNRhaPr#aNrR~dJ+EJ{{LC_|Ml3^r$guVoy_4^`lE@aY@+X*2y5yDoq=v?;@I3o zdpB|XYGMpEaa3&LXxPM|uZiPb6UXGH-p~j7LO(bFxB=HhKQwW3O>UeuaWkyR+~8_D z41GAz8TSX2+C=`F$bS?0ZzBIqm?kJn7@#kPiN5?+#J%W7}<89&0aQ5c1_PE(6 z<+EmRG#F>iD4afi*5q-no;`WG8!X}DW=@+nW;UDX=`&}HpFL*QNv%EUxGgdN zo{9U9{>55|+Zyxl*|`7cpP#;6pk33Hzz^Jn^A-jMf_qS9ASeccVj#FD0&bfv6aWN)`kLqGBM*9bCmgRNP%v3`E61R6!UB zN5GLV2nNFtV0}?T;b=Gp5@8q&hhrfLk|70BAq~<&7NAVXf^6UlhWGezQUW94IN%(F zCz6#K4P#&|FtT_*04F>!0VcvEm<&^3D#+-Z4l`gTPlIsgCnzbc|FilGEbAp{FxAuNJ2SPV;`9F{@_ zR6-RjgKDUOFx0|wSOImg5>A8t_5c4>{`>a-y5n0eYl@0XN<$00i<`Q+iNpDE=H!YQ zYH$^GmW$D8?!07nN|n{%$+?54=MF9i4z3zJ2`ORXWbR7)$lMey?dfZ22MLq;Fx+T~ z>uZTC`(?h#d=))CM$7yPf`q$;Fk0qlYEm;I*3bV zpqzm|6D0mwa5mJ#IdCqBn@zm)(5pb=oevj41TKU>Lb#frpyFg)${3Zg=?360C@QZJ zEn{8App0!9!~XukOOpndCJmNubK6|{%J0j)`_+vj1A#H&$N#N%cjFWV2Nwqimj>Mt zDcm(%TFiaFFt1dKDNm}2;+M!PQ*ZK;GVN-kOvBhm7Oq=o%5*aU zQl>w_EpRLR8E%8yVIAyUro5Vc3gzax3Y+3c(%cTQc@AJ+N;}*ElINYU9`1s>;U2JI z1MHJ$S=)K;`HejHwy|Pg6K=UjQZ8|1yHB}|4S(EO7VpRM$6Y%$#wl*=DiCeQ4O+ND+U4kI^H(#d={h;=HaTrF{8ZiS9C zaY&*bA)kAx{Cyz(az8u(4}!S2*#8jvVUYcgz@zXOhzoO)CH?vrko_CsukbiL0Zs5E zJOy0AsHfo>cozJ&qaN165Y>=dFFE|WQQon^%@m7gO5BIP_IGoqWk%#!Rd=e*>Qs?JD>ij(X4PJm3;U#z( zUV&F(GrR_`!`^jv?{KtP=l$IKXsKOHoxRSLvL7TTytuvV^rk64MQE;5vWYA4lQ~J2 zI=ul>r#E2>Yy}72g1^Jt@DGTs2VX{*zN`Eledk(fsh!_<1jqK>ca+)fqnLX3loNcM zgkNvMDPnUy4>J2D&K^_GcZeYMd>8%+@4+^BAGX5>umkq4r`KO?)$>2?FR5ose?4!? zCjAv#k5wj|A~e@yTWmeJp!txUAA!{4U+^(}0-wT8_zXS=_hvHjzd(NpyWlJM8oq(u zVCtD2=7ll8dosF4pSxaG?i<4&a`=egMOxfa!k(8&4DO=aJ%J#pRJdy?ZH~pLZuP1+5zq*sjKJsULYse;t5-ARGh-!y(Wg2Ed_k80@D^DN-iMb2s+INgjSb#OArG#LM$=Y)PI$ z{DE);90`M9FbsjCU?{Ye=L*vflINllH_QFzxrhDI_WY?IH_v166JZz(hhrfLk|70B zVLy2`*Yll{-_G-TE>0xRG;B#d)A2J}?B;mg_B+oi+|zFv8{UdY7r1lcH1d{qNtX*G z9ND+@g$a}J(IKylnWl{VQ6!b!W*L9SBGbBz&1=hHdv(I-sOc`@b8FTSR z>{G_yyRgV*jN6W`A-^4;GG#o&lqa?w--#*Xg;4ux1g4vnebR=rR&YE4b{lz zoKR_nr)Dpzt#*SZRF}z~f}(J3wJU0Q0%hj+OF};Y# z)6^IqgD>Yfxs_^4ZAFNW@|9{#?ZVocFpncwg+oh=d8%wCZ}Sv?M&)uZfVXXU0;^&X z1JzPkUl9k;cdl{{`b>~O=$yhV?gdd ziaqHQxo;-UkMHLpW$@eGUpo9SN#n;8dlFBEzxXmvq(8+;+e%u=Pr^jYeK;w%XeooZ znIL79I5KAU-ao^H%YEtn*~l~d#LoWW#I`HZ+_4~WB|mX~8~EjlZ7bRD*I)WYoWJe2 zVQgE-{@D7Za+`vHn#7dg$m4?Jr&}i! zjxQXaXH6-v#_@%$HGRxnYs{>P1uDjFb!~-JR$(pWwJjFfJxBM9TZ?P>N+h-nQYecj z&`joJFrje9IICdtMEOqF+rU0w@6MQAFm&1QQSt^Id1h@qB|ExxnOYY}s^?ZYIXGlU z@QBG3%ZqsbU~qhM{ez}yf_}_kWtH5h9C(Cj12r)eKA|?m(IK?dS|*~@wMfn6UGgk7 zRpn(R?pr!}VSHId&{RS?6est2C$;B03z!1_k(;|b<{gA3m9)-yi7VGGLE`&yxLIQ2 ztOyk?v6>^wu|3aBkbucU(u+$@PUhV!$!W>y$r;I+$yv$S$vM1}B_$;_B`qaAB_ky> zB`YO6B_}mGH6=AQH7zwgH6t}MH7hkcH76}OEhQ~AEiElQEh8;6Eh{ZMEhjxWJtaLg zJuN*wJtI9cJu5vsJtreMBPAm>BP}C6BO@a-BP%02BPTOCGbJ-MGc7YcGb1xIGb=MY zGbbxKDiP&W)!bxEuUSHatzzwk4)4H*N%{1KUTVLge)qzib_g2jd2Y;&*FC(jW(6O zm<9#m6!O|PuH2X0KwSB$WC{JeL{6t=5Dy(UZRWVC@;ic=vuDnjJnrb=f}*l=P8`IF zdAnC*pRp1h!U-`JApAmU1%mQ_+$WG&?ISct>DxxZbNzo_7LhT8{HKWUGdv_-z# z9yzTd$UI1wFHLb(_%g;%Al@vm?NZ7s7xDwTP<3@>wR`_~K5@jRxLZy9f|mHH<)Mm& z;YB6^aipDB6HjaxgmdJZ6PBt4a#(cd;0D5H$c=@Py1Js`vgQ0$1(}IuOReUp?tB$H z&l9(4pZHm%EibC6X`Mjg?;-AIZN;yWdr$kuAIgDp-}tNyRh7ICE5y5;{nC5)@aGbL z8ni0E+|=S{2J)1AP69ullhNV^n0?*1RG0@A zh}$jp(DT8!A@Pc!7)qdZxoN|ivbMU_9ZxS|Px2O*&-yI3OCi>Fi0uWi5L(;jI&S&W zHjPUg55=Bu`wUaRMKQL^(1E8?CF@3_w!2*v8iOuav;>&Wn_fK~u+Y5+O zY7R4dh}VO7J)sx$hCa|2`oRGpX+9v$wzJs44d7h$K>UM1^33e$#Yw>L%RY&J9a_pP zZYW_=_Jcu+cL;QX{vdbk2Ed_k7>KJU{^9sR7zhb)1c=>D*!9c4(bzqbeS@GayMqZA zyOOpqnMzs2?ZV%T{~G+ltyrnYt?ZY0Yw+J;zvw#j4wFXw*NOiIh?6*P;%|Yi;J{n( zcX%8A0pb=h=HJ187yb$F!8Ujww!;Uo1EdTmcJ}i9o_yz%PQvO46SvOT`4IgP{0lyY zPvBG737>(K`xesp>E*Yc;yyO%KSzH7U&1c<3ciMKU^hs5dD7iae~C#ybcI)sZ;A6A zd=Goz2lx?wf}cUsKOB?(@Gb=67Mb+FpnnA|fgA$@&<@%|2axmyr1A5=&!k^R`i|`H z1f3xcx}L@SvmOVMWD*it2C(!axvP{o-3}Eklb7oAgHz=SUa?gJB39 z1w-Lzko4EYr2ig0+O@#A;5zac;v_;gVe*xNgbibRI5e>>NZ7G#C&3!>-2>@_O@dRP z3W5+18`-xG{5-;AIrSu+{O&&6+wug^WRT}6rh?d7 zfUVV|T~n&VX&hDwpAIu%Cgj5jFbfJ`Hpo0Yw7Zvn9qE6j3=%etFmZX8U__=T%tOAxqB}?J? zXju}Z&E%mUxorB_*l$PpYSOklsO6YRkot_U3rH7%3*nD&5nK$Hz@^XtV)GnqO8JN4 z?;zbGsSCQ4d^X{W+e7$j;$IF|fVk{47|ZA=Tm@3MtMSFw4SiecR!+RNgkJ;K0*AEb zy2(;2b(1s)_G>wY-bI@0hxl;v{b`L^?kC-r`beJ{f+Ahut{kFEFnF}CYSvzh&`!RsKl-@q5!!9!YX-(_sS z$-XVH6&%>R+?Ay9&)LM6^1Ma7zk^?%*fi3H7n4Su^o7KKo4B$478_s6bxlkjlSm`| z_78Xm-i3d{d$0}OhwUKg?j@b{o46{{eL(mQ_zV&BK`3G^ZE zr}(jLT1y(KuheG^THFp(ww=WN3_gc1;7iyAU%}TPWqW`$e%a#d-3Ox8ZuWf(Qnv3* zyyFM7lx;Neq`kgp-yZk@q-=Y)R|9GMvfYUmS5?oPCH_zFGe{o4;7eJy$K-J<@qQ&- zgPc%H9|rK-L2Ug~4)yXV!!L(QsD@gogVW(GI0sfi1TKP0VKrO{SHU%KJv72Ca68-y z_rSgIAUpya;R)CT&%z7vGKhQ4_@W(jAW)Ce_5VOq?s`?I>)%JWZ(m=p5_SE@=nfq? zCal->pQAf=tXK70bp5yJPMuVJeZ8*#5#70SQ&SUDyu)Fv|8WG9Bmv!}ix&I(0Cd-` zoMIMgJrLck8_yyoYCRks&pDJ{uXPqWAwes>Me96t_wFRD=Xo@A51x9$lAet=hdy;O zx))`$)@!Q--5VWQuOsE?K4^QrwyV*7vG1(c&gp15_mjNNK_AeLU;YtghQow(~$ zudTJ{gV2#nbz~j-V6?qP+mE0RiC31hRy$9l`=j-BT5m=VXs06Bi8$y(JE@3Oqa!=e zhoK|&I`Sp@aI}4qwtq$kyQ_$^T08NFa~_4(QLPU`AJI9*nl@wLK0!q`R`63$>GvJ_@ZHv_2I*v@4fBh1yw&J{oN;(#{I>G2N9DsnX6W zbRycW)6PZcVQ8mbJ8RLy(K@2_E$CxSf8B{rLR%rNA44b8FOel$KZoY+N;I<8e@CaH zot0X@hfXtn_aQnxV96M;K1XMCw3M|)TR);R(UHIDNV_2Cq-gsoZ6~0!<1OVpuAP49 z9JKz6)l<|udUSg$qOx>kDSAwt6|oAZMoveM?PSqkQzI9l$91qG_Elkf4LUF0ia0kkI5(lk zqxH>=`X2Oz_Li+iY5Ots#CDc#6^88>(UZ`T#bJ93dU7X={tDaM(NnrxwsTp7vlBfv z-m>*ojru$Ew62z;#%ibIK+b#7R$+tF2R#EFDQR#HMbGSRIrg#!=V)|3+Np1Fa?mHB z^~H^PB6?O=ORMo(pNK9%TZN5!K6*AfVm0c;=t8u;xKXb_pV-~fPHm&U06hn->l<|x zJvR_h^jD-2eNxAWvbO8U-RP6iku5s%DEbd*`z38Zk3J7vlV?RT0g1vHuSvq z5lbDWBRkPnT!j9b8u<=AzhlITY?&JQ8C}#NV%be$yXz60AH_#3=g|hIKe`01A8gb^ z(53Ao5&AuHEIJeyiCBqKBN^xgXi6FxiC)+t60z6k+EdYs;v*4f{XAzbx(uz?*Xf1m z#qA@uN@uvDmvoNU*66T(F1j2YDa^GmLoY?!^||&9=!*D=?OZj_xd&Z|);HAYhtXBt zB96+{&L;G-t`WzY*x+nMS9gv$k-~Y-`{)|N?Zxw)FVW%d5&CPM^DDX*tuL$7ow-S} zyjw)8}*G@eqsAd^hM~1%C&z$U)<4-*jsXKxlwdUyd80x<~hC4m!kEfb^360Lwnn% z-|fNZ%R1Y(l^C{@(5umr#9VtM`f@b2x5uHch_`KLeUejvz7nn1=j&qhnr^nEQnj-f z9YtF?4bGY9t2*0GWb{0z0ev;vE=+Q+N3TUY^-0d{=xgF_M_-k%A4Ff<&DJVg>nG9I zb+xrMx>3J|z8)Q!Sf}4Z-_XO>c45BWg}xE(EY8=zqHpSM(_i^Ifg50rT^#8zryu&} z1V>q)Yv*wEpU{yHwKEKT3)+5HJK5-4(asj_fYd7 zNBBLR9r|mYa~s-Da3c23dCpzv4QOY}Jm)_2y=eVhoqiO3UpL2AM{4IO^!;dSK!fu- z`hm`l9qBjE*@}J;ZL1{bee^>Kj_qtoay~^r9Pik=iFQLj(#>(`cjqVcqi8F!!D%;y zYmLs16G@!s^hW;$Z6_uZN>-wSkBJ|Vd9Og3gGn}7TyR^Or{VY22DaT6m zb7=bmtv8^bM?3Fmy%GI4w4Be#o10$fqAk^va|ZN_XiGKff1qDV&{pKTM*Ru;WwgDs zQGbPg1?_BW)IXzNMe8k%I^ig;NxJEXI)HNq^lM#M+PgODAo}$ln*OTOiRd>Hbj1F; zPUoWEL_0g`^jP#3wBAyur=YiX)3!QP>se^0i?*$PjrvsdTRpTL>0YN7qyLV!Rlcr8 zzn!3MXJ@`X9sLiq-jc7+LBG>YJ8F>D5%jxgE7+*7MgOyhb|M4n^xf$9(00Fk{TO;1 z+EGLGGwAmdw4=8S)vutpcjFW-6X757BmFzTS=g2<;>e z)xV%+dhskm1ui}b}i#c>nL4O@r zF3;zcpMd@*ZuxR7hQA_OW^|acX4ZY2eDeS6#aeNjW^!Nk`YGl z>AY^;I;QdI=pQ=Yci(+Xt#i>ocHX#gBg6fV=$|@2`|Ps}!PV%WJ8#~+nPG7?`j^gc zzx_5{btC%M9y@mIp!xoc);+%X;tTIKvs!d1=kDz|XNNfG0$rgS#6tpf2f1FmBGJ3< zIU0XH=_Kqaw75$^q}(6zT~E^O?RuH8-uNHi$=(iu4)m4|ROyDZ(1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_slider_rgb.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={38192:function(){throw"Canceled!"},38210:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_slider_rgb.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=38184;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=51096;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_slider_rgb.wasm b/examples/component/ftxui_example_slider_rgb.wasm new file mode 100755 index 0000000000000000000000000000000000000000..f8c208d4a1a93b043f83d8a8858f6672b24eab0f GIT binary patch literal 300778 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

    j!`n{C|VgX(f|gM^={%k2@`1au-4 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_tab_horizontal.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41104:function(){throw"Canceled!"},41122:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_tab_horizontal.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=41096;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=53736;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_tab_horizontal.wasm b/examples/component/ftxui_example_tab_horizontal.wasm new file mode 100755 index 0000000000000000000000000000000000000000..33cd0d25fa257e912af5305cc7c9ab06141cce84 GIT binary patch literal 329809 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

    (WH~yWJSJz5 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_tab_vertical.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40416:function(){throw"Canceled!"},40434:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_tab_vertical.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40408;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=53048;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_tab_vertical.wasm b/examples/component/ftxui_example_tab_vertical.wasm new file mode 100755 index 0000000000000000000000000000000000000000..975207ad099fdfd904a0d0f4046a043124a5ac70 GIT binary patch literal 326136 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

    (=HaDUQHsNDQs)|t1AVD1! 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 CtNkJX literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_tab_vertical.worker.js b/examples/component/ftxui_example_tab_vertical.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_tab_vertical.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_textarea.js b/examples/component/ftxui_example_textarea.js new file mode 100644 index 000000000..881e4de32 --- /dev/null +++ b/examples/component/ftxui_example_textarea.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_textarea.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={51312:function(){throw"Canceled!"},51330:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_textarea.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=51304;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=63944;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_textarea.wasm b/examples/component/ftxui_example_textarea.wasm new file mode 100755 index 0000000000000000000000000000000000000000..7e6849f93402508d09cce3088b6a642b6c3dc508 GIT binary patch literal 334251 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_toggle.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={39840:function(){throw"Canceled!"},39858:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_toggle.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=39832;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52040;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_toggle.wasm b/examples/component/ftxui_example_toggle.wasm new file mode 100755 index 0000000000000000000000000000000000000000..1af73d6df6434f9095688d9cbfe8f0188b788e40 GIT binary patch literal 315147 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

    ZIaX4+-eX{S4U*OQF8 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_window.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40736:function(){throw"Canceled!"},40754:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_window.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40728;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=53496;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_window.wasm b/examples/component/ftxui_example_window.wasm new file mode 100755 index 0000000000000000000000000000000000000000..47e468a62db7ef5bb3558f546026f50dd0abad92 GIT binary patch literal 319776 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 UVND=SQi@Oa^vT{m?Q!RS0Xs+A`v3p{ literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_border.worker.js b/examples/dom/ftxui_example_border.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_border.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_border_colored.js b/examples/dom/ftxui_example_border_colored.js new file mode 100644 index 000000000..67af8a821 --- /dev/null +++ b/examples/dom/ftxui_example_border_colored.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_border_colored.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={29224:function(){throw"Canceled!"},29242:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_border_colored.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=29216;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=35252;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_border_colored.wasm b/examples/dom/ftxui_example_border_colored.wasm new file mode 100755 index 0000000000000000000000000000000000000000..28c7f8a724a6bfb3031312ae43c5feb6fd1d7283 GIT binary patch literal 208847 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%0Ae{~z+0w(NL{3mt;&B^y_f;B%h)O$2v) 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_border_colored.worker.js b/examples/dom/ftxui_example_border_colored.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_border_colored.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_border_style.js b/examples/dom/ftxui_example_border_style.js new file mode 100644 index 000000000..25c274c4e --- /dev/null +++ b/examples/dom/ftxui_example_border_style.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_border_style.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22760:function(){throw"Canceled!"},22778:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_border_style.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22752;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28644;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_border_style.wasm b/examples/dom/ftxui_example_border_style.wasm new file mode 100755 index 0000000000000000000000000000000000000000..71d5da8ffd012eee6bfd1a2668820a903bd78782 GIT binary patch literal 197251 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 dNixzbpSGyMfpAD5O;UgbfchZ_T-{{UVEez*Vt literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_border_style.worker.js b/examples/dom/ftxui_example_border_style.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_border_style.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_canvas.js b/examples/dom/ftxui_example_canvas.js new file mode 100644 index 000000000..dc7c7d65f --- /dev/null +++ b/examples/dom/ftxui_example_canvas.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_canvas.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={27048:function(){throw"Canceled!"},27066:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_canvas.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"w":___call_main,"g":___cxa_allocate_exception,"f":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"m":_emscripten_asm_const_int,"v":_emscripten_check_blocking_allowed,"l":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"t":_emscripten_memcpy_big,"y":_emscripten_receive_on_main_thread_js,"u":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"x":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"z":_fd_close,"q":_fd_read,"r":_fd_seek,"h":_fd_write,"s":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=27040;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=32948;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_canvas.wasm b/examples/dom/ftxui_example_canvas.wasm new file mode 100755 index 0000000000000000000000000000000000000000..39698025c3a7456ec97448fcdefec7bcbe815aff GIT binary patch literal 210855 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_canvas.worker.js b/examples/dom/ftxui_example_canvas.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_canvas.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_color_gallery.js b/examples/dom/ftxui_example_color_gallery.js new file mode 100644 index 000000000..a587c9468 --- /dev/null +++ b/examples/dom/ftxui_example_color_gallery.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_color_gallery.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={30304:function(){throw"Canceled!"},30322:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_color_gallery.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=30296;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=36340;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_color_gallery.wasm b/examples/dom/ftxui_example_color_gallery.wasm new file mode 100755 index 0000000000000000000000000000000000000000..3c5a733b84e077106f591b08dc7f969bb4872b95 GIT binary patch literal 242055 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%0A#TN0Vq>w z4iGn|p$oU1s)ou`zp?bapwk;&r!m5s9vwmwFqRz*n4uQ|44}94yh@aQPjCx>ir84o zY7D3iBJpuiGXyUN$yR-5g3>6}g}ls9t=h}~5c{>gap$J%s&+jwT|BRB9g@DdVzjm@ zb!yeHKp4NeDBIJ$Hb!rM9F96&ny*z)P9q89_W$^)RTseB2)Nq^d_2=F90TCVs?RpV zyyXLXw9D=^>O4m(#ti?73$(Cpl5TUgKWsO#74kj0n|EnB(Y#xNZCf_ckT3Ji)sv{YnC7xA)dc0# zQ?<01M)orhoeOL%yIU&3*$)VtsslGMGj__6sj@uKtWBzbmMa)C{nZCO@rX~D5|M{Pr4yLE0W zd~g)vPlI~M?7>sOZADdJ&XU;D%d|>D+Ft+)IT=OEnrRwyde)tSG(`bw z)oZ3o*~&m+G29lLqR-UbGCUOFeW$q4u_97_NFI`|5xX6+WnJ=HJC!Q+r`RGzMq-uz zECoURGQ;V|O!UBOQgUT`=ejjpw;;vR0Atc0GcV##pp7(LP!!U3uAw~2Mr4{(3;{Qd zWO}=#xGG#QsKK02y2I0ipV7n9Em-)WChXjcg8O?(Ag( ziH!-%x6PqcwdGU5hs1=nxr`1MI?MZD=xIHpz8Ewt^ym$dX<%ki@Q(y1Mes&ov5q_0 zO7x5AlJy{pKbzhFiIR;t$aqSoW!?%xJ$7zgkf{!|Y)OgPtfCpcs{Oev$11-;?d#c{ zi;rdQv+F<4@3A^6F1rU3%D6m0r01T-Ld BPFwu_|9A;`WFha}R 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

    (K#oHl&hO=i7@fhFQH4iE(MnMj?| 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_color_info_palette256.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={28352:function(){throw"Canceled!"},28370:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_color_info_palette256.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=28344;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=33812;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_color_info_palette256.wasm b/examples/dom/ftxui_example_color_info_palette256.wasm new file mode 100755 index 0000000000000000000000000000000000000000..8e6414ca08685dd8e042fc048d557b4a88e51525 GIT binary patch literal 213664 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 zaZC27z2a1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_color_truecolor_HSV.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={28768:function(){throw"Canceled!"},28786:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_color_truecolor_HSV.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=28760;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=34228;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_color_truecolor_HSV.wasm b/examples/dom/ftxui_example_color_truecolor_HSV.wasm new file mode 100755 index 0000000000000000000000000000000000000000..741a53dc4139335ed0fafcb922d87502eafbc659 GIT binary patch literal 202479 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 P8S6l%ly}vZ2IGGLzu5>E literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_color_truecolor_HSV.worker.js b/examples/dom/ftxui_example_color_truecolor_HSV.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_color_truecolor_HSV.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_color_truecolor_RGB.js b/examples/dom/ftxui_example_color_truecolor_RGB.js new file mode 100644 index 000000000..e396acf85 --- /dev/null +++ b/examples/dom/ftxui_example_color_truecolor_RGB.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_color_truecolor_RGB.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={28768:function(){throw"Canceled!"},28786:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_color_truecolor_RGB.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=28760;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=34660;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_color_truecolor_RGB.wasm b/examples/dom/ftxui_example_color_truecolor_RGB.wasm new file mode 100755 index 0000000000000000000000000000000000000000..28f219529390d948dd125a1643a1a689aefb58fa GIT binary patch literal 211866 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_dbox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={23344:function(){throw"Canceled!"},23362:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_dbox.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=23336;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=29236;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_dbox.wasm b/examples/dom/ftxui_example_dbox.wasm new file mode 100755 index 0000000000000000000000000000000000000000..8c19e7e61a0313e49a42e5266857eeecfb67905a GIT binary patch literal 199916 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 kDvce2S8+R+BqPOg>6pfXC#>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_gauge.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22928:function(){throw"Canceled!"},22946:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_gauge.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22920;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28648;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_gauge.wasm b/examples/dom/ftxui_example_gauge.wasm new file mode 100755 index 0000000000000000000000000000000000000000..54023e3653c5c4f2b90a44854a72705df074c87c GIT binary patch literal 194573 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_gauge.worker.js b/examples/dom/ftxui_example_gauge.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_gauge.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_gauge_direction.js b/examples/dom/ftxui_example_gauge_direction.js new file mode 100644 index 000000000..1095ebfa1 --- /dev/null +++ b/examples/dom/ftxui_example_gauge_direction.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_gauge_direction.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={23888:function(){throw"Canceled!"},23906:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_gauge_direction.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=23880;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=30184;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_gauge_direction.wasm b/examples/dom/ftxui_example_gauge_direction.wasm new file mode 100755 index 0000000000000000000000000000000000000000..8f7634fcbfa80146e99d896405a0a3d62b03abda GIT binary patch literal 207716 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 znZ4R}&t5#rhrVzM41ysr491){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_graph.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={33928:function(){throw"Canceled!"},33946:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_graph.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=33920;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=40072;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_graph.wasm b/examples/dom/ftxui_example_graph.wasm new file mode 100755 index 0000000000000000000000000000000000000000..6132537b8dd12ebc768d6c8014ac85d80dcae787 GIT binary patch literal 219119 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 z^qT1U=Js_@W86~qQ@1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_gridbox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={23128:function(){throw"Canceled!"},23146:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_gridbox.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"w":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"v":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"t":_emscripten_memcpy_big,"y":_emscripten_receive_on_main_thread_js,"u":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"x":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"z":_fd_close,"q":_fd_read,"r":_fd_seek,"f":_fd_write,"s":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=23120;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=29012;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_gridbox.wasm b/examples/dom/ftxui_example_gridbox.wasm new file mode 100755 index 0000000000000000000000000000000000000000..d98cf0ceb8ebaba1add39aba66b5ad5286f08433 GIT binary patch literal 199648 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 A_y7O^ literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_gridbox.worker.js b/examples/dom/ftxui_example_gridbox.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_gridbox.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_hflow.js b/examples/dom/ftxui_example_hflow.js new file mode 100644 index 000000000..b38547054 --- /dev/null +++ b/examples/dom/ftxui_example_hflow.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_hflow.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={24520:function(){throw"Canceled!"},24538:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_hflow.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"w":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"v":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"t":_emscripten_memcpy_big,"y":_emscripten_receive_on_main_thread_js,"u":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"x":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"z":_fd_close,"q":_fd_read,"r":_fd_seek,"f":_fd_write,"s":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=24512;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=30404;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_hflow.wasm b/examples/dom/ftxui_example_hflow.wasm new file mode 100755 index 0000000000000000000000000000000000000000..3de23f98bc9b0a7ff54857b0c8687d78e80541f9 GIT binary patch literal 215917 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%0Ac##$NO#Td-S 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 UWOO>^lHk3efl6=ld1dDR0_v*t-T(jq literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_hflow.worker.js b/examples/dom/ftxui_example_hflow.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_hflow.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_html_like.js b/examples/dom/ftxui_example_html_like.js new file mode 100644 index 000000000..2b100baa1 --- /dev/null +++ b/examples/dom/ftxui_example_html_like.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_html_like.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={32416:function(){throw"Canceled!"},32434:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_html_like.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=32408;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=38632;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_html_like.wasm b/examples/dom/ftxui_example_html_like.wasm new file mode 100755 index 0000000000000000000000000000000000000000..b58fb22b9ef9ac046033ecd9c08400be5f76a5d7 GIT binary patch literal 265899 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�`^-M@==kupc{={eZCjhk_|{MT%V+QX`aN&^ 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

    -2A#Ab5ggG%&7}B`^lWF4pxvZH$7|8Yhq{3 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_html_like.worker.js b/examples/dom/ftxui_example_html_like.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_html_like.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_linear_gradient.js b/examples/dom/ftxui_example_linear_gradient.js new file mode 100644 index 000000000..ef1eee49a --- /dev/null +++ b/examples/dom/ftxui_example_linear_gradient.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_linear_gradient.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={32216:function(){throw"Canceled!"},32234:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_linear_gradient.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"g":___cxa_allocate_exception,"f":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"m":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"l":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=32208;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=37668;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_linear_gradient.wasm b/examples/dom/ftxui_example_linear_gradient.wasm new file mode 100755 index 0000000000000000000000000000000000000000..0d31aa50868e3882e53f36ff86a99b1d556d3b79 GIT binary patch literal 218633 zcmeFa54>JQb@w|ndq029+0Qv=2cpCz*8ObhYfz%GwSihRXCM9t6s$ttio=qGF5IR$A#>Y(degQ0pI1Aou%Qv-k5n zCpn-}`?>wxd-LbnvuDqrHEY&dvu4ej8TUIce~EX_`AgDc&hYb&|9<|AFi(gdg2}u+ z+B{+?t)Kef&S>dP=`7lv;oKQri;A)Fvpb{C?#}4cAIahP-cOm#GmwO*l%JONFjHjJ(AG%{cN&F$H_r2Vwq)dD= z9-iV|^5lNM6}sKFf4XaDS*tT0(lq!n|3n{tIV4FELT9C4>4Wn}9MbWfq>}{aLedKf ztVDTXS-Na;vdwo-l;>+37yu?+OU)sqor$rI5547`@pL?)X}+8KZgA=99{>EGE*L~&^A(zQ&H%+WJ*o+-HfI=0CYZm++!a1n1o_h z1%5j`LYU}H=${A7Ryr2SXCK^dwGVE0I-P@$@@)_h(kE^Bm9hMg{7BVLk)TEek3BX8 z68}W-mbk=?bvoWZGx&DsgmG1-#LlbY4%N^wH+ybaa%^() zv6GXTb1nVJyggj^=bms-_aN8pc7M)01wmYwPw{j7ZG~2gT&WxDrej?{mC`^p6vTSS zDfMn#k5Kp|4f+Qi3DLnNE7BFI?|7OC!Fby3=y?A!|E1(hN&88id0#DD_wkVNbPxa2 z*>s3M#_dS_vF?vr{y6GA-o2~kPjKH({fX{ViQnk{BJn4=R|S8vyD9O{aUb*kx$Z9$ ze~R1d{i*I_iGQBkoA_UKHzxl1?wu`vntNyBU*O)6_|x6n6aQ=OlZpRzx7z=PJIw!g zw>#;ESG2~y1Q}F5`@7_gtuOdJ>Axk{CnuM$ORjD0@a0vl%UbVf{kdOg-Ix9#eU<-k zQqElJ|1G^Y{iEbt{w>KR$+yz45no>F|0TU6{doBM^i%2Iq#sK^m;OcicK;>+{q(!( z_tJk)FY{ma-w0n1@9?+zJHx+(52n|qm-~CdRp}M!#*MFRU6$@k-=02{zBN7hmFW)? zO1wAuTJq-PP09aGK9PJpxgq)U+ zA$fgrVe(oyKL}mshslqvl-Ey1e!7R=K!;hW*z z{&lSjTla_8+S?EL@|xDGTjh?{t6CSd&TnmNJwW63Z}RQ_JL!gd1OM(xSMOjLesg+f z^3TZ~$v-AvPW~QB`P<}glFui9oqR6&Z1U;kZQ+m7x1?_guSs8>?nqyiUXWfA&QG_e z+tPQ2g>+x?Q1W2%K(g^i$^FU2;XBEdr>&aK?%JNO= zu5@R5ar(yeqVx^v>nZ1T>4oWQ)AG&X&EeDjX8yh+z1f%dB|k_$?Kf`xezG%^-%Gx0 zFaOTV$>lfGe@(xUo?L!Cy*vGCTHcl3nf`P7mGo2LQ{kV||DFD0dVBiiwETzkw)9Ks z-=#N(8^hnGUrfJ{em=c5E&n?GtMs$!XVOonH>aOSZ%WI*Oh2CPO>ay;ntmj`A^kAr zemMMjdVTt#^v}{iO+S#{m3$?+J-IcxCAls6A}#oEcz^mQ>2>M*()Xs&;8(;k5#V;58i}mGC?8~B;E7SL+<>l$S z)AC*E?zDVo`i`{R9WJEdYgT$%7l=hg&Q`s&?$JKr4#YnxG~mo2uk^y7-&dghKEZEs(wyT&AE48GDvOAY#_ODq~W#P60J_ zeoy~8n&+X8V*#L5Jzxz`2N5a~%B=3CUHqqAg_|v{nqlFC?w?2mg<(w;VF7h$tELYX zNqj6)Dfz#2kwbXNF2bbReuOfT7r;LZdGX~D$P0`wCa;LdNM0@Bq$aOeK||}J+fkx4 zN^6OHLB#@AH)Cukv9@;Ql z<>yr0O(ivjB2)`^Ji%hpO=Z|zrbSvUEKFHU*i@#QtEqDgj3Pa24ygTR>i5-SX3s%H zo>i?zXb4GEzM8UX;n4SCT7PS4fC!`^o6C;13kiYH=vccDt!iE(@>*eStX%at3i9X7 z@%x11R&9<#3E73<@*=U+7~;4I!T$Jj`jiY%q=KZXbkl6vfxbkR-e^k|Aa{zC3Iu44 zGag;lM|s`S5Za>v#nQVV6q%$fHF~>Qwf)+l{}f#LxzbhhgG^tNTbo^$dy^P z(fj!)x+`|vGB6L`wpJL}K+P=+{#SW zmHKu0Y6v15<746T2Yhyf55pRTD&%6UjZT?0VMH7Qmd1dQ;-3MeP=}{E5;5d-`C;JB zS2tf19?FGBit)?F1!b0Z7!iEdrdj}aKa-Prs{cahhuGSdwH6YsA*N^`78UO6YyxpD zwB9m-AOl}UTNQDTm2D(LNHucPonr4|VE-syhq5K`QdiiMFb{-s-Dsekfw|n`@d_RZ2CZh`sl_{BOM} z0Tu(seAPR%y7hiHyWfZEk{|A$wtD*yT|b}zC5Ff%%u;HZ01_>E+HsUW)o+Q+8NREj z<0m}S0t)-B%yK5efBajhb`m|6OyH!Yf)oN-uKG(yR*1s91>Qozb z8Cj~@C{-*I)Pcg2FNhRchyi+$_*gztP9f8bK!$P_(B@eP0?C%B=(PFZj-Tzf#XGa` zUK@2Qt1h}9iCkl>J&84fR!f$u5b0xA={o>bDo$g$$Br6xCl=Oi)PwAj(*`<4UO8Z|ZkI&^#%dh;j_Bsva~gpmJ!~ygjtfGnZIN z15O>3Ny%b8qMeS900|rx9TkF+53v}E-rf&NQH1@ATcW5M8mn2A zQECH7{W{rn!LI{ktGd-8ZwfUbE3#9|_NqTXA8c>lv*pUNT}{p9q&Y14^^)GYK%rC1 zh6G~&Re8~#>$g!N2mP?&bP3H?H9ZFtP1yg5Q_C&|ck6egD8fAr^^A^jM7$! zH^UB&_2E;#Z>cca_g2d1^RM=HYU9Eiiy+q zfR)LuGlMRc}VUv{^bD(4_d*is&{g+aAbjLjD9S%}?%xiAglC$^R=C{_i9Vue9R>#V?V z`kpO(3dQo`F?`62<)`i0LNY~r<=_`^D8sVz5}~zjQceQY4E2zYw7ytY9CZ2~pnojI z(FO|IqUHgin&)G|d2uj_4lWMSXQ7(hbbVyzy>6S0w{2-gZ3)oc%!VDvdOzbYfDSgm z{#2-!)LsG!`~`>#)I$Q>`>AFfaQkzi!KIjixzbirxRa65%t7W*PZ#_ta8u1dt!mwD zA>ETwm|V6+riel{w}>x!{NBmunP4c|LWd>mL~KWHpK-ssN1;ML`F4ph0&DcM0`T-? zXw<_L-biT@aYcL2%(@G zGgo37NmMp#vw8Oh#tcUHE;^x#l>U@} zdYNa+wr1#eGCRS7P}JrN8q0T01ll$`P+P1t^y}KTAf3YWsc3D8Q~o%&N7bG1QnF|l z<1Di)#C|$=7ASI?F*ot%=A;*^gsOK=l@qB3v}}Tga6xFf6d)SM1g}m>ccWJo?GsC8U1(Nn;VPKan-YhnNQCsYvV*A# zrCt`mF2xcn6OGO62r+XVnrJ}%aJ~vIm0Tto0ALPh3>twFMKS`R{ zzDA>*N7+L+(^QHwE7wm{a2JJ6<*x~=MVhrm&?c|}CZa*WLJ83(Sd76>E}8=w#k*z> z>;g;?WTc5nqdu*EW&9AJPJ|@g6gF2HX79u=N81&M`mntD04R*`GIM}51|(o==oPkh zqs&P+kf#3JAzP&1Hd9HX-`Xf=wVR!02{IOmAtr=Z88#MCGsD9E)C{afxBy)n(SThB zUK&+Xb7z#AH97CjW>{f^P(E)HmmB9#qS=ynH16C@{Z>Qdm}ea(AFQ?TqlB9MWvI{u zYiRmW-VxIeqR7LFBc>mWK^R9yO+TA-YyaV z$lFElOA7>>Jc*i<=}35(Z;_M`#)*PbMvPT75I_}x@r^4}BqPYBvCO-yC78V#D;gtl zYYrT#Yb66rGGG!BL#*hJDQaN3CA6Pd7!qAqC^exV>j*fBMZjwqDoIvbxY?CU3@;6bmW>PB(VeK!dTymI`1#6APt@a0J7c35GFh zh=L&|j-s;|TO=5KBN#}tNHEw32?qNBy3$54pb7mHf&s?15f3GIR)#=zMYP_sobxc& z+oXc07F%zZ9NOS^4Q)JnsL&=1Iwm2+?oa4jRW2m28yC5=UwoZBc|wwi)PAUoiHTGBQWuW~~MD^mo4n8MVr0#7kwZb+Xoq31L@K zA#7x=g*x)GC4$17hp-n^>N_4af`l$GqjI6_7;7MO5h-9#Ny$;;617F*vu}2|RwK?$ zag57!eFs%|u_U7)inv+uQ8S$B6^JZgQh#F{8z?s(eOz%8Xg0E_r@zeFUG-1 z&^`@)4YQBbOhi!YIf&Ow-)BRYqwZZXNMBG>;ias?s@NmM(&*29->BoM>1$52yykBM zC-&iL@B2*i0k5WR1n`PfBAhZOKWRde+^p8w`=>UWp zQ66CyyJSvPd2lr-AGs(vtzEG}$AKk}ln>M3m&scIsq`)laSi4vun2>)d<`otLQqmY z*58*@^RlaYAk`RP(NrDg@|UcXsYBv-{&>>>ieSb!-sl#Vvh^Ppt4z^Q9~JFBhDBkO zrH9x%FjtKqnxlfStQppeB!3CL3hw(c>d2K!5cxAcL48*&EPz1D_N>+3&ZM1RK zP1Isc3*}j~Ezryhm>sOt#7U*zZUI_>lYo3pTN0ZEf*+d+nPg9@OPKyeDUWp0C{dV^ zQ>+=PHPU^s#?MtOVF;ZtRA&>0YX)`Ipk-q9W5cV-fLHx&wT6|0Y5|CDH}WQZv}-|| zw2e`lg*ZZ}1*YG@H0@bsQK2YEOcrCUvZh`>8gduXSpGhUkF^faRoIBoYC!hnZQcd9@Hg zv2$9f0h3^Zhll|5X`!CA?gQ{FPHu!=!gp3FtRIpZBWiq$QMyF^MJ^PnX7NH_OPw=< zCS;rl!E{)|P}GLvsGv-mS6U_s^f-Z+U|gIDfLpUh;Fetk3|*m9O2IMJd@Lvsl?Btr z)FtQ)qkbUJi!?SlP-rSqPbY?cAV>gmX;3pX+4x6}MYBNj1F;G$jb;?&P*MOGPW|Ku zqWNB&2uA(7_5(qjH+~@2XG&^%9uE!6yvw>J1fcKL%AFt|o%Ly5Uu~!Ngxv%DKpuYL z7t`1J-QtO#HANFY(maBG2Z4=gSuf}T&R|zMr1t-4!Q_z>82FlLX5*jpuu5F0{QgSZ z0ZZ^eCqj`D#{+v?>?)T3g@23@QsR=q1Pn_3$&@%rn~}A5)Ujp)7Mckd9JQYkXO*um z@bru;{v%3UGe=aLWPBPdzr!W9CMS9aexX@9R`Re4okt3=JSX%rp-D7qn?gs)QK3T! znnDLXVEPc{pmA&Vj?vOO5xnMhrqVdA9$<FR)JO`1$$WFi+4+db5&fhh9u_N}p)m`%mVMA^>YAv`eUfNEqB zZy#7Ld1%~lxUg!Ae~deY zdtlr#K_NfwejA)cK(HzdF%a%4OtXPZnGeKo{<`=v4lCB=VN2{&7msBcZ_rZ=^LT5g zeuSBxmbmOi6qjEpN0+W~hNzA&GCC}3jMDXkpsp#NCV|uZwf4^Z_fpERR;grj>9J~? z)J;rjTy}sPMi-t22Dy~Nq$WbUi?T+_SoFP6s~)*H>#9udYeP~;Xo-SEOooQo=R!;z z?2Woz_7?A3wICFOKvDS*eBY0foGdp+VL*-Gc$^y%fa=lei+}C&?|ZGDkfQW!9X2ls z13B2F`S*O7rm1LL%)BqTMv{vVy+byD5EC&KMI7)M(Z62bMv0+mL=%*aRJhh%AM_vvx+g)3~J@d`Ha@~Ue5BflD&(A^s&!WWPSD-Xw=~Fg*$Pss(+f=l)H<5{K|GH@O|| zgrZNj`bkL4f!tbN$y+NG2=E;pzdr0n6S2Yh-YWu*P~_=>cOJ|mL`O0eU*fS6sf=_^ zLk0{a=}?NuS8uMKaCTk)Lsh_V2?&C*(0n$Lm5;Sd`?hCUG92Jn zJ9I}?OHfzls@4gFfFa+dHl|uM+|Lg29YA7D38*Sm6&NTNC_3NS%RDrmI=sB6lVj)@f`UKx& z05FoCk`2v<3s;RlbV6VSO=Kp7sCQVThi;?B35V5bFg(~tNg$WsFE9v5xKuQ(ozR&sP<5?pb9^O&uzos zn+l(QmA-v>^K!SnjPoVG-Ak08>it%_gqgO}pd!Yep51dnKg@t-sVC;Ki)hG5Z6`ptrBR-GmJtgTFL+kxp=0$-?D)kwEN4fIzx)CS4?kMtW6p#cXFr?@?ld zizi9z)$Syqrqt1`8_|1Tn5iDXclxC4_o4_`VBXNODFiuBhR`q`?@dMBQZDc*Rf$@; zT0j-#=fu*l%Ky}x!!aO|jL3YweN(c1EWW6NOseGT<%PZwEUC-*RXoFz zC3Bs&UoKP-dBcu1K6(^<+M>4u{9ozwJ{!d8%~Oj}C%n@Zy&d57nnqjvXhr6#T30Mj zS20qNoX=yC2QbNSFzu%^kYhn0R=%hanmwaofyfnQp^qAei}d zstFZE$AwE{^CF?y#kl=EZ&le@g_~XqB%M|CiQybCK3o20m74X4fuAvINj7+4xQ3cr z)g8FUj;lQWk3F1w?29Q5Pr)<#;{$hCjX6{eXu~>Ftie{Od~Q)*?0C6ESh5kB1mB*>#x^yOyclEP&Y;W8RQ~4^6DSBMd)~xLOeh=@-gxC@^7i`$< zfT)$!vCpw~fz(K6Om3KuE+V2@U}e}`eYG-2MB^-ZWUSnLCc(yG$qD8-xm`@z^#1}d zfFEk>ClG&cX8zYq4utcleXK~&1NX`4d(JD<+9^2^0J8fGcqciXK5wDNTHUIDF;-9_ z%MLD{_#4Sx3^>+Az=|mUsG#%z)zj!B!&{3pN9H_yuraWplh11?9WZ{P~9U%16NbQY_6zsMAchG6?5`E z#g9}!7qQPhV-O8!1F8tne4!8SWd;b-4d7V7!VPN#{0Ag z+wmj@+vJM6GxA~^_y!M_iLVBxmI)-sk|_Pt=tz36Ig*+jHN`r6AskyP=!n0<1_2ZS zq<57giA}26FcGS!%uOcFJB=xz5Vgd!h*kxuFQHmzngIJes^YB5wlt6mtw*vv`{jYY z=F!*CyA~^hwUQ(i&@&h?^2nkll`-3j!N*JLVoNjI4CF1}ycx@5T#qt~dR2s%mtha$ zCA^4se4afpj7Xrm=|p#a^^OIP0wo__yrH8?uxSte&tfE!x@-hf(b$uvs72Weq$mQi z2CyLD@+X%GJxTM?*7cLiB5-1y&ap{D#sCtt4TQ;irkQ5`3~93@WB`vJDVpZJJ46fP zG}9!tS5=^}X{;1b44(?2_em*dk7ae==NWXhzk+v+NVb4dX+9LNtfQzs>4A)5Sib2y z`VcYC%JtJ>N``WD8X^M98VMZgO;i(U!ZLagXa!(_1ya(PPHxhUq+GGAN3j%4%EKpv z^GIWYt7G0Z${T}+4uk84CC2h=>&!YBp9oSi2U3XaTCrDfg+yLp8v!^;G~K%Sb6(S} z4shnh%ItT2vXw>z{MJSEdccxV-cIemJ)p&BFqO)~o}fJ8$=xKDYdewR4$x-IHnmMf zUa%c<;3N#`I(<)@wQ6abkfbij|4YgeDo%p7k!8tr!D^3b;45Cay^Blj z0?%`0JYe{eTB6Z_PMn)kMrJn*$Lb@>Lj*<7JkRIsAX==_%)FD|%5*PVMwIDIyqeV@ z+h9zh*dvmc@gRroax=|r?%ERGKbL4Qb)}{e$f)P9(i4%yqRxx6Q@r1zY?qbpm{PEBrB69``F3zUp(IB>m>EedeF}xf9+>ad%+7np$~31Wi=cE|F=!gv*`r$h@N&z%jbeULfT6JNQ^l` z)|#+x8Qe8y)YMV4vER=@m<)9%pcYvAFwLNtY0X{RU#pjGD!X~VZ-Zt%TaY+vi@}^m zAM9Z!R*Q}%rfq4~$nv5CzrlZ64d}psnxm2&Ajs1`T)r14tit#(1WQ#YexCgemQb24 znGINI08pFu2yerT=8B_U7T_T|Lco`P1Z)vrf~?8mwm_G1E9OwWKE|Bj8YaVdL>1OJv32l4H~H-QkBrS-*_qX~16{k=!qoRnN{uGOA|GwFaPzj}cB$3=rQBewUg%ZlI zJWMmhs(TX*N=SHTrW@!B!JTMhsmWtOB54c%LToZUwP5kctF1mXiW#c5;JWOoPV6KN z>@yCpYdVHyG;?$5$~aqf5e!v6g&^Vocy_-J$<}7$x+cD;Lmw%VT1jM%!#>DHab4)1 z*Tmnm&uPzJm^tbK=s3)zI|f?sQClR}26^t==l(k>lbA9YrZhF!l4>tv5pZRT!!6IUb zxonO#h^m{n%Cu~O`w!k~qB*JVhyj;BuME}1Y~DwL(h(BLjE{7-`MuErtmSz+M#HR@ zois4$d#k!gN);ef*L~hsQ+evL85CA!JQK)e?Sq+4jv`y+lVAoGCYo?&en}JzWv)`M z75=5!>syiN3fwXvIt<@Z+<;08;@G)m@g__JN<(9<(i&%eG?OZJd$35NFN5VF22qod z(Y&3ijjlpn2-C^5Mku*i(l$Alg=to>R?PB~Bc#n>HfDnj5aKQlxk-RlKQDpIJVG8} zWCwoC7%~sxAy2ABi2>#lE?ShuuIm)Ujj}LAXfRL-V3b*nRfV_vNL5+i(`K-MZl@pg zVDPBv(s(_@9l9)|L2PBAsJO9ktXkMh9RN}nq`^T77yxP`3SeskTG4rg=s1x1t#vVmMTEmEFYTBllrZ%^8|!r`{ofah#R&`BQc~(nyMak)VMwvk84CO`{bjh$K!ss^!SSnJz}UH5Q)Tk zLyrj41L<-9#6N}}nGlZBJ1&hO^K4cS6>avWYGsFy^~9jf z#Gp~Ug>CY-@{feFtwr5>*-EOaTB6Z>L@`GbYUe+Pf>gAYR^qLikqnI{kKkDeD%jE+v1~n~6jT;$x=A~z*fa}d9xSb40eOn7mvx@GXXWr|%vNSU=!N!t_q?N> zTiDP?P1oPT-B9X)qJ;-=K_u@Dphu=q>`u0Jz%HHm*0w~Q=fEe-T1nqI(N0Yu&&Bo1 zkR7UmfFS{SzKn}9ixf#L9LGJ&`DV1G>X37=%CjxEXl<4~->)Q3U}%~Heej4a3Do&y z4TwSY3}U?oRfaf0VQ$f$CP88yEig`H@x@=*ycf<|T(~z4V%RgzA2X1-!tFAH7MPa0 zW}oiUDnsGksKNTRh_{FZmXxga<7r7-jgRGyy$M;3#(IL5uj9co5LylCoOaJaFWsFb z1-^*_yBG3GYmbYd(iJ_rA>z(@B-EA@(l?n@(T)9H7S011H2dyUGt+kUgMIscq|<+j z-qD}=&WW3L#b4gen7M3XSNx5jQE|K4(ID){Bo`KoF{||A66{@l{f1qvQMjXDcEvZ> z?}BsOE@tvgsv;hU9d-0n} zx2v420iNKzgo$0H$Y^@{;$pIxxR`d15sMyw4qH5R6bThPhEt#b`jugpM(*0lcWE%= zJ9mPGa(ovVCwHmO4PU|(xSIL5=RbSb(J%OgGr`r-t#`jxkBGUWKlG9>>+P+7^tcTd zgFn~cuPe+0qzYuX7F2sLE;6baNd&Od=g>#vH1XcpL=uDaojZ>{xSJ8yAo*bMRnd zOo`AhG6A`T5;$4o>>}Ot(Vb;>@eMK~_Kc?%7Pg93k9KE0y(aYwKYHUYso{cu=g}(^ zZ_OX4GwiQ*E}zw}Cx7_qzqsq@$#4AQpVEad_`qw9XvMItx9tB>rbl_$XTJUJ&MXw6G( z*nE6Y!t}v#!m8>a%o4^S0dCqTiKdENEMwc&jaJ4(oP}tKMn7J_+Dvu9c^g+%55Q2W zfcHZ-3yTjVvmf1MV_p9K6d#Fv2N6ko;R>3+x(;RP5eyvPy)UHQq$-D*lq`Qp?Xri;#7=6>`D+oTJ}+#g%nrG&u!`aevqG#g%CjS|v)XM5M_BJbW z0e`+#B=1`6ov!*G^tCFZsO+@=U_+N|o6?|wjAJR> zj`wo=C3x@)=N~|HT34D0Ci}7v zem-oip!YyxmbF;h(zM3@U=eLKmPhQPr?bk(D90aJG@pk%SrL?Du?@97lIHYc^v!aR zXM4fCZ@U~DOlTo2w#~TT;B8)9$C+CNQP0;8IRth%UoYp&5dc$eo$7SOy`WAdw2Y*R z?Dd2Jq1g&CNp%$FM-VB|Ec)8u)M%!Q^p9gldYG0^+_joCYH9*C%`>mLQ9IBgMeMVa zUxd>QeDF9adn)Fj!gH#Xs$tiRdfoan1O^$EogM)l@1D`pD=?=@+lrku` zN@76^?8@Z?Esa>C)gqF~e$YA9y-Q{vls+skoyuxDd7OsZc^!{R6%-?|eRiGvaW(ko z&udOt)v6&Q zG@ANf*)gI(+|xmTkT}pPL`z0Hc!(~JHjP9HGfro16|zDUOAzcALjJ=6#opZ7fL8X6Lca{E>@&L2Q-kK4N!xQ!8#t7rPTv*-3cQU4ec|P1XN^jXRdmu--zNO zTbEbX*KK?CWO+$Z+D!ci*Cn$msSnCd^+(13Jw6FUcO6r zW1yy9Qr>1p7GaUPgAOX-fu&6lNQke6Pw^EB24WhqjE+;cQ**#uaa|{s+G`q$mF4OL z>a$^j##CrXQi*De8W{`bq`pRfFpsAXYAZp;?Iq2ccHJ@fnAeR{T_YW1v&~*Hw$`l} zbkAD%xT5#}O!ur*?@Z0+e{H?PY#HSLB)!tA9xKb&f6Y$0);i^XFoHLJUN+7x^7Ddp zijHC_=P zd3>O?XWLl(1xspzsVDhql5PDKRG&;6cTp|H&5SRg@{Dgi@5*YO#&cq%3BA*wE_(~? z5hf59Me9nP9zDz{v%>gG%LJ!}xjJL0#!f=sCgj6kn>>DhmvkhiT+(;+@g|C9hUk)B zyQ1ULXwK>JSkNNf5p4~lF6sLuD5-kEY@YNoJ1q`gX`?zzFNs=P_?P2mg*Ky?7^2;^ z<-<%R^&1b`1Gz*2VsfQVfk=;1n`|@_0%GklN0b8k7S`MWRc1$oIV~x5u1G8cSrBC} z!wqY2OwB|yY^>DOk`RtE=7Pt{Vf4u(j(uEq6#^Y^tC>o-+K&2Hs8}D0nD@~2;m{ab zvp%eep~KgQ!()h@$?Ib18SBF{Vu-y7N5;@m>%&pBY#J4xmQAw=pp$#lJ2V0Xa1r!_ z#R6O9RYT3zkyNSeeyuG-V1mu{sdV&*!KC37Elcb$>)x|I7~TxA8uq{_56GnyVk35jN-j?Dq%SM8YUaO-rtuiwapeKezNC zLwW>#0^_OsL{MZRX8AH+5rXVE2i)PpI%({CTv)F?KVLeiSK`P9dJgeW-&^K-cS%sK zM^heSQuU2XsHrY%-LiH(hw_mti;@Yh`l*`vhx;|tSp3m7^Eu)@af{jDF&3aGOB8}o z#&al%ZyxUFi`N%g2rof+8j$;zjwu?Xht!?RHh@YE={UtkKL>m3A%9-Edtu=YgqpN2 zf2`QWVH89)U1JWbT#JF+%MMol-mGw_4VLua$}Dj{dueFnyFOzupi{6~97ax5AuKo}=0l_k4d&FpwGJ%;%kc1A^m+DI`T7uao+s)w zX`C#vL`Zav>7-!U5XYjDS!qVQ!1<2sq?f}PdKR^|tc4ty6i-8>$(;Ykyi*bomS@q0 z64(@^C43%iT&Z$f-lSMomfL5Uixw$$@-j3vI9wUzV(p+eq-rMltIdMjsSgB{5Q(SY zXa$FIb?9JgsUqo7)kBhA61s4L zS%d^HFpdjGEwFO=gd8ihokG0=@+5@8<_J4;gCINFerh31jum|kMJzWeb5{esRj^11 zGZpAzPZ6sFt&(f>9!OSE|KN>QDiH%c#;zii-9<^|`NKR*o{5mAGh zz>%u8QL?SYX4sW_v8h(@9W=QL(o$+@g>6yU$A(Vk^-N`8R-yyZpNEGZq|hnZMl8(i znl?LHHI6^bxW)|9W9(pmJ*YsUR{+ku_``TX^Z`DWX5Z8-ba7T~g>C_)>@u5TN(E_<~+pu>Q1eZBiE{hTfDXo{E96`l zldyjOJ1!_17)sBwpPde!*L$e}dgDW;);%mr}Glvu6L93o|y&AN8s-@XoK zoUnMZ#Htgs;=!uZ+f<-D@Zze|U0jk~?~UnDa~r?yaRf%2S!lb&Akf=+N)+wAc$Je~xMgWV;tGDI0+|L?Slq%%$Pc%0j#ukOi)62JEHbN$#9XZ+ zabG&zA(O2ER{6uF>}pS_d`ckZmm(8U63xXM5yWh--y;ez`)zjJ;bO-b3*dq7G(1?< zI)p>5Y8{BxIAj2l%*UFv;}iSZQ2K$9;Z7J*@KNgsfG{SMsD@Bd2Feb z@4!;=fh*sLi|w4fpYUrl)at!o9I&v~%gLpKY61+XssE2%A%|2F)F73GUMDsCldk$I zM7s)=hiw7XT^7dn{xMg5MPbryN2IZo{wY^|O)*-(u-N0XFYnJd$JLDUhyNkQDa_>3 zFwUdk8ar8Nglpo`3*>0_l}E)jR^$jT#3CV46}gCO9x>&k1= zkM>5OKNcWt>_t`YCFMB8EUkAOt%Bj#{@{)mrXH( z=VOXDs`N}|<`VT2SurX4oI)z)2f$QJ^(PCCF=Ob{Udb9{$d9|AnA;=+;Cn5ksw5_( zG13vh5D&H5LiNM7-eMBoMnIWO7m+q6S%}-c{LQq_%6v~;CLtY*)7e)07iYqlQEgIV zoRGYX)NLgGGSBE7%-~V5X=AXTY=C!5c(b7C!k?lQ@=zBjM(X)H?zZ}s^ zM=^?@&?55)-S4dlUv13v?f)nJhv8e1{vEaFF}@^H!jtL_?q^N7+D;sqh_MkWc9|Ep za2yq?txU5y{R-V0Ceu;_79f(?@vG)P5LF_#w@kE+3W+3JluCBTbFvDSbC1T?cZ+MWb2trHbdq#5sl}kWH`B?3V^}u)#tY)%C!iMkLk9I1DE17mP;IS~Et#dGgXk4Jv$F>tAl~MTlHY?eSJ*N$Hd=@y-_3#|{i4}~K{}EQqZd2MvAPraa zd%Ox*A704gdVMk68&1sXmc1#BJK}ajQ7P@Qt1s^Ux~neoayyGG0QE$lDk(R*bHMkt zqvD;6aG(VIYN6R4tBK}x6-=V^ER(I1;HG$X4D%&S09v`Wge$BjSb^nFsun6yg4Tyy z1n_R|@~Bt$cwIx}`f#%k)0HTcyV7O6k2laNY5tE`o9Q^*B26s-t0%*LwLJ!dnLFHV ztaK+R-H=qjEl!h>tk9jora!H-PfHiA5fvDLe4WTi)kaG+Fmc4X2#gg=jg~TO3KrdPI^|$$Gg@9pjbU1qU_^~|wdSgX z4Uv)wfl1&3wr%i6z1T~1o;oXuXLI=oQ}2^j8M%l?l6Y9C;}(Dv^$gD!WjqDpq8mDL zuGYg=#Rha<%*fVA0(CnkT_{?F4Mt(9J`}<}$>&$dsmyhVJ&mU~efsv7I>ED)OtytQ=%u(dX`Ge3Fcu5dm zIP-C^cXer|^M?*m#Xi5l$Id)~2RG=Poc)#=&WvUyeGKEIpTSmj z_1aST$O(;VNttEmBCg<#5oz5Coe; zNY%V-reGbG1(m|rsAT;;u~vZ%5!sd99x!pKit3^VDaXZAIpu-VPZTAjLniF+1JmbV zFvaM^Q84Eyfkbv{A=zZPjg`1|LRkX%X+DPvmCu}U)UYC9oRi|Kl*F5rpGSyWGLXC3W?OO|NH;~m(j4gvkBbO1W2z$n0+huf^GU0p7-h-+dHc7Hi^F1#N6M+sDic1 znBCqEIANb>dw?_`S(j@RE!#8~o3j%w+MeDGzi9{vYn+M)0VHFmh8^=rj|`&8WYL-} zTX7f%<|c#p>cF)wKzBU6CTnY5b9$L9nY}ZsoBm1CuHM}Pxxn>57iiG$kC2XfrZ~$ z_KNWj9R0aldeiv}cVYHGaco}Mn|blkPyLI#pPj$ZHmok3@|*1Rbo@C(X20x@p=qSA zY~TgPj3(QzqSFL_(h}NM!dR1S7ew_iaH!)1hjn0t!#8kX`RI3I$D0=?Wzd`St9gmR z&2k&V@})%w#0Ufkis!3K9+YH+I4?CZqec;`q|fS`>1`FtySA`bc^@5kq1PWv=o|E5 z>Df&;x9Vq=H{M8JgcyVqkyX{w0V@P0VlXMRY;a~itTl9wSm$;;wc+(d#ju=Oq> zMTfVwIJ`}i#c{p-ITwY>;Ebw*DIuXRjS9Cm(>;J0ilbNP9I3!XoF~;TiA3rf10~8y z4JRI0f)gJFt&G?3;4mBEp@R(`byfopI@f;i*aQvqY1mC7Jn19DgSB0=wE;XXYDK)$ zLUfboy6m+Y6ynsuqI;xn&SnMx6t%Px?U4l{E{~+4gQ7^#Zm-| zs0fQwLTr&a3qT^#g_ei8nF~(DiC7gmL@cd2`LK!-ELzIBX@Ec9UKnNyM?Ri3hoC2)#Rl;}jYaN-AqG$$~9hN6Rl!=94`YP8RI zDF{v~LgUKr4R$(X0IFk6sbCq^P@u^u8STL`we*Fg3Ue{S;-#e}qY;!}aXY6Ha;*Qb z0GSiUOyQ^~5*>e2Y2F<2aoS`@P@buIo3)BRXxylCL$D$Udq|V%)}I+h z2MHf%)hpqOm~eS~=tL(XMO7FttTOIH9)wm5LaUpi)QC;h3g-P{sKUVCGxG}AH{TjD z%xuBBs&z!N0*v#(c}EY3Ru7Pb6KNm3SB1)W0$L&K$0rTe^f{O6Y-G4(Wl3WC2fab7 z`kHQVU?aaA;Ru)G*;DDGR`uyk;^}6NMa|yrL8yfGFVTS}X*CeUC}>|a9&gvEn0p*b zcS54_SmI4*z1rEPq~Z`%md#?e^`?Kv@xkO?RgV>xHIZ&O%n|m>Xt1oO0+JkRvx-Br z>^JM_2e*7{5=3v#A`1typV0a~I^))f`a03L~=6~NOJTh&=cOV@xyf_TgtrSOdt z^O)~zDaB4FgQ4Lq(Bh@3y6h%Du&*RcMUn3iMwpI&8|Q@x$RoHyz&{llR^tj04~GTf zO8pq}`(WWdO;~Fy6w)Zo`xl%%qAP@^^;%O0EJiQmi6{mw0=Wpg$AR`8fdl8FF4LkF zq58eTYX=~btgbXRAr9=U=kmcN?2%BU zW%UshX-1PmXc+=id3<8k+UVnMkZKl5t8*(ZU$K7yeH3bN z^yO;r;KK`XNI;#>*%A<{Piv3Aam}LK^L&-;6<?lA|e^`GCAiQlE7Zum{mJ z*#oOvepr_#NBSTQ zKVFS`qK})ceSUt>=@r!jSLl{NiJmgeF9BAIhuVgPOvSm(C~C zwc9y7xYr^$$kb*ZipeIE6?qsBRqSslFN2(s9 zz&Or}?yK8=ZbiNo=b z{Ssmdi60)7IUzFdX>KIfO)!#_(kji%xZ)u9SP+!VM?ru?5A6f;OKr8wSKMiMsRl*5 z4cmj@k5@-Q*>Q>_6myl3t$y2p!8T~yAeUGI3v1*sgA*F2eD+`kbY2aZyBRCYuC^vz z;%(~Xb?20p3VMJGbz%6X%04;G;7h%zo6r`0jv}(2Y=e^MXIO`psANp>f*LBb*}${W z=wx@L9r=IL=wzY4k(QKwyERZWG(>|X6oVI;|20#Mo|K_@I%q(e*+D3b@;U)UhphZ2 z7_ZL`ZN-yX&?_zEq*@~D>eE{+WEO0wyFMGnLKbIk4q=AACd>(G@vFwWL7NC!mFO7=2eW2q9+B2|4W>wS ztrjv!%)JM5TwQ~zrsiSq)Xg#+J*tjDo0pFBpVu*5I;;x*^EyUb4m633S{HN4BT&Vo z#EN<~T*k&JFwW2L&a-?|AM)jp>8QxUCoDFyj3BK;QXfm&_B`QggY%jl*Ju?C6q@k$ z#oka}#|)2ruHQ+fHHI~RVKbHo;pel@7}k|woB|L@^rlLDG9+Bn zDPuY4stJTXpHEIfEeM%p4`5JHZ zmkA>B4pEzk92iy^tX#G@8`htIBONp+Dy5$+;>VODYg|UVCytazEG8wQ*)H=;2PYP( zIm>gBq$DRcL7VD}eM@bpH47oBtMHPF{a(x>bi!Mx{_O$tG*KI|iP$%00yLlL1-`(a zw0%IrM<;(#)(0H}MuZY^bTz&sx1RJ=hlzmHBgyQx$Ydn07)NC&#u=46{UB^KC=~u8 zvs#vD@PZwMQ-Mx-aWwBm){ZoZcA#1^p--GdvD_q{ASnjptrA9}tw#_e02pml4h+YS zPCaB%QcbkXv}#_nkPRM^Y_t*~z(ULry}UoHfNAOjT+m#XZ9Ha&#SOVl7XRoUUkj6j zl|(g3e+SfU1H4FFBO)N^b}Curz>b7KB>u=hfT}Yb4J%q}0uqyo6Ur)IAF_^>b!NPj zba^m+&&nqz4t0ykACs3u$uT09NLn{%D3&Y~$Jt0o-0A~C32j<4Q41Nz6Wht4Ruy(U zV>1|wXX!IFVuWcQ78Y4B3<6R!(xVC(_cq;zJ7+D(YShNd&>Umbt663@a3C6v((|(6A%~mS8IGaBj31co3BJCn!xN;H=w-mULRm zGLR}g$4bYFjjvE8nXXrcs@LWBWP5v6U*6SfR5HjaBx)^w8W+* z>F*F%y_ED1QvfV!QhoO=p~Seu`QB9n zaW8?o9SYX%Q1I?6tVs%9|K^ZCIe$v^0AYjSJ_2h zE(Pmc7wR);sCJB|+x|8yM{(EwP;(-+R=IR{n_$`1q`rtiU8;h0sS1AZomPg$(t*l# zX_M=cVJ-#hTngU2+j1#*VO`hdgbje*1nRmJtaB-NeT4U_%R>I&1gfR1vwyJ3e%&y; zf^~KUZ-19ns^Fz{t{VtjrPmXvD^;-0rQofXSuO=HuXEi**mCV9Q0G#x&UG`v_ul5@ z*`V0FBhRe|KHf0)e_H1?!>|yed+Sf;ZPxb0J{^U37*y=tb>DxNu$6T$fx0XO>$2`6xHp!i*sI=W zWhwTy7*y=Nby?e+0bzkaU6z7%SvxKd`D;RDAOFP4QSiPx^R6cIMZ?Sr)|oGfnH6*0 z`z^DA3pGYACv2_QO`xt>!8)^o*WF;b6ui04buD4bbrpd+mx6UJ1+V&u5QyqyZ;>usEh$m;t#NbQ~{7^cuF7z;_^=vuU)F(6uts7!VLAS;Fhf2Y( z25t5i3)X0yRP0lUWlqysYpZf(TD;p8%~i_?YK1o=1?rN) zEi3RN6-fFKu$C-b+tY@HTc@cB_$pBy^~mYCV5@z#fKzf$h7>%QGnByU0XzN>z3J@c z(80zl4A@$nbvRf3-0x3Q~D+jRVd89)Ze(xlM|o6=dK z5nPdUMMTqHA)4(?lok<9F(5!wCWG6V zg&8Uuz(o_kXc*u;d@{%HKq!Q&SV1w5k`+D_7q6-vxIDNpEp9m#vFtcc z&}999;i63Pw)8OIIS2of;~92781jjAvr=d97NM0)Bb|D4SePUO5oOVjSspi94^OB> zE;KQJ)~8Cz`y-ja^VLYl0)c6=YBdmamgfM#)dK*F8o=!BKKS`WS5oix&3+qv{+xE(WOR^r z1pFWBC!Nx0Z|sxN+j5(B&$#?F-ZcYfw(s+Qh&EYf>N1kZ{vaEO#G4{^@QWvsepbv~ zyQS=Kfp6zj`E7!$q8(Rx%pocT9K>#C_z4-~D>RMchlJ zph;TlrEStV05O)pbN=P*OB-B}oQZ;L*H!dbk+DjiaL>|NC=8SuB7Fu_w3B84C~L!Y z+XSB0MMC$ZF5>hS4JIskW2^u0s>vBZ?aml2~Q#1GHkWe?yIM#w310S zuO+1j5<5tA_ZBowra3#x122$zH?s`0HF&ycK_9d_T7NAQ^2T%HRhFC_vg!RtQOE$5 zVulH3{4;-ker&<8BV$^kZni}=OhxtRHbz|jb`i0K-l5RPhpr>$kS)#{*~2DUW7HMn z%Mm526_mUvm2I-yFD@G579~3&|9kaJ+++t*)p{Xvznm-NnE?<`G%~F|8h5lp+c)R6 zZw_;rNLp4ZCCE8(Du1Vst-DOE+wRTPue#*hrYDeQP2Y=ra3xnJNgxPChq$SLLuaX1 zfuaZsF6&6&GD*Z;oKjT=>VvOET~r^GC1*buMa0Lt_&7?BY}-L$Djr^ZE6ZZ7r~BWL@#s`kCeGE6g`>X7WXf?wcTsS|7$?c?ehjTdY???D;t^(n`c*=SYU z)3u(Wk|@iz3zT*!fUoZ^}>NKT)JG1+culEE>wp~SM@QPlL&l&88s%e zQD2-Q>}TOxss|Gt3L&X0Cs}308Y<7t3cD|hBGs!uFV_QSm=e&ijRCEqV|rf|)Jl54 znQp7o7i2$+M$sDURJE$z??`G*R!`QL7GbX;jDQ<%!OXlIh6_6D*4v-lcMPg)=(8da5B>9jj(VOol;UG)+nd9TH%G{hJgPH%X2U zVgTzOS*n*!;76eG{J_>|yC16uwx$1Mk(Bz>K)23{gdZEBWHtN@ZIENTe-JH!qNEpm zjOo)apEMEcrk5v`RbS}EN%dZFQ1#3+XRCMK<>Z_VY0xKK{DkRKTHUS=HfP0SC&r7Z zxK}$RARi(fn503SSGEY6yfphe@`&0{aVR_F-(j&r&`qkrQ|gg1WHJ?#45wh-llXsa zD&ddVL2S%aPiNK5ce(ylk&B4!?_fD@xG)#LKzODBK@7jmp`oB>ijz@~TSf37T{p@6 zak8H-um4OgpK4D|PA+fj9X)FK^0DQ9`EqtnsEdWI$o9`~4Nq3aXxiKZmCUy$w7!&0_l_wN?j+(85PXebZu~L)MeTxc@ zLx2kJaBFd0Xfjf$2P(j%U>3#-PEXN@q20+vR~J5tHe!J@^S>q`GUJNn=atKkK*8{l z7)1LV6R8a?7WHX5f=Tjc*!co*eB#Qwj2*vI#quJ@x1F0lk=oD}RLHgB8+8Vys^~AL zSGovM5QBJg;187b7y`OP8E6`*8^93O>MfxC0=4*6ps<^NKaip;&s4A7OB0gvG>ItQ zyFE@)=&BLqli`DIDO^>^6oS+5G1gXDMS9|HAbK|Ie}vEw)`w|{APZ;xj&f=+lX-^& z#;^(jI?GJ6#aRBmP>vzH$_ZMcjZ~h!r}AP#>0>*Uz@ZhaZBm=W8i%_~Xbct@d;|r<$KGnwcWU+wYB3PFGzh^RQq9YN=Ii-RE-uqu(fs%z%&}i$F zAW^y|G_2byyTt_8+D-~RI+<>KBSMF#Q0$7SBFouGzyWU-htFRsv?ziDm{?O&BHC(+ ziYAfaj($=U`lF5cJIPbTyomH?E6c1 zo^CPlGwB8FAv%hC0ur80zNu}cvn?UgfV=Tx`d374m~Px+>*|BT78a(@V|w8R8guu2 zNe(YPdd6>4YB<%MI>?|4piW!#_B=beW(Z6JNV2Ud^nrbDyA{+#+_%qBX;P=Wkp`VU z;bvmox*b=d^1ty1ww>6fd~Sf14NZ}I-FDPduEG3)o6AKeP(<|#?jLK-=0ZCK{jK|6|+K@N$pvLukHIIEX??(h)R15Rlw%?f9 z%_+NB#X2blwH$a-b`+BpXa$Xdg_fv&vv6=vRKu%X-?Bicu8IMcHNS=O%z|Z+3mOntx)5&%7Yy)%+Ch?!TwN6>jzcK276Tq2jUKFg%s5J zf3x>K@OD+zz3=+7_xZQapOxfu%XDma1cmy%*J5D`q2GxeOh}vuld&Cl!Bm5-`&dTd^Xn1yGAhfi+4Y{d@GRa;&3f z$&S6B*2SK#73?Zaam7i+)hEFe`%Jt!=rhV?F#=fNqoZmo7qlwm+LMY8J=eEs__jyi zrtNP(dQx%IbA8(#zGb;KwbI@GcDf4luL~@`zO;56}z4oy}(P%n_+Q9#jbrI zZn=Es?UpZy)=5964W3}w=JBK0c^=zp&2pnT3Zoqbpd13#y3TRi*$-By z?e8p7|;1t>=RZZk2L%|6|2sd=&hx1HMB}VBlX&`;;v=1xH9#|R%%K=KQ+8i zJ_$rC9|o-2!^54t#%m(ZRkzkxVPBK_K`eri>~~whXSIMgEd&Mvi)}s~?`kD~=RwIK zB5iZd9CxBfy-;iWiE0q*%ybb0js$_zzfyFu;-gY@Z=EN)yir9R`anhQ@4_E7_%Un%ruOzW`TDeEywIA??VLv8>-mtQlAL=jo z(QiNcYhQ?47IM`_eD*ePbeUf+M zF#~<}0&2XEYRHM$sDiJR3)!yB9FY4yaBbfko1e8QmGowdXD8ES`I3AoC)lQ+y70EC zo|*Eq?wv0CmFxkeAoL|V5j9Mn{8_5ad?e+(a_bSWGOe48urGzcc9M_B^==-rwpzD6 zrbsBDqC|3$(;ZV3KZINZasubwT69g9ApUVrD07WQJr6Dwci3BEj;UxR?k^KVB%eYM z7rdfYzPt|c#q5Lhh-nubc~I>*s?1(^k2A^|2+7iqYYo_==kU;9Y6)-LG-8 zS_mHRPAsAnisZti2F9TMRE!wK5MYp@!s)H{=Y^kotB?$;St1o)%AJiK&p9QTq85rD zib~~upKg>{pgYO7uz^H<-rLZlpA9tW_iy@R)lk6^djDtbR}dIgd&TE)Sm%LsrSzDv z1c9(d!fRUxl4vl4<%Ep0%=!CC(zUHiGqoJ+hk=!>cO0PMYD2+&x_deD5!Q$r_kbcpJJo9q<06XpGOmSbK! z#j2?96fq+2Jw?@*v-jXsN=gUctu>@^-HB6>4g&QtXUOn2U7tYtnrOA`O{l|bWMyZF zw_1*IhHPqSPTnc0P6;lozRe zz5m+e7dWPO$d)b$AeX34N{?hy`(jtZW@go86KAn$o3ix zDx-K{aJ4enlE+nN0T=ANABa~KOn@Nay*oB3hP~ghUY_QyPYC$b{s=M2yRA{1RVH4c z09LC(oRAVPP8XsV<+SYVA?<%idvMWk!DyD|;(3dzyle01+Dmsd`h?Mb+CgWxC+N-I zQ&_l5tvG?s>^&$M=AK1tRm$IBRdNV9A-&LZJjZkFs%*_;$aC8_?}J0KrCF$a$8`AM zU5!5D&C>*nHShB~709Mr+lS1jr#u(=?5sv_>ofeaC#0LSb-TA!k}@BBWWD6;ZoE!U z7Yzk3DRFqx^_=j^krns?^UB-zZfVr)^mN>pXr3*NiVjwX6xrMGuT{|1UeKI^GPtOX z#(2g?*X`UPM)$RTDUw@-Uld7`Mz~hG8LZ(M^=+=5*;2~4l2ad!b|44`;knzC1NpCA zkpHQk|5|5stKesuN)jbBU}XtY0|7DYiK+757H{4r?S$vQ*-QvuN^+}co0cM`M2l&> zAb>oMRN{YzrjY`q0mo}Y^gG}nw zlk?KTecY299com3!k^PQpWbpx=?CKM*F07zy(Lp$P$R`WlGHhEC~MSfdn?G zy~TXXGLPs#)YE~9|AStL4-{^q=l9XN2o!U6{1z86Rr$-uT2#eo7;mI`NBR7?CB0E? zb<5GB3fO-WaVsPQ22XMLG8E*bRzhDcBm2eDzlQWM!V}9^fny}ng3?G;K=-A0&}&I_ zp?fqdOnn_zfG$*2?N8P6s6KX}RpoClo|H&3Np?h$h2o!UWT7NP7NT+$5e#C~s=vW{4{U$Ir)#g8v@bMlWH34Foh6r=+ls%b}tP zJ=*3=M>HX0&e&mC(~c-)tidQlL5S~~X#5!>3LPD5`Z`%dAEMH;L`QOXzIdWJH|JI> zj*u}7a|2huW(7&2XhL?Ib};W~VhBn8X!3?ZJSjzjp_h@QdXSzEx7ARkEqY}rAwL|~ zeQJ?uM^##pcqkzk5lkkDh%P}yBp6jnf4EpeNH?a@@4yXfDU64VM2u>SzvY_|ox~k& zDWIXMGF6uZmZFJi7_bJ-(|rM)rD2A+K4NvQqtpI=J33nol7 z8C5rWG>VZBtn_$Yj+)?)X35V)#b$}dx7N6L5Qo2*xJX{3Qxiwd}aX$>9tNy*DJloC>uTUu){e7AyYiAC@| zhq9q1TV*4c_SbMIP|KaTVNh_LFUIHPGhe{PTgsouS=(hnXYw2BDdXbt2r5<9>;SQ% zcJTUR$$kOleX+%+E_wqjR&e>fr$EOpJQ}d}ttt)_ zst>zFZ7*@lByr2cE@lX1t61si0k2rRmMu5CZB3*QN?HWT3Qo0;5Z;LGFL5oqJ9q$W z*`r#%JR&+#BJ7Ofz9;yIEb7M|N?=aT!h7Vp&U^1DjK0rjNZTNkeh! z0JAXVV{6qm*8rDVA28=JY}xQ_BdqoXhsU((it!PvQ*R)t3>GQ+NVKv=;_w&*!RgnS zF=sI>Y$7*SnV8Xr>mmr-v@C7(>ETQG3NYM~Jd67QR2UZe5>sB;Y0Tc=63BHhw zsH7sQ7RS|4((s!3$r>~vXV^TjG9*K6%4Cv3DHtu0sO|Ed6X*fi?%V2>md+xD^>D`I zE|p1wrSZ|}78yn6ak`%37^yVJa3rSL=KW?cVjP3gj~r&M8tACxI7GrY)rCTmZ2+`r z{&_5s0kR5n)NmTI&nlwB`W3F;PwI(gJ5>5%%n^yWDlK+r8d*{SJDn1Zx#VO9Ddh!e zRd^W^wq%_`DLRB&9o+It>Zl6@wDu|#Q!%ZRS&d0$V78CN#Y11Pn0KUC9ikFMn0fm| zAUf?o5JOOFOR^m_*=Mt)2QFu6J!YXquUOZP_qT1bk^GK?RFu@CR3uT?dHi7_&)K(h z8d=()q$Gopq}8gbthdIR@}Pvs=rf!&`olpePEO3#V8!ay(fy;6F`b`u zCr)u=v$VLi@8>E-|=R2Ft zoKLE&x>&kt2x~X6JUcEX$>H>YWAz=w4VqUTy;u%M!K{w@pQqF}UeufxL6-S$J^-m_ z72_jEn%0U^hnmKRx)|1K2Rxw!yrel3O1N9t;Po9_W5r@z?AEId0|>N=ISU>XwP|B! zLq81fa$+(XW7A_jFX=_@}6#` zZ{D*oLuKtXmZ9DGsLcAwc78K_Puy#(??Zntq_z4JYP{+UFg%Jn*9K|gqF?TK6L{lS zbTXh#Pbc1j8n#-gEIHY87(x97{^?}Cey#j^vGcRCP?e7WNrIeK=Cr14`sooN` z9=_a`MwdvI(il_Gb`sV}cVM&{;7PVu;k^*jLW_yOmqz_d z=MiYQt=F%J`j>>ZJwpTRZZk=%u`R?1Fg;xRX{hkj zC52_u3tr_8R`K_&;9l%~sIx9lWQ&RqM|@>TkEdjj@gdf3JSOd(7upUn}{KVEfM0yzEJCiEE%IwfJHE8 zJLu9+f1j4=^gxqtzH(dPcs&#^tjApR;JBDnayQwhW@3cExUx%Hg;j=}W&&NxuvWV^ zmW}j{NPcuo7mc7H8GpHO0B7?d+^)SaRf6yg_q^;!4U>qT42M#?$7ChyTFytnY$jIn z>m&PbZe1CS_czwpvZT0e8v_hLRXrVM6xNaz-!g?VW=^}(u8#1KECMTHkC zAdfQqW2yy-J(`KIJNc{kx7 zES&Wr&Jo6b#I$ZvWZ_DoNcAljK_^9w;SNoa{2hmh{m9ybRvs3rjXani3X$&Y&dQ4O zC6v|f>>0>}eMKn9LCwj!A%&f@$d!xp({ht--4PhBL}u-5;G#_q85hMd*rvHI%3TJ2 z3@q+oCn>ZT0wFSy)n4AJ76!`QVzFrzCYFiu3O}_)5hrZoq%wdIbD0!`-y!59cOm2> zqtL)xyHjn;+r&TQn*F-#4;%8atQUw09IfJH(;5I1b+s*8RvDR(A*RSG4i5QvXdLwv zHA>#2kdK@ZB)McUghDJFW9jtzoww%6Xo z@@b2EMl>rAgEq4;8k+Rkk-c42TOFAXg5C4l$b%rBV`DBnYv<(V3zK%t*beert*MQO zGWqD7jrEuvt_4w(K30zHHN!_~ecpC>Xpul;hy+E>)H;gBABBy-pVP+Q<@(BlZQ1MW z`56EH)T4PBs6VZ+Y`r7axAF#4WJ%%h$0FyFsEDOl_h^VsTx@!-x2QdM^=Q9?(_ZC! z95?!28>9GR-v{-J^XS^Rjtb#p_h~}cQmGW1|6tCXDlSr+kb*`J@TQ8i-iIDS{Pj4` zHf>U?KyB>Sc|4`0q52Iee{N+(LToUA%f*?FoMmyYjaK& z;|Csc9mn{oK^@1q32spg8~535X1~W3uSfE2zx0R7A>F~x7o@M<7_;&j?s)VCdZveYHD~1MU^Xs-PckC6uX$>@Kc00&aSnI z0r|LMf)r9^TKb?&_+vAqMt^p>)OPK)M^f@bmfsHHHI`(TB^-uZhQYU{A(erQLcnKD zY4{jmh_fr5TDrqp_})CZ!sWLcBmx za&T;Sn(emQ=ey&+(C(Je?w~=WA*q#f>&HOAFp(|IK|ipjoEaK`5@|v`LE~z&e;K>j zHj3~hUnY|*&OS+`2kjxxy8z?BGaX*8voy@)&5#t8Da(iS4IbZZM!HXP z%_|IMz`~cNeg||i${`UGA@;Y}(;wKQC$-b~>KM7khWJ0p`?HPw-^ms+Qe@Uw&}lKJ zp;d~FN_|PXo}yRtCBKHk($?2}35i1a`q>X9MYePt)j1{=f!pvBu~+-_`SBw%-> zf(MXpyrJ*w^3oeqmIkIQ%{lj&t%|aXhYTqrQYsbFRjlpcX05*5smu@wF|@u^-$=z| z`SLbGzO*i{Dn-hdI?sE#NF_pw`qBBY^I6(h;-6SG#bPSEJ;H1x6<{)_CmhzZ@SW9C zt%jIXk!iNTQ&j#Rf?6_`cX1nJGi{aSOR*DVqAXxTA9*iCZRe=Mjx~lfTa$q<$N$2_ zfrNZW3kC^BMrm`%L-OzIYgoy!>a-$gDCN;NUpP{ZVUVSvBo{KZQy@Zh=bnRq&`}M(RJMN~W20 z>W_Jd&!v)=FI35$d@%u2Gdl*AjLuk0CF8h^P`N~v-zGKLgM!dOfbscb+NnvT0%oL` zs;;@3rimVrnr7w45*4dMO?$CW(=h6=YFZpd^C2Lue$T&c>FK2lA@W|HP_qXs=fhUl z!Md-lD33@r!?(IR67>nhHP~j_mF@BiRC8H$_8=TiHA}BIGO6aF=TNuVQK;rjHixU` zAyji&Gb>8&t|V7=S1a=skmoBfkMYL!do8UT;RrgUR^I!I*I+@f&ezJ4g85omPujZo z2()s*JyOk8{({&00Mf;3n5i*7hUF z)RFU)@gt@LdmzivmYERbKz6T;F66yy9_B05eGf3qI*b1`_G-P6#gO9{DBs9ZRF6~| z4Cg~}`NR!|b2`2@(PY97gJA)#84Ls?DRE1T(qItnfAMdSc0}+vs?dBSgnALDVIWJU z+3~-$=)Iu63|$)Ye zUD*AyVITx#k_9PQqK5jZbuO8V_=U{X*qf#Qp&BbPI%|-Oe`hy4)N^e2Ec-9M{mho( zuvM8-Ku$yu7SFItF$p_}WrcmgZ1+z|0Eb&FN`dq-kcSwn70T`q!`yM)|M2XP-yUv= z%nGYRf5`HsPA22UIs}uo8nTA2z#p^_%}nBcjZtyu!u%+E=_(po-@kTs+9yI9?uBPVtn*fY4tbrqd`_C(40q+upQ&BFTrLIF-^tzWEL5 zr#G}*$bOsTQf#h_&RxIw*jJyDxW@*rnY_O8zAMxB=A4lGy8d1T5%Pik5$ zr}2|&fa(GL94$EHx+8`Hu1%XWA^ugd!_1N|shsqNB1P{1%1=<@YE?N!C ze(`0U5)h+b$f_*^cP)41@M?s7cpPpqO|0c5mtW3g_0h0bAm>}i+JovZwf;+bx6CMB zkkL_BW=B;@(htfK=cnpd86H%-N2Pn|RCW`z!1$?06bN}@vZ42HcHY&wDN)Ac%tuDHA0q+ z4ezn^)I_CqWtj1V_F+%J<41`X=>ts$)Lzl@2`)Zvp&8<}MfVPJ-xRD0jCM=~&bSFS4U9GDRr;BW&o zz4n3GgROztJ$Ba*(5dCfZ1rJAW_yorbaT)Msx>kTZ&1>b3)tk5@&AA_l}|J>dsTD+ z5?nqxf{|IkEx#xmvqoln{teR3$n1F97pe3n;euhlp2fA(28tS#hg4bTA5vb6k|2W@A^5C)N-3@0CzB1|E33URwF2tLyzD{ z;kD%BkF`fXilZtP8`89ZeIy6)Q4MU4s)8kDd@yg29fos|aa1Kc^5LBEHspK=2DEZM zs-n;9<;`Vrv|~CNm01jogAzJ@nY0+oV+W1tu(E78x6)DvV|S(I84lZsTP+5YMPIsO zdZiiCVRWQ1#9_vHo*@fS%0Zq}f@&)e$MNiDALOw+=4Tq@nGB+bxONQkL{b_czxOgfRCqJBfW(= zFJd4s80k4hM@5r7upMeWou}5bQmY?&?DsK0BCH(z`8)=LKTQM3E=F{q=ST*Bcrh+; zh4ph90IvOo4gil|H~{?RqZk0TG>m*Ve{iVLMT*gCBEo1zxy6WNDSStr+hH2MSM$-1 z3qNM_qOyFS)1_<0rL$^{4Cjf7wEzl;ydVDy9~pM?4RidkBg0lLA;F6e4^g~_8ynKR z)dr4WY`Aja*pMasHa1*|P4%xdHtdfW9mU0(>{F~TKdp19*Pgy10sEjyx2CZ3lNdv4 z4K2NpEfbDQBi2WMwUawhu=0Ikcjpfl2V1Lspw z$$q2GxB(IrJ{dq>6*EIxYWm$l{&M|Bw2@tY#pk&23^~Q+upV*+u0^FZ0!46OAkz>J zCkYe5n$sf6u8CQ9--wD2`K~M8^}oC5f6pNRq7q;?j;{FtH~Ka@2k3Tyd1ZLVFRTn7 z{8`IT0xVVrmJKGgC%an9276WE+3V`WeBydxV}M{#z7Ed@g{<0!cggyMT55DtWvqpL z3A-4hII=}XUDLJ(DXiMFuy@i=I?X^sbpm_nf)I1K0lp<*aB?;X+a13VOGO*;9-*hJ?%f+qWjas0Sc}&q6YDDu5 zCHv$CA(&W4`i6GlV-3##!tm-$ttk+jwnE_cg!}XA30W|vD_R0Z7oce#mlYA?-zMxM zPFDF1dtLiI61SHAcOM_Qc1P9H9AXb}L~YuS5M{=7ei>zkIVVM#u_#jnB2x5&gQLt; zI-<;kpj^z;vi#VVh_ilI!5Y~8PSii!MOO9s0(s$hL$8VdZvZisL$Aute|iC}HK$}I zU+4sjM&s(7ddl8Jx72OL%cI)EZH=PvL|xei_Oj4Sv;X_(Gzv;++T7C$OvO6j4vpg7 z35`O%*wJc~UNnkq>V>dOMcH)$-JyhP0%(LsFFjcnWsve z)2I@08W2>;yf51Yo2N<$lqglwQ70X$#4&v(B78@O^mVF|RIN%&X=$=r>E2Z;6ZHF` zG=oDT+al972@~xybWCqA!e!|LHZjdt1~O!VCg_nS=&`243;{JZPsBTv(jr+~|MR_y zN1UHcux)5wSVFH%W;A_(OZ`EtqU<;2J*QR7GFP`#>hS+5i^b?In0vFe`(Sg{)YJ1vz($5tQ;nTu|=EDRdPx8`Y6&Yyz zZ04gSxd2%O3mRrBMv5}hL6$+b@mE_4J<&9!mNXpVEwd9)iZeQVOhPO|pT1xn=ePno zsVEkfsZ2D#Fcg7UL1Y1`4>Bg#(1clyFlkjTk}Cb&nl?iU$TBMS!PwFYy-yFs>9A1{ z`?ov$12I4x2~(npN{S`^P}~a6^>-G1#-7G+!I|%@WiI`V=_WV_ayd1&z0KP?{r8|r!RAh#SwhYTYmxLlciKelV+Ur{5 zft25L0p1gkn>MDVzN1Sb^?mGZSk{yMJxd3HdkZhkrykX=PZC0CDk3dw3M$^$*lo^@)jRqP{Us`nDX8MOF-~xK0DCL%))vi_)~P$&E*m-`c0Pnx zc4x1=$5J;PUfG?!3Omqrh7jGAju6rstdhWnmfW*&=Qzm5%wxk3#;J<0NpF@tTe{q= z2v4OAjoK)q_oG1ZzwLzY^KHDn+SgmL^$)c>65mxcN4M)!d&EN~)bMKRmpeiY=c?%w zl1(0nn7fS@h*-N&6EOJ0Y$j2p5&X6K^NKgpwR1gHe_nH@;uC6YRf1@9kAqObww0A- z_}`@tX>{lWE{Juz+o4U0$WQYLoA5It7!7vp2{RQUs%(Ze&ekbtQ88!HS#OV% zbX&aH(ueL?2B~i$rCJs$}i&%oB3fG^W>>qVFnFreIsQ(E5NiS%3 zDg_Vq&+3QH`Zu-jsl5LE{p+LfpTd%dM$uLKgi*fbXQ4crPdV-Q=S=zQMEE?azhG3W zDKmMjro0u6R`T3$)vs2IHR|tWnl)4(Y%q?!k*KwIwX1|msFv=3=8P6}+G}vjTL6e?H?sD(G)b+PI{{N9pgPp-N=su)rASXs``XJlj z#OQ!HJI^-IdG^_VvNi%!@HA7Q8t(qAAK45+|`A)>uZuY$*t9x(Dks?Q+Kq|E27|5?XPAK4aK0PoJgpHGscXoSCwr zV>h@VY|2f6(to3}KEyp|U%9^>)uwX$j}UuWUSm3-QoAR{ZjL*YbqL#b$PN?>Buddt2{BR?~;FsRTyp@s~VN0wIB)q$n6K0faO&0ac57Z zutE31q;uStNM{1~oOz_z6m`0fm1<*+uB={06n-ws(M}r3;xbYo+ORS$P#%tl387*; zDSzI)5di%M)*@paH)LwZpvCp5Lk6=iCAAwWN%yu&5Ix*L$$I^xx{p_&I!#41x(4E0 z@|$=cSRCi3aw?JGxjFv2rZFY*4REq|yr{|bCIaubch6H_Jc!U)Z|p$^D_w=zFk zj_E?t(5-v4uAh=u80i@)?@^R>r8mEG5zFoeyLg2Ce-GOF24siyMJAGbGKmskK99KQ z_HkEh^zEq=qP?D^UPO-U69H>=R=bwz^lIaGwU9SiKaZ7+R*SFdFbSbli_esAIOvz3 zr|?3<%f2`99nMhBp4|j(xM1=g>{CB&fm3t0HkgUo(-<7xb_u7b;=&l*jK@`lNb0OZ z59C%u^aPDxU|o*$L>@`?G}J~gld)zct{hdIryO(I=-;FRky8%Jg}^kgy&b~z0&gx~ z_1{Q#-2;&uasDZ9x6t5V6UpB(@0~C(VfHlAOE@n=bJgzt$kW=(WTG(aS0s@-!T^m) zas8jlNFkzuT&H`q?hwLbJ;r>yuE)YXOX(sY^Zo_n4FYX7x<)IFuG1h@k*wfJDoZN0 zA*TJ3w6ubl*wmA)fY!|PRQ&riUAf^`}I_&N3DpvhI@z2jI zIFecWN|YZD(My>}@;5=XsGAtqjOYt#RT7_}1xai^?JrHwV(d6zzUO;TB@H))hF<7+W2GJ|56_ULrFB8Lh zYnI5e1fOzQCgxl;G6EB!M6KX1I9V-TPI1F?o+alO6F-Wy2H1|1ua*-q#xH8QTSYKQ zwqhs;rUxhp?5uk8O3@lfuN5mcl>*@^@xr3TRI?FkwQP#OSBnB|&JK99CJG^Xh;<@X zAqwItTl@F}_o!mnY0bA)WahePSYj^i07Y=H5UElc9N^VYtkol7gx8+eoDNl`$Vd#X zUu4E5hJx}hNR7@hkwA5we;y3xj6W9QLM9>Yj9crZbxeFTL|Tw2=}Z*f+YEt=Qz(v0 zRcIPirz-~HWr{}#oCa-0gv>=Of)0<++GN|wEwxlNw$4^W`^i(9Q3s;pBjbX!-3I6e znwa0?s(PWkjFCm5L8(~3EC)!Wib1EyVyHczTv%wupNSu9*G^RI)>RqfhN!)`)z<}2 zj5{}Hu0;j8V@tjkya!S3ktFU_KZ0X|MHsqN8eJP2J(L3n7!Ac<^cJL*L#1zo!`IQO z#Kh7hi<0N5x?z0UXA=V*Ns`B}ffO=YR;f7I1ue*7FFFbhJX>#T4w|zOIy7<-pE>gG zhHW&{0_c9ki>8UT!a9=ARB)&v!BH!`<@9&7lVW{zAVxTH;8M@o@;O2Y$owy4CW!)U zRj|;jm17HGRp2VKmGv}TPc2h=z)agJF^6N7UYIFa|DQWdVKAK|STh&LalQ*uSp3J=* z5!aA~W9$8&s}J}t{S?X0h=QGA(_#ccl$wV)nhTuceH`AahSJd}dm9iI3}5v^PVdr! zc{i=3Jz@l0tWUESaR}%^08*g{IG@>9i4+041{2<%_KfdQ1iB0J;mw;ZGKlOJN`e!c zN-JKZb&%Z0kojVkF+u!`PFEZ?BMb;7f!Rk+pxI?+<(4Eto0_oEG&G=A+z%{Dq=vT2 zhjm{1u=Qq0c0wOSVIdHMib*d8tbx3wI35W!LU~*dGoG<#k-;J@=Y9;1p+s{IBq-R< zNO81cfayvE$Z%5&SwHAM2i33#$t|W!qb=9_l_M*fK5PP*fTASd2~9(=T(eNr~rM!R=tt~fyy*o zYX74VVb~46s?x{5N~MqgQvK=UxBs!LzpYfFO0_Tcgq4IhmA-^6FwD1(<&nfF=1js3 zjd+BNw#p(Jp?g!%q>cpNEfb_PVM~CSfu)R9R$$RMO9+2W`A9(UN0l)yUV3hkZfLNp z!!{~1O-ZFxMjEx^Ay!vK@U~Wb&*E0qI6OhlPdKmt&(ywCq^+C9=EK=n?f&P}B)lb+ z4QX5(;8j#Ll=)2pQO}b-jiuS!AXB1>x>0Lt*a0_gNbqfFfjT9N>3QBu<-~@skAi#` zSv_u7-~2mx@F0~*&tAi=&wq${C641-)qbV+94BNKqEl17!`H4i3@{0qbNs{iBaAX? zQ)>fscGEx5x@p#4vEII)XvLKsg-?uupb14M#s4%$&bT?C$uzmGu*9C-o>b zNS8W;VhOe4cYj@C)z4^lO+9uB*_9~UK^a9xl;&bIdZDh26j_lK8+NCn$h^!dAV#o8 zxJ=?(HfNxxwGYetQ+ru=yvU4^q6Z9`N1s8_rsXasR!CIua}Re{>EU*HfY{^7nt}wS z@7mjyzBCfjX6iYJ922GRnSO)A-)#H}J;vB%!2mUpbGqK=LVPGt8_KCKsV9yS7dC`t zb_NZ5p$J6 z9oWj?Y^!$i+FK_yIJw9cUOL*hm3CLzTUU&xW%=^W^`&KA&)LV9$Jr}Syady%t#=Q{cmIS zfs(vK2~JxY%ZkwGIUgwg=JD^JYP`tV!wF0B0lGp`vsTJj0xeJ?{wyQ2rTMb0jpdYJ z^Z-tRW6bf8lv@7vQ@c1gZ$i%E%W z+R=#cQ;ZmGptERCh5Aun718O;X%ZMCVCid_2*=4Gb6}~=0Te*DRqcbxsWwL*e*R

    YkBXp9-vF52587tJU?q*`<+L-=wtNJ1AUd2=C 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_package_manager.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31264:function(){throw"Canceled!"},31282:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_package_manager.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31256;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=37576;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_package_manager.wasm b/examples/dom/ftxui_example_package_manager.wasm new file mode 100755 index 0000000000000000000000000000000000000000..0cca50df8d1a64ce4b82f7269ad311f6ea5c7ffc GIT binary patch literal 223881 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

    eVPD)@px8)#+>$dt

    Z;LG9x}*FRIL0$JfuW)3ab*_8B9H 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ó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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_package_manager.worker.js b/examples/dom/ftxui_example_package_manager.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_package_manager.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_paragraph.js b/examples/dom/ftxui_example_paragraph.js new file mode 100644 index 000000000..744392f8f --- /dev/null +++ b/examples/dom/ftxui_example_paragraph.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_paragraph.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={25120:function(){throw"Canceled!"},25138:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_paragraph.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=25112;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=31192;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_paragraph.wasm b/examples/dom/ftxui_example_paragraph.wasm new file mode 100755 index 0000000000000000000000000000000000000000..0a2aaf0f56fbd70e53251c487995d46226c8b533 GIT binary patch literal 216018 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_separator.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={23392:function(){throw"Canceled!"},23410:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_separator.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=23384;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=29428;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_separator.wasm b/examples/dom/ftxui_example_separator.wasm new file mode 100755 index 0000000000000000000000000000000000000000..4cb960fa0aa231632cf67e5efd2203d871d8def5 GIT binary patch literal 200740 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

    BplLQG)_GHa{yBu#1Gv|fUkbY~$O`0G4# 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 zD5oY8cRI0jrt~5z091){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_separator_style.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={23216:function(){throw"Canceled!"},23234:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_separator_style.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=23208;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=29252;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_separator_style.wasm b/examples/dom/ftxui_example_separator_style.wasm new file mode 100755 index 0000000000000000000000000000000000000000..a213069c104027c3ad0e90be308a2cc1dd374ed4 GIT binary patch literal 203072 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%0AH)xqB4l(ivsl(3CJg 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 ^>4!>PdHRM4*W+!5TM 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_separator_style.worker.js b/examples/dom/ftxui_example_separator_style.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_separator_style.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_size.js b/examples/dom/ftxui_example_size.js new file mode 100644 index 000000000..8052f8dcd --- /dev/null +++ b/examples/dom/ftxui_example_size.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_size.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={23840:function(){throw"Canceled!"},23858:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_size.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=23832;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=29732;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_size.wasm b/examples/dom/ftxui_example_size.wasm new file mode 100755 index 0000000000000000000000000000000000000000..1f703e6c6a034814c026cf161757d81511afc77c GIT binary patch literal 199779 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%0D9=JN5!I?3(!&K4~~$aiGf2Fq;Mg)Ceijk9|1J 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_spinner.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={25272:function(){throw"Canceled!"},25290:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_spinner.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"g":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"f":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"e":_emscripten_futex_wake,"c":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=25264;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=31576;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_spinner.wasm b/examples/dom/ftxui_example_spinner.wasm new file mode 100755 index 0000000000000000000000000000000000000000..aba545ee29325894b2f26025faf200ba8b3c1955 GIT binary patch literal 239873 zcmeFa51d_9b@zSt-sjx8GiN4q0#Ra;>bZyXX{bbFMS?zP=1c{`KTVNReLn3|`aZVW z8B_v+(x)Lan1HeVLq$bvEh-9HqN&mrE!Jq!Qbmg`RcvXEEh=rPrivC7$@~4Sea^ji zCPNhJ^LhJu-`B|8efHUZ)>?b5wbx#I?R}D8x$s3UNfI}oPMz!K68>{@=lVHP{2>|U z?5D#|OerHdH*KCW{i>X0B&8CABQ>n=^s9ql)fENERI&4C(!DFt~hHJVzEQ1;3WbC=r7OZAiSpkF_?oj*zi zdro8aprZ(YAo3s$G|-TrRJ2qkAnvdM*}<=YdMPD$xJ#iqK+o|fj^B36=I?g${0H4n zxLGJk(H3H<%F#PjzBNy^_BCL{d)^<<2{GnSr(g?`1Imvs31 zqQvp{#YvaHFR{Ak+uyBL@&bE%p}pN^EnH-6UTpclVL6vr`QNl2|98@(o!ZJwTmH}5 z-(T@z-p~8+yV>t#WH|2<@7-ilkW6XIr7jI&%y*pcjye~@QK=g*+*q2r;2kfHaV`n# ze78H|o{*&@KF_lx=_ILl6!*vbggU`@R=HKq`{RyEI)2P`LMH_J3FAHqNivoImh;Qg z<;#|hcv6Y;!IKKW&^d8pl+MRjbjHSl$^lU~N!N_?|Is5|k$A~n_Zd{9>S&U7I=<6M z#yiDW@S{lx)T9|;04qxR#CMV~Db!pycR@LcOCR&7$2>~tulD-e;n(|#@d^FkEl>S& zpQWR{rye2!`f!Hs}-`jb!FI9eQ4JjH+pUYY}lN2f{XxJ^ONA?b8@>qcl4 zy#3giOQ11*Cid5b4g+M*{N?3jCrnJx_xN}^Iy#!BDaG6v1p;qF_VjMzC)E$5#h>P1 zKLOh*&-+J%00aT$Zl3dh*A>2b(oMSQNE%Y;-Xumwl97~hiJO?n+)rdb;g<0~zib&J zneo5e{$^eG*vB2wJ)+y~KGrGWy1uK|_EvvfeDE2h>U#c5CgC6ehbD=Kk07)DBx9*B zVI`mX!2gvJ%@emWU72>^Dfk1>MIHVM7x-huo$tOKz8yM0H8SVwz4IUUIlsw6{~6hO zlzV3K(%?=?uFBlW(BzclotfL5{9EcyO+FFaX~{=|J3YC|xigYK3+~M1BhEc5`FL>8 zPHuK?OY*VcelFP;+*!#-gL_VLP3F!{-Vxl-CvOk#oaCC|ej&LfxaTHo-1CxS-2X_f z4PC!08~s7YCAG`%3$MujJ^ds1arfcy)^Jrgt9pO-``Ns!-j%%rQQMvE%wF&(q57F$ zeOvh5aAUYXeP_5X{6~5q{YLtN>R0bg?@9kL{ZjgO=@<0)SLto(zqvn2Z`8y4()XnA z^4F$sNUup>k-jy3Y5ETLIrp9PzVzGax6*gJzj0so`~5rJU%S8af9t;=z8T)*zUu!u zd^wzX=6v?~a4`LJcrg9*@S$*}yD9wY?}WF6HwW6iI=m@VZwzk;0Qvgxy71a?Wq6HV zygIxpyfVBZ{C0S`9(RYAg)72Ymxo|A}{N4WQ>`mDlv+Lat(gXet z*;l>t&OGz`>FcxCWv|V?n_lm}>95Sb?*GYO?_QI=Iy>NBWl!JZ%`3Ct&Z?JZFUzjT zF3&E@9!THg7E|E!?wje;zvlV>*V8rg?k(xn=~u!(h5g|l!d>BS!=2%8!e58ag})4+ z37-nLhS&MuN#C5l#{YKu@^p9lvh<4dN`HB}E8UsC(a)y`!-L@m;el}G_riC>Z~K1_ z-w0n1{}%o=+!J2z4}?#opGxly{}R5&cvo*q-hx9VE7R)L z{?+~y?iT)Cmfqs3`@?^PPq;JB{7!gA$4^oSs#EE&Xcxm9)A$ z{ipQH>Hc(|-{=1!{rmK;^l#HIrq!M4=hMGQ??^x7Kji;9{aku``j_cv)9N$nr_;Yk zZ%zL^{bYJe`e$kN@$_TqzVxH%pQay4Z%#i>)9TIc&2Gz< zE${Vb{`#*ke7M?OtvBznHwzxFPp?a>cc<@4t9PdFNUOJ}zn4~T@^51R`T1Rb{xqC* zbNFMx_@nTL;gjKmq~_hc`#`AvAXIz9yTW_I`$P5a@ZRvgP+cE>KkNzB4Po3pdh8$G zJn=i(560cdoS!O_lO~e-_JeMHlGJ`{I#u6s&=t>^aCw>3-PtPelg_U5N#*KGwpPhZ zFY{AWbG6$#k?<3?o;2agP%_6+h6?qy4>;1NlFR#0v z_BsG%P*7PNwH*udxC@(t@pzVB3AnQ8f7YYA;pBNuLdLjix~MnMxDB-SCk!EF2l*I zXPWXSO@Ny#JIDK#!ltOa=qId;NQ0Gz`ijbH1nk9%<^@=k**Y&2!qz&R!Vtgp0aps% zGK1(lpk)fV(8L!g1tDhatty5xdp4wL>O00a0X+wIoCE+_eS;yO0U}if+N`euFa86s zGMTBYn?d9K;hzYC!l)*Wu!IIQYxqM=k{_E?N&Z{9$pO4n7h}?GFG3mF3*aAuy?ApN z_JZOI*((wg5= z`65mek_N{k;53jM;o)5teYgOSC8EvJcH4&kDK#KZF~<4IBv%X`u| zar6>t1z0y~1qODm(E~^qoW8AsDWiT6FmNzzC(cb6^&A<6Jx~pd2|wckF#ednaC!YW ziiGK8BXUHK2M>-&A))Q)6WY%|xM`*?F0Q*JtvKpUEgg6fa+>iCS{TzM^g-+qd(~YsE`!LfSjxE|Gs;$5Ta6?%g5AAUW}l!UA~5z zu}k$xf2;I2Db~P6`6w?-SA56i8=W73Df*&JBZ!RTjA=0PnB_Ea48hc)1={+6cbz#} z`n2!)h;3%r!lF&*Ku+i4!h<7QAzX%STm=}?^JW;pNQ1oUpc#CsnVaFP!ffp?k^(t3 z72+CUh>xy@mu48D5e>BDgRw>cg*u~PC7Dv}O4}mA{PK`TD|1|2xBurn1*~N&&a-f#OBqB7bv-lPRDh;_d$(I@N$$L)m zA8u9te&^ke0KV$+m~ejOwiuHf6D}#;^UO{u{sFeH=T3`83(&r>o||MG)w8%4YR8Hb zi79G5UNSv*`F7-;cbX@|>Tw8K4 zuU`}|yKN0mtgbwr(8T-~lj1L(83C39#aumpUVY^klbJ;?>N^i9TmStRlb*)_3P#A% z&(LZW00~TR#uI9IF3&1YrZNuuM%Tuwb`Aq25h8OR`dmL zE+|ABgJQu1xhdzT>NV(sM7`0Mv8B3=TE!~C9T+^tWnzU4iDneZkL{!7lrqZ*VyI?` zC|!V_k(!8xPKOuCDKou}WM>B1>tJr7^+3)w6zeQwjSkk*rD{a>*gbj=K=n!~E71p~ ze@y72?P6-B<|oT5HZrZjE+yho@4g4-Kmd)U*5`VLT=~zzi@gO?B|# zrk&Nq^rZ5iM853N^z!NX_J4Cbdt)@xFPhU-Z+SUEBfTSNW5e$2;BL3IHv)m?DA{II zqexZ#1G56^1Phy|2M;>d601O9OTSH8PIgwynjZJ@bapxX^mD640N=bXclE|(eS|H2 z_+tZYf!M(CQ*0m|YM=}Z7mc_D9bLX_i#jTUew)(!0jD=Mt>MKw9UB4?I4nCF1Vb-k zGc>)c=T)Ngi&Xwv-d!iWjm@z0bSk}%z3w>EZRqklTk2z9(nd2VNWBwcWtL5 zU*Krg3iG~Xr_Hw= z895y((DCU_yV3P-+Fb!3Y(o6$P!Fj+cnY{HP!*VmBzE;utvZnQXTgI@2?J}T9h6AU zKu5C%nZ-Pvch5$e8Uf1c4Kt-|Pg-Gd*%6zf3WaVNABy;Xq?luYp=?VX6E=w1PS`b_ zoV7=(Qh$nFQe!06>CZ~Q(=St_e$3#FoF)}lcJ@qfxMCMFjNq2z(jId^&!1M!&Cf+O zAzkNMx}$1Dqy@zgZ_`Jn@JouT!p=brCX>=_3<*DD8$%cT_9rrhzWxL^I#)mNeQ9_a zDE?LJ%7Hx%!CGgHpMtrP`abzq+O-nPNV4)7TMg9tsjI6@>#F49%HtJ~+N$R+#5`f` ztekBqfm?9G&=<3N7n@K`%6!?$$nstbfsU;Xgp0L?soeM$ zWK)59Ins$9p=^U} zHdC?k6ggq3S!mjNSUj3QmUw{jK?A{`c7fYCKzg3p5G$gjHh#61*rnPAe*vHY$$L&n zYJ~*t1P|1TKfuXSOimOQP|@k5P9b@-(v+`iu3dGGLf+9O$m<&N((DE5VnALe^11%c_==|v=LMTi6~Ra`C_0APt| z0vdr5M=}Fp(Wb_yPI^HNcQNSH{yM)#tl4-3CC8;l zh(HKfXd(Ip%TeShiS9sV@vgZ8y8uIB+<~!Zw5K($%pU?Y5hDp1#9U=qy_3HJYgZuZ z#ftU?pfJPB%>mJvkbtS>SHDO&83xKUuScjB`M1MT()hP=%31H`r&)rH#bVKMi##vl zW~PP3+zhNTX>lyHPBdVbgBPS4ZXOxtX05ZkGdW&ZFOtvM!sVlLr-Qci9mrj>wU@O_ zj(ax2<%72td6ZJKe@qoxU=3V9sypQRK@~Yfame+9GYIF%udEold z8fwV(Ga@(fkSv6ga-=#jF4hlF$en|si#ul|x^r9rL@`$@3*9o6LpH$w=qRuePX^k+ zyd+y=-Yt!KxO?Q`5qIE7=4F?qiZsf$9@Nyzi9COSG>b1swgEC|qis8A)srR|2YWtL z-?j>Y5>g17MH+p(Kmnj{7d$Vm5Nz=zZVpot{uWCZ<5WQ@C&p?J1W+Xqe3Qx)%?NQp zmUWk5g4>(9qID8yv(QLGD;;2(0hfpbVr6esS$)qfsYPl5-V?XMbX}3ul!Ck?&?Gj2 ztl^B0N+AgB(8D>!QV;DB3j&FGZQ)=OO(}(LR0{ICFk+@}Mwe6zY9guy69AfO)Iuk! zh00Voiec0g!zevO#h_V94jrk^a&&=WFm$9CD6>E@*b6BJdjYx9Rxw}+Jq*QwVB3s` zkvk(tpoSuPZ`say2=8sEk*S5=+a;$qq+L@RKjWCtrVK^|ue3IzY+W_7ixUNAgmHfi zvJ1}*%PvD`ov$fJT4(VB@2zyBOqMuP%V~=tWV+2jkM@Fzw~Ucl8aHn(lxMtq8ElkQ z?TnYoTbsyRD3RuV;bgop3u1_y2Ol#dF}nhl1xy-moMV0C#$k^uPYTUu z7L8Q9$D;;J7Q}V^iATPYIO7{5p_zuDiknGQf(&b8N$uj+6b$S+H9JtC3MkesnxYR% zJ9qV)le%1JMAy5_Ppt;(Ct|PR_K}&1e$UQCz20_EBcvIwz9l9Z3wkP@j8#Mxe}qID z`?=>@b38SBEzv5k{nx^Y`?)@F(Df3Aoce0pLsztt)E{f|(fQ6cc*d$a zDPDw*nL8Q99O!Jm0b15DI#L!q`eK$Q(*^TI4qElwM=uIa!z&_mGE@Rv*+I5=^AMHM1(Bqs zJPnq<-VJlnz zLFC#D4UJLR>ET!uRoQxoql0iY^Z^|;glEmDUWVdDj4HJ6#jK~UQh_L+@ke|BNRUA` ze!XtybaR)+Vt@eCG>juMBY;VLt3gy6Ka-YD6Mgir<&yMJE>H!D zO2oK;BX^hbB<42TuoR>h6IwXWvTcKAPQcuR2*pLEo*n>Nfdg}5&!Nt26$pK7C1jdC z)VH$yi&`G-q*JUgb@gLkKP5AS82`u7*S}L|N9*wf`WU4OL=00dbrf2m1O%2xyA#s{lk! zDj-MUp?E%X{CfMJ(tr-tsK20vl~$fu2Z_PP(Dvn07ydV%-sQrI|zh9W{fW0tNk zf6)tNs#UzmmuYZ@$b^m)BbW_qIyqWHaaK?zQn8X0I{%48hg1UKY{nSes*8c)D{M-w zd(1Q+^-4rz!K^V22{yxU90>d(i%kI(T1qs_i9s9)8h~1w)Qn6v|50PXD$wFUqPZ96 zKdW)b(ob<9TJOb$V6?BBI1to%8wX-zrlMx&@uO*(XL+|wn)_=$K|Z|d)4slNXY@qf zL*hUldf^w#H}>7ag`c7F!|gj5Y*gENUO&*x4B@ni|Hu&XXv8t`wad&lKIb8gIA0^p z3yru#w%~zIj3OhBAN*}`sM!9Ose&^?MqKDGz~Iy$&4`l?KD76aIo2+~e7gWcq81r( z*7=$;Tf&HI*NDPN&ZqwNJ5thEauO2Y2XNbd4-aY3IkW)VbMU(yZb7rQ8FaK94LTVq zGU(t3Tp!{bEN-pdaax*@PFzPM7C#DXGRxg55MZW9kCg}Vaxm25mLv8}&1z=c1_Rtz*5ql068tn5l>={>HefC5b z;ZA_z4q0z3WY5mYvixFn$RhT%^@g!010eQf?lJZx@Ffz9pSVzt>kVUCrWg^_f(2Ga zj&8)B^~Q)sJ#D4~Em5o?WK31kxJ0pDnxVky6Rk~(nnf-D$ z9g@P<{l7SuD%^uDddD`X*+qB;>bs@3U>2wS*`OE97TDe<3u07F0Mv`oEM=k{*l50b zFs~>fC1Us{_5SY>U%5&m!MtFzV*SAPoMnH{qDXvvCEo+@A3Taus)HTs>#w-wN!tW( z=Z4;@mE!wul~!J{{7^s&T1oO|TgYm4Hvj5~>o%b+8MsO!>5L8HRRcsYnxaBNtBs2U znkJ1f_uXd}_5u4*3<}1KpQ;bZ)}qM_Miz3Buw4s)ks*(4&wtyRiPhAMT$G*S4f5-; zmTtSM5b z;xtlhC~sLNm7}Z4!?Q~P%Oi|7FHT8vjKM=tmZ!1Ta07uJk-u@#i_P_O<+tG`lqs-4 zRuaV(UM?{swzx$5-UNkITGsPudQ-VUxh8=I#4!Feq^Up+cI82!8>wbRP-*kV>P54& z7b53D5E-k2AVxl!5kq<7$}~Vn?ma7gT{xy^>UaQGi1*@jg0!mbD3~?QAB=r6mp$GZ`6d zc#IZtvN!Hd@;5n`HHuII0!J19?s{&Rh`X(4N4`6oI4qigItv!cT0B`bv(rwHU|Pk8eAhx8n!MnQd0|VE?x0c(rAi2 zk39~D<;Eb(11=6FlcuRjcW`-e_}J%sBa_`?{rF*vNmaV&GLY1k8!Rrp{TP9ifb9pPO-Heyna~e-}^Se^h=&2WC}=q zrdokb7z*tGuSZ3WTnr*&UMVG)FU~gatqSHuNwUJpSLG{dL_Aw+6$6mW8O2@#r}DQ- zXbecac5M026M1E`LAN=~;p@q*mF<&lLdeJ{sbKQC2J^`*ifg{3=q>7uGno9a_z|yZ{ctsBK8%UdS7@*^uI68=4GRZzwX#e^$L<(0N5agR+wO8&DPmw zQovBWML4F~>3qmai{He^g1o}jimdyo(jS{7fWq>~Hq{svr{;0mB+pVekl4y-@DMOY zj?woRdcXprgvp*}yY&pF#k^=-7qp-bBywcW%C8q2$@4Ld%jcc6+N%Sx)4*apJt-fc zO?OE>_TXmE4xl(rv=K|;P=|%1#f$_uWpJF>OKH%g*ym7TW5&LyeF=b|3-#S_h9PYe zkaU7*3OmjAz~3It3>s>nFGU@zs5(suC*BF-#N-8Sph~x{j*$Qo9#8K_L%ek~-%1w3 zB8N9dsTtp}g5#~4x#WT>6RHD){AdSAGGGuh27R4Bfyo^0P$N($)ad0xixFm`;-i$T zX_E|8;W&{${!ErO=8id`PO^Fpk=@NSqpp9FZnTpq#8=~09}tWo#x{WhCld#>pDX-F&eWnsqX%RN;}Tq(uMFuRAqF>ol;D>UuV za*TiS#6KZ93ixIkvru(000z7)h$@qM2jA#K;3pB=;fHSmmhq_I_36}I*1Q3CW+1=JpB0&3f^Sq42JHr7vpott)-R{8YY&y{VYti7!? zzvP7C#n)n!g9krKy>rSKz8Ifk;+GU1k9$7Hl8Buz z=#3)Cwkt<1{5BAvN01+TGBmf-yq)Pz{0)McS6hs&l^ypyO~T3m+U1!2`MK5A$Z8_| zQXm;w&6pU?2>`Un0XDeV%IJqEV{zpD2PRGUF{}3zSv#io_;2)~B5Pkra|9Wl+Z*dg z(n|BwHJ}apOmQSzqYBr>F0ud8Er9r&EDU3~?ubRz(#*&#@X+XU(P#W@5$~tdL4ny% z-@U7iR7@4-II8S1WgA-g<-KtNF9W$1WG*@DIRc?p(Z|7rZ4YEOoi^#U@LmKJyMg{J z{E~=FGTJ!H6JqBUZV5Gx37akEa+hqrcKqjo0s7EeFTnic({sN7k|2I5y^ogZrO-Z{ zv**$(ZQ_}O0FcY5FFWBJ#yrCWw!YQ>LaJaNRwIB%sFEVhfMZ<*tc+TS4w{fls*V!s znzr=m?%X2HM@%NYZ9+v&yWP7K*NW|~z(BihV_00H&*E)r=f%W~|owEBlh-`AL4QQ?9nIF*v@g<5f&|I^H&Zo-M9jz2>}`$-LhC znf43}i{Yz2!}3E}oP_B=zVS0=MJ4ssZQ`A6g7T{KM3=Dj9k%{=ey`QL;}aqg+CuMX zbM~}3>R`Pp=FdmNG;0Oab!k%vHUkq&T`&`y7PiU7*N>lF77~|eCSu4jW*qy4wU^Q3 z>kVc!aHOR!FR1U==?zL@E6H5VpW3(b99ACI+CodMF|A}cIt)nWD>)A-ndCn&(~jb@ z9=u)@KV5~M)EZet=wK7eJlQafqlc0}R))a&me7wt2>PRzc8&lSi9m ztK#FOPAHn>L;MoGWqAsC`8$2|qfW6{6RN@x3s1{8)np;56o#U#cutbm_wL1l(J7MX zBeQLyTB|b8{z0A8KlMOPGi*}z5{8c%iT(K}!FA02SUzNUOgaiA7(vmlgo4X$oWO6L zFY&W#B4K>nvO^_TE+3~^8m8p2%Y5RPI7qIcDSpOOsV1-3#h5Wl@ZX#*{d*3?wLxp=tz={=)J-N9=5oL~ z%JVQ)vaw~hywK2C&RxhbUiQ*mU80BQ`MpGb5~f?3QJTFN$=OL&WKD$mpn;-2RAvl9 zbiB@w00^~ao~+_8JgcjySA97uBXs<$7T|zeGx=xD^ zbn0_f>lYQu{?!ZfAIIuW9y2G*@qsfuCcpV@9`Z#o>oA@j<5>?W(YBmeJI;t8YSk7K z1~*4jxSlUsp+_NLnG4^-bdzBY?<{vFtM~&sW5%%ZOUdPF3`evfXkuI1MkNqUx#K9; zENGJAiHcp>poL5W)+VGbje0GUSrmrAp+BwA`7v->??(%c+~PUl4uJ!sFom(yg#M_c zAqePp?7aTkuOW##GzV=`+m5j&$mrN>ekoY8MXfsMDTWU%LE^Q;B;K%?#8V4N+`{<7s2gF-IQ=q!5mRhQ7?-BIz*>s# zPdNr5xz%}Id;q`50ZcDH#>B_tIps0eI7g__pz2D}(3h{XH_ z@E39)bOh7HS&&Fr5m1;-{*H{PHZnohgGcdwG``Lxe?lU0(ggmgg!p6zCSmD_q|{xx zG3zdRwJtCza0Jw2`FEWUJKEFQTIVtEeWVJFO@v9$iNV%Ro9|xQ=6~a0qSJAH`ot^X zV?Ukl?i+b0Zr6m-uXF#w!jf`LCUwxxB~`3+*1QJb4aq(9m7oMi;D@i(&`vhuVvQs;_O(v<=A`CF@Q z@z|cN78(zQ>>5*jz-&8JW>1zQ@{4t}u*ZlkN0`0qgoO%iGn>mrMsa|kPUl$sZOP`< zrMU(hu+)X}=QtB)1?4fOvH=VC0BVbmRQ?b?nswz&F*|}T`zoeuUUCZiVly*YK8@L? zr}G#9dCJfUXT<&>98A2|v~`=#Ef5LS4}DgP`AYX?{c9ASk0lKhj8m>*C6@$%zST7JY6-e(d`;VnNhaURN#iwpk{eq@z5 z%#X(=enD3chaXw*8b6|#6M8ix1%8m=4jU=BfVDUsVo>lHX3!t4{vjMY1;_rVEY_HN zhl8=T_F6XH@Nn7K`sfQpTX4{?$}lOfe?Jq2 zW|=!;A}O9z`Fdiec&zx*<`B&;cn9?Lf^siTkfds>nEQ2vjLmSjDZ% zztRL!^er*jf=&qCw!V;zLwy zmT!q|2h}gVV!p&Tm;b_#c^WQ$=J#f zM|K*sj~>bnQ*qmfvlU>e8+xdx3be|PW^K?XEaV&FD=jm$JH@2Fs=hP9)u(3JEniLX zuI1jH)ZYgG)j3V&Xa6S=wFs@nSpKq&Z5?Ln?OPkG#^r(K65p8j@yKr zZyU~f#$yEv5?0h;vS~>1QjSWno6LuzALnxB0MWvM4%9J1VCp@a)<_q>4}ThgY*x?z z&UrWIchrROcnafG!Lt%~N8*AiYZopoug<~I6jvu&5d9qco+XQ*vskta*XRtDIj0!m7auQ6$Z zi4JY9X`hBs8+IHiwqlL7-4^eHU4NRadf%t|8maiC)4*)RXtbXq{$OV2ukeY$N0l*0 zC!AgLQ`&vLL72!%hv7em`|hKPRhOVs%Fc+3DK_!K5za*8JasOv_vs0b0%(o2^4^XrA*s+_fRSHe5Z}(-9Zf2bQefZ+*~S zI+-_&{uq>XJ*SJ*;z~_myL_*LU{E@YaeEh=*2?J7zCNDPa>UfFv?S9`omf~a`mR-* z=B{6GT^lMp5U4(^m=`wKSIy{U=^?3C*1}4%fG^XiqT#x@KZNder=xKAmpyy6R){}l zWiIav$~>UV(JROWBpFuba6<7X4*cVWzX`<)8T6t1`ZPG?f7%xozG>2Ow~MP`X1Yw4 zHk4$ik69FE(^Ep2SDfk;g^Sy88y(eiqB4_;4t$F(p^?f$pHTl3A!}TW#^g#40$aSw zRUPW;jlAv3X2RCg&+DxIN1NPncWW8O{vY#naV*ZKw=;Zd6KluHmTH6tAY6_X2Nku% zeA%5vBa0yRoT7m3IXYP;b8WV~GN7KL8*B_LS+?N@^Hcg~os3qcE^yZC zc_RIMDP)Ed`lDfEN18?;1J#LgZma@eYq(H3d32d!Q-NsDmW~O^Vq~`dJ$IV?fWnMy zge|p3!G^Ytw&b%NUEib4X*u%#9OsX`40k15mB-{wP;1t}uHZg)z`Sy@dO zekpmUx${It`t~}F$Pb32AYdk)U5|*dOXdy4G*TI3tHF~7>nrb1W+)|mZCl>jN}2*1 zvq6E@@--r(^>?!H+i?kc@r(aGwgApVasDp~z#`B?vJ4$56NDE|xVq1}tLId;KbB&?(D zNB07ZuDJc^7kWaq{pjNMqqdL+8;N4`T6}!j4~SB zNpd?ScmdFP>ufiXn^~DV^PRYj0TTI5%rYs?mTKu`FkP53=7#0zV|r}9%BIJ5TzXx- zK{FvaGHZU%orC))gF8Le7Ha4^-OxCwsZgS^7gvGpklCi9uSZWu-396q%19lTFN&a& z_lyXt-95Ik%-7LGP+^;*xA(C3Z?RPI>a8-}-9x0nvGEf_oID`N2c@g%em<24m-qNS zk6dMQB8&OpE$>41_^<`^5L4i8r!P=an~f6oL?$>fVo`=ow0ks&0J8?8i3uLcpwnDv zGr-@D#~yIWkUj;QO6PZD8;E06e`tI>IC$O7*4GNoQf#x0$5at_g(*k8v|Txjg=GFQ z)mUR!>MB(p@5@+Y?eTtXOszYfI6G_a*yH`NF~td>4Ka1x@&34&B8HBbF12#v@%}_G zo6>%n=Li3bP9bZFP;!RdEr7ni3^c!?5H)uy+uU}_BodL~V%r2=q-H7GTE?E zkYAEKLR{I_QE8?W)oq$+tjm%n=x|+ZcXRyN5;LC}pH7TF$Hkvx<4=)q>Q9`BwkVEv zaygy=dkBzP(`IaCvcBmPjwBZ>Cq<^f;V9?2u-EK|05R(;-)%eRWch8yWAoqWTPF&6 zfNV>;l_gdg;8e&)3Em^UC{8OCitE-080$X5n6mUKgY;zycaivBI)~U ztHRbMkuPG%|2i*Kw5ZtT;g#VnE(&Z%Nc)=iI$Z{ zVo(fQUK8qqb=YuAT7scQx0-E)mn#3fLR}yV%(DS4Z>|Z_*qzE+S?MqlkmHa-1zBXO z@`;|8Ieb3LZtAA>SX}?$pfDw(El};YW$d;=Rjebet1scmr=--JTUbM;IpzCcHo%Z! z7!n&K8|X-Q4Fl7c9m5ch8%vcc~-Q~#lo1wgol1*!h}z~ zuYq@(W5U*nwoD8NG#7i~Tt(EJ93I@4fX4%GUHg@ZWcXS+41GIYjfz*VT5cLDipK&m zZjU10?*8XlIBFu+3t94bgEcJiD--due{-$kGHh-cU<{iB>1=etD)67h7l>f+a98AN zT3PxF6H?H_*Hnn58=c*rbl1%k8uX>UFhPHdKQLh}4&7m~M2j$03$53A{)Wd|mIB}< zSqkT}F%=`SBuhcD1;|UfsIlPt5_T}tIygL!9sc_g4Ufg|OBj!7sVI*%;&0!VFdpMs z=d(o-I0Tib(GWv5~dq8BlLNUrkCU~@|*8VEZ{Miug^cy1~w=NR6F1U zmeV*d!F2sfQrS@-;PM|*1n7?bZH1vmRdaKvOk$0n7(E`e*FZ^8DyG?Ki7i`|pK-w# ze){|qeeP(-THkd}|K zeY)#%CIhnziespWkf=LnN`%{93Eo~rvq6WkpY9G6z3 zx+_x7?a{dWspamN=Y}uNQYt2Z6#)7$GYq*hBi@Gv%G>~jQ$iXLk!Q<=7KrWELW>_F zZ|g!IK+0&Ab0wV%Y&)8gx_c9z>R+!3adCw)8d?N};*}OhFrwRept_Vuyaz%1H?*s3 zrL#t?ha0Pl2YCsphE!~GE(7|mnRD|cy zC7P<53uR21MT|p>F@b@?n5nSA6HkukKQ3X=Z9)ulyrou+8I&57zz{+`E;Hivu3Ma0^ua#s_*b+AAQ+wus}hk=1s z#Wj2PHLJM4{{)sQ#6*uLwDeVXK~V*z-~~_=h?KI7GD#zc45AV?I5@+)#6%Aec>ESm z^r3%$Y;F^MPRs26bAN0sZ%UZME0Qk|i%Qr~(L_%fB$WI{3EK-z^zp@byd<(=zOi<6 zvvO?V=nk>KLZ%Ppc*FFE)PaY_;e6D${1_e$dx#)&ZJW8lJqEnQpMb(lDq6+_{^5Fi zeF=Z#v1Az|gaE@k0?kQXp1xY&cd(DUWcjID%wW;5sa$t2k}}Y|h!)38;8MNDW8G1t zJ>p8g_{wYK4xU^MYpFE6Ldbaju|e=;v+V5q9N`QWLxYo~DSS$`p`C*YH>#Yh^%%Dk zj%m)IJf1L4C_)NsSxrSOHEu#kdH^3=vv)!Z!@e=j1(2%Cr;Z00XSy~GsH}6ep*fNY zb3H9tMjFvsmoXoLQAD- zjmgt3MP0#19(4_1QY9E@nzH4WocAnuJiSBmP52Bb&aE9hepT_5e2TG-%88f%UANWlraTDu@i4 zJ|;FL22r~Wgf~k_sf=jRgBGz2GRAV0NGNembMXl!{Y>7Cj;s+5|FbW<#Ev{J!~Tx^ z+tnaWz<4QO{uRFN+iXCM&~t|{$uZ`v4qmNJ#Vyb#qVi#R?J12!tr4d(+u2l3E<QW4BronM3;vDxiZ5*qM6tty@VWmQ; z?MD&Bsp$%aWY<$OCQ}L>XzN0a#luyk+~9E4SiNDmNls11CiA9Aw$s$)SlK-`!7MNY ztn-H|+0|(+Vu6{|iWf62vre&yN@hX)f4y)v$o>gAxRY!Rd#hW9LfPs#{!hFk^lll7rCPID5zB?|^6b-T0!N@&Sg8?w!Rl+?qq zHk97Q1>k|d<|L`#cSm2P$ty%HT|D76pNNaJ0gkd>hOyy*6S;<{WOno|r)_@HA@j)7v*P##mc!pM$#>6^7I|3N$ zVQ~MA=|JVs8?udpk|9u{(q^R#iE>rIqhdWxbtHU^y=_hx!Yppilrgi~vc@#&EvIw` zjlY~w9KM${z>m)?L6O?^bYAbFK;lbz1Zms-O#&%u*#<@hDgflzl0a&k)K5VK=3pIJ zAR0mVLuEV$XnNEo7{xeu_6_2?N>flg`NtQADvcjJlGwVjj66bK3~K4ZizxCkOvX9u zArR1zo5iON7T|GM;1vq<-Tz`dKed486+!(-d7h!j_Z`ag8sn5Zf_Y zh^i|O8Xp&# z1(j77Vai@m^WlI5?L^D7JvrWIP45Gud4(IJ ztz)I=w~b+%@dk>x#*hY*^+{~*Q~GPL{>D1pjYB`pNa~n*7)mw|+MvX0Rm38h#nW|v zlsymvXb)86AAXyY_*#!vo;V%wb(Q*xf<`o-Yzh?kICXQI)n?n?YJX1S?Wa@)=VY8X zGxI)Z`e6~T?OEIDWrXFL;HFx3=q}<~ch(c9ueQ}JejNN2mQ1)`Ic3fvC|DJr&3NeU z^Ww44C#TYg{1@`_wCE{?t2AvxGCT%F50>MsMGORyKbx6EKia<*fp}~x1+92tQ=QDf z5C=kd!F)_Ahs|TXvs$wyY--LVNMtVQrhWLSx&5zov&HRmi;u7^PHVRD4kbgk|KZq# zp99A#*x2RD)OvreI}bSLG-pvtZ%E@omTTb5RAVn&>H5DQSi&hXHi{Bl7(D_ql5~N( z1N)Q^NY=$#(17r9@n;R$J6PIOY&P;QI~}QvS46Px!Xu{eAS=JpdP1a<`gXc@bPYj| z_qS24z6KXX6DP*wIx>&m#ni>$7`Rr^r!bDAnzd;#wS5ekH!n|T3&&p?bD*CJw< z9Gje0>jQ@nJJi1{iIu;%)CW+_4%=X_mTp=zGcW?VoMG0jv9Ej%xH0sDQ-hELb)=_b z`B}Otu?X%I3z`KLD(S#k6GN-k!JpcaY+BY&6ce?qC;Y)RYva}01heW%g+kL_64_*d zk-j&jZA3Z0ZZ`{rdj=RQ3&?@OBvzh0Yc?E+MNRN@YrsZQNZ^SeB59d%LP@)_Dm;&pNg$?Newj?Xv|90>@Ds_R~ipBhI?qOg1lz|M7Q zDY?S=3?g}*KwAR%iLT%znCe+{o)9Yox?RSeN|JAzEBwSTaX+I2DMbMbRuVEvG@Ipj1WgZe(cxmaLz&U}Wb~#Ai0u^%&G6XrI z*OoQN7~+V2n`@9M4BCJqu!irjh;E|plYq}8Ou!WH7ha@NrI=S&$8+E06n4&>Klzoq zkHSMg?OYLwA!Utnwo4W9%CApOV;;mq=H=hIcPuz%BT&!v=bBTR`6lM z)yDl+yKd$@X>h|z?tg+zfdclJjpkBQ8*ODSTm6Vny3K1AiT#3)vF=r3B{bq^Mf~9= zB|VK(4ReST7}P8Jsg?cInzkt+v9(@_RiXXU(!k#{eHjybu_IELsoI7r(}n_bl6Dj9 z2X@tyx+pcDQ(bL54w=J4{~qVu_Gc#czXM#%3h5I(ZV2s<1xDwP)Iq zZmYz%KRAjaKR9ah>iWS+y@w~0`m#&7kf147B-YB#^Tkz3{osgv&8}@FiEpoXA+N4@ z;c2Vu2PSRKwT?$-_Dmml#Yf+fpWfe7;|%;otjE#Fnj6GQcvQ5jCbNX=ANb3K5X^q; ztk-&}UA4^0!}na-l)uv@^aWEqMF=CN7P=p^aPUhUU{%bc6BOr&_ibT|Fn`+kER%E2@@+m|JKmfj^7Ttfr;}Bhz+}r3d&`%;kvsa>3gl^om%l%2Qd#SAwUGpE;4*2`|ShueEhdc6T=WwiE zDC$w#O0vyQe)4J^(nUP#7t7tleS?b7lq)+P?ZT9{^IR}E3d*k1=Cz&oBJ=|tD`S|g z%Q7^@wBbuu$A&S6RA_G2x**1T_D>%X6nW2pKJqe(uw3W7{BR`Fp284`G(koZN%tH= zqOM4!eFav0kcbchNHpG(NIMVX51T||i%7&}j}7h}5I5?uA48JmU)dQ@4|9D$KoQSA z#DH^|h)^RVS5+-0i*z#R^aEtBY&(|c~o8E_0iG2$5gG#n#dA(}USqDQPa7+`7x5wkTU2pSY40ooA= zC!votWwVPPuSSXxW{K9VM6<>AA}qtT=nh%*Q^ww044Wha$yHR`VK!Q3d>!A5%t*c1oGwQkq1gLlE-0k_5`t z+AX#@q8qQ0zy{_3OK3Nxp;bhH_)kcf^(Vl>uj=nRFWs0xQvWeBn|Wbdj4;$tmmO`^ zwQUzV&+LjnjXT*-U8VDJ3?w?H*|*lN)PBe+(tfH>TB|~&SgzXvgyA}WQ`Fh8Djz}c z+glZ7H#fzh(zbk+#k-=p*BLP6_&L!gro3={{H~D=s8@`d9CobB#<`Xu!>4gG1WpV0 z_9`@`ljK*4js=LaUw>2CzI@))wc^&c;Z4tHFRjd07X(!M`Y&`K-gMrA+H<_s%qguX zDdj*X+TMxvb@7a0d;;>pTOvGSlz`j> zQiRraxv1?JV-!D6A*?k7s3~ur-F6@C9x7f9TB64)0k2U>B-_;@iTe%v= z%k{PQw728J!aQ&`lH&X&zM5k|6jyn{!cO4piKhH!1H?5X8a$M2@KEyl%MCjv z@A)d%;uepuZy;?jTu-8@rDRh}$y;MBB@Z;UZX|8B_L697DcRJzS+AM;>zjtl-C|U< zynDYWeIsmD>qdq`u-wv?-bbQoRmrARCGU%aqT~%tt=mXjQ@4_6YAM;&QgZja;cdB1 ztvlLUw-0J5+0;_<{s`}#-*m-)6R66&rKx^5Y3p=9iKbH}o9arw^|HuHByVeK-AmeP z-9w_OrDRh}$tz!KwX8r>>%O+ufk7=Ln_BmieBYgku5niG_20K19sugzD$CKCVUhQ$ zZ#BJNNuudp$)=sFzvZUihd$nyDH>2OZjVh}^DS#iId?Zr-ALNH*-N5nO39`vCGUw` zqvZV!*W66nYTZPlsikC7OUb)lX6P$9|FwoINL#IaB$`@EHno)8`*N$LNi?;TY-%Zaf2^hCtxc_aNn5RZNHn#SY-%Za?;ETyC2wzP-ACGL z9U#%vQnIO~y zt(KDaG__ty+WOi}qUlS?rk0Yoy~S!Nd7!Cv6=|z=C5fh%l1;6vN#6BttEJriue79c zuY6TM_v)stYst2@t|8I1rDW6A^(5!7vs%i%=hc=}?$xj9=U&sabtBo<)?N}#TS_)< z-Na|!Ug~Rmd8JiW^7^LoEp6p}gUU)am2Zuem2=>=R$0ltP31dCThF(XXnIz%sjTFI z-?3Us-rv-^i?r3clSETX$)=W)_q^3=DLLP0fh+HUruSL)RU~iSKl5N#|(uo|I7R-P6CG1if zs^DZJRwe)Av~O38v(Us4WTN)5cKp~0rm8j*5)2FeYM~kA8Um6z?z!j9KOQ zULGe1M%a%TY#8#_yFTM&FbHiR|rFs&aL4_8hL~?D<~Kp5rtEBwhcjv*)bx zRABf>{CIOD9-1{pAL5Wa(GG_{x1JfSCKL?DBB3B>u~29?*MwrvAwtm{tU#pxzabRd z8qJX#yA;M`;&HmMr+-P#0(p4!?EkA};Zef;$0rIWFChvshPM%g;cF8l3P`2Y$B-x} zM+!5_k=+;Zql&`sI`8I!j@w+Ly*lJpF1^}<9kfQ&CigF@JKaQLPlPGxX@wP>PKtA+ zIHzEaIqJaPuw_byrz>_Q0PlXoU7@yHo@s4my zR-ye>ksV=5dHw-{HU~tQpch@Ga4?(S$39@hNXe%|HOB^kCL%zxn}2W%TBTV#k%2$E z2};!|(FQzyicK%%Cu-hS0fNS>5!IF)e)-hm$pAgi%s4H-mHlt-^5P^0S69wA0}tb9 z>>DLL%D5KqkTd2N?OafFv?`e~_OwauR726h0_ZM|Wt4IDv{Knai}FYFoNi zh-pi+DKoD4&Q94B?^HJ*A9&ccIm16%!-2$KHVL_}1H!Te;bahrY9@$_O4&^zi}GwQ zbYWwgi#yB*C#Z}O87Ga>qMAZc?kajm?i;v=Te8bPoG$g5PP~X$RvpPQf$Ma(TrbyxqLnJyfFQZNBNCc#jO)-feLuu~=hQ6=VsmIB{%nXp zC+a8Pd4!*g7jE6I2&iZl5H`agZ=C5J$w;7rv))N z<1&q0NhmVk8AQvSQH`pyF}^~Ubs?WxqAfmb#l314DDIl8qU)cO)ytD80sF^iOckAS zyk+%IOMoKm4TKSJ zqpip=1ijzJ)?vMmt==&)m6Z?M*bu7cgXDw{$qnIFE}!Ut&~pA8Gpey+Ng-n=t8O*o zDE29UJe_hRmt4>r(WqzjZJZ?d7hhqrZ=SG=Eug#1(5`64;MY$uLTg}! zR-~lwk41}8=%eHjfW;^gGBS*kPQpk4Y<%P`Up|q64LayhY!ofo9ymKgETu6u&~30H z<3}V^%=iYyY3$hP9RVhA6k}h1j3vcWPoIc=Gs??URc{!@Wg5Nmi27;g&D3AI#V#>~ zH5ijFksgdGSa<3pZ4dXPiLr7r#_y&iw3nnqbaFHENJytC-zi~*{*mhCOe>Ri@z41C z1>G{en$(Dl3Qm~+qzPgr_zcX!-`ZLsA8~*PveQWC^(#M-^d`$fOl<#vaT6DLN|W1rdrlZS2X`ywqmlgY}v9E9X;dOU$J6zgQ zVJN1xDdCr#0s`b}#TGU*(NUw)(xc^y>qMRdx7uKr6Sf9iF`e$NR&c{`)J?>C>1c~; zZ{Zh?y;x}LFpTG<9eaZX!?&REI0dNj5k4HzG#Z8)bwCA}G|Umnk`pzWF%)T9b~l59 zcq29#znz#(C*_Jus}&ouR$OET@jka#=n^W+dKCkK#J-xtasbCG6m(AX=482|EQn6x zvUPpJ@V7V#0HOFUGW@PCdMg-}E=m-_px$(<6OxTH1$4M_N8ktq!V?<5{EH%;~Y|@>f`Bwb9#)5t3TtGmx2I25J_=jvXQ~ z1(TD^%sBZZ_?OCY@JdkM%V8_(IhvL^g>n)Knq9@dC?`6WCKBV2VWzw8A{g&LoS4T9 zn=YuX$-Q5aEn+V9fQ+^?4iROz!ow3F(k&rL*g5)0~+HQkNhfx65rYjz@% z?d*0Vo^50E^HY~<|GIB}cQ2Rba5BpI0;ftNsmYdp1zniVo?#1^U7wCh8Um&TB0I}(3Jcr2%R&LOvk(pyRT#Y@Y?^da9dkHCVi@GYMb1b?7}?F>dXEk z(Pv&$$j&+opHZf7lxn3Z+Gwc>Ekqz&eiq7!-z;4~uU(4?=BHhYc?!bNt0#9gT>-3ns*^(!+@*y9K!ME18ukZS7G{fsVZnK21?}>?| zzV$YYXKqC1u6vg+S^28A^0jT{o7&1(4_E&6{z8fUca}z6LjfTCGxIzK*0cUbfhrK3 z5^bn@ycCcDDE;gWwbQG0%UANX2vxVxd+pj13}7KO7&$dP#a&&;u5J^bP5`<(L;|@g z(;6x1GloTAolT0C1hGmeeEyA*7+JR=dL3A)Vo&i$c8f(7-hFhP6;Bo@$8i8f@8K7| z=86s??*y*i;hZYb;HxVh)vW^Zs?I*?*KD<6M^QpXo?QRS(cCxjmE~bgjg<8`phWr8yJb_U~%UDy7K1N*s+tJdze|0p|l$qkINRz4Y-nu%k zfPx$QpS%j5{npVcrasg|0z|~Q#aH(aUZwGs@*`*sR2QOJiQb8yF9(kL2S?X0U0d&7 zOEdctB2*Ks1zP2k>R6*78SA5G)ngAeOLyGYXjAMdiexgPzItu_`n3?ns);s-R0A)I zp=TeS>OAxZ^-HhomoB3S^h+CyI61URQxj#nK6!kV7!z{*pL_u4*uMy!9-BNqhM=gp z!a&GrLjB3HP=9imv2-qn919hRp{Tgl{*R)uGzPAZ0pFc}SQsb}xQ{`-0g=zwBOBl) zVJ-HXc1Z2_*yM2$W8SO~RfKk~fMW*PL>v2sx@arB0Wrn38BN}J>7Qkxa`_9*-x1ej z7!Y(*LAx?N&90JQ5G-~}FBEUgi_N@%3-p3}h4jMi?us=O3(SjgIE)wL6#$n`HOBM* z-S=$8xEpm9qx;piEJVe)c&pEu65(9R<40hQiprVONjwZ}&70fjFo)J+*bWhvmvIjE zeXjqFCHiJxiU3Y;IvMso@TaUc4ctUwy>yn05Rhpp!G(Pp;X)VZcxYK;D^rISD_6Wh zwg9D`PsY_Br6nlaL_@#OQVCxnnq^v)iE;i$md#!su=9DBJuP_&II>+QavBg3>im6P zSD9Z5vY?Gx*3TJ?9Ev#kY5&}+^Rr1Zzp3oJUUy~i?rib!z7 z$+Le6GIp+)?p6Pn=x~UJ&=yH7YdFsLKkEaxxnd)P#!}=Ro&Y2a-k>vrpg-_>wNqbp zmML*K7~Mt#O61Po0pVeQi$CDdJ01kS|hGp}pJ0X{M}a%^?8qO~;_ z6c@5)Y-(+mbwqR6bzapM(rZhk*V#s|NT^7(*Mm=_*BR=3^TVeX>qHQ^_tQU&Ud0cg zm$eh=HUH_BUS|x`s~HV-M~RkR6j?|wa2U`_tu95cGY+Ab%n-gNq3>-)DPU{-<|qZ? zYA>!fHh(@px9H7ysvCJS>~o`%Bo}j69$|SB5d^@y9N>dt&f{2UO^Q< z1yg5e>ncS53VwPm+q58q>GXph)8)6Ci8sjAXTRXdkljqX7WPT(zGA8=Z#Gl$WGp0V z(yxTH3j1WubnuGMDy2H6hEc7@6SE5@h@8S|8;|)LgJM}JIxeq1>I`cjZmz;fYJpFW zeA)Fz$V4EN>>3&%s1x2MGvd|`>qRZ$(0^Dxt5Fr^Y3DowUo6)(f2JAfLn<{oR;@6% z9QF&3w}nj&c4J|@SB78N1NeIPhZv6yBv2!oC3!0OF%60-Cf$UfM5RJRDg&brhp?u< z{=+uJ2(uFF)IvOCDiVQ()HKd#CT)Av1fU}@7=uDiZ!wSCN4?eICygu&!|~2m!|fIC zyj4J|>-%nM`f9-T#RbH=itEls6W-f^q~~9Z*&3jlPXjzZ|4fIEx7i-sJl-5*vzG4D zv{1Z+IRGVx!8sBOj217c?QF5ONrAI?3Eag_lZl6dHLY1;4j{*bOJa}b#~wR;VBP^9wy(;K zK_O{;*0g`Juc`3DYRqVJe=-Y))55u$4o0**wMDo3T%y`@tI>Wn94E(wEixQN`m#}@ zB3gndTV(mPW9d4*Y4daVDH(@n|~D9Nj>XA!%tw3V|ake4RR*SZR zQ6#7eq_|n^vK?tpiEi&@#lT)A4cto_-G^`|_1!U_TO*VDu9)U}NVJ(2j~KkMBA{uu z$pt2_*hD#hYklW?|K`2fg~~T1o~rM*YjvET5slv%>R#Xb0arXL9=`@f0OF4}nWHI; zwTZ%Kne!yGBw0r&gDth;Z8;N##_pOJ>O#*gPz-@_x#*f43(hr*uyVDTaA74#7f z-bk&oJ$S)E z90|rpU%Duh!ErtxkMl(qVfq(~=%-;3F-8XVhda+FVfV$aK@F4NhfzbgM(l2EVrfe9vWdTMTn3|i9lZD zR#br+q7N0NtYu2D#TLJ(Yd1Eu1r`&KF;OgzJXXOjT#yxuj-3Uoz|G4@`eJAr3UMz1 z#<@BV($IWROxD6sKhl|Ts1yui8x*KQf)CjLF0*)^vt3H?g;rLo;IcMZ*a%crFH)ka z8Su9?Cqco!Y2V)JW@mN^dCTR_i5{%aI7ssFtshIEV;A4moPRB270B>m(Ma}uv}t^_Y3#>Lh=Qw>n?tHZN)(S0x3K2aF-S$+ zumK?XXpSfnf6O;HcQ%%U#n>2U%P>H!+tA(w$uxPz^kuF2ddw`7b!g4)A_7F0R*Rzj zBZkyqAecb)eVYH9y|;n0v#Rd>pXZ!2FPSrwoV-CG2+ui21tl82iWF?gGs>&hVzrjq z{%^g#z4!W0@C8aOZ6O&+z`24t7pP8!>PVPVtSp)vxk zsibhfzqR&0=gc{ikkNYo?fv|d&zxsJ&)(~0uf6u#d$0Ybs1-UXT^|v2mtW2}rA!HKv^M0tXsD8$uLPo^<5L zlo?4=t#F2y;R!vX&x0sKGSns}lMaFt+0jeB!8eXlqA-eGFV$@pDXfJvA$KZIQY;83 zXX<`YCeh`YQ$V?+I)*dK>2e`I>oC%-21_q`SaH*Uv6J@$4cn;WXVjzxgm$!2ma5AP z$_|91ilgSr{%`CA z*F(2G^n!v0gpNaRs>NaQyS46M`i zihVqekg~#PcA&y-v!&G?R#?2g=i)Q^aJ%)vKZUupC+R&_nhmBGIr!kfKn6(1(VeUl zG7Rg^U@c&pk3iwfzM}-kaD(cV;kC^i&2y99XDRhf?_!ER5+4NsOx;H_K5|UD@LlVH zKsCWwY(8AaJHqEhgqIIYg&d9wH~4yvDziKWZ<(Ub=tH5E%^C2)QG++lT=8o7aK>q7 zm7fyl-t^i=WpezPe=U7(;;gE&*hb%x~3<8Xijal|ULBLZlLGQ;>FCX!NgEk}^ zA*cnLeEka`5T77CgO#HVDvIjM4N=|ML=ptc4Z+0UG)Oi{sKU{cO|&QK=?5lT35v9r zSOx12P$d0mgWeSI9Ft|`eQ>K|WZ>+m8b zOKE~BY3(wL@|tkeE8q)kgG0lis2rKM{UE!S&kPRVw4p}-798edHy zB^L0TZnGw@B`R}dC68yh;C%6+%(^_0tzbJ8^QEQTo{|-92SwK|q0-XD4%WFKFcWNP zY1v_M1Y14L&gjFtGyNCLIB;6aw+s1~|01-{mSO!+(D|wjl~un`L};u~+!_-9ecDJI z&5}z=oj(9~(6^v@{fx#W>L++}PtOO#_;i%~C$L?9c2Nn$7vFF+sv{N- zlYvyx!u0*lV1*zFKywL4$Gj@Bf3v5>qjY{_eYsM|Kcy2fL8^Q<^+)J-SjLSgU5&8I zLuV0`pKDn~A*%(L1ixHkI@ZKit{EP6(2hPzg<6yEMZ*d zeQu`5FeYA*cxb!_oLaOzxstI4Xm!6!Tz*Aw+q^E-lz4S0v($IOd{%o$>_Q(u!@#0- z4M*Z%{g4Dh>R(GqUTV5ZS+v0^w$!=i$BrT)QJ$)lw@Xr-Sc5*kfk-1=uvKr)dk63g z#{{pnwfq=-&;^EsBWV?%2*CBh_cHlNXl`bB^m8**kQzssJ01D5@1X|x~Ma>k{H{Rd^A`w|xnxNFGT=6`9NHP0PDd96PB8G}XP7twXp+tlqn;Niu zRkmt+rTj~WlkhjB{}$b)zAq;8M1+P;1o06QGHFqc_ZSa{dghtb94ENU1?8Pueclq zg9ni)<^!b*sz<=Uio8Tc$M4e@d{FDNKB%k8>kDHQ{CwGRR{WkL#tYeU4IIvv5(6-7h2;m#Eh&NJ@FCWJ?5t!{VTsVcB(Sq}iFiGKg4-KR?ETF!t8P z!*w7g9(^gF4%87E*)8F(z}n1X^7t7_E({WGfpOvSn2{1;|pi%w?|IpEUS~ z6*U-h(asfVZK;D;F{Kh}xh_-+z=WzVocGuoXQfo;b}oD-o6Bq$BCGr@fm;Y`aJ(6| z@w!&BWi+ffaa=bVV(5W(E7k@@Wp+btiJXlUu*+}NnmDkKE!nU(q1lly4bRInrPaPA z(v&HgMkyg{XKz&~rBx%Ro1+dj9sDf z;X*Z`2-Mf<$=t4Sz%loZ(bn~V@1!JYipYonU(=W450>;8BDBw>r}FFkVPw@9sUg7q zVtrV(Sn*3dnV`XfO{{hTd5S|fVpfSFdk-Ssh$CKgQ>gse|5bUi!%2GFZvWjOEb_{q z!6M%vi+sK*)`Bha5~^_H|4(6(?GmCU1L_B9V3P6L|CA<~YSwH&=3sm#lf1IkBsa@N z%5Nt52>CSUH^~fZ6HG4mf3Sp7ZS)d5_By>tmqTh-7YLqY1Tl*88T^s-hIcF7ne+isi>SzPV5uVE+;%QPdmsu~it3G4ye zY}Pef(rTJx)>#L5DAO#vUaQD7FL?%YTUmfy;OdV;P*t)Rsf*2Y^G z!UrEGB^ML#mIv>dn(sb_T))nr#$NRp^%yb+z%fQWMcLZeVYmp6;}`ERyrT))R1<$Q z9flUX)?r}dX2ctD#14aa|Fi#qyrY80gaMtl#Ud#g9quAxchs_c(L1Zlv85@01sVQo zPi&-t(Nry(#og^(taKU;5vfWsUQeR55;67BRhpEF9e54dUwTGg*u1VDq;!cA>ZR0q z*u{gb!j(3#3NsXANu5rvHQ#_E<0I_m$>_URDxdNt;5Liw*W$rW!iH5R*r~%{nwVv= zW6osFPszaPOgGKPf$T9T4>DHEMeZQO+>JQhkl8_D4>d$)fxy85nSE~-GVYp#2w97H zI5S#Po~_udyWXoYDr@HvzFp$joAtD&YYa;nwc}~h4rW%hs{NuI4l(rQTsBAQsj1q+ zeGpLv+$_m$&e$_(Pb;g9EG;NQ3nn@z4@T6+`gNiU$}r8UR#7ymw^m1>;M}1}3u`q{ zey7428rl9aUBnBrbiQX+fA<7ofT0xP)_U@&`yY%*-n(2EE(rm8G_& z?5ZyINovrji$Y;I-3{WS^GFS;SL#FTN*H46i$fT4x#Maqv7=6N4uKPviw9lXh?j?n zf4;Jo1^%lmXf)#D8hI-1B6h7CE@Ugk?F~Y)_;d1ZPq*=`lAu*Fr8tV@)`LVXJUXw~5hZ zI(1?`qU>pDRg?nu58=RD-CV;AHc%Iu9<~i;Re~;Kk+9ql=aCr?eJN|LM_8U1btf-2rsY>knmf5M_NXy#ZpI;q?}YbC7yi?2$O_8R}ftkN>%ZsiUi zy(%Gq$KV!YJ4r*zFFoCC>0ygkNG`Io!rIEOXziCS&y9rA7D5Xy%%-BWZ7QuQ!%`WQ zuL!o4?t*MDjS9CjgR0h|38v9VZ6lo!AK~jsB5L7+Hznbg~0TMIh9IqRuw z5xyqVB7I@))i2xmA7sE(zPT{y8FQP2I>pxCFo!p#6gzVm1Z&6VV0NDsXv2)b!OF=S zG7aq6VWAEIj54wglH96G&(t%4E364#xuz(-v4i>*l6VFEZq7S;D?Boh^mqI8)2pAw z`dO+UQ)>Lc!G{k#F9<|479bugX{w3oL-wptMOf#>YFFd$7d1lGSOMA7(^D0d)s@!r zh5BJ%z{g9(mk2?8wp+ z3aegTJRZt~Dlac);^BnCxw<>cLT72WNI~0e3Yu*ZfyzVFdQGeI^U~MgKH+(?eqM2o z7W7jk>qs=606LI}H;@2X`F?8Itl5JzO>yoPktNbl4^^pra8l7o!?v1`(speSt1BGp zJJ+10!>1J(f&bL!vdm64w60~*wK7_DA@h!LSY0XBKa<}g@itXQmk)Ygl#0TD>c znUL@jb;$%RZ*2EQYbLY;Te$6|!&HVv;o44JAJl%cFkz}Gmcyu)PGzohU|Qr|PFaHab~hrkrYeB;47Vjl*BctNAW1r@Ng41hTv ziZB+2jRocG@W;X?+d%ms0;p47P}b*kk<8z-&;c>tBkOK4h%C^`YdpY6V?*13_HnsR7s_2FXs44pAH-J13a79Ch4Sxxq)s z=l_f&WYan5{aoMYB2(W)PO;QTSapCOK% zeG-U{r{+*Js31%5b2uYsTtM%1gY|DTdS3T)9X+pU9X-En0i)--g^}ay4-PgoqaW`o z!cb4tQdBZ3--4+fqT+ioFLY4-F`HCA{I;6Lsy?iqqb61Z$RNY&H9z-Zb+g>)jvsPZ zT`wgxc>b|9h8L$9ez)eaZ!qj$cB%u1F|c0MIt_`epn0PaCje^o@^79y2_a=;v z(tK^@uUHg&dhtQm_&ugI&Oo{(Cv z0_WM-XLVQ911|qg9g2G;>0B5HBeYYJ#SFwsrzCxRe9kEe3qLh9%lot=d+~CAVf+Qjs#Y;FB!A-t}#u0Qmf;oBkjh|Z{KJv5XAtIPB53IT5fXB}In#)Bh@X9Nz zoL$264{LoKYQlOF1Z;yszx1%MzCbC}x+pRZym#GJOp_DIv_+k!7JY&n{#>P;Wh~{nNUzR<#7En{moHEn%j<#X<5%dvf-MDqc&S{?CELP-`xlB@yS`<*?tl0*lX3B3cI;#V0pNbx!)4cHokwxe$i0 z%Dkiw6vEd$Upb)*CUotTrqcxz#Vm~lkuo{Jxm9?m<#b)-*6&+seS<*Pn#8TUUEzz7 zv-3MBP3i_tR~0Mv&}@D@VS))eoiJf%({Kohj+Vd!sz=ia6Q!mTCYYY*pI-?MGPz;1 zBIhuq?0n_)Dsxz}Ygt^%3r7sCCjP%Z)HF|!DZ74Y1+>zioSA-M6MB{2%{k>%;fisl z6v8T#htfiaUnb#46JWtP`HfS@UyjSKBfnNBbioN`8_%&hky*0BA)gdUJdsg;WI0^B zevX;>Ry*bdt@~+ z(cCm~HqXPgnoVHySxrWkVXjXtI|`<&*4=8takQGwwco+iWHq0`WcHZJ>}i*pw`zhcv^B`Y!1nX|TO9x2P_+3nM+Q_bo#XV>FWk%#aXKaueCEowQ?}2SLDkb{lWplf9|N7h37Gj4X6$c3+aa_% zMg}fh(JI3obOh|m`h;{sW|LA946`tExW#gBFc#rdjS!e&4e^QpX4K{K4@>NPqUo6_ zAPDRim`^H9kyH)DG-j~!o0@__Y%|Q3U!lV&IggEwu|DlAY^YqG5||*aN){P@gkyAM z)P3S89-~vqGWls@lJz!oB$1_MZ8hSAO{gPHld+l^Uzm~P)AZw^2`w!bQ=#s#xyQO` zfR@!Dp(dL;WJ82>hgUEjY9T~QU$js_i;4~s%M=%!q6PujW&-EQik<5d6V1&GS>TXQ zNWkhejvb9}nHmez#&MZqoGj7AHPuYTlkY&VNf^rP)CWmgLg9x&R9EF<2|yAFixLXT zDZ{x3)B5R757_Y~_RZFL!-Q7J2}`_D6799Fks5NM)#cIH8G?4wDQB=$?zDbDGXtQZ zt$c-(=T`;tQncI~)4ZU2xz0RF2h5$J-#1Q z{MlCO9zSkzkzc`Qr>u;pI>Px9&muxbI>?WXawJ~uXh^3n6vRkAq!>CKNU{*m#(!m6 zw}JR!V@+8|$bwW`dxBF6%(K7}n&vE6U)WQ57Cin{N%*JpWkb1kmTx!CFa23KPv&wy zRrt5&{FP#S4%hb@*V0Bhxzff>RLUrG53Xgf(vh!KpFrI=njh_>#vs*;q_a^Z6awd2 zV_+-Kt$Yc4+ahxGp-JSd|Kw;=1NL62NAsB>6Q*8;(XS2HF}xY7{iyw=Xg(~R!Bsw8 zp=`6R@`J5;q3!)Ynwt(bPtKE@Vk0-X>POaPr@byYPfkD2Wv-m%sgnvX@WOsJ%NS@N;e52Ca1)z?f>eK$f}YmJjoVG43?}E`B}A-f66N{hER|A^&L3?5Gc7 z)8AlYuzPOGbcE{GY$9zwk&(VzYD=O^&7LEM816a3Sx?t2dX89&D9@2LcI)_B^*h=< zN1aWcBX)Z8FM5t_0bg-_mikc~^x^1o(awN|VF#~zs1qu=2X~Q*QAz3xv+xs*x90%Q z&D-7SRmyE(PKH}pFFWf@WWQq$>t&t1+rzBPhFT|1CR=`pNS}dotdj=22*5e#QRiGU zBuw^(<1(8$f7YB%EXspR>T@(8re)poqg)h zTQz|KvFd)*9rU?Qgtq3ceO?hu zsFz06g&YUnYFFJJLgiY|_9_QlR|`eYB6sA7fpxkZm4zgnjtP~HTwZm(9wi;^$iJq; z;f19m|7?umW<6eCPJ~8CJ+B20r!bejy$;@R(`4PcQA{@~W?WOZiHqVox7QZ;Z@!#s z%W!inz68&+GEvYK$AR6BaBhsc;D|26!6MJBS{h0tbd%}LN?o}dFe`GeSgrS5-9T96 zW;z%wX5}}+m?H3M1J!#IY^}m)wwHGlmQ+K`OfbWqP5&Cr^`RxVyb`QxN(Olp`1l{fozp9dk}P_eyQ?$P9~x#;RMS_);M#Zqlh|)yeVSw zov2P_BQ^Qx-{%bI3v=#3)aE47^Xgsk)67j#?c_l^*9=NgREy8*(FJ;P-1Hryi=0x5 zw*`Ky{J=t5E+RjpilSmppGsbhuu9xcu7^p_Zyo1y-f&@fUjnm59Y(|)CQb$$Zg2#O z)k4T~t9bXum>AJpwM3Vt_~grom;=(-2ttGt)q=Z_WJmrIvKzkht#DC3^;O+&%@~9l z))6P7OkR|7m$IP$o()l8nuLrX&JM3$MXUzJYS~K7q#Pt`DaCAzS}6-5{bbb_LN;Ev zP&m+t%{IJB6(m!gZJw8q9!0!1vGGzP%gp&vu_RpT0fwMmiBu?DQJ(g4-sIs3!b>k^ z8I57gzL5crbjCG?jPgHdO$Rz4h3dTMLIliJxhzOl?(`YZ(`0o_eKbUBNmOV~6yj~B z#MLQeM;SmPylPOKZWuT-P%@DOs`vs@jyVN7hx z5wM`gHc-VpjJM_4a+D=@lo3Y7+GU&KP{AV5@rAc&UAy`$^1_xh>@rt>vGN@5_ijU=8jkz{GpK^} zl&U}v)4q0Z+@2M=A0=CH$t8CBiJDb%f}1b_+jF#Bk#Gu|&u6^~%yYXr4XH5(3MHW) z9X^BBZO|NOoh9WAu8gN8eNwVs(4ymIDpR&X_h+s!V@q>Zz(k^)Fi3kJZa;^;f?u{R zM)_O~6O*YXd%;Coj^oaSIigu|;Nkq!++88Jo6_xuTVBKMwFnD~i>g(7 zMG=uWQ4XY`s{kK**eP5TVJh_`$p&%Yi=^Ym!w7WXqk?rhfKyZk15qsj$7atnx#xtozyrwTw!{4OeIrn2Xif?WR8Q6v7+&qlqlz*ssDNWOI zhrJc;J3g{bRHv+RM=3gA-N!sy#tH2|O6W6Cnwrtl#Vq$zyQ$XwW}A#-vUTa}IBu3J zMi=l z?vEGhaZ>tx?SU4IDKETz6IChA1*aYojVfy&4jZ2(0Nz#DrPW%>MYUWj+mPhnKrzS| zSk9z_(xYx46-Tc%CVyWmaW}nhVwr>2Rcs~TLdAMCp<<S=z^TG{i|GmgYU!AsWU)1XTxE6|lALWo9_&gfK*1hl80e9l$hZ zfHKZQdPrTxLusRr74OW5l{2s+rGO~yUa!4d@FWn-BRWBUZ|+6wyeKr6ZNii zOI7DkEzee7Qe75lJ!2am*?l#vFYEshwEmR8quyk%J)3I6TU*J9@;o%t)Xp3{A=~ug z&_pr9u2I=m)v|P>I!|>GV&Y`o5Jmy^*rv9j+85b7nBp|FF&2adcid$D`8_{6*<_Ki zPZg15eKdunW=WHY1YY1o@>veCW!dsgwUy+c|7pgsN7%Tykgd#)Kth?ihO(y2UaN!; zRV5-5HIOrkL&nQ0uhV>3_qj+#%%=H~=jR>o%(*n>vy4v|@N=Ha!9{T4&maOEWAxCK zcN0Nhw)CQQ5hVSrcE6>ze30xf;|er{;Zl%HuGsq1XCHOTR!SFC*7Xch7Em~BiAH&n z4Rz$@FjyxO*3Zd&w0!f_Hwu4Q|7QFgW$5>8uPwhkTYjl&iTbqttXW#dfX4da^R`r& zAG;2lMrRh|jkh9O_Df7PG6q+7V41oD7=SJ-+Nr|HHVYYEr_*03n%9z8O*aC{bfbvN zfab@6lSWP*68cj*&+yDzkB0AE)Qn!9x~7Ty3}`#B5?cIK94&;}fN!R-zG0l7v9_vB zSesPkmY~5pC0U(u83oIB^3_aQ@)%{_U?ior+N5@fey`4qSp*NbfNa4Uen>ghjB|`~ zW=G40sewXU2;MEtPbH#k84rzoFDk9Yh-{Srpx=OKQu{rLatw@sN!_OpE!Niq{6pc+=26F<>f+EY-gvv5cL5=5|Rr4?^RF4OPa?>X(Gk z23Jp6(FZ(@{BU9_gKVWX#=5yP)~*`sVEn3Ka8YMo@mx}VWdirjqgNENuwij$!W=}Y zNI6r!uSm4Fp1?1rAwaG4FI2U1`SzkF^EISqse@1Er%iJmTWTG_%RDi0+ND%3`RTcX z;?9ZW(l=1HY5!4!H{p><&LxQ9ToM4fIgMFqyI;539Bp>}4Goix34EQX-eAm=UA|RL zRtz3ZU3!7iQ3xQd6J*{cpcHxD9I?^YG9dZg1_qw$y3jxsKF|gJj*yo-VHlS!Qr0)! ziCW74*Ha0-LFB2`FV4P9|CX4?WNS?;RNwVfvayoWt5JXQT~Fg+*;t`rqiw1smV25v ztz_V*qMudD$}Pa2n6crL+k&&!Nkq#_H%~-TQ=h>*3^*i<(}uyfrpK|YZVgW>*9y#MmA zec`T$x1~&?K?2->7VFY}CT#9aFi=Uys5S|wAJ^xl^mIBjY-fz2qP2gU89>b^&ZZPp z-_G*(mlP|TyEfT69N6x)bvU#^bc^AYD<2E_c6#S>m~j4RJ`%!zqJw;Sy0R+W7?h|iLnf4gpdWs(eRzIF$73>(7LesmEi&Jq()Pe1)*yYnr* zrT?faVku6Xc8M%pvFV$P+Ex@3umfGF@zJP=>X;5~29}rq0n)$cfQLLQ$P>VYUz(h9 zwV6mR&;KXJDcxxI>+0a@-fV?>Q@!-Zi@|i<(w|+iRZF>oOSM;yg%uf(q`DH>sZ>+~ zW+`o&B>zTJ`5<5`A0I6(w0vvK>66qks~x4s@r;UiaM;ZW#gi4y8L@2G zRtw3`s>paY z$6e4Sv*vP@W4EQmno29Isk7ZuQa^QCicBH;h}(3_jfBieYKRJIhRQvC=Vr=YpMua(kgpc1kkO&9rX-fH5zV_K zXVr?UUHe9HO|1qJ6}i;S=Wx-LaHt3$8k_;J`5cYUG;2p$Z9*zbwqM$xQGPdJe-Uq< zoU@vliIv&nTV9VZ3ums@;xlgtX%ox|#la%?8X%N`V)ZDTSEzR(pDAph=Z=A{aC z*ZSrl$XP<9p24|wLUEt{P8GZ+vAp}p%2({u{z8?u;Dq9A!LB99CxBwtq%PYI;z=rR z*F;;IXJ=hN3$&qf31k>GP@9aM3Bxm4u)-N~qGR@LTwa@_RiW~c!Uh@}v}-kwRXhak z#pw_u1~F>CL-spdFvwXi?g9J8dPiZLva+8|-5~5wYe!Oy@QGIX45KY(F!=zzQd)RZ z5Q;vYO272%Yg|Z7gPtmPj3S8q!tXo>pj2SyN)R#9EZ*I;piZtQcVgtZ^&~ zRqdiN8~Qx61f?|zI<}bW6l%*hR+ks7y>b)peHv@8*cPY$8;`fxrY0C@>c3Hwni9}! zMNOI$R68*7^ulm1(w{>+NpI~IubM5;)>u46D~h^r;*gl6*#cEd#k^R~beY#JA=NZ| zDaZ9R)amAx%*gb;@Qm7`TqZO0wpUxX8W#$h46nB9WM!2L9vEO_PrFX9n$toyR0c6W zute*b`m&Wb2?yQIKFADp;$x5prpEONa-`TXf{YL}+UQ`Wn&G^1i*PmffbbYloKY*t z#g1~|KUQ9ZPc5aES`3_lqlN>d&&YSbKdts@yTxJ4LQ{&KQESjNMncFd(C_Zm)fGsA zX`O@=v;vtauR*GXZ1Fo+^IB3*p-lV0EC*E+6QmV|f?lVell7D7=Xfe84=RctI(r8Dzv->F zWGh}j$2I^zLv?hN>Kc&x&H8yuYlBnbP;W(?tDp1QV%0w|T4y;eZ);lGH#7;8;l$K@ zfeE9{FU{8++fuS7m52e09&C+P<7(6{7PTGY&6ZlvFrFY;w-eP^|ZedFsmgCsdbYjZk zW{viK`<=1heQ9NvA(#q`OdBJM$=an<;?-1HS2R~ugcH<_b~P#op`zthO(VR_7(yCU z!fZL?ciOpAo7gSZrWxH(2F4li!b$t3apcRm0nyPZ1QE$QRjijJjA=?*#s^eX zJsI^LN{T{xJ6>t?6`FZTDa%EoyqO+%krb+MBvuO`ocX}D5AQA_w_>y0YF%%&wOETt zCC_PEC#~gL8(5RL$TsT}=z3d?-GXvrn%3k`FS!8gw&-+zI?lMDwrDkdB)HnhB1gh( zBF2p3ogjMj!Bln;B61XXp%wjot3QpF}S$+wZ5uwlK z)_GVfmE?c_{eLO_ik6~qpxhF+PSRstQB>Yp0BXj&L(JlEP>zZ(D4~B7~&YvO8ak&bWB38PkZZxE>v%r89WV zs#@dKXba(iuePXf))l?hCwCpQdYX>Z@RgRk#IT;$i9%DmPq|PkDj!XDlBkYeLWsCm69ptQvkbFnjoZh6@V!NpYCvbHVL>gqnL>fdTu>*)HkqA zatVI!oGO-kH@=uHJ_{Y8{>~<^=_>$oq}p3nF=)dxnnUTUN}IxEo$svnvDl{bqI~o3 z*;QNW#HGck9j?Ah5t^dk3 zsXL@zEdjv?gRpx4W$HAIbD_^ix>81;S_b`Mps#Tn?=wYPO~+tr;9k(Hr;U=qbsg2d zfNFw|0o9acWjbVKvgD{HN{*`hsp@Lkp}=9VAV9AUgYcPvaiD>5$S@8EjDrE=K)^`3 zHGxNlMjGH_20k9ZM+5i>;Oay?YEE;q<-%z6W*9uH2&q6On`u^F&@p_w+5d@o5?k$@ z43e8ba?&xzKUV(8MxwPbJ1EBt<#6C* zHx6PJVA%7^m~460L$b~1Y`~fJ!(@ZnuucuAIr72k-UWcLa4Rmi4MSIyj-G>*zegii zaL7ip#3;Z)YyC0uxYO-brNSFi#gShbmd3uQOLh#>#_>D zoQ_8`B-K!gu7cLQN6%$orI4S%b|vFzJ`X$sz|@^?C36Qnsb7_S_eb*Qc$wfwy?6H(0J*k(v~idTEsYP z3kyw3nleO3(+gY#5<>lxMzb69e|_4llDZZ7Q%|R7O9m-^%4S`z^#r`~^}iu&e)H+f zLWs|{a&a1+B@JcfAczSZLGxRfXl+7}sR;l{I)~8ZThB$JREH*3>>JWc!#69crD{@^ zHl>0mr7^zd2M^S?o=X8UD{7Puf}tl${5+MoE~|x4t^V!Jde5zOuKq)6Ugt%(Tyhg8 ze+l!id4o|9Zd zT2FnRrDaCMVV%KoWuA zE=6@^keS~nA52Eq%A0D7Q7l5(%ow+1(I9XzriM(u&CutxFMN%s?knlmLe;^ z;TDom(U9%Z!3e#0Q*8<9i^!ZJcuK_jKv))Rg|xh66(D=E#hWs`1x6twdT{F{mq7T9 zw_GAh%)Vc8DNupm#aYSmf*wzirLR>2-b=^?ctBYZ%Dy=$v&G1Ql7@Nm>uBm(NV>*_wWLoEu8*=4%Py2rfVMjSjz-j-nb@3ocV+6A7JcDVD z*~ymZ(_+9a-J{41(N(tAdX)-+kST(2#O5`Y8mcgm<#Nww#n>}E1g{7XLMsuIeo16z z3Aqn|^ir9{fwRID{RdnnmMc!ucanV&WnCbYt++YW18kQ_aiYwmASH4@k~iK$bT0y7 z(&37&N<|^yG~#~+KPY%O&f4%u*$9%>Q&MJDas{!T^$10+1Q(Q-M99BH#wG24@fGMg zVxs#T^TWbRbRoX=5}_i7$;BW;K#<{Oi6~r(6i}&4>sn4G$l0<0jBry^amwV4;tZ`( zp~L?Q0-Ma#@>Ch9Ca}JbbqR2MsjaA^jl&I>EwQzBrT*$5wk_>ncLmf=6WggQN90o( zfKQlT0tbcux+>rK8Zo`Znb8)461Ua62DaXtc)~sRyEEbL+=8Grs$nLBtVUb z+HN|eg|L$9k}afbt$yT&Y%IQ1XPaqHtlg13pY6wF(}{mN(J4x7UmMUh6Evq?*7Gxy zS$rdeFr98T(`>~X$;FD-t)^t@rc&gwd{5h=vi2#UiDU~)MUnARZ#u1|f);bT!c}}z z3(hwk9B0<0DfCMWle!bBcPEyrJJCV^f&PRRP-&eZ-HbqAO(ti%TC2CZDP{T2g70sd za_2r-)nvSh$2_Dd*@;L7K;om<|pMr}mlx$;dIOqy&;QIffIw%MzP~OtOqr)K4zI3?aud zXp}rvLtV0gfdYfSdROd1Tl@f?@;$6A;0PZU(#g+8Vf`wKAnmn(3C&nk9N2gx*n%4I z_B!0yIjS@#c}G)%H_lm>rsQHf>)5IePcG#ki(C2=jtu}0;n(Yjbg6QZ6)x8bF;^kD z$_l?0qAjB#THTRi`PH_)P6OYRT4H_mL!M+zO4bf)_{tKZof^n@)4vy;$ z@FlT|vjW~SSi=#vs#etF7>#u`DK6g_m)&sKpj1X`sa;&Fu!yO-M8v9O=PZ_&EB`{7 z_v%c=4V7JK`?qZ=TbQ{-lytqA10Hr&k^>%JIG*!1m21YkqJ=F5Q@KKPG7eXN;8CWYoQgO-k ztaVb|NEzNZnA1+iniuvZ=^WT*X8zN`qt+z{g?jPasCH&vP)t~rZn{*+zm#&TQn~zk zjKp`J4P{JyceEkMZbJ}fM z)V}-~H-p(=#s+3j+j?gQ3Q=B4dYgr?tfrOU|B0z&8s>1h zPoaEEvCvsxSgkc`CN`aCNAh(n!wQmO>G(^@3Y(YLnU&13jjK4L!SYZf4+XBYsj)90 zA=QbTJwoU#`cCmsGh9<$t0m1M`R6NMZJ!!YixgUdtg=029L;70Dy(kEA>Xzuj-0Tc z9=dYAQb;#r29ta33}VUF`|7zj_VfI@zA*7!=RQSL=F~5!r&obIi{?&6M{)fG{zcdj>Ebo8h5?-6EIwi4XfGWD5ri73DIh3$-b?6et^vqwvYm+0rgb5s? zgeRJ=v3sTxejh7Tn`&ZGd8k0e#jNOP0Zz%h+gf$HxTY@Jpl%pbPJw3GE~>qu@(*d1 zW&pLR*=a~RAllT4@vT*ipiY|VS2q~UYxD@pb`0H_Q<4)wrS`l0-d27tY-VTnu4iWF z>;IPQyv^#2TeR2seSt~k8>vjQJ@Vmu)GW~p_CV#ISfj_~+uzXF8sFV4zlP&Gsg?RU zM#qQt)Uf#wfE(rVE2% zc%Qi*KGM(%`Q8=qQK%JZuq|H{X0Pdbq$TAgCv z%hA1@E5%A6W_@wUG4(1CzT=kDn-;To>U>@$c8kZOfJHV#D$~ZMB^JUOQ)0p1)M}Xx zWCq`O5jmCzDR<%wA3J7P9R;IN06&IX zB0Xy?7GP;rqiuvo_0UU#J=kfywGNc3a)&m(bWtO5aW)^#D^(PFjs>C+Xn0Cm$7|v* zZHSd$2a{;$YHA&QSt*qctjUoO52hsMeiNJ(u~=lAXE} z8%dlK4EIa;yDgIP)IJ53vDONzsJ;E~-RM{QNg7$#+GKgn%0jDT;TOM>7RkQlXt^20 zmrw8v)R^M<#uD-OxOz(PCq+C6cLTq02<|L0aEFW<{B>J*1^S(pXGz972Tp=QSt|!D z2PL)H0I-}wS%(d6Vzh^n=~z?26lg;HzhSq$*NUo5^nzIPP-s*?Lu<=fh@>ZRQB7{j z(yLeJUr`OED0zG(IeWF=Vc>u)WD%|NE61`PhsBRLvQ$fp`3Uvl^`L)8Oi`t;L>>z{ zr^-oOQWu>o*F#O$aXRYh2$pJZ=7wbl_%y;%c*;8ELFwE$ zpc^I%>82`lqs(h1`d16K8LSDB>Zl?&*$h@P1e>8&FxU+6(?KL>hqf7pk!jA#nYa~# z-LT6XB9VCafzaY6Qt@Isto-Y_Y0;25`a$(RFG-X_s2BRgR^FwQo$-?AWbFZyC#HU{C z{pST5R5q)~MP5qPc>2~}77e>7XhvRTdW%J2|EOY2UV7P+~&!;qz;{Js)L z%26@&hX^I%&IvMT4UI|NvY|Qg4Etky1Ndx)8p7#@wTaIA8(`(T)hgDGC3aMtMsGIu z&eaRyBu)_sWI9-rcmeKPd8d>L&1j}*21P`wcGv{dc%+`;C^x45l~I#+N$jv1pdP6X zLX2#D)zDI3A&|UQ6TyfBU6N5q-57E1klmR_Os9MT6r8@4Y3b=SQ0(L|KkWi2vD9dy z>w>J)KU}Ee!eloX7;jMdcjWuwb5=`MG+(RF?9Oz-hU__UiBSu+T%Z(ID<_9$q1ePi z??uM%+N1!BVkmG_(qT{V?@Y5Qr;(A6qF@dRFC2LFqDsow>W%<0l%;3Xid^_rz*d@{ zfSTJ~E3Qp?ZReStEYhvR3pt93awHjH&iGNSD=8JAHhhpO+V+}a)ji(&z>rRm)Le=! zOIRgtMhxo@6-Kf+Pdr>ptdv-7rFBQaTj})GyBtIL#m z^Z!gPRT^Ne(UU+~>asRb$GbS8I8VZz&_dx~2i0rg2d(v!?chC|7w!NhTJ>)BreJa>Zc?XK_0T zS%d&9S|x?9tjnZ87CC}F>!K4=mgXpXy4{P(zD2B2Q;5mG)vT!Oul2aO;tWh%=+UEW zss)gtO>5ldBqO4}Fd>YH{8DyFQotfMSf*;lqH{LqlvRT>GHjf6>ntGUzjU^k?~$IV+Oh1XyU3ilXfo`l>9&bXTKru}qW{T-f$W z@LAcK+b(FS73{plY^kj0rR6B5M)VJZ4yjma1ysZ(6P`4eZ1NWhHkPEyfHr$hDXVPZ zUkv~%Y-MXQRM{dI9D=Nd^TynYRBqg6e1~7ARG}2M__H!q<(gZjR>xGOLYc-Y)m)}t zrL0U#p-h>H(0xn-te2^J2woa<$`rGSYciH;sa~e!jOIYCCZBjH`xYt|GK%XM^ag|4xl|jF?;-INZ4=_!}I5Kx`Q4?;-sH zVC7Gg{m!9T=G^5%r%j+N3dk5KlgdMcOWK8AC}PMGwcs$9-~L!~YD!V%8h6RW0Zgyz zqP%n=Bd^p}A#7d4u9GNzyz|dL~N*|Mo$D77>KCY8W zg;5>feK_aVMhnKoMCHvu6mwqlt;ba^suu>h=PiuliMSVJs$}TiTscO~R*?};M8ZuXy+|;T)FkOIYL9X8@CRn1P z@76fE&!M#1+bc#o_#Enp&#NQW3QDhV4K`R8FqegeVruHE)9o z#)2B5f>?+ueh8`3_G=@TP)SK$&fyDkwlBX~Pjhbgvbz4I6282;{$+jma%%m{y71)% z*3gMoMhP}KHiGKP9}-pfwmGUR+Za^0O>eC(Un-y6cdfTJT9Mw$*tvts9&}`jS|+Q7RPq7kOeEx~W}D>^J0pyiWDY^@gKXdg;hW2zS#HO1hn<%Kp$FTM8CTYe~IS$Mpy121nr z_x{kGcbe6fc~w6yv~ijOWsu-z2_+R)Mh;pH_W#xWp-+g>Uh?K1I=Ss=M7)QgyCk^$ zx?E$z%62SJ6a$~*gzKczla$}{kA=dYq??y*%Et!oDy(58_CR4xsq&Gc54=)yW79-q z&E?=)jQ{uA?@~g@kbx`xMoy)(_T0|Sk)-s2&bpFGU~1_Umfa0dG;Vy4AB&YfhVS*{ z>e0FPJiqF@=~K&+gl*x(^HO=C5PoI6wl69=}id%1O1s@^f=qFM@m@`D5;p zqu=(X`N&?&;Nadg({c|*=2zL=Uw%E&mcd~HA%ij!?HL5fGe}_J8Qk5-pn|(SgAWjV z!gHmsgF7u>(*!NB&ofA>4VIys(|i;*XT3a;*xt1A1gBPg%f453QBshxCd zg0}qBNdz9+n6D=YJg5S#E$4TCKB&lj1n{*b`2>OY_q`}lzc>F{{JN9CHSz17`1Q*K zyao~YV2pk=Mn4#%?;`NO`moO;@FiaUB))u|mp_d!Px4|se2;*oefJl_m&fCmr(@un z81-Gg{8>b?mzV1zBeT4GL@zZ)XG#7TuOC%HITfi|yl%7DvSOd&_0KJ~N3rh#{a@HC zz49a<n#S}E%2LT`VYqRBLqHa={uDE244Tt z(sKb(l7A|u-xkwvCvcmk?^OCv@cLJlzE|n*j_E%c(|?-4-zb5i$9egbfCYL-O!8#{ zCW+4z_}iHF9$xN5v|o#9AC74sBJk~)c7~U4#k6~3+8@WXKP2#-nD!A~_QbT0#&5M=sbusPLU!c=>UR`7|$2#+Pwk{v{^+GA|~nI|vxR_YnBk82x!(o{oSI#1(71mu0pos{z$aFQa{FYAzAi@JNZ{5OeN+5;M@;u20%I#f!F`OE+vCd@Vv^ek z7^PkD%boGdeKGK@7EjQJ`r_r#Y6 zc)2SkdzcrK!`BEHcQXV&AEO`QWikT(IHuhb(>_ArUZwR`{fE5nRBCV4x9kkKAC2kv z-xo^#Cj^Y_lQHVLnE0j`xQ2jnbX)xLk@)527`QV=4ebn=uO?uauP5qDF&`i1Wh&-l zl$ZNs%*T0oAjaIsivfR%fYJV1{Bn2v^5q!V6Qll`z;r}$J1<|2$R~LDdVINym)$Yh zPF}tlW4^@8OpN(DFMH$5G%pXuWRLP<+&xIZxZ6wMyD|E^yzGmBPx4|q|Gk*@-G3Lp z%<{#m%z+SKG&Ayl~ZX=v6~h=X_m$g5#NMArY3{tsUueT>d*BZm55kstDUKqGDrX{%z zT`5ZQ$}$4f`XS9-6tgw92FcwAzzdngvPIAL9cdMKzlaVUY1Q#33d8u5YYeYa?O!9t zo=XV0#}$9I!|hY}T8H~VfP2{Co=40+gFD{g_9*@X4mYjvu)}>lz&+@2ClE7jaL*?+ z`W*6{uW@nU@W{76N8|T3oNJ&#uSw^|g$SgWJ(sKm7YK8#@_qD5OeQdVP*Irn@gy9* zF^;Lo?Dz(3=CB+q7+`hVODG8YXv+jc9EpK`ekh1zn2mMzrE#A>pxwN%+Kulol-E7dBuQDB)tZt^s?Zm(H4c=^WE29s8(7%CY1~ zOzFHNl+N*u(s{wD>0l7jVgv16-cG~K&AEEA7&82jO~K^CWO?#WEz4qdN&|L*imGyWMY}0Lo_8z%A9J~kD?I9Q`E-!W9WIw&Bxc;? z@=Jt(yG`*Qceqi7w>#X&1KiCHcN#IH2DjefwkiG-4mYgun8ST2z+LBXIWfZq*Y9xG zDE?N58&vpqhkH+eyVBuaNz91I)jk( zQ}Lg6xP1!maJU}?xQ89?Ok(yK+*uB{NAaI=xM_ta9PaA@?m>q;o0w^XJICR6DgG{p zn^gE7hr2hx-RE$xCT7y$UPEZw^m8U@RQBDbpiCY$)%FJ#rlG&o(6R;A_F}fa0lPpA zEoS`<*ae!>V)m*A?8$D1*VRoeMmIK+_VJ{`OY3o(u|1;!`znWhMLnLB5tffk#IhDV z_Ij-KeiaDLY9Kh*5uC-8M$zJv27byX#fZd{84zExEcBe3&gyN-vVbq`F}*?NaXoiHrmLCEL?mNJE*hC}Co`K_R=9Df zPUc~uxZlX&o14+w14d@iDak{D%pN@_A=BMVW@jYBoKfPrxyQ-OI2lemsFQh6D86cB zx=&4~^fql|I!;OM*BiOnrRM{XDK(Rsj$~|3%5pR1WTu=9D^lxZ?h}fy8=2Cn>4e^P z8yR*h-WAB)t>+A6Shmx!8hay|zItwUJDCY5)0=sW%H|HC_@aGXp%H#ZB#Ln3o(I->Ai5jiEfA&}Un=l)g_2ii$I z;Uq@dNn8htj64kK3HMhA)Ys^_wbmk}!CFw@hL8qoSxVBOb|GCUl$64Np2+{QfO?Cb zL!h2h%-2TLjbgsaQ4cuk=3;*GI8dTTvwEUIkMXqnpy&0Vo};KE5p_dRhaL6oaaJFi z74>1ER87!Rbs(VLqvt57=Tx=r5p|=g-RP)i9CdS5dr&B;%Tsz%i|-Gpcjp_3m0G@!ww1}Ibb|x(bw(pqn&WDj=SWrCqt+MJ7g-vmNxS-TH+Jz-fJ}0+ zG>si}y>G4d*h1i*rVTNf2*Hb1GV!pD7i?!?g_#fuL#@XSumn4%-wc1%TasEaV^@?d za5d1dOc;_fx1Cv8k>nJH_ljZa@Xg2a{BEdR3hxV*OJOS6Ha&yT#s~}V?e-K(TCwqC zP4h>N4b20e6ffM@>G=b*4{Cn&_K4XB+=Ex^4gA;WIdQBO=rtG3v7v@_HHyaR3^^SZ z3RsNDTqzVkG%^M1ncilNOc%8+klCW=PRJ~3CNmYu=$10i+oY2ja5Ai%t&@53S)h2# z$S^fCtG6eN3^O*5>5bexuIDslSiulW5!)NdxcW$h4>+0GXPMOE@<-+7VWIeEBg5>@ zjNbMe876%m3S{=^xfe2&YlFqWc z{sxKtPGX{+#2ui}B-fapaDQt+eVd+x$F&IQs))KFq^-x929LE1>1Ls%6h`z!{x<~F z+w{B^)N_h?IHGP8^N^z+an#Mle4S9DM?-p|L01RV*XTI{>N$#fV?^Ch)axDfkfUx^ z)GLKjH9=3+fq;68p4&k^r>c!b)Qze(>Zk`Cb#qmFl0CpOu(Ntniyz}@davg=sOK2i z9T7EM#-J&;JL=hEOz$yQt|_w^*r6r^`-B--P7!oK1p0{V6?PeeNtg0i4D4YT*Mb?> zrWL$c)L37dj4SeJGOl#k*%&gfakW*sTKg@#+-h9S@*)B$4WC38``_%@qzerSPDqzdzvE<#4}3%#^{M>u~oe{yh#iq3~6q zwgtGm9qx6+Oc>m+I@}$Kf1ksRDLmwGw+6V|9PahRj2YY;2pwR^S;(7wcLUE=t;KiO z(4_qf8*sk1F$P-UW1wC&akMn%STmp$;f53* zcDSnp+%*pO>%~OORk2u_8 z3ad$5ZDRjT-ey-zM}LdZ;B#Bb{;Kw}-}+o6XPuwJm?|h{Z)}vog3JEA2JC{%{!IVdShBmpWjdqqjV{xNf=u_gO#dHZW=y94nULze;y>naQwond-2DM=m&5%w zF;fQjW{0~^@gH}%35B;i++6|gZio9X#7r36?>O8YivNVejVV0laJL4y+Z^t{D#qY` zm(aDXWk1|r_CpIR`~Tc1g9VrUn;WnTF8kkU!2T3v|GV>+{mqiytuE6Mg>QG6-VkKE z&1L%Eh#4`N{&zx@{dJ1}Ylj-XCrCej{(QN2}hSPiUmI>~Cx@`|B50_W!+6 z1`96xw=`fET=vRRn2Gx-%KrR$%l=`>?k<<>pJ8 z=N)cJ;Yo+PKfvvBxVIBCWpM9sxcd};uft6!ywl@RG<{uE_@(Y$4U zvt)O_%XCEH2VAB%1etDgnf^X8BPP>#5>mZa{8t@rNa1ORyE?#K<8XgK%#gud>~L2q z{_74mpzv;oyDY$MakxJuX29V7h|su|VbhHE4l6@uv>Sc4+ZR@b?`+6&!DV=H19pLB zNUt#aqfidV%;|SMc@+8lrpskk;Tf09V+zZz9c6ayk9nItN=D!kLX^Y9ihs!AW)$A* za1RBzJq~v%F*63Y$>APU{C6F0O5uGDcYlD}<#3ycnKHP6)B*2Pf*&~Ggu;(F;9UXm zZU=mql1~`qWdZUIrTC#kjww9rkhccN+Z=L>l8+hW)&P04Qat96BMLv^kT(R#Z4P<4 zl8+eV6#?=(rTAxu98!3{LtY&quW`tCEBTN?4hG08mEtE3IiT<#@XTbp8bSrhPr=d`vq z0l&(}Hq2jzG1W^OV;eqdQfpEBq}CNp80xcHq_a_3(!en9tkz%?Ff&zJ@bZQ_`PVdn z?PL42)_VXqI_J%)<6BmtAWykU?LX4=#=J^DQJ6aZq@KYuHb`2H*RQf?a9R#&Y$(SX z1^|1hOe=KIiIEhJxuW}Oi1`_w_Io3+z_I486 zoy252iMxg3eNJLr;UOpS=|JKRJ$JN{m}n<4?j*+BN!%tBS38MOg|BrI9}gsM)^oCz z#LjjS_c)2sb`sl!;sZ`%Sm9wO@u5KCIz1m~B{AJjV#-Mjx0AR=C_dyQ1{J>ENxUbJ zxKhuVRuX&LN$hqKgY6`?2*rn;#Qq})k2r~+D69&h=Oe8oX4^^Za}xWHu!_;Fw2uqL z4NhX8!Z$jJ9|RH)>$$&`#DR7aPdJHvEhIQ>jU`QZ=iGamKY+C_@ulGc+^IEyv=HnX zlt=8}p$o99F~2e;W-IP&+_!?|neWx|%*%Xv<|8ydDi*EDy!ogTv^=we;Kw|Ot27#~ z{Xoii9k6FGUIVP^B+0%N4dbQwNNu{6+U_Q5eI z+v>EZopxP6LPjTBN$+eT{RJcT!9e;hdm9d9KawqfUBse$vCO zq_1xx{UamxXMyx1_V(dGdc2kNj&{*Lm^{%+bbmY1StmL#15Zz318H;Z~Z+)D2H zc5>G`x#9WA4YrcIs)<~vr&+9_H@1=+Z6`P4kWR zC%4_n?O!&3t!yRtNE5kWd$VYDceIk5XeT%BV&kCpX?oZbuWj&~wOQpJAqz+}?I_yPe#4 z3%T8N_-32td}pk~H`_GlJFPwx{X`Dtq-(k2@H%`PDN*7iv1eLP!}_JBIp3~>&-q%P z?qGAi@t7w1th>c5eY%mQsQ!Z!x`ttJ=o_2>G|Y#b8UAg0hC%5lVfE{_+cWg*#+I7F z7+%`w*C}2|hj{is_>%_GK}CS{8a>CCwiv%1OM~%iI7)7JBG8In|2$fp*+G9rwO=+%pmP zu6MhjrvvUidhTw;J=2bR+Hp^}LE|W z?rnNr)rxzl9rqxHgrvjmxQ8O{s3(H~_ceMBx8lCO9rv}4d$1k%K)~J5?o=(8)XRMV_v3nwwc@_L9rt#}y{`rLK8$1Yf|y6lI5sbc*(-a4 zO|{YR=+eV8j*HAVE_x>8$l9YO&?&-v=D`a69gy zh&vj`!GQZ3J+ErTJ=BhSaES?gupRe69d|H}`}@GD3MJgbt+=mm$9=8i-rpB0R9J_P zyk|jW4aTmU+&JzFxF6T^##Y>;?YKuA_r7-AGlqNOiSI|;(*gG$J;z#c-`EDp&Jgkx9K_4ihFN6?%j@ixCQqUEyi(w zn{k}Ap5qeT0K$ao;=?nJ-DVuSpUF6~sJ_WKa^BU!jAQqqjH6jj>>NGEC!%p=X|{B~ z-cU{Q!HlDx(Kr$|<7m%l962(JB$MSP<0u#zN1k(#jw?dOQO|wl79;aWIT)G7LessD zeB6;2?73$35DPd!!ZjaKODy&jGDHk0Oz~VXK|2#@7bl z2ORfsJMN)Y+=Bu4HF{pvihHOX_h7FZ$9CKU!aefW|5P{X`?X+I#!N<9goMihHyj_lV=(*N%H8;Ks;!&v827-lOMOEAHFd zac_6r)9tvYBJOBpCIjwWdhTe&J<*PP+;LB~o?IEAHWddz+p!t+@BLK(7x&A;O1*`8e=F((?Wmt{)cY5;t2e0Ts&~NsxSm`4TB`hD zUz@2KU_ynY``U5OIPS(kbUNVPqvud7?rYm|U*))`TW}9NZ$m!OR?_BYpA>}8h9Q|eqqsu zob6v`{UYAjUNEV*yDfck+af!G<4P6mn1o+jrdF?$*BxFK%XG72FYlB7 z&OuJ_5ZD=Bv_V_r#P!XMuYXD~@4uTmI@_wrN| zey!f8J>7^ie3cj;G=`UpVfA^gbq1G@BnTWn zN$}e)8^t``h|wx0luR2mX7r>09+J`lxJU0W`iS1Y>5T60Hp#wMjLvW<>9cAp#HdED zkLdO2Y=s!rD0#oXC;6A57WCosFdB;ZLB6s{Q0#o6!Ok?nA2uZW4~-Zw+%1M+bX-r+ zd|Hgb=pEtvJ$nDH%_kJ6oYD7*(Q#vRr5H8$lry$cjB0z!RAlrfs0A^O5PZTkGJLp= z4?(UUZ7_8+!GCGU^^=Vl*u5^WHKZr(UM==u_ZmHC1tl%MUT^>G(*57;y$zgQM|t0W z&$;`iy}Qzt-y~ZC?!6X8E>f)|2AP-^9bSx$NpKtIUz(8SwGGuK4Kjw1K;y+SSV0Qj zNGhnYiZ`}`6{O;g?FJPouviKxNP(^81~t+jHkJbmQt-xdgFp)I_xC(AXYQ`v{X$4T z=;fX{&zbqnGc(UT^UR!?=WKSS?-bKR#`Gm(TIbL^5sxaycRl|Jg>UniM-&F(Z@8Mpsr%dK!S&1YLFaQw zd`@&r3g(DU?S^?ux0f~Mh|hW454Q37B|(wpn4qYjL%Nd1{}i1H`pa;CKvybzkFFo^ zEJqdo9Sc`>hIpUjD%SSuid^jPHsSnTu{COJu}w^$C}ESUvvsN1>fnCA-?PWUOFJw` zSh`)Lr&=#$19!n5D!Dt0!7>xi?pR%~rBw%BI5 zyrnZ1o1Bfy#8!j*k;vAXmn?5Ji}sytLktobl;y3K4->3*ta^#wkWBHcqF5NXVIsSVelq4xfW6i(pq&+KRlynaxHXWMC&inW|n9T zN7J?q&%d6~j2N8_39SLzMGPs7CG925={qeLP?Dn57-EePj)sgj%c$>v=@|U zS38=ybFjLRkB5L}#OUKeX!7xJNkn^LiT0ur?X`~P8|0MYs)QCc$ng!1&?1(dygtl{ zkaJ7Oc_n1IV@@CM5G1V`8Jx0XPS4~A;?juLS)z56Xj8V(Da9KT+D$GdZ!RnLEudW% z(dL(E4MPjuyt&bAxD2Y3KA}>l99{)gy{}o*~`SZsW-s<5=g)t)635UE^hU<{7pKy$)iSz2cANix(Zo7ToeS7Jm ztMu?82RPAHypqnM5nz9pbQs+shg=qq3Nc_w0FAt|#I>=hkFHtctxBcJ2>s zZPyjHwubx9h5K#ceqXrX6|Q69I?VOe!@LT5^6B2gL`kFfBVVzedYef(tJ~l z_wb#o6mKLx_xpTDxc{qNUtjl8p6~Y3YAD%YrJbeH%D~v$X)lx!u`5%e|xwNh3h!at+cm2Zl&EH;vb6iC;$4x zlrDcf-amY&?yHmG{@b_Rez%^Vu=@>v@>nSCDle@D%Ke>c+j`WvkL&ibMm=iW$#_p` zn?yem?w>yc?o;|sF7buH#gi+)^XMCqn2KBS}iRUY3Y!ICP`$3rlq6mnY1+O)N@E$I_N}l2+D^XlJc3NxrG8= z%wdY=)-!2t)U@X?OkjG`U6G=@ zbp5nF&0b!)H&E{jvDWFj!=6(5Rou}KmDM5Eox1L_r?|&hucyQs7F8-AzZN5+aec_H zrf;|Do3gZhheSso7T{*RZZ2bb#i)rD?sp`#1WGH8zg6Y>MdkML$`cAhTd8N1;wbmx z?6~OMKOLSQ79F0(!}CMo`PX#aYgqY_5a*a^f$!18?=A~6BXYjSt8IKA(M`$sF~5s^ z3qw49QMg}mzCWihv;(@r=N_)&dtbQ!Qh2^o*GHYdZ3=(M({B&)KCSCPf4+;b$~Y!k z;D2x8e=P97+xg$t&i}3{{EtoLUl`)`KH)y$`QNQDvG@^Px$kv6u#YX^1-%pJf6xi z5y~;{<(SCZdLO5ARnvw8vyB$5WvkN4y-P?d8}zr5yYHF7^jui0Au-d%yE= zpTf|#>q{AtrLxMtkm_3{%m!i-Ki_-jw|jC=WSBq zPkX$h3X}F*y6*DlCluc6;Z;f>%CX9rH}$wCl;d{3-%14b>moq!B;O-swh{&5YL|w?i0?#{R%_dsVn7pP}gtyv+aTQ=@4fN zR~xrYB^Y^n(c{>+4|3xkz_6Gw_`89w3)6Vsc&h=0D zvwzKHjdLou2J1ceR)T@&ZHea{f#-*uXTF}6cs{6`Qt&7IE((k=#Ph4T-0iF_b;=D~ z;Q1OZ_xXd@IOX;J{70PUh0gO!{n?dVHaeqM5!~d#WdsAyyAsd41J9$*^TIZkuWILb z*+6?G3qTBWsDve%iWUU9yPONmUg*qd_Q0L2a-Q*SOCo_KEs55E#53k+@=3?6O3yU? z5Q7-jW8w<)8>9143$pCPf_I}rh3XI$G5d_W%nh`;b`z5*b+L(M_jZq5n{C;>-6PlV zONhpVfe$n?58^|s=i)F1vzul2zOya6<1(*p*}d=d%kF(=dIfB2^2HFIzFGFcLjCj1 zzlEhr&o{k9gkpW}Rfd@Uc}Cq5j|5cSdVPk=sCW}AKg!625U(tnkZom(Q*F(Cy?+V! z)K18P3$kg2t~Qv5gj^NWyo8HB?^zbQ!d%%rkHWJTKzuKJL z=%-d^$695FW}}}B%zGX|pGfr+A!MMWOkV}ln(rC#)J_66Et)2`^Sx?4J+FEZnWizR zdHlRH)%#p~XcbCD>r>bICZ_)5^oJSTK+71=7gzaMY0)##nk|N^*YY*c4nD@~arEWi zmVJ@fGhin^vw=mGO8Gs)ihYl;#aCIxL_;7o*q-ao8#6ua$BSEs zJrx^zI$HvP`0HsOPpy>|gM66L47B`9$MCCdp}!FHnI-znfDR>~LoswH0Ue5=LkZ|m4E+TqIut{H0q98ix~{TCR&|A1y(7_1 zbOze-&aze~BkhSqdpyz(CEET-+n4Zm$2>llXgeZpdsmsqNTl7LXqzJK-bC9FY3sUE zIl5yx6758ccRZz?jI<{b?eR!ElxX{nc3D}=mxWq}5>zh~tL3#>SL90(n1Mop;+3XlopbumF8_+Ql`Bmq=gdFLb0@W zrnHbO?VU<{ahdkwkQPcv3&qlYFr|fLX+Nm67nNx*3TdH)v`{SV@1(SlEbZ?o?S*C9 z3qx8cAuSY3yC$WDWNFtZ?FD7p3qo2bAuSY3yE>(XWNB9`Eq!5ol9!PvL-!}zrbxTD zyOh%nk#;D>+aGCPO0>O^wkM?>b(-EW%Rq?()nHE$-=|aZr(*J>DfvW5&b##X9Orf%d3lfy_>WcJi)>urncS3sKo8(H`|!AhW5WoqQxB98L)1 zAu3x#+M^E7uu9NAl6LZXC!@Azl%-e|qOwt@J?id2W-CoQc}GOpo)AVvt1fG>uXLa# zv#eFcEMcFeEIG66rde{>+3l8GPmrUY(vlO1EIF*#(r)Z*X>S7CkD?`aC~>eqa&<67Xm70< zp|xg|ttAk(7Q45~*6P6#3#~P?Y^{6y%U0OXA4>FKqHT_}or$(B()K0V?npb7X!|4W zXrfI-+RB+_zQ-bMU81d;8EZGuHbmNkiMBb?b|%`kNZXfayG5gRIh}_unpC^ps$Hw? zX|>B-vb}b@L+y5#wJQ+SE^p|{+MUs2X`fDc3d;o?#>HJPPbhUxZ0O! zyCdyTqV12gqlq>VX)7-*@s35>x%$c8>t9GxbR~_S3vK47zK9QjDHuDUjCld6L1br|;<16PG zLLW@f;|Y2!LF4J?8A6XG=tmRut^|#rqGt%bD?#s0(AyF;UY4FA^tJ@OBSCLX(D;aY zhR|CR^hkmpPSAL`dWO)$33^k4UZ0@x&-DzU*C*%=33^oty%0xXzRY)i{bg0c#nYJg zmqnGMmz0M0#3ey3tPGQ9I@z&ETbF37=0x?8Xd5E!!9?2}X*&~bTcqtvwB3<*DAD#u z+R;Rth_sb+lX^4SZ>KrU2lN4V@%P)B)ZAeYY-X`4KDa{<-j`CmKR$S$9;{3cZjTRE z>cM-{gWKYR_v*o|<(zjg(r<r5=!-+N?X~z?7(rCX?a{Zfu>)(LuUl-Nt_FaMc z>rmfO#(ig?z9W?IvQ)y$VhJxxC5*H!i8gGsx0i^w1jM(4xT4Jc=0IHm_1DU{Zwu64 zgZir_^*;vcuR2fL6Hg;C|2--H(MUUxXk(FfIMK$9#xi@b(tjo7GC(f>q2yBvLFN7r zP=C3M`_@4HWvKtIr2hLr{ddmi@x>d!*`nUeZ%1NCQ|&+YTdHXe!j?@9TOM%sZy8;i8Vi8gMu zpDuHGOUUJ?$>raaeEw9R{u`+Ox{UkgK>gQHf3l?he}Vdw&gb#O=VZ)(_54(y^J9G` z+EAozNwi_3{Y06|O(B<`AeVnx^7*d<^NDoQ zC*?mHX$KN*EYc1q+PG+#-F(A`uf~x@Fu!_bcAFVK&Ft=-YIgSqu6j$eTOcyOa9dJN zYI42`#EZ@smXn&}iG#_=)#?|dT4o8>-Zb2mXhV^ZF{1PMB1K28;!IBi8dB# zhZAi)(vBzEWTdTrVd9SkXy-4{h9YfCq792i?bcMgs;W@CHPx=w_O#m7yTY~?VYN`Z zwX${vqS}og_!A$!EqKv~o#Lcs&x=YZ?lXvOs+m z)PG)5|3#qwbEu5``&wlm-`xu3I@Bu5xZ2@v~q z#bXPfNTn;qhw0D)@`B*GwuBLv<{@I_SC#a)W>F^3pZc&kIK z4G`;em4g$C6CvZGl;2>5YugsmVfC=s?O#%CP?7ZG`}+Y#;w2>0qbVhF<# zVFw6vON6@=2M;KIi%n@!22rG?d2!j#f zAP9V(FZA={HBvp|2sjqWi$@*dNrfd6x{e#dWG#vW2z)y*Y6`{p3r84Nc)ue&77z~U zI%x>w5#a;~e8(>!98iqEbc8X54?4ml0b!r6gSd2~d=X*I?BzvoiLgg8zU&C23XeO& z!vO)mEy#l*j7EfwAUv7`d%L1M<`5$aKkg6@1PI)-AP@#I5+Sw%@pyvRq9|W=h+%~% z9O9k;ffp7e!XSnt1YQS={R!eOMfrw9;BkfS=MZZH1kP3v34<7l5PN}GpZdmXMfs*f z3@SY75Vr*ge5z271~C{RaQs(nND#++iSndF;6EiVo^psM6_!xwD&K&BySED%1!5u< z`PfzuPBH*F|=SYf!p-wASI5Tg+SKY7KUrh;r&l-rtS2H@KyFK%~; z2Li-{x(*w}NQBr5#Ag%47Dai#L*T*$OTr=U2@rTMK`snpI6~|I;?EMqU5fGnhrm+_ zR)s^X4G`;e9W{ud2(cH4_ocd6ttcOK2pp17Zil!nK;VpoiZqD92yqaI-%b$6XAotr zLrf~X-XWe;SaPB3xIs+1mj>hlh|i~j99EPMIRySiuqzzmu>gT<5#+)k#v{ZDAl{$2 zIG`xM=MZBGZ*+)90>nOD2QOUC?^uLbbK&yh0|{b}qI|?5Mim}*h=&8jPF;r#0$&|r z`~c#Arh;r&lzSWk_Z-+24)H*Mcu?12gD?*q8cVkV@koN$q9`AAh+%~{JH$N!;$B@x z3?ewaV5|hh~G`sdAx@x4>-i6!VfvblL|{NbR9PcJau?=9sy!)g1`p{c7;RWhXcF9 zA@IfF`a;)9gD|%ns?HNY{C`|0Y zImD>KqYm+KfWQF|{7nd4myJ9@-2qOyba)bv0!h^aF8^TCL*b2fWCBhcP z_^cxgE4N;WwIO*`p+yTOiO9cFGU{^Q-zBjNd90C6uR+sqSpk#(%PBv7R zdqMaoCBkaO_<|!0Dm>;0w*`ciMl*!q--1CKgiA|=$o9I z`ss001qhdw2!|EpFC1Z9;r)*ASU@!cx!M}!j~Tu~z6MgzOT5pcNyi;nO}K-j12 zATHJ^Uqs;Z4aGk#5pckPUEv6$3XeO&!vSHZu0w`k{x(#T8$tMAse9o-1G~Z@MihSB zA#kK&6@eoS1i~PK^9wpL5Py*%wkXP19b#DF35U2RK-{aVK7#;IEC-(^DE>M@+@&br za0na(P}dHzHbCG+0Ff|=p$M@Th_5Dy)r#^>hZt0N(jjgO5G!@%V*&gQMhG1E7ymm! z;1&V9!Xa>9fL-AbPbw^-&{aPE0rz9)Fbc$fPCXQl3fL76F|P12hj=VN;7x(V1~DEX zP5|*=5(JJFuqzw_uLI~2hj=7F;F*9T;F6o-L7k`-wvPV(A>ky+Bz2$aAfY_<4 z+}l&B5d!z~#n%%A{t>V%T5eY;e7i$D5Fj4Zb=V++LjvRih!3TLY*Cc=JH)WUs~qB< z0D;Q{N;c)qY+{w5I<6Cob8Hnk0XpIyvY$B2nY}AI&26d5n(F` zdlM5|6y>81F|6=rhqxy|+^g$|K@3NT9Y9Q`HoZ$xKIRZZ3U76YwE<$CuA>Gq6e0Ek zF_ySkttcONh(U!%9OAYBu~OGDgBXku2gOB#INm{&2ONTf$(R)m@ub2M3th(zV$$6a zAQnLEOa(ctD1Yn_;|gzch{poNAzdd8Vmv~e0OB)=ivx=CNr&K^K4yhOJQ5)G={h*q z#3DkhnF|*QVvnMH${|J-9(9O^1H?{UhYVsgLhy04;;JMTit(@`j3~Uz5grH#59&H> z2pl{L%M~EZFA?x1fmz`Q!wT_EmSt8(t0<*#qh7{iG2x|iZ zekdrJAq+(XJ}Xvqmk9Wzz^rhDL50U0;kJN)rwC|hy)0;N(8)3U{*N7xWfA#;jw^lNY_b2FgFrrXoB!m5-J=+U{^Q< z4jr&79O97xfujf{;!=}{$i$jU@tD^p5sLC0M-;sye{!Vz!-LF~)j zt_TRYgFq|{!F)QHy$Qk#N(7uVU{+l2W`)AHJHi720f!AVrXd8E2`G0EUR5IC-T|w^ z5r!3B8qI+XGgGLkuar#v#@Q2s|(#6b3OAA@&0C|EIdd zAp=&0LkucBg}+vsAgL*T;!tHL3kR9Hfx>$pLfLk3mm z5g^9$vMvrQ%7+|cT;UB4@mPR3r0b+X1cwJSIuM^p5C;_H_Z(tO;f)UQNPxgY1I;|o zgu;*QQ(f~|xk(Uv6y+lhF{<#eLp&THcIwLa&H2TLYFMoRVts+z|#99&v=*0>VmN#|&XG@^BD@(IlGhCdLDf@HT=E zIl#>Xk%+f*8MowU&Cd{QoC0I#Eis) zsrjxU!o!|=3Bg^S`iDLBk8l~b)Jvl6Kjg+k!Dqtj6vCa$}$j zl$4(fly{euw*|`TaORoJ2D3oph_}7fhvrAT;UJ#LhBh4IZBOw=B5hBijYismL>r4V z&U42+#v?7Bzb22#NLwAwH;cbK@|S2sk+vn#h9ix$+c6J6yG=RbS!?k8tTnU)Dc)F2 zdpOa?Bkg#iO-35$v|}EAP8+;EuMHLt)F-%?Vc2GG{!rSXk(FfIMK!OJCJC8x)r>52$g*O5Gu6eDc)pEyE+`n6n}R7Qv4;_ zP^4{1G(Wvcym-izw06i;+I&xnHyYC(NVKs?JDh0ak#;=MCL?WiIFc#;?D(blOSGX# z+mdL*k+wb2Mj~xbqK!t{fkYdNw8M!u9%;uDZ8FkUhfU$)Pe(UZ2X`gfP^4{1wBbnG zo@gVHwkOd>Bke$rH^r5= z!-+N?X~z?7GSXIu!=vKQ4wQ<&L>r2z#ViL8!w*U4(KA^;LoKzYWfpUzyb@ zesx8w|N8z4g#H`)^9FvdJhoH&oGQQ8hUU~Rr^<1X<>u55r*g#ExoK73)DNRNvD2#d z=Y1U%ztQ=oey&-8uP%Gk(W<_#zuI6cHn)(fl&(^%*iB89PFj__fiEdOXn9Rm2ZYMv zsIU8>vI~xL<^5`Y0{|*gbxKNWnT}g^XI`}o4)(}Q^~U2yR{sw316qLp+!yvq4>c3- z>3SsvOR0GFiU%Pe6ojCcCL+c&69P3ba~jJM3%}azwK9uhg=&)t%_p$`8;JfxGwb(f z+%hd#P^q!~6BkjRHo0Nb=r6j4q0DcV0<6@3__9W&_QPeQK4MRPD#re`GWIW7Y`J1n z0&bR^XOi0ES=Mu_{Fr%lYbt^pGu>3=C@bqkit+Up+#KX|rJVbCD#GIAWt=wG2o}eV zgIgRsi6@+3$_}4L*C2Cgx>#SCLQW@(qN}J!p9Us6|jlt0ZBl1CC-P2wT?jf@?STa19OkVxo!NEZUvtFA6`^Eau zs%>p}@u}#wFK4)W{PRq%Dr9jLC-$n9sJi0#-b9@&sZX>~A1|qg+Nk?W>X+K6drRt` zHtJ|e{d61kp_2Mw8+CI@y|0bBv83MBMjeXO+EbKoW!sZudt&*%wI`MDNJ%~1MjbDy zUumO0T2lA5QFoWr&$Ur^l+^8Q)RB^Ue;ajENxip?x}l_gxQ)7|q^@qG4n}J2ku0m; z%AW8>*b?5zuE=|qR_D^o2vwF=`Ls(TzamFquJh2`rF?@xQrN8Kh#(q6<6E`JZa}4F zBK({wZGDO016WCbKJ$c~J_ zAi_$xI-Aaz7Y*sQ59WFG)~?^8=dtbJrsQ-%!5>O$n>bz!_ zQ#l$3DvSe->b(5cFmw{(EiFFh2;otm>X30wbx1_&5NWAUhq;eMlNE;E4ux?MS%loGVvL~} za#eouXGr2Y#l(S^@ z+ZYWs#`-Wpu+Pt7+X#{2+P!DM8m6=87?50b3YS@Qz{LY6s4M=z0Wtp-3bS7o&bZmYF{4~Ot9TkQsxG8|m}OmP^J1@m zyHBMIgBwd`?Oc~*Usc_VT43xu$%#yVTDHR>s>-G@Eh{+b(PeDAFG(M~ruvb=HVK8K zM(3-LHexiqkivP9>i*aclOLX5kt6K#_DTFcidcI|mfc#^*p zhk=;BQq298V)D;W6x`gTpBt~$FUn?N{>Im@kiXCR3*?}cC+G$)H?{KM@$Zez?kbL8 zEPku{8Exd)(}vrm-{p;t zH$dw^b)hP%W_5R#OP;ECGZyI6C>n%k`f$3@tI53629wB!)9Liu2hbN!e?AQ?Pkml8 zt>N@&8+D?jeyxpqu%sSnqmGr-FSb#4mDHVW)NLj86K&M3C3Q<1b-1M7-9}wsQrERn zSC!N|+NdY~ESBx~pQRGh>R#g7eg8=MLTvyG>=_M~&tMe$^*lT6AZBCV)yOHs)Dj=k z7W$CZ@F8t3>X=?z4q^;j8pIg38eAB*G>FlSHHcNqK`dtwtIe#`FStA__I{QAzLhg$ zmCKRxf#Pi|S`|8Nh4G<5pw@#a@`8 zY3I%soRqe@W_59;*6JMPj9{y4o=u(`osF(}^|$i%s~7f<)+7JA znsrL6_Q*WW>Q~ItD48{R8U|zr=%RkZJOGo} zjIzI}V;L2)WO=a!{aq+>0SH;vmKX0@q3iYYm|a$uYizxul{2W|4L}(dV^3#`E0rQ& zfx-Of(^>srXiA&gFa#snKtoR;bOfE=B|!8quObH+PAUT{r0!)Q1s#Xg1C1X7dHz;)tH)atqIH5PuX)A6n@|(kOq{^c;pc*B%Ng0VufS4KyN_~y2 z66V|FZ7s}q)K+L1t-v~*sv&;N#%OA!1k-R)T@K?!7-+FM7pJk@DWYMfvf~tnIaPLbvOSgv$_xEHn^XfMc5$v%hW@I`J|V7 zFB9=9nV`Cp*LGge;TX$&dE zoLDdK&xle}J>hh+$gX9@q_ViugIM-weN|4bTl^<{Fx3c%l z8$D!Co>WFxV}|z`*koJ6ilXv*D^#PWyt@iTUp7vM8ZO9?*&kwVzL-<Yqw_9n za7VS$wm$@u+|vno%Sg-UdXZB4jDjm{qq7>SUzurq;Z8UWE<{~ui!%#7#|4GdhRAaZ z8F)(hqm`Gd;B=owwc0AOwC6p_`8*l5=%?qCCy7rn=sYbdI;`wo^)7%a2--nz8X@pc zf@(sb@)smtWG(SJZ^yvBQhD)Hxm8vxwN-|d+Uko^pWH1xueq~XR;qon0~P3&AiBkLc5ahX zYPum&NBO8FMYCyaQIQk|cEm&}YPp#zSZ73S<`Q%) z0E~&;_GB9S+!^~l#;Dj7R|c+9IZwndG5wh`R$06btmKwQBQw({a0k~FxIQATRRnGf zw0?y8#loshEr|dS8Jnlz)) zujX>A6dFUUmJLvbTEW*-mI~CGUI*0i{Mj=q`7+rx4H3<8MqDP21`l9s*CYi>$V#7$|OgEo-H`>eZ_$Ls6;q zS^>mXt&d>+k28O9@CRWba!I)msfw2 zvK%hpNIwhS$k@eop?(&*De~SvOkt z@=Ok+7ttf6Uz#*YGp{Zq>x#WfPzC%F0b+dqWYcOdGe*I`iZR7P0Mv_Est+)nNKb301f$C z$KsQ1@;q?qJBwK>TKXnTF2-i9Xu_4Y-sRW&bx0_kb@+!^O)!_Y89}ANmOxF4Y zEFB^Rs-7p?++!5o%Qd~ykUk~e6;*W#so68fdug@u$5#W0t$fyquc+1~?)f_rE43kg zz`ix3_ryr@4pWj8vP%;c@QSZLl3i0_>S6WEg=Nu>;`4thOJ;^XYubt0QO;Cc{ZBGU zYZtYS#?5Edimz?XijDVW#be;`wI<|rjH`+X6#wiH2sn!LgTF^nK zzdWmTyV9wBEvM&G>|0ULMJ1T~FpWm)YxYpPs$p($V5-afR+pLIXbEb#;L+mBlA?|= zEL9Dal_oA1*|1!5+t@_ z)acB%hYQe#R2h0(;!@Sb5u>AlplI~xqBR6Q7pAwF4ChFu_xaA{H74UGtID;5B@(*i zB4@luD=Za82tfyamT5dd@u9iYd07-v7BVS%8r>|)sFT4!qf0}YBnD2z7yquBU9~Dy z%grSU^TrUNhSDw8d?TyB=(5_Cm3&#T;Tzd^FQ_16D_FhYrvA^+po&r4{@qIbokm(* z6G16YeBDxhP}%uElV#T4BDTFt7 zXg^wCiZUBm99d@4%!104L@lJP50aOw<|SFxUJ`D+Bye0D`}<1$ZG}jb1cFL(#7kmz zaO~@Cb-<0MBu24`l(U`f)SY-?q1JP(pO zR=vqk3l>jgwCJiVd0rg*gRFjev4+s?A5~~Qd_hNv7s4kN6gr-GJNCEJcpLxQHr|HX zdE>@-fHzX5UdWB}M$)Og@x*vj407dpF$r%AiX()MT4)WtK^JerCl-{z+gQYl^)~W^ z^L8Lt#jR>*j+@9F$r5wiICG?(${bIOImIAbo);6puj<-CXw^Lm?IyI8_~BSrvEm2+#w-3Z`Vbv0zoN=yPKw&pcYXFHm72H7V0)Wz6WavD)F#|`n*ckt zO?YB$q8M<*^WyPg3CtQoM=Z2~(EqW}CPK$8G(zaTwB3SY2ch>_Xg8q`Sm;qgcUowi z(1$E^gwU{sjuF~yq1(TSHEp3GLZ7tIMna#m&}KppTj(J|pS92^AaUs&h_p}(}yDrDx%7Fti}F@HKi%l?hEiRz9TI5831s~ACY(-B(&8+6NGkK=qW-I78*Q4 zyt@@|4WWlDw1Lo=g*Fj-%0eTAZl|f}T!hwJXg8rv7J8J>Llzn*w97(A2t8_{r>GS8 zk)Wzva0ev_>h4&MD5%5VXs?vX_DbOq>v2C2sXW1%&KzHOlmg#O+_n+Uy^ zN?uTm5PF}5b`bh)3mu_S;766Ba={%GRf?7ZiuD@4Jh(>VQEgbecdEao{<=sDEgDg~ zWCAgtkO|bqvfrz3ZT9Ax5zJlDVl}oR+wWR>d3Q1Q+IgC#D!NR*ZduW#5h_Q@>~XCP zY;De9X;6O~)tT(W%WM_MEJgBTe+On2k$QY$#oa}AhfzAC*~8?h(es{G{_4t4kX7E8 z@snIwidtc#e14}2ee29J3(`gxm&Kw!s+rsrCmsMt!h$^l)g6T~F?L{%>ha*3##snKl~ zO@kf1hRqvbS=3Egy3BUixB=r&KfSY}EyS9W$^1u!W!Lv>0{4|nZ*!Rk3}~f|7>g^~ z%QMPLCapNId|kY11@XFWDMn}UiZdbQLb7JgiYF3E^}2pm=@wUVU;fXSvSh{I@K!*% zjpGY?8Ia?^4@0Z=X_>jqtwS<_u3)nyFh2_JJ{84G>*Ggu2W?s4mxH9!mi9Dr!|inGe+dO0S2Q zs+dI9gxMo!o-7TQ8d6nGz=qW2b-Xp zyj?|vbHqcF;vBJfJz~;Ribvkptu~Uh3`&C3oGE)mXGU4g9fXaSSj}P$#%{iO3RhJV ze-8Br5rZp441O0^s?Js3L#LT^MQl*(2md`q0K z5oNVISSgZ5Bx zC5$N}Th){nLLO0gQ!xA9iL{*#lMGAPv*yXN<8=u0RQLGa@y$9)jql`Mvuh7#MZTFjYc+#KJjIe@4=vg44eL^{h!I8!cJ0T zN!o4N@M5^n=kU_q*7v)ms?KqE>7tG`_?>E$Nti7E3X`v%pLLXRK*@xJbD*|2yhuLR zQAQddUuFU}b)2!m1Jzk6^%kl}%a9Tf4f_rAeh`Klx}C%Y;UvQ@kJeWGsws}*(+0Qb5+)$I*K=Vhd zW9mTJHt=8)G|;@VtE{~=YO)nd!q{S{dQmAuvox@Gv+InJsomURcZi=iBR4xALzcws zx#eaEuUvsyGx{`KG78w9VCD;$0W+>K%6_X*{P%<9DhB}HzmUUJO9!D9$J zO{rOeGZday9&Nir(qvmArH0S8B`*JB_~sd2`R=b^^S zVVgc6OP~CaLs?kHDeveLw{$n-9%z9z5zt~P+1%0|Mq3l6iLL7g^rd$8H* z7N8#+z>w@?#=_o@F73Ge$!0H8e-hI8RNmuX%^KOf`mp4ow|*0G^sZ4I$htYx{XAou z+SxR_oq>y2K8+dLGnqHKc}b)qHD=UqcQ;OGMiurW5^R#RDrEgbFVbxX2zo`Y8F>|kMa|nH zO_2L^l1DXP-le zo0_u;ugrdoYUcL(dHq>+S)+O5yHX|PSkYOPnz zM}`upe&y903WQxq0hn~E79cj*g+m)_m9E1ez*7#mXQm-8MBeKzKRCO%mJNO;GC?A2 z8&?G>C=b-3?5#x`7pRd<#(yVgOw58XJJa)S zdxEB=88mUlM3CrtCm~&%{IVVh2Xv$?=B;{0DKfEk7&35KRu6&|X-fUU2=yMlYpR;x*t6uMOns@6| zy7jqU6Thr1{Nh@S3wj~a)6*bT2jj*}m+u~8&QM=tFY)Oc#5}+kT4Oxgw@q&7R zjn+)n|BRwa-Dnsi8;^IMY*>k>av}@Eid?C`{jz7yn(@`wobCE!#z1p+jrz6iKzxN< zy`5IMz`3UTH~S^`7dB=$aE5=ONy)XXzIn|H(X6wVqdTp5J@kYMar)4QNDC&Ce%fTE z8I_UTT%6-Z4>-zv%|*! z!MfHmVm-CZ->LY^6*4VW=@D-U7FCv(JD(Q$TNbipD&ntNc&l=jS1oK;tp9W0KYLY$ zO3NDgwNfqctMzmh4{r@`n5TMYE47ZaY8ug$vCb%>*F+?NMx5F|ZAW1CzgVAt140S7 zZBMr>MAecw1E1xk1(aKh!6T{#BWdg;jI~-5&J+MxV;f$30(&14Q)IQ#+UfI{{K|Re z5fhx0hY81>5{~!yUfru{ac?=31PtTUe3H-d1(~-Ykrq|1^fsimtPS(nd~{G8gQyFY zZ_0>IjbMe_o3g6fPFr+e)?V{85phD>4QAI*Z9K$3Hr`C?&>ByXMo(%!8b!TM8)v6C zUoo}$EIS|c%JzfS)_wxg@_w233w5t$hScI^bVTb68N{|Y_Y7i+_6%NEiR&S(dfedE*^R5xo3 znsNm!>7jS{MDcsv-LGwHLOQ3juI31=8^w#SNtqpe$09aKXlq9l9xueK9b=g}0vjrg zQ#LlCTNZXCs$N@Gxe{SIL-r0NLL%MKG+AV)BlW1PISk9My1pcR7WYB&J9K{$ckF@9 zc!9i`%>f!7I{aPqTJ^>E{)6k&+O=VYZoc5M+Gjf1gUk3c$?;bofEZcWY5VegLa%jE5~>a6-j!may1f1x zjgZW6ct74^G*#{zSAmz^BnpO-)~(y0*_RdT9q9$ao!6LkiiOs}_>Of4Y z(#UdQzNyM~Yn7zrbxIUW2#eIz`{J%L4*TK_MifnWdRW4|g<6s&eENupxQt=3X6Gpk zndnTcLLJTsxS}v4U5+Kkmt$B9vB_Tj3R2rtin*bd4(K1Mc+pIB-K5F;EA^K%H&dP9 zW&$nCFFI!CiXEsEa?02y{nW+pveflBcM3q6VeUM^62QCg$5?NWPdF?m8<4pT+N1~+DlVZODnsHy6e zINKvW;9vsnk9v7TsM$x?pTQRonX%RXiB=+UoKPh*+$d->PO*cWx{JHN1F8N~%4;DU zv~233PDly_Od`}x8*mdvXa+58f+nk$SiSABpt+#wp=L1_NxqOIWb<1bu2{u}nkgD% z6(xF2Yj(>POT_{cHBMe|p2Qk*$?R?vi?&s0K4@HG+ZBtiZ8DPa4}(-fT(IiR?+H@~ z$Lv?CsM%7FM@eqIEEX;RR*`+>%6By*)U3Nl=qjZEQ z%u=;LkllhKg3!576VW>NO!8Txc?ad#RRy)bMC}i#qA(q%YtN)>YrZ|xYn(+i)i}ze z!8|#3ZD?NO<}FS~EWKkdP;GFqOnqBRUC4rZ=4=+rLR~G)Pgu`9R%Nc)PZJwYZ9Q{= zD2=jbTJD)9{$@~F&n$EAR)6f*Pd)U^RcE&TO)!v;cC=D@OaL>VxiU6eR;2){BUzuG zRg)Uq9>%6oW~x)iCeAud9h z_I-Skuly!&18D*aX?!|?3wb`m@C?VN_ngD<^d6Jv=V5euk9uV(!Dkqpz8^-WI4oKF zEUMs6lIhRKSxt+>(tGN^cdAk8XU>0A+LoPVRPysyd2L@98pcY)YWmPHuD5pwB_4$M zojNp3Qix)L6(5ZvlZaFr8tl>dlt;ZD>8wM;L2{ZlG#uo8r1bfjhlXb}F6`H!-)>3n zr#QSl@Nq%;PaPK;)5nE_SaDOv1pp}UnEigye!pP9RDKv25QQ)<3|mO!!bU=6cRbCw zurYfc$AyiWu$K|u?EVMMT6T2%R>b&4-&^)ZYH8?&}v(KaHeSDfdFus=Iv zuXr{i!kAlmJ|evRdq1bGeX_@Ql8%-gnbknP^u*}JaZj$rAp#r&T4$(GD2d2rHJ?``ZDxXtlmie<*4>^EZe($!A&U^>~VMiE&* z#)|5=fkn#RH?6Q~tT|PquJzKJk~MnjyJ#e@t-MurMu{m?%%)HHqF~zDHtC!)Gj3MB z4%jU~F<2crLrGh*Q)2`xSYou*F`x~ec$k(xnG(sk;OMbVBda*wczO8uvh(nCVwKkx zTSqb-v{5xVFj47K{aRX`0LLD*`h+NuM$Z7%(7~95)9U(BYT9=(aK8UVmnkA1wK=GI z1KjD&JxlPIsRMA)U4PQ1$8Fh%DkBk&yl-IzsJcv5tfgDB;;C#=7oV_LC@FFQSN>G3 zMNuYaD_WFs%_-E?Fy-h>_}*!_YfbY$#=IGE-d08Zajlp~3cEsUe#D@p?OEnyx`p%zqXXgbEIMqD08i~D0dry@n_8{Z|C}^ZN-dmXj&yF8h$WSO>XAxgA03%-M^$O+#}tw^-b{^Diz_q3qqB@unzC`) zzkQ?<2^mxUwZcd>LoYo!yn&+|JRzf2blL~SL(!l~ZFSJD+EKvX|7NB!3kTFa=kDbyD0r;J&>HS>nZp$(kNQYF(CC8flqH*+7b(rRUTaQg9tPI*IviMEYazAWoC zuJNjezDQBgQT0D<8?=G~)}WKR2^&)Eyh958#^1WpZ}jrd6uWIZn57{g$b)idW@?%+PFgpO#*EH8u&0Z1 z%D1*{LUF8$Hm9(vW*v73QG6L0pQPqDWapyh&(imX&9_EgI}p_TFgr*}HP06pz3)kx zsP9S5J6EJ5e3F`{w@y{_;=b&Ecd9BtUTw0Du|n#nPZ$L zHIt7sq|Wtjkyj4|J+r$Xh0);btAhqStlYZh9pXl_F6V~Y3EZIT#0?m5!^>Gs@MJ5P z`o!5SN~gZfn!BULdqt*JC_2-4wrPaw)JkhjTw+hNy{|=i*xI4I@YU#5qL*|$RYQg5 zmA&md+F0Eu+$GOn>}FoxLb;KNe#nr6f$!iQ5#>@gtqN7nB+@>&p?w=wa}LJb`Sq3B z$8u&1j1R-iV{--wonaiV(t3RmhZvqTYM{+Ee48s9ZI-j*RtrAvD1N)@TTwldA$_h! z&q%HDNn=eX+%syiNmcfd>{r-qR(wS20Glybdt1yoo}A9JL0YrXsy4APPmw1Lhk5v%oGGtg=4dOh{qVOe48Dfl`CNMZ4a%0glgQ;n?akT)&IA~ zLZ+m0?&vkylp3_$tUh2gtGz!H--9w1LQOqYv3w0k#ih)!T~>-n=gbE?AnK3E`p^cJ zQ}TgUHaucRi4g6(cYlg_>E{_>DYo}E- zOTiF94V>>^jI_^G24=pZlFjLu(>bTBd(NCWz5Jgub5@<-3ollfKb0)6R_Dyg=Jd>& zGov=AZ%+T5+MGGFFSv;PPzbb^O1g`yHIivoeShAkFTmLD>~{Lc^S(LI)p!yn8hLhB zp}l0XGBjUJa#KN?1-Fu+vWR9Vte zI@r>I?<6?m^olModIJ~46Va4Kg>t}Gr1VAK#ez9@tYZGV<`SL^;X2`o5T>oTrNfw&B|eY$${Uwkm`LHW3OJ`Mna;?zm+XRbN*^ky@3b&% zvuvy9>S^lvZ}Jjg{xm*t3fBg3x`v7jnC>-yb8U^Joq44+p0=&8DOoUiX-hxT(??~O zsqgBL0~!d4;RXq=ze)oSCx1pYnUIKTH(wvlw7Ar@0UCvD!@vTBTxFzpGvH_?R)XJQ zyP_-gE49v|&SIdNScYwia-dFp-{H~MA6Tj)v~r+OcA*~7TS#!(TQry{J5ksmrPzxr zb9`e5Ia^(cQX3GHAv2S1V-mL21L)9NH>%V>lF34l>dz=U4>5@;IHyQ7^Tu?bT1dz< z_9WV5yr_A_>Yxb^YqdV!Dt8yd->%?ivA1$68D11R1QkKg`L=3P_H}o$zpWFDouL!3 zKx@66)86OM@~q_2Oji49&d2Mh zAnXPiF!Il0)6a$4M(PV=A~pPpzR|P@2Zkbr$oTo!-79%Q^w%l_eJzViPpexNRnDN) z)c5UtJZxi-7I50)%0j8UDl>i(pk7|9)jU+mYken!G*t^5cgfPKMsh+6msXc}sIjyv z_mj}(nj>9>>gr(@j}L*>Jw&gQrQCT%<>IB4i!J2e#}ZB6ZvAO)C9@q$oc5?cO~p~m zEb!14l!;|8eo#J|N)f!M1)uh2qmeaw^x-6YJR?rjKsVBW*2%4TYwz;qU0xCR2|$|E zOxp0)XKM3yS@SZlICJv`Gsw;ndINvlW+T|rakahjyk(3UZ_D`plQaI0R2Y?#46io5 za?vS<7E_qEJS6+7992$ZpG`N!YCq!@%p#msaGR>_YE!jcZK}4bNUFAtQzjZ+W=B~q zYRRZksjUp=HSnc*t?zwJGq0JFw)IjzN~%>Ev#@)<&n;}4(=F@=rdrq~{g2LUVVmP( z6mKW$^EtAxm)Cy*2c>RaM>a6I{!O!D%G*`Pd70O*{)4~#lRtd;$ey*|Hf=D?e3s?Y zji&KzWkJ9C4<7jMfB49M+q3rZv&T0h`K)Z7#YjGD`g1dqOPK0uYU^x9atUy{>OQ-X zd{&6F7|C)#?*sR#jpSvvL@wofcJr8Vr8dfHijHe&z{X>l9i;Gm;xe@LJqGO**DzG6 zFPUOFYvu0rmNR^Q&n@S>pDWAxi^u%6-Yf)vH`7YJ)k9siD{h`xzql~;3p1p@bPOHM zaIe+7eU3q;o-$p3NN4u*S%u=v_VcU%VCd_A_{g7qVeP)t^BMcEnaE{+*=ah$b8R9& ze`+w<$FWfLkzgN3LeZg8KBxBa+|oXN+4)pJN;58_qLgtIC+g+ zNik30T}k_@s-Gr}lQW`NcFdJXW5N-4O^8EC_TvZm<&%yb68S9+y#9=I4#?8FcAlHp z9GOspv9J>C-@cyKOKNMv4(XA&H|^CgURvF(xi5!gcx_UA@>oT4-H!UkOx*KeP)q(N zaw^EqwP-2_?^>?cDT3>Wu?#-^JOQsf)T2pKypZJ`L*;kL^7=JedZ2!nR&Vr#Z$3r5 zF}6QnqpuM7i^M^dXA(CK#s;rVv>9L1^%t^1L$*R(4_@4r639wr8P1Ftn7iQw%Q;F3)peBdVJ z?LajiTdU1)vH$9=at%Ffayc{y*Z74|Sz6*;qwikTGO%g`&Di4H$YHrOtW$5b)L zXmzCVf3!)Xx+mhTJ&R(wJ)YhDSsORi|L_ORGj1dw+JCu!W*3r_sWQb?9{DRX>}1lp8mQWFRp zaTii5-&bvW2z2P&UeqWTZrX*7h-^<_vje9Gq=tIic-|dk&3V=|%#eve&AF`c$chO; zvZk+wAZzwjGOcDYQ3YF#CpQz^w8`3DwwZdLm=GQj)Zz8J|;S z9>K)jh5@NPtzykJG5h0VtXjF+8?cMj4{Of^2uh>^_qP(1<4mkrKB7(#y-4TSgRf2gMao!o6kcE8AX7)!$JLdj7nG&jBWb?CHY zH_~tTH+OaqyHunLZJmFMYx}6?RL-KU%b`&h+ME2h^vu^jof*CntrL;8IvxSsn4le|I zN)*{a(YoE6ouhS2#PhUnZFWTkOto$yxOJPIvvs?dlNry%y8Xm6vTk*f>DgGfgT4jN zt=n!>06nFZTh2ixmAfUCOe;@q7Di1qUTCt11EBb;pI4h0cBe=C>c zab~yp>^RP>+{&Hutli4xyqujLJgb#UL^RuZSh*WjrIdH7l?%bGT$8zTvT`>fbF%o( z&&qX)J6|hT5{LTMeCiolxpb*y<$m?Kw{p*5YBZN`gHmTCO5Z4-G-CyM!mtTNZGl|HV_al&rH zV!thru^i-E4&iGDrJf388!ZIQzCVqydVab+fykQDvwx4x>4xM$LANPT*DfYp_06%uN;DI={4x8|o(XCW%}Pv)E&r2lai zmDLh01*aN5dH*HVykLA`u?82StUL;5O`OC`3Tt|ur>C4ZK}OErA54f+k7zF&CE68*=vWXU z4j0fDWk60BBFzfak}UaEic7RhCY+C5m>;2v@IIvqS8J%U_~8UZIN(py)OTklTU1hz ztz12bx95kla*NYJ^E_`f-+;g#THA=AH%w~d1_w#+&a|78&SA6v`D%NXBwWnIl%1OG zsBhOIfp0R^XitdYL$m3`A*dWteI>Nibf=WgV>+FrPx^Xt4}{g#+MPi{C)*X|c#zNu z)skih;$B)0Uv2ga7cQaOp1p)Vp!qgmHtCY}(zV9XUp(vpf z=PaS-HH@Q{s{4mj+qhjb3B{{QJT{*69&b%u`2`83lBP-Mz9gZ0qlE6uqJ-K<3&}$J z(xp$QODHFA#DQLA*z%fgXt9p^j{FrEqU{U;5(F}})F}lLe`uvZO2wIEqIonC`hh^6 zZrpxuRObJ?0{JKT)x6qx?gjD>Gsdy5-}3#@dI2bx2kHhmMYFCUQ$Yh0x4O_-W>;W@ z2u8%VmqB$!-jLH{_B^vv%Vh~RCzq>vZOo<4f(3noSMlb`a|t)yOY?0vv#ZXpC(szbd-7h{q|84bE+f~ z?=|c1lZtU$^;uaR=WVMdJCQ0(w&wSTnQ@Y>${zF6m>GH{DyJw?-qBW7^XwIYsRqAM zcXyv;uST2VK+@QcMvZ+SXzcUT)U*R%v=lU^%%wb~cw)8?2DHC!(vkRjIU&$x;+HUibvY6YM5(`siEfvl>Fcs3a~8_J8&-++K`7f~p=G*3Og60&uL`Ey*;k3L zJ@luNRe%~*`?Tw3Y8_vE6XHrB>w67Cu0}lSBpP-HwRldn@SPMPHI`JM~C#IHy za7CNvaGKLS9_Mt2%T>5%vQA8sonf8WS8K&#S|?6zcS`Zx(6%h6^#Pme4TohpJB~1Y zXsQhb!9Anmj0+Cb+gD6*zZ?bk`B`ZopHr+Jr@lEw{r%%G%%l1{!~2aWxb4fwwgR!J z@)Z-@FH3NzEJT0y~ljUPAN|ejTiJ`P4k(%n1a*7%~c}c=m zY5oI=e14aY%cY6`_ari|A3xU;`S@9kOJ9`ruBjpZX|&@V>Z{L>b__4mQXl(AtPanx zXTa6r^o7_(m8VbAg4)%b~P-_Zwj|>)*D!@j@ADyCg@TLa2rnlEdlSH+nc-^Kv(-`sB7~o$;B0W*ce~OU*EcPT?c_z8GHh;$YwzlI)jC0lJkiJcJwy#*Eh9`wKkf& zUP#Z%9E`~_C{$y zITNMXrT0G!wmmI=>e{%(bKj~YB3=frCQB}_RH-%ka7bL6m+;1jgK)e^$j!L!4v2yb+CB$RRFJvPfQqw`s{*26T3O>T zGswVj8wNzP7%!>aO&K+_!m>0kMP+4WItiNBvNGlAu}4y$@+td?X=ORZ|NU8O?=zcW zKu!O@*X#Ft{r1e~thLu(x9@j-*LPj_+U}JIY#a%hp$^%DwhOeXqxK}563vA~t5*U% zC0=Ha^DW~>-!j4=Jz7R_kP!U8(Tfr!(YTUxI|ncGN#>2p94=}4mJ6REH1j|reV{TX zN|mvUeao2GRK_;afo1#(Cu-Y$XBmCe#Wt@ZGu$KQ_L4R1wU=z7+e_wCKuE!8``#rM zHzM>)w1bR8A+(>2<4U!=jJ2_Piit6dLPRxn$-~i5!K#Qgx{uxk8BiB%dHiWG;e5_)FUSF2PQ=k#Gei&j?o9uB|@( z-F?TO6;9s4;D?>*Dw48cWkWEUOmK@+_1STbF-Id z6jL};RNWoV9><=NO#%!_c6*?gIWo;__Iz?7r6}p!1z{${&#Xw+8y>19N;jX9)^Vc* zb*4Tq_S#f0CWJ~M$(AG-W0RLAOX|p0-oy-wSK9NLIgVnb#Hc`dE6C@~zETtAt$@6V znOY^av8I(Dv2-N+$oa}ZO3TKpoUt5Z*MnrM70absyDo$8_7e(-mue@Op>~olYh~A@ z)37#Q$tYjwJDV@QaYo_g^A)Z1TAn49FZdYc%eZ{OCxk-zO4tQm_W}1O<#Le0KV-3( zuGm*(e(t49aUoS%_j&xK{>NCaM;c#x$fN28o9U_s&p)IBB--G)nCs5G>r*k;NAs?a z#9VvxuJ^`V@65Y?JLY;z-u32~>kWC=&&6D?%)5R%=6Y$~^^%zDYY#?L{O!Sh+Fs1N z{xRlC!G;t+6LWnc@A}J_>w|gMpTu16&b$6F=DIEK`i+?DO?lTZ$6T+=yIvb}{Y2jN z<1yFnyz8Ey^wak0Pa-N_iMhUzcl~|L_36Cpf5u!N&%6FC=DH*Ax;^H4SKjq|G1uGk zuD8Wpx8_~H7<1i{cfC61dPUy#@|bJi0}*YnKhRI{?!4cjjH6in%_T zcYP%0+8ep1FXXHe)vQG*WQ--b1T{pq`Sy@#URjx#U?{~wU#jO)*o>^ukQ%|d;jBh@ ziTSyLxf-*f{%HvlQaFk&%RUq~JD-djTRHe(R5Yrip8v^9|HAVMwa-~^hK@JM#smu2 zPt8Yj5O}l(aO!dvo~kTbr7H*iYxqDI9~c>8H;5=!b+7EZw0@FP*)~XbscVwrDDq+# ze-hn~@PbMu&MG= zJgQ6G2x7EfB1xquk@+y2dhv~HqH#9sqv&!ivwLK$ZYBEkm5Dq9c)vAdKtad=`znXp zg2H(eNy>dtQ$e*QD5R64`=PTypQY)iQ?n0_PJ8zCe&}@mwGT;@5`T;(;m0BQ2AgAv zXY(FsiD z^x^eJR?z(j?SYNsz#lE=qkUu36@+?AVV-(RlE)%MSfqnUo|l)rw=Z_u)o;ZvS45HX zVu4?z4=IS5PA>NrzvRCoe(HtOv_n(6XE5i2NJ<55IL8eDh&!PqusCp6sOsbe_8tfeE~S%}vnZvUlE$&HwTeW=uiQ&6$3| zRnz;5>CasCfZ^s)zUdX*X06%2VwBFK{m%a#In#N%>?e8OU$oYv`-+n$c&Oj`S!*5I zSIqYlc3b;6#eMaI3P{{!?M`dANj_$+Pno{rLbCjj{7jVhN3GTCD=sp@W7d9zoL{ll zg1+Kn-gUJ09Y*eVKdg|KlWK_xw(r!<1i8Opt(Or`sR{nqf5`pfgdXhvPuchIfSZ?o z)BoV*XJp5{%mjb7_N(;0v*6O_<^K0%Uopq#{`2>`xx_x`eo^*BU-3}lwssd_%kC(^ zFcW<8)&2l_dz_q|&{v#+i0^pZe5MJSkD=FzKDeWu4Pg!5dkiL?keI>*C zN-}*V!~04`^pzacS2D7%O%^Oi=ws zGB!I(8eaVvK7bvpUB|#vZ-b&c8FnS@PjP0a$NPrq?~F>0*qr#VcOjZ!8{gP1K^2r} zq%*>%;Zh9&<^|ewz9@flu=}JYc*zgrIx&d~jW6CfOx)Mg!^3 z5$hL;wIJ}BH7XCT=KfmllRE3wTUs6@GYy(rDS^-|-&xfZ5l>3^Do5sz3Gr%c&YNk% zYbhz(PkBw^%tC!iZjvJI%pDy3*322=x$V2*z2=qpF7c#nI?$V5$-vAlw<$4?a@fjT zT7jdOw*_Cydi~z`A}KkjSi#TZ4CT`bnj30A=BKkdqfonpmb~4VWpLE@ZWAj_T9XC( z5(>Q>hRS~Ot{W{4ZI3+`d?`*3-8|@J=9pCqpKpBoMQGHaS^L2$3^~zjOa_MubIY@3 z_$F3%Kl{ae{LU}CBYWr!lO2sGHvQI;=AoDQqc6;jR-tYAF43Jc+0wKMIg<*Oy|g=2cj3~9KJ+LqzRR*W(~v(6vYA!ibt-E`jGp7JCeVy8|f`9q0iNI6lCP?t>n<@?_Bjr|cPms3hmYgc{9 zUXdd}pMNKi`~)Q(P_K93a%Dj&Sqh$q3Q-_Vh>WsR=zJ%GQnFrVzuQ_0ONtze%2#6k z-pq!PW)9~MGCS-K4WkW8R!UZqK{p4a<}$FE6gbyb^2!H-FrSD-c16(bugne!O6^Q% zhSPLQI#%Mlh*FC3!!+UwoQgFRh~)-?hS<#ebWK<1M)*lWW&+P2A}+I)eRet16JfpF zbz*4Q9a&yGksPOImxu1$qWJ=EV-7bz?PpFY&yJbt*-G7bQs}AiBpB_jeZO7zSoS0Auu#;iw&`ILc}LHVfPSeM2S85 zUYQ%B&m24Xw(g2fWQqs2!tzz*tEn`nSSjAODAR)%WqM#yS|+K`0AE`!R6Qz$YsCw4 zWjeNzqh_hWQB{Imm9{%)qj+6*q_k8KqE8hlh2^E?)b^s2ar)rN(xHr*vZcZ1;KNd) zcGN&eaa|6U1?Oc8iLDHdC&pQjyeAzY2n;b-@EhgE5mG$pN{9r9ZKAbCD8F+5#RLucx zLWMe}!}z{ykZ?<~h5G#I2)`igu&xXy2gfMJx#iC1h?UC2@D)CXGfE6-#P({xG=;B* zt-Cw5J~NZ{i9h&b`9NLEtO$xbVUD$xbW*dWHH!VAwC@Gk;w0iGrCgNxuq_$Z0aVO| z*8hSb9?#<$ckYrti2#Kz;iqCxGmMy3AV!W*N7E|(hMFFV(n&61u?WVv7Tz(->2hRTtVydF5vn+y#D?;G^PGY$B3!>3k&INOfp)2= zI9tR$*s8{}6lHgRbPnx;_G06ZG!OW|AfBF)7sPX*9>=+7SOn6(-_$AbwlLr-QsnvgC zjg+51=EkjPKnaG`dt+{tIvi$OVF)Tz&ETwz!l-8CS&A1rlgjLH=9{uZU8hLrI#V;4 z<>BGrl|xzufmR7RNzU1CA$>N??yjJPta-PpuB&snDNX&`O`}A%{dA||WXbA#uH$2j zsPo{3W-gFh#Y*Kxz;P?0oRZXXjHqvAOtU_uQ4kzE&FDZuzGch@Q2L)P6^ER{7;5{B zuJ7WPtPDobuh2G^q(5v0{S$(UX<`E}oR_Uw=@+k{f7V~sOZ}m?tGahp_f_)<5N0)3 z5c)w85|_F?t1o>Y~@6E{I`U${yx{4ndEcT%NXzECYwETI{)Nhe=li67Q8?UK`EGYPgQIA}Vcr>;STpJ@^!?XkaFdC?3TYcQ+;Q2%sG zm5_hi|G@uvH&HoJ3Y-TV8YNGf?i0OQL1eyQc-k;4$bto=sVB{W$dV`;@mQifP?wv0 zoPrm{!b2^-SiAZyE_+%);kl+E>@+6yuv!044>s$=D9SU#7?XY_ktlMDPPFw* zJkn&bK4ibr$JAXA@{eH^nbkCkwXxE|a;RID;^jD`EL+6jC_H&C$+|G>fJr@PF-h$| z+0?QXcPt6&NIK?Q_+evHv~o4}4OgyER0@{4*b-ix^He7+sks6*U|s<=ydXziTA3|C z)R|ed?Q%-GDV1N{ai3!fSHx0o)v18WVOO1s(<(@nKh;&MJA6L(huq~ERv6r(Ne~SV znB*yY<4mIowNymMNU^x-+jN^I4jVPEHA&rq1O)_W&J&Qp%(TRSGK1wRR{q1OJc$MC z^lpJ(5`v^rq=r8^64Xh7oytxhOXx7XKE}yWOw45eho{#v$IEULVA7gr)6Asw6$h>o zOhj>fS5zlPA%B4vCif=l#Hjz1>cpEY9%m(RQx1;C%WH(t&^IGQT<*pBryhG@B-~3 zt*T84jtzH^bJaUEQZ^ar`)P_d;590(&m*K2K14+etbWoivC{c?DdB8JwlB_4jbd&l zd12y1D4@q_XHn;*jLvzG%t`6=Dw7Q>vZF8>SK0x*eSTN?d>eP!RI)J<`}3{RNN9uP z?=3xdCUQhOF>x0YC7NQkH!u`hE5=AX0xji_3k=hok;Y7d2>3q|Lp+H@NPl9dv3t-QZVPy;%kM~sI4`vv?=#Pn%Yb*S`(z?!ob{fNyu2#&wYzcIjSV~Rz1laj zB?jEO7;wxy=lP?oTm+n&n58(f9>T}IC>E#^YIqDIrIQR-_VD0EwWqeN)Y9LUdx#%q zP|q?w9wr5_9Alz?NHB42&a8w}eA?oa@^7E?*rW4L*pho!L!y=EcPpG)op;%IKVakU zJ~4Z^b?83v{i-~ke>lGB%BlA7l_#4F$*I-9;xRQRIkkkJuvVXMLY1vr6O?tZ*^Ecj zW|c8zRw!=J#kW!far%x>(m#ZpB^6|?4Puu#aM2#2+$JfPHkpa45VrDImBr{%F-=tWzJ= zUbmw}84)2;TP{DUMe3L^P*ZD9`s&{7MLQhSXU#I*bl>POP#YUz1Xfl?^ZQ&3Gsg(D zfm)hi+v9knJvic|?Qtkp^~T_@@?b?Jqy=Uwt*CoL^id`Dk?nn*44J^~X)tMAz#R7`LDR@*2t7D1Q~R?X9s$ zba)~)hOf@cPlM}EVmn@b=ut{U_V&}LBC@_`$`8}`d-+NDq^S(J7K|5%GvDP-%7~)J zl)h$u3XXHLA8oA8Ig6KXQ5&<$w;yes$!p`0wpma;(h&jj|9`7C9w}|CMnea3q+}bQ zjm!85r7Z-@9cznohk}gS&Qv-x$E1TNiZiXOm-ky$f?Ii+-c~~FH&MjzNY$|M+Ch=3 zA=0GEk!VzUGvBb0asG~flm6bg(Q@(a@+7{ha+;daIsnXb&D+S~9GRk?Qh1-?KFsZl zgnENE(M8{FYlj**^##T+_)&N0k`0;&k0zN(kX# z(>*52M!K$-DlIB)@5|c$ZCz)%pvdjXw~0VU+&V>e7agWZ;_s$>-zkZ|i|wgqMf6rg?M_0yp{St_V$8Ye9c0ede&!&8wymT)_+u>$vxS+yUPbt!sD4L% zkYiGouC_j_MBhuhRmaQFmjw}$2gL_wDp!Q{O2-IM84D(x@gkI9esGYc<*eVVM}Nu- z2k5p#>!P5$HIhUyGL)W;eY7+9@DmkT6AdX=Q0c1cBc#d`$wGq99IYBq4u7_tFUjDv=a-n*CMh!a9`cv2|dcKX}y6)eMu*Vt<&LZ;HzO(f?qkDR}s% zs~$2M#|`6VYzG?*4wpvIf{2YCgN+9IvL+kC-R49IgqB<|Lh%?TzT3C!`jYGPvYpD) zP>}LN@#*ehcXuepSPk~dtP(Xm(-QVjDa)~rgz@&XriHGUc9ZrYY%n-g2kza&)`;Q6UNGi%76{=U$GgO(R62j0d%y@UldYByPh0B2b!4=;p za0M2=2+QE-mLG7dFk56{u3LGY1lwpYeR7oyYSh?%hzK;1v9><3O|o@^Vo|VH^}S&Q z3*$AJ&M_`A-l+&)3}aW~XFF#aV_u3*sr zyi%~GeyLSi8E3PqR*5tBZFOvvEtigT>|mL5nPHtxnXwuaxm2@(Y(~2@(6!LPB0GC# ziYA+hdPHGEAxwZ!T6OJkrg>odv+A7~BWjUH$0km9>}3; zqI4*`3fPB08LSiQ4??$VU&62)#na1zXKolfn5bUPstUr zUjXW~bu32%hX!X0vVSnIWzNVk8A}C(N%&-amep&a{Dj8Z^SgY_zQaKG=lnlgaty;v9f_ffG zO>Mnw{lpm&mx>d|!q-SYrBtJ`Er5{_2Ov&E{9%MpFI(xtR<^J~oDnJb35hd~IB{!= z$NEuFu?~UYeRa-_43bug^e!dNTkPb#>L3SANf z-$+aZ@7pK%@OJ5C}=Cv+9C7irEw@kvL|kDX&fqPOxwbGLunjFL$hCLgky1O z#OMDn(&%;_M1u0Bq;dFU=CNIs@(@f{7*(p?P zZzQCCdVfON>&2wBEE2OWnqbMjpn+n@2&ruS-4->V7x$>xzn&gnl>u17l< zCHSU1Q$1#!9R|?g(}EqujlPtbqWMR|s>MpVeu>@`4ErUisDqJG#|3w~B?r?jNrl~# zB;AsfqgJ89Zb?4W!5Qu7uwC3G&Nv%iwi}Xiy%b(GRzG8uGfHI~=g}*cBQL^`FE$t1 zJ3gYLyTjaF7K8PfaKM799_<><6y=bm!GypP+Vz9f;PZ5>+VA0np${W+nV^PkWx+4U z1qt{PMJAuLl_;dNK6a&M79*7##*7jTbBT>Dip3)e+8u^AYBMvvxnftIYDbk^CN1wM zapq#mG9UG_Mbh7QNmD}^Qy}5Hjyd*Wrn2lIm0+h;7Lb`L zWK}w)!Vm6z!ONV2Uq3%SP8wK3+`W2}G%i52!!ZG3fK`{6uPG|~c^MKZV=(yCxZufg z$kjG)UEt5ACF52Tyta3ew$FTZjLG`&6unTkG^=T$C!zHZj~#aW(vuA~#w@=#@!7X@}i9gms#EL?Q)w*%CGXM9o+V1;Q>S*UNYG zIX`}C68_bMO2y>!CMMViwli<}p&CXs$}@!WMiqQ>gwX+E?2r%ZYpb@liNT^WMrG@? zhh*;pLwV473<^3kH{nxWFevsEMXb_ixD+dP?Rm5XFRin8L?c|uV~oxY@iFG-N}`hI z?k$!)9JVEI1tqUKY-aPSV}zJ)OMZy5Ln38aNI(l}KQfHW(ZkR*2ty)zH5xv%{+t(y zB7bC_aYNJ_kUES6!Z8lkNg&wd$LvXQBoM_;Ac|uGK^YAc2v}|ff>B*05XCWpkm^Gu ziX{-F5DEm{ZIQi?K(MPepSS%A1cPeIj@ON1Wbr+#SkO=&*kgx0sG#>Q!o6joFtZLx z$dXYzq<$?CBxbAU>ITolG}29@U}!mb1A$U^jmJKUsnkC>^KmGeWY}n~d0{9llLQZ@ zYr~c$uXG6&wk(9QEz3~XvatPI%IrYmVb#1^mz3tw!`6jClpU9;>yd9)aMTQiniZI9 zM`fD8Db<@HUZy(pF$Q1x;k05<_Dd;#nj5V=*>}XQr2Q$vfzhbOPerc%(KyVuKYCyX zxQv?^neoF!NFmKnQPligLI2t{KMG`Vk+GzMwfh%P2Mlm0G;PE{>2L+ zMQ5Cw^*F2U4Lf~`Ny+6=5%b5hgieTnW^yqgUv>t^MekljQNEam z3G;=id};ZDXhXJmE?+L!mJaurluY_VTDY{S!v4`peKZjiyS;;!BIA#_8Sas1b2HNi zT1Q9xCF4qjQ6~G`5{)#Tn;6-;rStxs|87;CZ9pfZxW=Jam~jX;!-I^MEzexyWwv7*@69w^-IpF4eA)NhjcNRJ&5dn=n_lodq?La!dswp3#o!<2 zkIi^D=E@0vSZjH%eCG9^)%E=om*M}Gzj}f3%QJ~FB1ly=l%`7?Yt33kVCezR$ zJxdy4ux*dp5~+a#&$Shf>T6qAw;Qrnj+25CdVrZaMB<{izxl3rnmK4cyYCLt_KN>Q zcHh06-+hNIWbVG37T*$c54UAaD;sq0@-j~_+45UYcaJ}-yEL!yKAujeQ19v8;Sp45 zMyKm2rLkIRpohmK0aH(`KG{Vs&0gBG57axx&c+c=`D_ zvMsAHmr89OM~}s7BdxSB_M!2#uXUH@Qf`m-=J`XI8>HKZ*ramB%tYAjcp4ed^<+9u zZ}u^ZXPDJR0E4oC0YUkSoPC)OrOrgW+N2Z{&dNK}_tX|5WY&!aSg%efpMz(|_PjVp z$M*NE{7!Ofdn6=MF%)M7Nwe``HO}y!eo~p8NF{5TU0!;mylO{=qJUlGl5IS^fB#rCubKIV zmmbZFQ;&Jk5?XMboqnh5n0_GTr6m-s;JA9tf}QU>EtMxF4|P1lj}xmmH_pXWp#)L zI@6E2AetI=kBa?L$q^btEK@+QlL6*_Li3u}0YWn_(-EZP2AyG5gIySj<%TVVBT;)8 zV^NV&Zs1Os8@uG5qW_%a?u=t#_+Db2sK`_-o#Ml>)tW zAnNL5j(2^Wq@ArCW|vpTQh}_T?jwx8m;PPCE0&Oj=NC#Bs@-53Er;l6(bYQn&fwTO zUW|7y!h}z1+!KBM8t*e*_D~gKQjzv)B~So%v7cf#sBze*hr^AbdOA1O<|L0v6bAvk z$!4bA+l46|g$72c_di%wFO6+ zgX`HqAe&qMwl>b^HM=Nr8 zq6VCdb=_P*f?*w}9NMEo9=#X6PCRPCs(AB+T5jLR8t9(>Y0{l4N!8bjSdDOsR2I?t zVdxlLnR96g5-^wec5Kg5~?^z9J1BDaGva~ zWRnb(A;M}_=t_hx#kQL{I!(m3>MUm@?ra_QB|Mi8Y6YZliqxzjH2Ww77oEO7Mr8Jh zO-AWQF>B+W(z37PMUL7XsNsqBrE7{M+HIl13-S1Br|i28A@A(yBUM0U*03P!VR-$U z93;RR+IujTgonYT!i-8MhaDC8}jtCc{@TLV4valTcoLZ04xM zB6kiawz*bvHAw@F_N^06G<+82GBNSE{e6Nrk2mXfr@ejJI~fA)jC2$eV`RliOwn3R^TsKKG7YoHc6QkQ^>ru8k6fs-F z1O(UG`XrOS2{&6~gWKtvSnwjIYsi#z4C%<|!au{D3o-0m%6uo-lmqO`3pN8Ja>@p9 z88x{Ar&f5?Gh32uM23(Hx-1fGUPO%vb}|%fydZ|GUr4yDZn9#=+jtbEM8^hIz+5TA zX~o9txmr(=v>-LMAA{7OE20ADMIWS$i4nrvT&40uRs>8PSVHy-jTF6|52Aj$ZSJBd zP0M3<8?s8Gr%{GaV;sCYYf$IUaJezvL#F^YXzu z6s$O!nPPF^z%x^}xHUD!7EGG4{4SM5a4EO>-6&yN-BJa%Ys}(drNKdpwNc-yW0Y_D2!q3Qp`M*&S{%(V?<~=5 zBDI_T)K|PiysM@gu7(uN4rT#ZSi7ui(}woC#Vws}ZL4QR_qFp@HJ{ry3xDr5NRTm; zFf*7H3dkk15VHt0cXX_2Y3^FndHj;;)24-YZ4=kGU(nXn<*z=g zTDDGd)-P}FY-?>=+toQQB(P@Tn%1^ivt})>ZJLFbsrfw5 zTU_6Sa~(hXiFj%A`nGv*CSGE&{5lLe#IGIj=p5|IRG8xfWURVrmU+`2%?s}_<_pCA zJn3{{>Ut0}PuJThi!irU@V7s|O>L{zb~LxNMGUR1YML|u)EUA2rly5Wl{GWgbhHj+ zEEI7?A~je5^X!&SfGfcka2@Cd7lTiOtHHJ4bLQEePXf7J1TMjj{~n(8Tn|1Eh@O5Kb#ovm%1Z-tmB$iI_Z&Fqf0O>ZSJ7vSGYYVM3RZ!IYsAWEvT zftt|X(zL#-vwiis{I)f(n%AQGR@p**YwGH3Ztq$@uVvN%YH*0vt=f1bOE)Zg3o$rV z68YVg>*=IkRnNoq(;&rsj<>=Wkk$dk%-Fb#cgYwZT!K8t~CS5 zTYMlf9~d-BelXqj-bhtRA(BW{Q)Ts;?X6wQPwkxB)_(5tF6UNp(wfyUzqx&N*R1wg z)#IBg2Iw<1+^l`o718B&V4#W_W#z4KqGqwn+FtteK=iu+W*}*UP=?mthcNT(H5B4C zp8^!*HK>YfJ`O$xJ_@b?mxIf|N5G|k!oCIpxaOjNhrHT3%^PU-2JrJh^o1du{?)HH z0MV1v+pP9%^_QOScP(%8&s9q1Sl>6t9xEJcF2sJ}g~EmA*~?I8mt6x;X_ukqF1re# z9xp>BUiMi_pQBUsif+*_K8PRUi})ixiC^NI_$NM!pTv6&ab1JjyoR{1{Sx>xxCwj( zpgOPpHux6!Cb$!P4}2GV2avaG$;Y+i?OO76?TzNykCCTqx0+|SQqi`;|E=WdMk?W# zz*e~vW-IyHN`AKDckB1TUEpp&{9C^YZU*Fk>!;1cqbKLDqs+v~{kOX7zqNPyTXz@T zhIip@bmwmKclNgbPPef;ZsT{8k3P!y=oU3FK9-C5^<{JSG&k<)H&8a)tUqj9F2;|$ zmwAV~v%h!X$GYX?^rxJCs$%r9Op!U|YOH<2H)Ny5lT=at__kZovvCh76&hqEuj6eBScp~weBrh?tj*n9d#!b_zxCE?f2*z4{!X=4 z`)gLclf#R_xx;jR+i`qA}b(l6Fd4iDybt^m{1!Y1k_^13f#bn+a4I+roC%hK7H|=`1l%3s9?Tu!C*VQw z2zU%U72;XU=fJ;0cns{5;P?>JF=v1|U@kZXEC8p4Sc|z1YzT1?<|W|n5cgo-4}Jn3 z0*`>lz_Z{v@DH#DcuXcF!SNxcW6lI~z+7+&SOCrdXM&}m1za5B9?bi|1K>gMFnA0+ z6+#mgDKH((1hc_ha57i`&H(QQOF;{`2wVd04sj3W4)6eY5IhVX1HS@Kf@i^VK$9U! za2z-uOb0UoOSd`=P)E8MRx!<)A(mpYoyA-PE&&gR_!;IC;K>j>F`of{2CslhCR~IX zFb&KB3&A%-+=+QNcn~}WMl(5cD5wolk10$IF&*pOz5u=mc7vBe;ueQOOd%a&9OjW=QiyKM zi@=@Wey|I?4EBUL;%n$3Fb6CK-QW`NZO{w;JH%198dC>O3NasZ0r(*J5ZD&tTbOr( z?}59(J>XvO;}Czudt{Pf8D|Si+M)igDKz(d!Qfu)AKBLB|IZ+ zOnT-5;FWslGtU%&LQn>Vfd()QoEYN2F@Fcf5An>A;I^TjxgE?N=9xvnWIU4q4PZ9d z3@!%Szz=|70Vx5F1T|n5m<`s4=*GMld>izFhrpxYr{HH`(g@GggXtlj!TbX-2a$hp z95^0K2Q$GOFc+Kx7JxHDEX8aA%RmQM3%WqgF<{bY_y#HtB~DNe8o+U2I%o_r1M?*CbMO@SHP{8758;jROev@a zQ^9dyI+zpUG|cybkAcsEDPuiT2O7YM;3{x4_!{^ws6344U|NXdF;4&|f>~frh>u}@ z3S0?31Fi#dr%wNIo6`pw&RIDUEaOxU|(=aawp9WWf=R@qqd>MTHZqIxHwEf&O z?O+w?1Rn$!gO7lZgImEJV8$;fM__(UI^a0a0XBrV6jS&d_#(Iwd;^$W$T27eqd_^y zf^lFxI076EDt=46;KgS>^AdRc1i zn6Y3{h%+#S?qkux;B(*=V5ZRagWceDV9?FeK>)4+(${-HK_y;6CHNG$5`bO9khaT!CLV8w>*>D?eH^9 z;ZrX=d1F?59|Ra`~|%T7J^0KTyQ~%9?WaNO(9;#JoT@h=?3?MM?*Z0`3vwX z@D%tXcoDn``oONg;Ree7j?MwcgIQn>*aR*BkATO(9^jeVkY021*DA(+SYWM*Uq8%n~}k#M9=lOZ_HOPzY1;!rvkbI zM&frmSPYf`nrCwxKqSps;0};qL1Rs-tF?W#T{&RPrggTveB!2VZCKsEsHhdmjy8YU znofUxSM%!D=FV2Xef8Q6UBsp9?5r_g$NUD^2EGZt1-=dL1m6MQ1>XaAf$xJKfFFXv z@^W67mzl&{HW5!;JFtu1yTOk@oZfr5kLbM@`@2Ce_%XN-L}^r7de>~|iU{VJXugHG zMYAprcd@i=$G!u^X}O>Kh?WPi{{%b;9s&=8LDLa2Tz1WuxJ3_4pEhl2b8CLZwF&-q z$QQZ`KbtWh0gr+x&iZ})yYgzq|Bf^1{~hD|e#Kc8o6N-38#+3UA}Gy6sTn?exU2>G zajU_0DcIf(r+3BkWNDG{ObMG4O-Ug?X;Y{$VMyyU{NbUyh*=@EvYa3!jwOmV?Pbd% zFPPSDe@dJ)zhz!_Xw1tH>?!@266ehCQ19qW%*!y@?N5nw=9m8wxQ-Yx!W$Y|T!<1c zo6jUJdLC>n%cVhhN;1flV;AEJ-OnnV=B&q!;>pE z9aFK%htch;mzjABXPec{tIfh-p*hy`e&!YE<&!<$Z{y)L9U*i5m z%)i`z#r>1uRrx)F62q?R37*ZxoCo@dTaeqy+@Au*A(Oe_}oj z+Sjaa(iGOTX)PUX&7DzYYlz&%H*MP39fqAt*x%sxUm&cQQ{56QAqHQ3wY6WBe=K2@ zwyrBNpTXP(_KoK}rrh^l21bYE<7o}!i4;Ts8Zb-9`&|QeN=UTaK=}QJ-G9=S4?AOF zt3$#Mw05mjuOQ8l$b>Erh=)lEEy}}yc=nqE#dCHn9`SIHc-Fj`{M;0aXFvIg;yGY` zUW~;P(lBfCYUkXO^ ztQM>TE2)P+eSOcKtM1*ihg*B$^wuupC6cLv!lL4mFkET6Y{<}Inc*W28hP*`qedS( zrhM#Shri3u=EgY>Z}j}FCI625hMrVWvalfJ2j$QUD|;#XUfg;MK@p%>dP@NO?xlt5 zMTUB56nkk5dujQ4Y3_Pyl6z_DdJh64!NK4VFbYr(y@!G^pd5sASiOg1e-|M6Z&UZS zlm2$n-%k45Nq;-(Zzuijq`#f?x0C*M(%(+{+e!bIq`#f?x1*7NNcWlWWrQyye3_aF z^Is!UJu>5b^CwZ?aXabQGnUMr+~8g2)!;JNHUFfhVE+96C)}U34 zf?21}JIUIY%v)fc<$lts^XCUkxW&HU)P=K_1gF2p+Gj0Z9L$-u*vt)AJ zqczB(VgA%0hXy$`KFER`7zf6K3E&8TdNHUdgX%IzgJXaMXEHbzOaT?35>$a|Py?iY z>Oehc08_yuMa=XB{(n?V|R1s~4IHYoS>~(fPJsQaeSmnJ{nKgay+kEcPd?oiG=x z+;pk#ia)BGvWuUQU3`$6>ciyFF29joe)U}SP4!jw1u^?#>^_jY%|vKd9gX|vHh;}ROgOdz2Pp!som9+MG5-SoDhI9x6vf{#UjuUcJNO599rS^Jf`0+q z;qkC=Z6zKLdjcqo6mAL>fI?6Nia`m`wU#tk%V1dQ{Fh;}rokwfQ7^~&-y2Eg6oUPgpf&LhF<5ZJ@?#?; zOiW&F{BK3Z2yV_fk+#gEEd%0p*axq36JfQ>*t*>{3wMp{=HmB4H3D3_!f<24aOIe+ zcNo?z4C@uGcOPk~ufGjb zR{|*CGIxfi+`AebEk_c+Xqkw46gV0j115pV;8+l*R^P%l;FgVD^IBRenKN6plv%$n zUO$NCrz-Rk<;dmfbkb6uDlm1$^VHGk?&bahcJX%#P@XCFxhqLyMx8F}}BJ{%0kK%uge4gkT(+E^90p<*F63{gozcaDV z0(w3ha}Jmbblr*mmMqN!dVVtIDPTTW02YE%!6I-PI2|koOF+as=x92(4Kg(IGPT`J zAuyNH)ZW!*x2o@NZl}LSOl@k)$I|awS(A5;YKrRa1>{-vq%~}N$cot#+U4$t_Biiv z2;D^U6*C>pXAn>{zZ>&Ra29wEcrSP#I2*hld;m0obHG5F?F7f5H1B8Xqo2AM&8~2j z_p`{GE|S`drjen0oTjy*oBT_#RgTR-G%dw!0j;17ECc6)<)9tJ>0l`$EW0&tqwH)f z{nSNehjYB_>d2=pBUKbGvSQqr)ww@C2%Tqze&xS`!G`Eu0Yv9Y%nq;$tOl(8X}!;^ z1D#+XovyqFqw~#{m+0&-uVV6}i=_6VV@H_hczOAuU-@rfz_gw~T|jhfz}yJV1DnA4 z-~#YLpm|&QzYzO}z=y$R&Rlc`}v?ie~YFAS{6F(|2qe=7ebWAQG|Ca*s;Uk!rfy==a;G^JU z;Nw7ikpE9$|0MVn_%yf@d(BDH^?-V^;gV8!x9j{{h*gS~+ zYVx=Rh}NEg`F)!eQM*fR;Si6+PkHntKi7tNyKb<& z{X3P1=#{=5s9@|b{ijJ^_4>16`qyKA4%`4f5554t2)2S7!IwZ-)|C~j)~s$jKWs|p zFRj>X!>xT5X&}dwyGcuV+NzH2fIK~coARh@5fd58)0ctD>n6;vfUkm^!7box;8t)O zxE<^#PnF7((yYXu@3-*&{p3bqF0OHyooll2p{+PIw=6#sk z`{SMJitTOoDs1;#vf(r$MPTd14@g^l=^8ALp_}sF%>-lC#3$YqW9o{h+kl(ybzK*x`|~i}Utsz7?_l=nQi(_W^O!4f`Pn@rKv$7z+N>5kBgD78dUg>#6 zzsf~dbRY3B&I>({)35tDow|?HrTaJyx(^nZMaq-nm8okHi0tpgfewmO{r>}vW#mWw z<^%Qfr!1Yae#&`M+B>JLoYKxq=;Uom+p6^~o$b_))l=4=zn)4mrK5f6l(k*UIUb-@ z_D*UVCvn*OV_Qs%wvBO^L=>v2bxl)i`}(!bT`kL-y4Ex~kEW}+lYU5ar)dft)*n;p zAAf>BYeCa#XUsZd*371p7dM^6dTi5z;H;+L^f`-7EZ)uytDD+aH?87D`6lePkM1IG zTCtubk$4`IsirlnqvS|n_8ALLYFa#Rj+S)Y4e_(OyKu?kiR&g$kIo&LMb3`eJ5PIO zNaR_PEBqsl@N@H4Z*1;pZ}n&8>Gwm{_>oV4&00-VW^*AA%$&Ba(>AoxI<&27S|>}Z zjSniFh>#FLi z>uTz1>+0(2>l*5&)>qV5)>qY6*Vok7*4Ne7*EiHpZK!CdY^Z9eZm4OfZK!LgZ)j+k zI+ZL=CHbjDJ(XZnadKN%n400N3(*z7O1Tk(_qWHyJbe9eO-(JEnw!q0d1-BGZdtdX zy|axMt@m;BTid$WEz2=Dooy}j5ZX7ku}`(Vs~s`9z!s{Ru-;$R+}?qgt~GubmA`63 zSKFq&A9eDwB-01sqj*~3lfAt!?OfB`+R{wpwrE3Vo4>KWvui_hhaX9{FR5*7&AOeR zI=yGDM9i{5n>YW1g8w!6Pq4Ua>RuisM|Y}`=Gu*!#C#fmzp;KRD?8Sl%Q+%#otfOa_07o3yp^KviF+X2r^I1LkAS1a#!Ed;-f`}nUXY)A9@^?L`9|4sPq7|j1#&E4$l|CT}h zQ?u5t;RKI1j!lVj@8-aF;{VZs@oQ2fDwueHkQc@886;0t@if*nt+Jhzy#tG$;|Z(u zblr{p8Th^n{1!Y5o&$UFvWl~p$V+SUs-a;&Jch{$=pzed1;uv~ks-k&7p{#NzG?>3by>_p8{wZ?ulTx$vQE=(U}!AOt;^7m3K z?wi86$MI}Dm;e;_5g;CSV-Zb?_KI*lN|=e5M}eb(;ywl_?hoKE%D48HDBqL7WN<7{ z+*3e2?mJ>}Pb5qQ&!cTLin|&p?uTM=pB=_s!?RjY2kODVxJMVed^hq;*ICfefH@V& z)Rd>(reQx0^l~rA?Rf4_09~ZD6O6=dqTInEpuICM;(i0T0yN^JE50o_N+Z54I7%bF zEx6H!r24>EbsMF#B7gC1nTk(Wd~5TAKpIgMA>q?U z`}U#z`M(Q)m*V~ra2ZhCmxC)nJnq*C6Y+ExVLr<9kAaT^#r+AOxb?1h#G8@lxO{(- zXP*L}23LZCyje~d#r*}$8^KNBW^gOG18f7|2HyqW2YR3UUT`0{A3O*i0Y3#l2fqS4 z!PDRw@ErIZ_yhP8cp1D3UIVX#Js^=GW8t;)9GW}qJ>VK}Ew~PR7F-WL2W|i=%NIvD zx-Y?e{2b>t_8=Z|i6_#Ph*kdjLf+PI`C@3@in&vQn(|Uq@jc$6P#Ep=8}0ADKVQP> z%ix6-{G|Gyd;M0~N^Oj1U7-rb6_0taJjst@-U@cBBE+sl%#KwN@9~P2UPbpJ^ZxJ literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_spinner.worker.js b/examples/dom/ftxui_example_spinner.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_spinner.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_style_blink.js b/examples/dom/ftxui_example_style_blink.js new file mode 100644 index 000000000..eec9dab0c --- /dev/null +++ b/examples/dom/ftxui_example_style_blink.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_blink.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22720:function(){throw"Canceled!"},22738:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_blink.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22712;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28180;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_blink.wasm b/examples/dom/ftxui_example_style_blink.wasm new file mode 100755 index 0000000000000000000000000000000000000000..8ac801e29a234868b7e496f91b10588aec7da134 GIT binary patch literal 191061 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 j7i%c81){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_bold.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22704:function(){throw"Canceled!"},22722:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_bold.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22696;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28164;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_bold.wasm b/examples/dom/ftxui_example_style_bold.wasm new file mode 100755 index 0000000000000000000000000000000000000000..523c104e34757d749539880e6aebd313c08200dd GIT binary patch literal 191033 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

    fR-G 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 z z#WEcw>VJzpvfe5Yt0Pw=E-CwYuKG&>rCZn8JkwQw5BfAcj$3K^HTW;^8?X=j7W@u8 z0eoz;Rxpce#U-7KSFD(Z(QNI7nEg7LcUO^~DU;3@D&@F(zR&_7M{Hw{RX(P0u{>aUUxm2uwbher-0;k#waR;}HT@LhyFP`AfUB!F-RnjxzD<9|Vb(`02(9Bhf6u+tuck~Un?5DyK`mpz-@XyCx z1OW58H24m5)C;4r|z zXuzOoa5zY4M?RLlu8nNS^fG6avmsziS+=UP&1NzVW!x#(h&jual|m^$oi?NNIH@VB zyZ?5gqwy}T`Xed9lisa5-R0etwD0xLC z1z-|53iQvjSvUsG^ANU=a_%bf>-kCE zU7622{4@FAezMEwaeSzJws4&WjtA4h3@{U%0A_*y`E=zqSUwN5yp+#!d0k9;^hZ>E z@-fLjugpi6ejtl=x{pMGr$sXCO8Y64bB0ggZ#e~_shUia4vW`cm+5Q44}gy zRL~(ZYlSa4^h(mAyf$*x-(Y#Ytd$o&uajfsHEDb$P+tE}|MVVWMbtc2D;&a6JESyb zh*N3YrF8ID$&V55lC<55`&Fdp)j(-`4c9)jG`2SZzkU!QF?8i2EX98T;p=ax_)nVW z>h)`V{L8pr0G5Lb!3wYvw1JDj>wr(+w3fB&*R@^ho6;p0w)B~CYwr>XCabuv2JK)CSPRwxCLCyzL9h`Fk)~-%lj6LQF!iT6l6p}Y z=cH2|9Xbe0ac<(;2{waE!0W*la4C2Lcq14r&ewZ7D9$><)Zb8XZufCsMp%mTOow(Y=eS}!M6JTqZ}Ench!la< z3GE0gx;!{o8hMxe?eS@Rn@{80xxQo2G#-MG>6^xqZ25{$;})Nu%CdW?B8^v(r~e?q z*ZMTRlk2+%r14M%i@GsJM++#S=`E9rJI>$a%phpdb^yv zxowkf&ud$`&biLLcyot6TG+8lZ&qId)`X0 z99#yt0tSLQ|cm1$4jCu!7uWqNd9nFigTzI@&03)?R2Fvpq8J62pA z#2Y$RtqIPga8BR6u8p5Hmj?0X*KOX^87ytv(Al>3!nTg!Z00uUde-_&{(mdy@*_nN z$MIQ%ifAG}@QKQ}$|)vv0jYU(kA2(FF|7_>?w z3c6AyCDI`k%CDTtRU(6I0P>4`ueytu4^7*u4r-IBJbob=wZF+Ho$`Tb6lnd?w29Wu zL`L3}AsdX}RhG!aDUXqpKFMjlSx@y7wWmnFRbG{+IPonYyT!`}(N-WEC8Iuja{87$ zUhC4Q(=nE(NzdtIihe~b>kE=qc_QNjV^`5vN;maayNFEK_^{{;r5Ee3aIu~W7we^P zu?`B4ZZ1v8Ch65vGyx3%f7~jSPR;-S?YE3%G;jX5d474S+$%p>PP^q@<+RNTTeDei zw0gB}%G=Q{_nzwUl9Ze2RC%^P!|l$x_%3f6*MYO}Ewxfj=f=3vYH}s@PEt>Mv(bzRT(-M|gq$c^2KXM2w4dYT~O zKlCF%_A7xMIDs2@fgc1x7(_uFR6;v+LO1k6KMcY!jKVmqM0VsvZsbLN6hvVZMR8P# z?bwOk*o*x*h{HIFI!}ta_u*aoI-Q>NaZ35Yl-r`g7PNrJFpRHEQX)p7nS&Z6ea| zSh*^zHOIdM3@3HDEy?mho>VL=PZ<`U>UOI2T9v_VVy@e;=F@I}uG+Lr&$iTS8}$`~ zqo2CAKC3R4xnUJwP;b)kZ-KpFvR@ezP(Qj@Ut-V%&+~b{jodq#tm8C0(_8~@bi14q z*81yuWTaE{d@ld)33<2KXixWN@(jo*&n$A%P1)Lc;8lNI!%EhNUm|{sewf$x?5R$r z^Nz!x6!d1&R&rc4>+jiK2(o)mk&npRtoC}t86_K^g+GA6mU^|-Xfpy7HA>$fxh)#UkHW7ZZj5dt-iH^x1g~;F0;Zgg;YEMpTcv$c zNZSwpDfkS04n)7@wthj_=#bo(;4APo7`7W9_R@u#HS16N(WkOSHiNos_y!bpe@pl~ z@I4sT&F`T3)`H6Alf~#Wx*y5w{zF0ckMJXh&Q{TVM3?fs09*(z0v7|RDV@c(gXR;^ zKIE41yaZedE(4c?E5MatIZ&Rh>5?%|IQ`WQKXK)xC1Al^j z;AJodY_J|#QSp4ODWiD4)|62^U%NibNt0S9&Nmu4#rdQMK>9>J6%To`Q&l>My@KMD zUIFr#E^4a`(Y@4%9iRVnd`G&jq~&c(ng;${#&aXk7On($}mHa)R z*bj>GS^FZdwh|rTsnJ_qNz+yJ1ND5#J%^m>W9QvJd~`^*&=hLEp?>gdu6xO1wz$Aj za1k(<(3its16BfEL|+5ef?I$Cd=POF literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_style_bold.worker.js b/examples/dom/ftxui_example_style_bold.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_style_bold.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_style_color.js b/examples/dom/ftxui_example_style_color.js new file mode 100644 index 000000000..aff0bdb4f --- /dev/null +++ b/examples/dom/ftxui_example_style_color.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_color.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31840:function(){throw"Canceled!"},31858:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_color.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"g":___cxa_allocate_exception,"f":___cxa_throw,"C":__emscripten_notify_thread_queue,"i":_abort,"m":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"l":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"k":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"h":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"j":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31832;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=37300;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_color.wasm b/examples/dom/ftxui_example_style_color.wasm new file mode 100755 index 0000000000000000000000000000000000000000..f3c6f65b3a0a14b93559515750e6c62cbb0380ca GIT binary patch literal 226781 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 gUYyj8I@LH$xmfoaw~$7uNh(s0ggF0ga7~l literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_style_color.worker.js b/examples/dom/ftxui_example_style_color.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_style_color.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_style_dim.js b/examples/dom/ftxui_example_style_dim.js new file mode 100644 index 000000000..a7a7a9363 --- /dev/null +++ b/examples/dom/ftxui_example_style_dim.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_dim.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22704:function(){throw"Canceled!"},22722:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_dim.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22696;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28164;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_dim.wasm b/examples/dom/ftxui_example_style_dim.wasm new file mode 100755 index 0000000000000000000000000000000000000000..b4cc3a2a40e9c15ded1d06f3f135d8cab6f0a04c GIT binary patch literal 191045 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�B%>aUuEqDlH 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 XR$~itULj0ShEI1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_gallery.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31640:function(){throw"Canceled!"},31658:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_gallery.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31632;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=37092;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_gallery.wasm b/examples/dom/ftxui_example_style_gallery.wasm new file mode 100755 index 0000000000000000000000000000000000000000..36e51fd713862ec80777548d8d65dd44e64bfcc3 GIT binary patch literal 211141 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_style_gallery.worker.js b/examples/dom/ftxui_example_style_gallery.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_style_gallery.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_style_hyperlink.js b/examples/dom/ftxui_example_style_hyperlink.js new file mode 100644 index 000000000..a219fae9a --- /dev/null +++ b/examples/dom/ftxui_example_style_hyperlink.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_hyperlink.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22440:function(){throw"Canceled!"},22458:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_hyperlink.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22432;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=27892;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_hyperlink.wasm b/examples/dom/ftxui_example_style_hyperlink.wasm new file mode 100755 index 0000000000000000000000000000000000000000..cd2dd3f92f68a89c76a0b288c5bee67c0d836c5d GIT binary patch literal 190713 zcmeFa3!Gk8RrkLy=ef+Bnal}IX~+aQ&qImnOAA3uT1zo==Cy5l0Rq;F{x23^UxAql zBn`D{o0*cdM6OjqDinwawj#m2QWXW?hKtChV$lKxDh;$i5u_EW6fMpF`&;{*=Xqu_ z4J|Kz{(k=dx0iYL*=JwYT6?Xv*Is+=ecW>{{w436^NZQcg?_;=@W)*k7SbOc#oCd*d$bT2{(UuU%8!UD&B#ss{hJ7IyK^FuQJW7q3!3yN1oV z3&)$5>z;S%H=_xD;=-;4zw5%OVG&C$sYI*!$a@|qMjnMl0&kc4H;gT1NL*%Fm#I7{ zqsnC$`peygV}mB#lGX*%0;utqQebnr(bRH;a!__$xZGY|uAdeU`V9-0@kgm>&soYI zc9Z}RL;<9M1{(5{iI&O)#9cMXtl&UxJ;U<6q#q z{C%Od^CJ7Z-D>Tyw-?*noz~imt?nh3|I3zhsg?f~Yx!4Qk9I06Gi&+()&4#w#Ko`} z;y-0y%Y1afh2W-~FPsaRIC?C`tdqIW9d|Lh(=E4ci$BnKPy4|*W!dN@c zTb+;vH%?{0Im8%4=&W<=cycEn*KwWLiRvIugy=o3xUf1~y=qlEkc!^LKq~q$?lb!A zoE|2}I~1Q-(;3Ugq91cE1K(`@gyaA5V_ZQa-n;IPQ=KM!aP83P#Ia&*+{Z{YaF_rH z*O^kevEW0;$0-ju{L{_V8L)YmJ?hv;9UEz7I`Fr{PY9C}llspAVJjQ&{n#<>R{NNC zr_(v+RM!UY>~W`^GF}{4JXxL7U{qtyjXx4HcH9<-6+KvXI?%AgaDbg)^qyY^FAD`Qg>;BMV9?^XS1KRx|@05g2UA@=qRJ7HK z_Fv}4yV-bmd1;pF|Af0Y_%qx~qCb-^&vM@meyjVt%%APv9{oA)P0^q0{@wfY+;!1E z&HcIePj|l`{WILVz2D~E8vQff??wMC_m=2?()~;D=et)#|5NVe(O=+xJ^G(^e-Qn% z-Fp8sZlnKM_o~a|8)3N_*C}E?2Z15 z;qS9gWLvj>HTzh0SN7N0m$MIM2mE`pKg&MnH~f$6?b-G5ZSe!~ZP}Z$*JZzvy)t`Q zc2#yo_CUNh{zJSn+!VhNp7qN3vPkKd#;f9$aZlVGuZWBBaCp{+?}q!sTl|K95C0av z6E^&7xT*2fE7lZP)ZoMPBKl}IW zJJ}a_b9cBe`^Rv5xYmC=`&UZ+i#>gjH}_`W$~Js6yF2?v_D|VAW_N!{W z9fALD$=1Kc-yi=iel&hKekgu0zAxSw|1!QO{(1aUIN*=tf%wjNb@*=l_xQ^2Px0&V zYw;iBSL3U~UGXdN%keeg&Ui=sV*Elp6t~_UKObKjJ{50?e;@xY-W)$3uL_@xf0!M} zJ`w*m{!M(=h7I3|_r-6=e~teVzZJh3|Cx5~iFe0u#0@VGFAoR(jr{wic%$ENTl`!+ z=(leDY}^|*d?wy%51;1YSsQN7{x9 zUv@CNG28Gzv%k#Vll?_@L%1RQdG_w?PqRPCZpb#gEBoW@kFs}W`?Ggse~?|DZMZJ` z{p_vT?`3bvemC2fy_t3ogg0i_W^c$|pZ!jDP4=<)*YW-FPvZZG|1N3GU&}j-=7I2 zH{9;^KaEwp%Iuf7Zw_uE<`iM7nkao4Hizy+$W>!)uMJQJ1(nrN)4@nlpQ}u@X09Iu zYzF+XDuz#$>-hujvPkfW25#zW|G}wJ`{VxV?&JF~sk^-Is#5Y(ey0&@zKu=*b;QL5MkftBSE~ zJp{X4v>(_$Q;FFsg|oETI8y z)%>9*$xltHB>%76$M8zhKz-P2t>IX?>QOZ0 zFPZ1>W6qr3nUoT`3&rKdVwnlVnUjM3(U+bg6faqozS8>we&UTP*VSV-^Oci)D3R%J<@3)cekS%~VL(-4)Rd}(Kz}eXhaA}kv zAo>=5n1jk44VHME@j{50aXgf?l1vNsCaW@OjHn-2#p+MGJg;1<%<^?89}|H#L<3h- zV>C$rBjAZcGvlx_oJQT0gmKF_zZ{WN4%Bi6S`#bO0kqGn7N!_L^(+pA+Nt8CGi9sC zOJ^6ZybPJ;o#whY|Bj#0TL^I7Tuuv?4Lvk(0+4zWGK}#%E;}V&3bPxhV)>L=VukE9 z2YIvn?#zs%>Kz~R53ryzTSpJYNl+dpDChgx@lHcfb(yY3RCJWn6jZ(KYp(j*N2!CN zs(E6%ALs<`U;L;mKIUyAw;U+utBH%Mt3T@Imc6KMJ)&&&4h6Ej6SR#B$XK991FCNe(_! zLbZ#9)XkTaRIWD-{1I@rl4>fzZ**B5{D>sA?~I+*Vs}o}ZJ5^f=?KPLQidi5rJ_l1 zT`bI0>x+$jr@rXPShBj|BQ9wLs{?0XuoS;)XjF~?Bs;Z^l2XbH8|a{lB~r9wy2l_p zSXV;T=7l?JuGf~>%prDdtfjoV8O(f5toAC_#Gouys77Q?-KF=yQ>_I)$zzGmJ|T8d zRw=bs(~IR5r!XtQDJ7CoUH>uof_{ygPR#WTt@4vmhX4Ys0H*;io!VvkyykZQKp|xf z6Z_R;qCsA?qy+Ld=%D4U$wO;lY8PyI$j$drPGy)auPXg)xpz-*s?27ecvTr^SMz`d zpOuz6e0a<5{^abG@}ES$?8)rP*~R9ch26bz8W|MLX{xunoTQQ7BWPpO-s|9OzrELi zLJO2^GWugkRP|k(#Vdz}%+mvhJ!^q=0K9F`CM~<&{Z)032YEWb9DRD`wDd!$-Peq7ZI!LtFfRo(2+HKkC<%Y0kEJ^d@# zbM2k`FT1YauBPUTA1_-c#Ao*zt*eyU)^AuKjbBxi?fG6CBXBSdTP~2oY*jP!2+^ed zKe?^nrQvSfaCgw~)_xGj(C|!uz&4}26%u>2%kDh0K#oLB82nSawa{ylepmk(*ly}7 z$oIfu-o&w;UBQDqv^pB)DaG;^fgdPwIJ)asb%3~;WOnIDMi`3L+ z=#wxXbh~Y?ZOgK0OMy>*IVUxli`yd$xvmuc02v_Bml zTuB&M>+GV0I}aVr8e$&va?w8nX{rUNRc)FpWjoRei^I0q6kRBE%k)sB_nqQbSRg3d zQYXYsVzyKF%(`doSE|&XVvp1qiH-WR7Vz}Tw5T65SQDp7#g*;-vzxBkgA60M<%G1y z!cXz1QFDt6Nli%C`G)SO8WCwpF~r;Sk!k#r;;OKFScBQ5^ruABaXEfU?1JARCo||9 zPw-<4)wO06(?IbhtqX_tFa&FyEnx=c!aA03q*?2*3?wU`Gi$!e&z|nLv@UX&^aHDU zsjX_^VoVd(zRKB&61Wp5icP&txxGwH%65v7{x;t9+gf4cQDLgvRo3nYkmbD$`Lvt+)Y^g33(SU?5hb>%c77)n65p_w1 z8^fw>pWVlx!L$;F(+H_IBMv)}4B4Ii4z4B)dU^1=G)t~rEVeQu)rAjgcOqtCvowWP zl5`c9iv<8Mk4!)lP~u2tAgsIyc#JP=tYJa3mi0C{)jZZ7#+htE+N@kJs^Kmco!Z|R z){8Z3kDfTb3Qqg2fYh0N>1gH}uY2Xoa zm0|Tw{u-=Zfv6X2niqh=3@-zl<0Bx7xf)sMmYE!? z5&lOPg%jXC(X$mN3TIf>I8QX;Z3* zyJVg+sEQ2D2ysD{g_mK1+nTweaq_n2p^=7GI>0mo?hpyY+TNJ52A)?^%hUqACvJo3 zx+1A51$jnn-B`<-mY=2+qQH(loJ*|r&>pEEkeJsM4mQ!0Qs^e7Add?pX8LAqMYW(N zl3FkUps89dw3Axsn+iuUjG1B>qlcszG%LxOBh^`sEl~`HjuZoBmM8{$A;n-XAXnBX z1}ve6p%@Tso8B>U=j6!KP$cgw+c6K~eT@||wbc8%;?#z;Yii?X0u$PlK}YaPYa`0m zRV}+XP+&$F_Xi-mOyr}o%Me=U>&s5#>|Nr0m2Q;Dl4fc-T``1Aw;AZkUNG^NF)~l% z=52-YjCZdE8@2k)jF-vV>f~*e5F)OWLfOdM3U?I!mKX|G9?D)&Y3%r^2_$ks8MO;% zr(6S}i%NldDoTx-mY6M4pFQ)zwHkG9hGW`h>p8f>%Xop|F~rRSkD1}ju0Ul0lg1mz z*uc2)*yGBRLbI7gBh~EDr~#7&aou3zk+USt_{KDWD!`c{9ySOw31A9jG z4icyWigk;o7=Y5uU4!PNE|(h7)mxMCDQKUFy@vNzW+wW*^)%G$*T1L{(hOJKnUahJ zJ(XU@Dx!)%LL!a*-1Ch&o|(Pow90G#ZQ#W9QeAzA?>UB?`f58sSG1DUA8Yb+C#A`4 z^rYFU>+fI-bzS9(Uqr_&oQYzNbhfVsTGlW+QWiY=VxA_m8UfoXK>0n58Ue=%GD6cU z;Dh@Z)2Ym!HYww^bM_>Qv_Nl+kKBIQ0EC)Q9%Yt>WL{l)Xf9^ zzddKYH~aziwNcx5VqCzHyGwZzbDM2k^_n{%ow|neEZa6%7L;=w3K@Z_+C_;vp*99Qh0Axw(~By*ImhD0wWS=P`s|3W$&DrdU@X`E{3 z`AJR)Xo?=F07OnIAW8+K5oTpA^lBx5Vdu0<10|szKVkyNr;T>@s*j+vB)L&~k@xIS z*f_+RB0|2!EZxWaMK6?@R`DWVOM^2)CUl(m(rj4M$;lc@vw|v-N|mJ0`5!c-7?)N8 z;MSZmxK$Se!&lgpTKAY~J{FWn#)4U68WL=V(KrtHMHZU^AheXImlMM{4m1F@G^rVx zZ2qIhl2xF^aU^pu&3{(oh^3$6IAq$Tgo^Y7c@xKBW2T~J=kcRynP+*oOqvI4 zK0!XZ>eIfwaA)*H-6P^S9(>`K%GdVY(uJR)^1bal7;H>idO<(X%naeIj^Ah@9t+`Fpk!wB}gkZJy$&u1X)Z`m}7320Z=kF7BhzsPr;+yw0(AeU;_aKueu zyZ{XA$sSo_EMw2%LW6ytnmyCXYrvl9BHRfu+!5=IrR>>0QGmTA;w%#L>0bv)<@v)CtT+|D-C`5HhAJSz4l4FZEF1 z^kG`kB#G$BBIijO<@;U&Jl3;`P;C;kvKUx7q=aqzfAqK+*au~M-m?vAb`hR|>JOy0 zU>2_p+Nc-I7TDe<3u07F0Mtv-D5cYeYcgL0nD;3mC1UuxYVq?j?j;f+XtQE@Mz;Tq)OYG24z1^?&O%sgY!pK{-Qrzp;Y2}s5k3^xMl_YPrhb;D( z&%fO9-8!D71+J1vI{TsE)(sKCXi5r+VVe*MG))>|UUREi*jL++;!iMU!c28UwiZoh zFtU(KgzZ}Jiwt>WdtYiMRZ}x^QMQZUl3$M{2V5hMc>Bn9VW$M96YMo(7B2}FHq$ga zgib?%Ovoc71?P8yOsXFZcMXz^8MYX(rbwNQ(@3$Myk(hGj!lz?XO{w&M;L5g{H)6{ z29H2lp2l9y4Fq{4{>DWwHrLOATj3^@DX>6R62%okE-@pvxJ3Kj1cdaptmo16rgEcl zO#%&wQT!!V#$x<3+tUiPQ*~-VKC73^&R$HM2SH@43W5~w)GW}AE3-72fMr^j8n3E@ zgntEPi&twhR>3~mV&x^2=(CZB#f^lkl5PGm@09NTamNCM`r!RquQ~>+(l7(*i8<1s z4P>gkv{kW4v6x<_X~i_k5EFaVCE^(54SJek9iJ$zwDn-W{ITW^3(2lYhPaLrayl$Q zM&)`zQ0srymYSX`9L@L7keF$r2@3;bpiPs#aktA~=Y6YIgc1-qs`#q! z`B9dG45q#rdJK*S9_2<9pt!I4@SA;cm)GtICHnp(htEsOKoK@s@f9CtKoyG%^?sLW zF1d4qsxj=6ha_r^#MuDlR|W#B00Rv@0@zU6&=y(<_L(jc|EPDT7%Vy7Eyk+Gg0Mll z5S(u^I6DCarg*kOa0n|PR?KpGn$XCSy9Vb*?YQptTNFWyDeRpouZ_b2)G|J7nt=SYV}e017=3v~z#Kw?kC?6NuSg1#nuQquLagBgIv$qyK%ySCw984uP7}YHVzMW0UQuZC~u3sHd zrYSNM7MNoit0lrBlPO^mffAs-^Kg3u5Uxx;A1r=SxG#auYmAGkwWGKO0=A1w8gjXO zEhROKr3`yv2g-jyEK&Yny}}7gZ6Qb>Y8+uy{j`LR=Byr6(2v+eo}M}!4x622G|t%k zTJfSmf-{Vr^hE-iOv!fZGY+Ae+TOSAr!B}1n}{33MwQ1=E}L>Y{wl#>i(}j=dSyGI zqyzyvY)$0|V$1}51eyY!z7MO!ChCKqQBV|hCKxe(SW}3nWR_pUQ3#DDdQj5`!X!=6 z7bfd>R*!jc-Twnsz=;V6g0a-vHfk2w2UPT-L7@-07YY5~XCy}ytCVHn7osCm9ZS4Q zEW2>dw3>0n%NPZpKYKJlR}{_(&jk-49SyKG?T}`wWKIceqVOdD{7h-kPI6OH8c8Y` zx+d~hc8jf@WNDf*f`2rDZ0l*hgc7DRi#K@w1LQ&k76^dwERulu+RH=F!A<>nKGQ{9H6l3u)Qkrmzu{H;-0QhR&LP<2POIlC|k}I<3DGU^h){CW2^ma8ARw$@)Y#>oPbY?4`7kE8gqzzK$EuqC&;>0twF{>|mH$M5Cl# zgcL9LK-wP7q!?*nAUbWUs5*5#BrAPluH;dyp~|*Tr(JbPOrZD2La~iB--r_uBIhv% zo*A-?zvr!*xpYUrB~*vT?PEP4$=rY^8R?DTR3=6kw?c|etq`3;JE~~);?F2q(Iy!v zxe20Z!qZqLm}}$I%C)NXL`c^vTU|enZY;!_#-{O54++M&GS5SS32-v)T=|QehtDz4 z7w6-=DgMq&t#9*w7ef-OgH98S1bb#~|5d#(3zcQ6SmZ8BaeqG}T$5sDoZnA87U-1O zRhmucB!v|P!iucz>Lw}U{Dnz~7O}!xW{}g&c?=at6AotL4^7oXXhIs?453=Yu;S0z zeLr2i9iqY>afaqwWELmeI~6<3R)$bCxhzgrJojQyB-6*nh*!@PV|ou(Azcz5rBSng z9O0q}BPh=L%lrB4!ZXVzc$D`9dTIj5iB3zeQ>7bub3vIR`VJq~Qwqk4bsNtj&Web? z6>6QotQHfxVoS%Gh&P%#f63Dk(WFcjJ&rUp0^7>bkhb%eJRK23nkCQnXh#Z){W0+-@dY8r;niTrl%$ zn~9~e(>9<9N*O`B9JfEuobGp~33|(@*qLTb64AHpw#{_*eDUrNqINL}^1%ZW9?aUR z4iRiRuJ-tU?7@OfpGR}V-Cful9|V^IFRcr-VV@bkRcllctQZdVf3^(}e}%PDieT+n zpefCC=7EPspN(4LXPYMLY&I%Z`Kf#NG{JkBBLBveJ+5p+E5EWgK`de<7XwmpsQnIv zT1Ov;9XkQYT{dfyXA!Rm8FN1USwtd1iexmQho`2_Edmj0oDjEK7~&qCE^5Yq5g4Ek zz4ao@KQX)T(;x}rm(%-LnOzR;;|2RK?`L(0ZxjIXq6}mwUci{QunMhj^}m!V7;ya# z;1Ru};49$Rm;fu22BCvG3X!T~M1N)teY(51NplmXNN-zEFSCB{9))^h&MMd)LhMy& zXWmp;TqNq7%^8%jt@c9wLb27*8ql?9R`sW6#Cz`7R88QfV5Sbo7YOUrQ$-i^isU3J zQ-5%eDo#^Doa&y3u3F1sPJbPaOYHCL-2K4wQ~??H5`(J{U4mH2i+cx51fhxLEW;k+ za-lZ0lHH2F*bTj*gH__KfhniE^jJ*#GfQEa_gGk_baXOm^AnL+u_iMVN`XIT>d;AP z$4|YIO+E)0^3zbd)YS4s9wMt}a~sAROF)XV(b$;6^ubh^-sJf&(2op9jBwO!X*McT z_6(Z0U?Mc_X;y5g9zVY-I`5?Y87eheYN0DbBUGDg&gNuBRqm+n(@6wMVV}rE%ztcP zS$PyR7Sd8fr#5F~tbwVPs`7(T(&f8w(|BojJYeQgL5ws<%vv4OE|{GdLS?wPANHfh z!gImn6E^ITA#Iq&U0JsMuGYpvgr)1IrvJ8kI z;EEIau_u*C76C7iQtSA$(;|$s6bGj&90UKE^yNM4jWtBK{87(t#SbKC+HJz z3=^k-%tj9&rZZ?ANL-Zb^5^@w3+4($Z;M&=gD53EIkh}UzQt?W%@k)&Qt{x_ZVD^F zn@n*vQf5LjwOdVIwFmNYCxdY9c^FK4cQ)B;b)+aLEF>71T+Q_0%bthXqaqx;nyiGN z-W4y|(5+Tgl5{2IU$zEG@qYRMeKT}QJ7Ngp*m808pAc8KLU)^nmIX&4+d5m ztI0CD@n~!3e2X!ia!-jb;wO!R(Xh{1u0Aq*DcMl!IvLRDmYK@iU>-eJSzr~ENQQ5H=MJDGCzO2!pWPyom#tzc@f zo`NGQOB%H$Ln@AdLw{P2^JCyN4vhvJ`Id9Q9RUZCV$x$_2`8b5Mj)Wu@rwp4y_zKI zu%?M^yAFoQ=l^7{3>F6O1ina0nyD+lnx*Om~5`65W5~D0F|lA8>I77h?#R zm)^pcWs)VA1U8dq&6wETW>}SwRLE_nFy=5*A?*xr#Aksjb>ccUfC!DO}7gGcdn)DAVR?yghLGc}bsYY$Fat zf!U;Ui%~(L!8X$(Y3W~(zp9lu0yj1LU5a(nmJeE7!I=0J8goF;m z3({`YL?aE*B8d($bBig#qTTT=FPNmNqF#NL^`!kfv4(%!AnE))kS@ zBVFY^56(~lx3T_UT|q|~`{VWebNuQY*5+6PO{GI-W7Xn8`T&r+A!%-zApodD34pD` zNM+|J#bv=mogp!vBJ;&sW>f`D-zE=}qZKC)5d!zK5zVF!>Z>`XgcPDR_I)%Y?{^|o zgPU@i(O_xS^Z=7_E+3KS7ZA?qX;*ZZH^fWRB&lJsf^yX=H~Uv8gcQ)2sqNNN`7I z6+CoWLyRyec#JaWL#uxT$DR(yK2#Q~=jWrr*i6q28$a>kva$6s5QxObayd65((tjl z2#k;E;vw^~43wku@fZETTCd{>G#Q$;&e1X%;>r3h(ZU$s;l*id1f6Fld$NK#rzp=p zFKes4jn&>*#iBNKTg4xTep?%S^|poVNMWL>cEoDNOlcQCg!NLkR<^LMn~@5Qna#|- z4)Lyy?J+y_rM2`}z8M1m`zqL?3q0u9rhRlCBCTlweTuHvmJ} zVThZRTD&iz&wAra^}hCCwZ~$#AL~I*Hf_C`0DW87L;V&gH3eogj>GMqel~BoY0e#W zmB_Xit3(<4j27!i%~V3xq90&X&APU_9%)*}L2A5Yj~qqcP8(os{c!Rw?SZLT*6Y>+ z`;d|rh7O_?H}IxjuQ}UMs9ti_V!0Wc{ih$2S7!+ZOVCWwBM618S23U&nl68}mz@-4 z_Jf|Q9&d|NSV7Jtva^)^*pciwllE8%bq5VymO?#MpjCdvAmGO?{oNWq8LZmXfN9rN zw>sQaYL;ErX^M9(_fA*+3;0jxG?kzKzlf*>%q++9=WJ}NI9FY^y*9T3M*3U-DBY?- z=QuA)_q1sYFuw%{*iIb9jK>-@H?j$uo_!~ZmvXj&-BdmjjJALSF^Co(bfAtA0$zUx zt&uLShd+%#W^Uy3L}gUnf|HN^RzFtP?}KGTlv`556;JPnYI3f49CSlzNReT9vL4Zo z+9tY54F}p3D@qaSeXH8@yVg`zz4do}b#gK8^3VC;7s9TJ2#x??I8E@Jq+Nit3}`hz zI~D~O;6q9_waoZuvQ1ZFx<3nJd$dM-q|627=#$l;&K`KXy+`hD+xTW>w0qY53{MN# z;=Df}RN_zS4>b&vEA?=t+{3J2>QWad@2Bcg8iFt^C7*ScKW4xx3Il;M(E91z3I%0s zE%5T-gfwaxb>=wr6K1s6_zo#!`43Q13wXC~RFtn|l2UfMRy5wi3r`@3SG!gFlIozI zFwM-ryLccz1Gb=n8Oj}uXW309qxBeaUUSs_kkxBi88lnP)X*X)AGoDJDrmHNw5La0 zQr)v+^+D^y_OhwG=E+A%e=e|{pQnY4!1nn8#W_f`7f)|)u#&3`l{ZkGGg7psyrj_J z&&pXqAgZa+a1=*@EYq$m1eWN~r40_WC@NGcLz)m*n3Am8$}DM91}$wPpeFsf=m!36 zJ!4w4*$-InYRS!Ut%%;O*Xc|3E}T&OsR#eGy=y%6oct$@!Onu0L^HgowM8LbGTve5 zeQCB4QU!Bvze=-vxdOv}C=_2GaO|BvP5;bnEwMDi!LAZ!1ihH~K`dS(zJefeIPIkG zYC%KAB%<@Sf(JrVQ~pM@3!50+Nk#wUAT-4u-)~b_ZxnE+Y__RwDXNX$>r9m}J83=0 zUK55&@p#-8Z-xidCT5qFE!7AQK&ZGkMoTR*KX&KQzzA!4&QQ4aoR;TPxt#Od-rG1Q z#=(;HBMy`>qkpZFQc(fb<9nJVu}Lok&gvwdNdJNqFg(E^qWw}wnl>N<)d?~k3=FGI z8v*6y$=QN&2ckV&!?F%wH?4ZJKSv%UVMaC*n^~h^L)%7M^4a>V?$So6TtM%~fh@D? zHpeYxOxDB{wrbe5W5BLW(5?;K%X@9}G1by9C2uuHkf=!CL5IQk!GaY8%$)NlA*bx@ z1OqWkR7SPec+y~X^;g{-rG&3-0b5(HE}$_R7HCXxBa&JaGD0#n%xx%*1z`JNdu~!Z z!QMD`slG`WhJ+Eu8uj<=9DX?O=FLa*rw}{@)p%bsC+ix#B}MI<4wBi2qPV zrByvr-nsvrgL1zGdHgqK@Mc%e=D8)ia)?D($Bud6m`Iwwb_&71uN_`zC8N0>xgl&$M@Ip46R!e+)_(2qFs=j)208ao$t z8>z=;Aa(rmNFOa%i1gXpW2?%XK6RuIwlI^=e)hR7<|o~}RAzg73Ncy|>2p|mlCBps z?LhI40JdY+*`$s~BL>U6m_0m<89k&Fcw68-3UaGa!JfzjAGjsy4^t~W8boCY-p#I>L1cs9w zYdz7A6hXkSi&F74C-q&g^sSc~8WGy~%gWh)U|KrW?|Ia|MI|?&|W<~t>}&x7vhlK(f1HTW(1yFf16gf(^Wr5?<^@Mr0QXz z$$`ctXqt$Be`r2UvL|V=7yygPXd?BP&fz4DI?~S@HhCmI^$==4?n!7^R*3aby7T!K zNU0gUxw0cYO`v~XvTt$m5K2ueBY%d(#o^?^GTq3gG3oWvd--jFb3S1v%v6UCXv|VD zf+W5dl_fynlqjL?>dIk^Kek&hQ2|=6GD~3vR$Q<}UOUoO0Es910&kn@nedZELP4i^ zhg6b$PWO3o+bP#tBDa-tTPfFiA~#F9cFLRcVuGaX>e`zm2NpV)Br9d0Hw_yo1@D6h zG!w-HmZB55JAw>@O}p+ydnBMzu0h5YL_)7AYmi|HC-j?KgG?5l0mafhPjsW-{7Jx< zG%UarFA=tYl_}*&_}>ef6rG(8^gj!^JWm-=JV{YSXGc!#qD_?ytU8|_0-}0O9t;LbU`75+YFAcOo2bF6cYgh`jS7a%iM8+nJ$ciil z#g-rsBdErbi|_5knRRe<9y|KQ_cf2Di|>ucvS;4zwBk;lldFTP*GV`j3AoYb~KL7>uY3)+=u9Gj6^iRq+5 z?7bF>Ngts1Mic?MV{i>ytS~aTl28Vp#!rl%P7rILP*8U7J?bl2V*D_}sCE5F`th#m z+IzF26+4IRYj>wfD{A5#y?-gw-G}51uf4b15Xl){d!LT(qocULk)!+QznvvejUI|N ztCqe;uf6YR?rDxiD^?VwhR34SoW=z&hJHv$n1vv-;t`kLD;CF&Lq;9`v{U;`B7)qm zVG>AS3|HH!{pQkpMX99@m~VCJL~2C+iBck;)PRJ@h}j%yW?*@TB1%V9jkJ8X>7!kr zGZ`=_IEyw?6B87ReZ)hIRsmryv^mK!1LIO3UirB|u(Pl4_vH6%U6jZijsr-lYfP8m z$#px14%4X1k+8_sMH~{-{yFw7y|xTP?gB^`{eUu8+pyf121Ml9yr2albhV7&hv?3# z&_vy$StjWA4%>02q%IYNrv~>1LR^N2(U6HBi`};Q)2Z*ekrF}gL4WOp(5~*&S+Pk* zRJ}45YD$&Nm2KCTNCY*womytpYJDjQt)ltC73fK*0o`P^avz#Nhu2_G5uQV~HC5F& zWtcKc7{>-tKlzW(hWd8%v@Nv?{LId!Sjx z{evg4R3RpMe2iu2cb61Z+zFPW0zIUZ(T}wfmM^V=gQJ2gO!Rh!xx0L#kAsUbbG!d8 zr)4(yxfnB*Hzmvw1j!eOB_(XAXriYK5=wrpgzbeU`t)KV-F{ay-*_{+t#W+n=#H?! zQl^jPM9uU^)PaX4;Cv=RtCqJ-i3_xeAAk}6ILvN*!&c=1(2%CS&eHIFST6yRMtVpSf2@mw@!1bC`868 zt)%Ov<`$NkOJB!TGtJy{)`XN?tfv`zDfVrm%%`57?0y`RwJe zPtk!+kD7j2i$UF<+O;wu$Wnkn6KU1@G(9E5Tu%6!98#UUrQ?Jv>?`7o80;%@!d^>m ze7lYl#`%}B!Cep?dTtYiHjch%v-ofKxmwg%LreW2PkCp+07#X2%9WFA5*rsR05)zl z(t@2}SMqcOfjbTCCQC_#3}rP3;rdNqQ4x0VeBZB##*m0gRMQbg-^G)8?w0M61e4wb>Tc z+hwjFNh&w>%UH0mng&0_^h|xdhx1TG$7uE-`r>9^dnH$j7zov3_sEC=)Wsfdm5uzh z1#0!qTLvPmI0I_w*mXbvWg+#oH;BeC?~UM-3gBlDSpcgKse3XxXmQjNY`|*_nmNsz!{6q__Dvil( zjCKSt)WdM&eYnG3u0pm^Q07WUrOithb_4+dTkP7J>TrBBw`oq-AuMmslrgi~D$Q{s z@@h)A(fF&0Qs5&TL;U!52NbD%Pv=)23?x3iL=3E53NqBPHH_MR1<3Igfz$>}n1Kk) z!HNiHk5%|XWmao22kH`xQW$Ya=P~Ocv~@F|t>|m~;1Opwd(9){rLFodyeLa0PNg~P zK@iZ8+dVHbzeC_sjDPMSk!|rk{9tOwU1?|8z_*8^t(& zlI1HtfdStitQlW8=6d(PS^q)gR;+)h4&Wt%M@D$84txYf%tu=!kx_z;QnAle;0o6r zn!8wKbAgSPNFC%_AINA^#4Z-IsEuS2xr6PNWhm=bvJZvJa$s*c$Ph14G$4YfrY9MSK}d%=zM^PsZs z#h9`?DsH28XeU~p?`c+HX5(dh=Z*$Kg6Pe{wAF#F8fp-PrYt$TM~bEo0@0$je9+dZ zQu3Ll2)1;FJFPLKfo$oNLAW>)n^h@)!^S(T*cs+^~ zs$om;o426;pf7^CFohL)WH;^MHEND z%H|UJB!_fhYt~Tbz{WxzozGvBrHK4}@PHkDlT~v4Y1P$U(Rqny8Sb<;l{KR4Z+(x& zKM_>e=UO>H`jgYoda`%1h9Gbn8kDVbVSnw>Q%3GK3Lc*duB9LW?hf2$zcOw&hm$YD-4S_F*r zwGi!m&ipzzC8|qVU|K!{Cl~y$c&SiQ@4?AIaTyf`4SD#c7I_2k+ zj%#@BC`hXK40Ip{+(pIX(0E)uDMOz}_K`_($n+xEx_C6I6dTWauSv$<7~2|=nE~lX z>@jPR7`wX^h87WUrm(-Q04XRYRX% zB@mzLt7~A&>a%>4J>77)jx?EYC3jfmeV`!R{73cW#Jkt1nEFr;4v64}^y=Q>D?V(d zSISSI)lglGHA*x>x*tm9_|BT@fi=~hV`+v+I<;1+D%V%xO$NzSAKj)NC9`z59p+<& zy8SG<6^*DbJGOfDu@J?oi8e=6122ovz%5C29tH#Q+GDHNf3Lc+uFEH~xww8ZcKivA%En^x#biA(o$<`7nP(Grh~SDZpxuz7 zKRvd%sE@>$P%z7s_N`cMp>at(LJ|)ZoH~$%91A2Nr@rBV91|~X76Fg{k3~a}9*Kb; zV8G>Iu*yTnKdTjRUf#hjekDrUBx(EpMU> zPfu4%KF{`YEb2}Q8&vv?aG9NBK2=zS2GR>{!0=)#FW^WUiLl55Q?K2l2<%a%c76FwIip39Arykil< z)P?XUR8AM1(yweytvc-rLRwO$+EaC*&Bm{? zu>zBR5VicCV7JNyfI^W|kgX!4fQ)Y*?T4K>g^|T7%%=>?*R&l+Gc;ZEZ5>D5TG{;~ zF_o(x=)fJ6s^7Zw_NwRc>Z<3RGhN+3Ws4K*xHGqZ_T;N>d`o^sNY)5T^mx3h?suHD z3pL|c@6|2w;E0UCW0FDF*~|=U(x`Z_frWJv)*CFDW)gH24t}m1 zryqqUqo95wJ#9-rjGs!vz4}>iKdwi~`j#r#XLI-k2!5x4L%-OTqdsk~l;f=NJd&%E zdoMaA?4%q$yoh(L)7%STb~AgicZ?UAU(nCz4tANj_u<7jNu|~LpiM0q5hxHXE4i(R zzuaF0{!Dk3UTUAYW#y5{)r|e`c?Y?XizjQ$r4wZ#rmT~d!B)PEb;@YrhdiVZ8lH4R zmp)acQk&|OTH35lbnH>pVyyy~rF5zqWvvfugk=>Cmd*4-k>hP8a(tfuU-goOFDfp9 z1==W_N3bYFhhF70w_YpI05XwptyVDx7(aED(bhFJ@aC3%wBu-ncUbb6=Q8H(_79XD ziV(7RoAvS!`oZcS9u#*muwf?s+ia&NK#sCGkG8A4On7*a&O}N8g#k28+|G*mLx5k`s8UwAo$ALXA*nWSt66g((?K@nv7 zGGbV*s4Qs9WMcZAQSb4n<(gi@q#8fHV<7994?vhH1rI@9Qe-tep@D}$euGCwrf&Wc zJgD1c@Yvd^ma&-N$&L;W`;|-JaT0oPGDX4xxpQ3prlE#v!5yJ`Vd-_kQfufmn29x# zf@J5G7ry$60tZBKX(jtOf>KOy+XoWWl_dOwq&uu*Ix} zt#b4b>tYHmA**fTA&$`~^9}LA&<_p}LZ7>a^wE}@7?zv6S09Z;+728c5o)|9k*2jH zNYoXH#-#zZKi4N#2@;`r6N$9VKA~?(JS-B8FC!6mgVwmWK^)?-50Be@ro`7-wujWi zWi}+Bh-aU&U?fguWN=SE1b00LKCqMb=NmUkcV14Y9 zeX3XJcP4-e@7e^HgtTx0zZ;#J74dibO=;);JAvHdPv6wvQZ_GtX6CKJcktpD2tANv zg4q91eMGk)nA9w(y}(<|X_70ZoKQ`t9~H-3u&qAosz`k~M8G!(YH}o2`~FB^lPdll z=h@W}<3@OwtfLYIO1COFPhiALe}^vyUgN7^t0mMa7AmmwT9j3AjO4H=tpY?bTZdFSc82I-NzYfFk$eCYmkNo zin*3vgC_;~t6fU12jsAD)nZ1IXj3?V{0XRq|98>9uy4jjH{HYIkVXaj8c=*nC#w-S zYf^r+Rzr0Nx~_)%!5R}t>Oaj&K@*c==x-7_D+_to{f zbApqt_%_D$p#YOjDL@@RVZK}8lJ{zSJGKm0o2$`{nnR7w$$776;$|5uw+;9HsW(QC zpUT{A%+JkNHFblzG^N&7mCW@DFMetWPUfW`z=s2V^mVOyW_-nWd9IZq!qke7O7N#o z9>Cd2pNqs?fserjxiw+nd$JRV(F#~vGlw|^Vrh|hhys(nCdqxw6@a21ukmIgczr8D zdkhnR3wPn?p-X0KY+%hQL5nWU)MhShrrMw-#u?G6-S4>e1T|b{OX44AT_YbjcofI0 z9ZUVStk3)uOujUN$$q0(j@ZDS{26|`ppYk3-z-Q56ZP0~K}w~CB?VQ?KRZPa8j|XR zA8Xtjj06ujHYOeU?;g$P!Sbs;e8xsAzG{)gEpHI-TJpVj4{{HDP00bD>0>m=YNS8a zoY1FwQWN|58icGPBir$ufZ_`i7!u~;)#q{!@c()~aAfOQ``VB7L49g)o3i?Le9?zO zzZI$jwDz{IIjp85Kfl9yKt4M3oAwnRJfXi4stOUb&{ZF&tEs#{0PebA_Ad0+pi zxI@@l0}O>=xw9#Kh(z70l69*}-kSzRN!{G9T3;t^P2EMJuBBvMOUb?eJScEmUF+Va z);+^oO4hZMyf49f-zR->yg*gnoptp+pQ<}uBvE&&WL;g!YrkooD*5%g)+%VRdT>B}{9m$rX)9)hG4ZO8? z2T0VtD_OVm?oavIccNAfwy>fry|_6wbucxh9Nli9rfwl^P2EhQZc53zDJAbpT%+VQ zHP_rm+G^cOqOPT6T}#Q^?i&=?SJ%3;sdZ>rOUb&Hk_Z0HYAJbrUF++lE%PoCbze%> zwUoT({y~8Qb*+1wTK5cVDOuN2@}AwMA(Xteu5~|YYwA7{bze%>wUpd*rPWgMP+e=! zr|VjaBDx|Wi4EhYE-y46y0v1YTklD1m=NYu5ItZONG{mZPDl6&h~ z?;vfpt|w8~QnIe4mI;*AJL*KQs%Dwu5LA7_+ z*nW^~%RES;ZcE9!tq+r2yvEv6?p=qita7he9ONFX+q#8pdw(;Dx-BK^wr>5jFTRU> z>E#txS;-IAmG2~Nl@IBCnvj&NE8mqWE9ahH?G+XN(eR8kY`iFx&2a>zx^^I!7c z$_lA(cdZWcnj)&88JY^@G=(|4qA7GxTIY)KTw}OL89G=}c7G5#a*;82vOKptny7*s zlla8^&$5ACF~NEZdxnYH%p^=sd8Xv!(6+Y2u;8yIZFaE)YckW6`vh{a*E<7O!O{qS z-0HgN5!VRO_UQr~Ep@S^_(BVy2n%oK309WDEqnNA4N`sttQ8wqNbaz48#JLnWGdas zuq1Ay0h#M#r6I}zq|^%fwZ|B3^$o; zP-Gsss@ol3z)|9`<7-_k>u~#+O)EUxn(zTdkyL@e4j$!p);E~?I89YK8OSnp?aq*d zD|LA8jr6mKyKj9caOUXB+CMyRK) z2e2!z_XEah!8mZ1MSGaTddQJ9X4f*HNw}8b0M|0$I{~ETS_aloDlmFm#KdZ+Arj5% zq7QO^1QBjWztW+;q503!+NHWlhd;z#8^bnu(Q#jgG5DYtZv&COx=?4Xv5P3Eak8BQ zx24UgeO+-?hE~*w6T1*?;0Lh_a%9UL66wTZ7u4g)x;_@{6_%7%W!2RdPtCja!?w$1 zZKuO?@?EKubVw6HQvdeV2wzPOgC=~nR^N?K-IV}zR+Ze9q46y26UP@u;E z!1V(F%Njt_CUEgGZ9>j+ZQ>hkvi}HeQXc^W_5Xip6L#r28))}JnKF4y(k1mhSxXej zBj^7=twfF$=07+cGRu6kT!*9sFSQOCy^2LT1a-DdhbTuHI4K~zgXW>?kT?3^7ot8@ zGmKbdy~$F->(-P^accjky3>U~_M{*Xp4cZwW6rwbnLI1W%G?)!gZo2YBqGjV_t0|* zF%phuIJ1 z=kgRQBzCKA_=xajWpB&(1MfA!o;3xx5T0I?KO(S_Nb_jdyFr%gr#3- zv9R1w{pG*i`_;$?dR8i7)XtddH5a3Q>K6E2xR_Yn!G~UQDN~C&O}=|TpmeOBsx2mF zM@^Aldrsh~nf0k>;w7tb6L|7WhMCx)n_?_`D&7`uPX0ty)KRZE6ZjVpw7DR{M7`)L zg@fAsKK8vVMoK;%s(CgLG=l?@UA~2v%__~?@kRXM^$89gXRpE22mJIxexmwqKSI!S zL#f)5yEmU%K8wNz>|ogDs(e?A3s)8ugRAda)dLUXjC_A!jBzb~TT_aqxUy+|{{Ep8 zUHdQm3yGMi_{;t(p}yeGE`yh`C&WxvmX)#~<7IialfJaEt;OG(n@nK}#w(Cggj`m0 zt$fsUPw$B4gT)Pd#SI6uFmidR)K$SDdwrqRuzQ2B+wE;Lxw`eo&7P6V(TjWV5~~j5 zq>WHrTcP^LgRwPKvgJT>bw{(jISUC+m8J3^UrV4aaa7hs`q`9zPS;QVoz-C~-I8~+ z;*OIAM64k+up^Ww@d!>pj&7?UfrB+^26r7eksoiG+JiNfT2lIW%L z`eUkWtf~_^xz}YsIvb?~G*V+g ztLaqUS0%kto~T#flrO2i1Ej#l231(KdmS<2s_MVUx=XOv5GKHlwj#p_^h7bh2?ss6 ziK(o7+{qSDwHPHfd}(k5w{rDl8-!N#|F}_&ElLU*J6UzBkw$Sq0hS(Y$V(%Qa}cX! ztMQ=Q(d%f`Th&b*l>2h%vpU&2Nu-g{T^6^#Y6PgRdV&#J11q!=CBtAW8kFJyrGNk| zM=5aE(+EmB=qUlP@sWRf^(0##vTTpU#zKedlcDE{r8K4nx(!xh{Dg##UDxn4v%!w- z-Xp*Sj*^A^K2}dZcJ5^An^9h+s(QmHuF~k0kEl+&Xs){b$%@p1GZ>OCQ9}$VNVltF zY}59P$?Ud1zY zz3?OSwEz~6t9sd*`kz&6rrN7ktypYsS|2HEXh@NkywwomFe{HI!k(@zvk6 zKQ}gU3=DHZoawCrD)tNoehpRvZUz#fA69jp4>4QUYO{?4(x@PKbK+5>4_tAP-n@gk zW#YKz2_NaiBbx^l`^2%$gIZYAJXj^5Varp)TvEX-o`K7dI?DDm}lS& zIs0M-L${>qr2W-&hcC|5ZN`x{Jum?z?Q;0Pl*x^m6s z{WYgxT6kjwaXnY!DE7p1etk1J)yp;m82RYsoTCy`<(jf6F75G!27TJ{*Ert>iTKtv zY_8^eYZwp3eM1ton(iuqSQBXeE?EYa=H~_|bhO3^NPlxP-wT3v-Quf(0$mPBk---I zq;xyjki~O%f+J&H=|8H06FvCSRi*qN#5|Z}Ak*4IA{HEgew<(zQkVss!;BPK`JWb1{N=JIxmrhG}bP^p)0f}jNZzi^GH<@TdoRr7Bnk}ggqQjDGb5&!875@t@Ge>#ScKK8{lPLM{JA%IYqh}b`T=_}UO>%qm-FE0lV zhdkC4%6^KpV3 zLFj@>H=FV{?Y#~=|2MvE*GJkq&kd-urD^h@+k;Wss;>C9)7O73^18Z$4^*`D=~}G_ zMH?*%p@j%!%fv!C=~K2#=(T4#!NRO>FmFI!OoV~+AWIo|jVp+7S_YCO*`O33;oWm% zKJMU&JMl7~os!xEJli&&$;VCzwaFc-+qTHeAplXQxXMu7Wxw1)_f*6dg;c!RuUPLj zb-lON_1<0AyJn=`^Rez>Da>zn$8nBvpDsP|ubJZM=o;_PnhT1ORH%X14_8ns77enO zVg4PJ#k(nhvX7o6&65Tl@%1xM~m-;R(yF4}fvPOC2J2#6VahC4Hu#1uU^C zQLz4)Nw820T*vBOwsl=8Ne-&P@Ou73INOC$ss4RG{oauoP8t# z4D`nl+|Jn}u-2qr#^LENUTPs7Iia@MB^}P!7mTcmPA{OCcv3V^JKa&Is8GTZ z^b-bWw=h=i>{c+K1cE@MqPYsu1qN~Ij_E>+L_vnTg0-@ZxcUgFDm9E4qtu3O$f5tU zZc+2k8|@o;)K6{KjhfYlZqbUdCBG%pjYcXF=_C=U3h;S6nGxZ{D5RKc%tDKourCeC%TV9x03qy72j%4b7KaM#OAIutFUrx; zu&A6UYM!G2TA|~)nHOC|?`*CKuF-0nfcJFgnMR7mKlRRLHc87`;BJ*&h4SV4Zb*vK zV3+}#=vBx-I#iEQfGQDhT~N)=4o7F2(lq+n=w#`wvrs?^{H)3%;X3cmD}TfzDpm&_S0W ze0CWfFPPsREgCC0SA>#j^LyS3>R1L9i1^e=5x_8apng*9meF% z!%!F&S}d|JQ5eKU)e1v1T&*x@KYIuY!&=17u~49-G!&pb=tFUEO{*ZOu|;p#;17^l z#vU5z0dt@qPISklGht$GDV;H$?m;Pw15oiprK5GHbdu)F{BC{EW<;Zy^&Apg%C$PI z#v+Ff#r39GRR)bEn)8R>!Ngtyjg0aLZfaa|%kL7o9qEKmv>n;WP;To^An>4* zT5jotfy4O;t7!mC|KRil@rg8LGmxWnOXRL2*IN0jbVmSUVTE8qC?QzwMM_KXI_Yd5=E8BPuC7 zg=Ge&p8D9RbuKcdYuS`yu$DtYn@0g5j({++6A(2BLEp9lpcCOl)#RDKdd)DV$2NM8~M;$psayhbagQ@!O8IKqG|)`>rb}NLtS>y?vG8|9f2A+pd??{d~vsJt_)Nk-<4(}dUD_PgQ#&XmK%b`a-EMYNrK7K z70EW7^3UWE zll$XIUEy$%Z>RQbLk1~YK2CwYM~TP~CZ%mInn~MwY7f7gEPAM*Vd=HvlJOdW41^7` zuACXdKRa8%cSNTIpQ2sldD1v_fNRVEz~)Qj9~+RLx<-BpeBa}(5sWB*xqwuW>t#R# zY;f3dw&$ElL@~iHcu)yvaKl^+nyR8k&w{6vBaaeo*ywY^64nH*FegQ|Vq;*UC!jmS z!9_D^a*S#BhW2c1`}XDP#HBW{D-N@jvXvV37-WVS>#*h_4J)&NhB!0giE}}d|LcLR zd01Nw)6CgRMpcF*OR#oDVFAdGalZUB0?Up_}|7M_+#S+t~zgE5tbkVa$4n4&gu#x`Th!HjxL!HnrZvnE;m zpmpRYRg72~dzynrRVmvX`r*}kwB2+ufyRQfr1`V7vW97&;@4}jXquarjsHLvJ)|s2 zM!i&Fz>3>FFDTQsNe|9S;a2%O^K^Ri9*1$x8WZ(JwWQ`0JCIT^LbfV%c>R$%r^yC| zTHWwX#XOU+^M#tyabRL9R@si~>bKj+csXaIPk^!-X&F1!%aCRfqJxM6Z0W&BgCA)& zZI3wwkMN{LNLqj}*EZ`9^3%d23C1D0hybFvkQ%Y#v3fWGNz+fxLhWlh)pc1 zl1yG$te1w380Sr6ot9TK>-HqJPHB^kshXKg%a_}PPow=Hj&Ch)8-h2wdH;ujuK z93bM5a_S8t3IsMl-5Iu&UFrSww(WCP-a`5Q{OH^ zExTQWTIUYR%+zI`GRR@~+}e4(Mi9?|?XDwUp=REOb+vA9Sod8^SXW|Pv+famYqC)O z$MLOk+6sL8`iH}}hPC(>rLqFw?)%?-`=6a}ZN*SBf>L(Lm0~~GTv6wenp3P5Q9YIK z1vD}%TMUXp8Klwi>G!Ex@!xsM+)7RNzLIdP`%=ZtnNhBYPC=MJjScKP(R_)|HcfT@@-6 zNIAA=o367?DX!=4pn9~eprrs1E$Nj4y zH~V3_GE9L6?=!)l~tO&^xuq>xF zo6xK<2aprurK!gkr5@YauF`8UZqi$hQ_l9377xDXU|r#P{c)qseQqA3lol?OL#QKL z(ssSn=L*%H-5(oNW9RaOxJ|ai*Z{w#A9j((=(j;|B%90A%MKTd#2G%Z$?f&*mX+BB z`!Db3_W5cS7MK&4_cMLj8c;OTjUuX}mULT!DARgA>)AV+-LiL&2t7V{$_X~fcmgGP zXjrIpxEBI5iTl^#&(Utd@+awOoSkTzz=xiCx9xcP-?Xg%Q&az&5}^l(KRYc?fTV|G zMxH0^u>=4+!X)-UxOxoS`L>*8lq5S((nJ#JCCSuP4j#Xr)rZ9W6fXOQyfG^r!-OBBMt&5d!NN`*^ZB*sY zLYbI*2OcmBl;-%z6J{BjLWi2WFGh5^+JmSFo^6F-h9R0rK1=zibq$N^vb(Yx9kh`q zlQUE_yXo^BRF+U$5g>rS>b{>aD40SKWj0#*(^c!tPa+^X><7e?_S8uV6fM`x3w) zaQfk%cHEzK68{?lkG)6s>Wg24ZMF1aCj&M5bJD%_okJvH>dI^vyZT2|+ zAMV};+|H`J^M0OZ@AJ9O$CKm)0*U(UP3#*KYE%S8EqS6KC~dJ?Uu%0^^_{j?ofFyu zQe>`@A+Z#V5u z#ZHB|PZKDeE@Ronrf~fXdvTDTs^kWzAR^;Ma~1y5qECoej4_QtjNs-foIx~^fI;L0 z1`%8I42VyR)J6?93zw1dJ zD@G4JH+yR2gfgZ(ztH1;&1j^#yp(2JPwm{5`?zHuSA&kh^SZZyd= z0Rb5{OfO@4?U0Bj05N01ciR@#efbaZE>r#*G$OVZb$N^OXulGN#b4WeENX9Sb|gLq=!?+YCyeOl3riCyghe-Pr;~Y2;+eYz8l$`NF`?+p#7Zc7 zC#Se%t^{=W-OZJ_b|xn1G~Rp=sH$9I${I@;!O#h{hwX)LU-d*1XXE(FD@lodSf1WU zjW4He#F?d6=$1*0vCP*Y8jZVvXe~V+N6lj#pK>aEKzQ#W#{ zQkxL;cC?OWtEFNbQmmVo&;0flZK;2e=AR;Ozb3{=@};zMAjIoKjhUvldQIx8SmMfj z&h`q}JuS~0&+j8iwuVym=tu{^+LPllf-fM!We{46JRBOg)xiWU%9;);*otG=5G)ep)_} z=qLg0mOrh%E({Xc^NR$O{>0U4-p!(#k~;*_>L+;Gio`u!;)ssQbI#wY&TIs; zQ{0hE8~JYQ)e;gK9>D0AhJ%O-*Jttf2XYsXJO6DIHIrKqi!~Y*1fimYJb&g&M@9-s zezot|xIT^P^)v;-H2D_MXpAj5bOvm*oTa7P3;{;=HofO|5FlDKRfFk7W8Z7^0$aFm$N*gcpk~Pr(pM7+Md{!XqPPagEuaaeP~oBlPpGL3(w#~2(oBcJ)F>91U)Z#& zvASPoJhXKd8PP~((o?Qz$PNwNb9vdIOz;`X8{i=tY!jo22PG`+h`@HgX$n7T-mtM* z@5o74eb9QWp0nf7-M_ENk`Uz?q9fwSVvh~t?A3cQ zYnbHK;)ChLc>QP$6*bW+yFn~76uq2wQh%aUD8cMXKoRkR{A{*4BPkEHw{NppWcpPn z@=%Oyd?48&G`&kk!HOo0RBrx5sInRlqwGqjQGtWd9m4T*FIw`~LV&U-T9)N^_F z$4RK4lk%(*f?MgA?4~j@q|1>+`nmm-iC!6oWc@*v(^rl^#-I9{)8HC%TA3Nhw;43% zH>Xp0=601*na$lDG7II-@(;ktTK9e@?et_QlYak#2W#jknRxzk<3dJ^vaP2ijeDbk zsZXZmHm+T1Mn@IsT*zuw#S)5h7&w0gTWFeL=FfokY@YSQ{&}sLVq={f6O=oBb7KFS z+c?$Ae#wLZeBMlIYXqkD{}>juEG?QzUTeW^M1#YLtK-pmUxOQAVRRs)KZBXRJ3@)G zHDmzWv8%@#!bF>64(2dq>(iPy&qO3Nv7c+2n^O2>p2 zxmP4F%L<42v1I5)iha)qIsP0o-$4S9`p+DQnYVQ%#G%^kh#wCN-cz~$uLyY4#7wB+ z4q<~gct(Sp2iP0Yr%Q&BG^*w-c$BCr8+}4Q4UaB?0WnABJOwjStMMOa9g6*N+VTEQ z@B%sqzV3zLonT4SXcp^!JbX4<)WON@QqOEGkeBq6?34zqDX`|%{Uori5a7EVb!i|D zjrKdC3S=-%26Q_sEK9az;IT*H`{~r%N990&3(=Ixj8e?$t%rxaen{7g#~N%fZ% zsXo({B>+ndp#5i6mR%Ied8?)??{+8t#6t@+RMy^NIf9BrG3)PC`OT1?;}F)~Cr&S< z)%p`!yvGS(cvN++0-4|iv89eT$-*|~l`8^N<>|&-(8AU#^+m7p9F`+>0{!%s*pLo$ zzs%`bU(~YOO#c04>O5lemnB1bTH7LZ0$*X5ngx=KZF==$vF|@w@^WZs+qWlc7aHO3cs!8D%2>$mh)|pEXCF zcXx*{ihkV8UKZnUWgF&1O`U+s6s=7*ZdP3{|i194p#T?9PBvW_t0j&9?1@1Js+X!i~2n#w}nm! zXHBz!q$8dT)#4PA1(DbAwA#8?KP@<^+b9p*;RYbTk(GaWM;M>2!upfbo*ax{_PQEG z%Nph85cw-<6}g)o>O9g*$ut?2`iAXEF$@Zv5BI2~9To1)npkQbIvCz`EisYCWJl?2 znhCaRiqZcLB8>g0JNZ=BSjDiG$%t;XgCUC?kbdi%Y$|%4bEqkMUDztq0Vg7{)VKmK*sQeyx*f zB#3)*U(al;VmFe!ut~#-U@c}{B}Z+2RblI1YO4IDjm9r_R`L_p349KRZjB6d{-e!& zMwQxUCK;yvYr@}Ilk{x|O~!pivYC=v6Od z%M6Wv0qK-cJa70# znBt_!-LsiQIUZr!z zQqm!!7w>`^iy1|Y5?)Z_9F2UdFQ~1;*GoAss1+Vo=m`h=x=b5h=F7F!2GrTfYc5FM zXg<=ad^(r2$_tFIpav3fEJQKA6O}ZxT(gdo_x7r~8(Flr)Z5S@)U7xY%3Rb!>zpa< zvUV#*q4MG(H2{CiRw|LoR9$kH8Vbv>$h@ECqwz`BcmqAi8Lfx(c6y6@vPv&g=J^#& z6a`ED@{goV=ttttD&k_%Q!D3eQ)ot5)*4%Bf18AnPID(Qba-k397^ExM|{jHMJ;?R zl&H*nf+sX#3lNNY`c(+&!h}ZGuS?yz!UNyzzuw@^dG4I!PHsDQ#QU6C?abf-6QVXJ zLs5{c4g!Je_!?J`Ed?|^-MsJ~zdItpe(4WYJ8t-b_>Fr~o#Mt8nB|WLySZs?4a8LS zjT!>iRX$M$9&jyJee6JIV2-gVOlR5Hc(^Ye z4BWm1Zl?^&qE=4SuWp`3!;F=7h<;-+e6DYYtSLAaY)eN9VREh;R!g`(e2I89E0)kv zn6clH5%fzYQFF6M$+8hmp;y^+s}4U4Go(h*S#8ys{|1TG2Ya$L)qfll9UI3Iw) z*0Q?PAVVd-&J%Wiu=7_GIzh{W5PBY0HrzEnv~oB_b;^rTrK#zuwi8r_JKPID+6XnQ zgWe}Z%!D}9ArDtUjXVlzTuiFdw3IQ*zpNO_FX3M|Sv2a}veW4-<+0JB1*%rPxu^yS zkUfi#)zoYvFBVaRP`@Frq^hSbB0+PJF~CR*^DC^7Su(trwsInHEnT)+h_|k#^gNCo zh_W~kWpR;&nmokSXM9}79rO}dHUM#H;ip5PWPg12~ zvC~{u?z9X^QKV|jhn-K-)*?@0&BRTHjYXqFR2smDst_KDSoqCasnLKFT4pqM!m1gWBA#9>%0CS6j8U+rmf9PQ&(}Hw*C1V4 zd-+-!&+tHin@XiIz>O2zmtCmS;U}8 zJyh~VnzU*7j3LpEV^svxuei&YU*M^$FUyo8h72NZ#E6fhUa>$VyV+4hGE=$lQ6!&B*Xa`S^AKN1Brjbk zlDp|5<~Nains!%?FOpfuNf5d0_imJ!>_?q{K9* zK^Cc6U1Hj+g_zbx>+^|eQ5eYwgLK9{Pur2xix)x^1BB4B#|r1?ZLVWwUnM9{N;E^a zrUnv?3EbJ+XwnrsB@0AztUCMR&nKEC*IT(n^XLnR+x!$nb1t33Me``4IkwE{k-E#s zRh@QOaXQ8GyCbK0=la!-R8E+-7{)IaS~k=W$}sqP#H|< zDl7-LOLix}#{%eT-|=Mmve+w1y>SD*ZA9)+P+vu(m~$W;aRJmH4kOH$kf*}2h7t;F zeZ%wZD(GSvuRLC+obg=9C>in(;!w7ZxTY{PYJMtZVxOXFd0Nb#gP;tn&>h6m*o!2C zyBQCzvTse@SSqxXs!@e5>Vu0}9U))lBH@HMi$|v8E2N=QXPQ5$1!x}7uhO9`+|4N^ zz@4ydB@7Rin@ug@rVTk-geDhpkTsSi`UyvMZ79%{D^bx}So({fj}(Jg`Gu_3GH{o2 zCl9YqNWv8?i*YrsqVg*_sB|ji709*BSak60n2xUTOL8}6lrG5VlpC|FDUX{ai=Soy zfeepn-BXgiD4+v@RpxVoaWqt0hZ5p5oI&EMms)haf_Mxe80*#)gS1J%&0b4n`R>L*qvSl@sT~tz6ikVFv*diqa zJe!m_UZMo_ta{_T&YIxy=PmSnR_zgpR5_bBY0ETw3J})|^RhY!E1EAGrRYvE6>E^wp)fa6N zD40DKtF%t)-@~LvlUdu0=UyCor&2) z<{JX&wQ**)>Um~n+fQwFbIc5?GcyZcs(F|{r||*m6cvBX%q~o>gM(wpNzBXwZcGt7 zvu0)=`w=WVGqaWSN82<0er9HGkgPm~nc2w>Sga#9+Pci8B}%jc*`VxRqHHHuYk`uE z(%`TVQt@t^tDTc9%Wpn~xf;dSbxQT77n~-ZM3FknrkcPVTdW`H37l0Qp~CTbD0aLV z95K9=eE#u@Q=i2Fe7q@52iRwF0H4yt=9C&(Tz2C6ol?zCemZBg4LP5H0G*sqsp|7a zd0VnL)j1t=G}9QE2W1TUQfX0^$B&uQ{fg8LREuR6J1D!$w9oLoow(Cu63@pMrk9x_ z9cD+GLp;ws&okt9R-EK{Nf2!%?6@wU@=4yWe4mp%<3Z#QZr3DFtLU9co_?HolE<7) zq|xNKA}K*eGy-dDps%V-`4`NNp^eR}By3NanXNrSsgs<(jRN z!A#FfbV_B?3T&5Hugw$dd6eoWp8MV94>HEdpYLNZ`P0gd^kP_t@|?`%k5!E8Twwix zCV;Q_p-uo-E}Q_q>J%n`9SNhgn-835c2PrVH5OsEqTEtgGBV#O=k`1u-<$bV=Y@CK zzUax1)eKghnc+M(u^vDLnHjG9q0bDv>4rM~yfed2E5X6XpB^H3S@${q9Nybbec&YK zhRYVt4LNdcb3?tb^}lFtIFv9uO3QQe`#2GNaracO+P)!z%(5lrxuv~U#~e}@jTwdP z)^{3}SfBkhUek@DIVJS!#K))6E8~i?1;;sK<6m`B^)ij^^(>g7U6_n85vyOA3={ZL z+3@Vq)T|tqrG}C5d?7wH56CiI?72WkW~jJGA+??3eyps^emJ7 z*0jLPUQ+&n-;&|m(65z4zi|S9Bm(SUp=&rqE`n5I8}Kj22J%U+GV)p z{|!#Z_Fl%SJ~342UXzb8S$a$|S$6Jve|ImcwKzNbv@x`h0g-v7oEJwe;3aAeg?1b&ckT{}=pnc6 zrWuWx^G|d_cF5e1u}mC2qt`Gt>7uxpu8%j=s4wJecVlu$+bZ5_gmSWvsd9!E(NV@o zJ}rZAP`@jFOV`=a2Ir?Rye4;vWZ#SB(&M!gykSI_*#VR;Ky~XNG(^h!HaC7*WYxOi zfJ?uxr=8moeJc}}?uc5tL+U1vXifVOEYG;ikCtcHbCTs5GZlqtA~x`$wK-juXX=&Z z88(>t-}P+Ma{Abef^d9SMi00}jx9O68s6jE1zLpT3xg)hf5UL8*7JI}LC+wdL+n({ z*b9+h7HV9Y(@bXAzt0y?lE$G*pvYiRZ@!jm5cJag+EWuK$e^~ZPRmji$AG&8ijOAr z2@PVWDo_RxC{n2x!Vbc9YAYIBumdhoP9o+B1j?WU3ew92%HT;0l&)mQ6DUl&fXKw$)+QzB8Ve-JiQ~+Z zBu;50i6{*Sl4M@Ws$%mb3Fh}CNxIskOOiOIA4G)ih>*c|fUJ214Jl=5L>ZmvH6J!ebe^Glz=ur=ORo^NYObZEtVDOJq8$+5yWkM#I+=J< zRm@ORj5NP8Q~`TCWI<66Fd^5xge{G*V--(G#YJxInaPMY6fgHc*QkQ-SAYmDqVNah zw=ch11Q12SerTqeqJ|$#JJzcnGaD`zW=BjZgbwHkWnK9PJdvj+_I+JRU_NW8GJ_dT zTgIH;{L{AI+g$))*oAqWXU|_X$SYxczspu;I=91ALRDsNXlJl2x%d;_$+U-+HQv;j z4Al6|0N~>Qxj`X{WtXU6h4MfA1D`2d{xIhTf%|Db+Jbu0xHHRoHfFkL$AN;n4|H~y z(O%7koXvjo*?x}?huqdecy@+H_b^x@xY&Q5*JB#9O(vz0%8Os^Wc^|-DoBve7Ht&6N`Fs}l;_uW-6x#h9E3jY1gN%)^Es)Tm! zZG6f~zW)0uc{0D``?4Q&$={@c&nxwptkmL0Hb2FU8|ajg=I+(N&{LkP0ZY0?OYOnk z-PGGz4BJ~Z35}pPE|9w`^DklUW&z3Jhc1$H^b8BH&Mr0?^3MdL>M|EsW31IJ;ppE; zu4`fY^>98#x`Y==d7;32R$t@b!n&9hmH&mc>EYhiacaYZM6m{?`bW`cMsr8st;HIz zWvQB#)a;&CvJM)C%88gkY&=o-yLOY^1KmUz=(fax&PAT&<#P;b8*qQ9gWDDx+$NBv zTJ3cKtikI?VsP6M2DiQw4sM!*H`>RHZs#P=rBHU>=vGetLz2JWx(GyJp_KM){BIfG zsy2Dm@y53;#~a@!!}vD)qtt_H-TepKvoFwtP=ab#H$I(asXy`>tvhz)gZ12F#hI=~ zn>gExiM<8l47GQjIIGPU0RCBKEn+`s6aTtaQ&jsOrq*;i z#6&>7@lcB9mv+f&lW$0i6OE62>Ih>>-@Bmn#|q;(cDurEmFph(kY32*UMt`A?||8R zt>}F}EAKtfKT0z@E5q0H=eUySGj5EeR>JHvX}5(& zRg7$n{-d>5$`+Ou(p$a5X(9H_d;~04*w{_0!7+qqYoK~>8%3hH1WFF9D|@t*h@y6G z;tCp-?_ndhcUaoI^%8R6tCWw4Ds^8AHh=7}*=RKSa zJa^r@t2MHA<4rui%nW?w2G$EziLA*f>QLOCaQ9ydIHW6>`)fT-0}ZValw@>Su`93d z6*XQ*ZVg?bchqaVuT24KMdMu*OdnW_B-PM8WY;&GxC-Y<`MTa)j_B{1_e~fmFuPi{ zn=qoUomQW{7q!MKrJyixmGy~cT1dmr%BRr9;i+1XQIujWoM~T!eOzCDXQ$|K$DvEsG6UN(=VOQ>=?eVjT1Y=d-3oPk$d4iYe?C5 zRF8S?Gc|iLkzE$7^+oEkqCqob>t=-RpE!0rm&iH>3lw%dk;Bh=mw>m0umMCHn)M2!UirZrH}_MRYsv|H z*YknG)?`12ohKF%Y_fsv1?z=mZ_#69NN?Q|UKZn1FU!Q%#;h2Dh|od3U@w&HDPKi( zLpWjCwdKqg6Io+v_R_<8;`V{ji&pMa6|BicJj;Q_Z7Kped%SzqkQ#8WRVy`-Lcz7~ zvao6?&1?l#Pk;^x0zd1B&t~fu7HsffsY9fK6+}}RsxNtIjryt_)_prwW~YXZCF0T# z5CjH4kBQVMEleWw;@U|O!duTUqsnj$E0XYxa|{*bzrZzm_frhTyOU6eCx_S~ zQSB5=(u*W@jD0jgS`aDgjugJz0=KhMsE#TCM|jtuIbASdoli94lcsE)<_kecZL;mA zmU^l>TX!#_{}eU4Q5T}j5z>*)~(vFid--Ff?9F zE*ul$&&GV2%s^>FAEi_^;7jg`Q5|i^ zvKb_~B;1-A)*kVnBjUReLiIW=tkxW&ai#BgrdYy2RgmnL#sIsj2~)8rQN~pQZ%>PT z8ER`*4qi!E+N7n}bmGbhZL7#=kN*X0I6$CxvggO>{T8avr_>%BA24jSD>-0$Ny>cn zAKehWW8}j6Aph0tgZ!_iKZE@CKj!+^I`RSw65f+yM_OmE zyh;kejPtvMbf;`rYjOT|iYZoYFMklDJK65dN2 zYBMT32C2#qX89+i(K6{M`2No{Prv^x-T84j=cg~z&tZjhi-YU-IFN424he$P~L)qGAOl=j-#I~_9cHxtfz4^}t2KiZ z6sL#;#raejv;CUbYG|-gp4&{lg#OI1Wt4ai9;7rV*R+)tMM_TH=2kV8(w0C~L3A`t zz}Oqh zO|MSANaZhv>6fwmN!O(O?B^3PLYeEyarL8%VK?T?ojxQsS~skQR)1FdXh5FgL+V1%|mO$j|g<$K|5&=5Q?D zi5REi#@G;=+!e#+7oPa1*BUJfF33TWVwj)R6}tBSLwtW&(|elAzFGUnSp3Yu{i%p?S}PV0aaAkv^@RFvgf+8 z@9Ofi%ukr`V@Tq}B)I1LAOY)QXy~fDkzlx3bnUSuNY-*j`QFx&EmVIo@5n(6r-Ep5 z^XBip`mkHERJ@?J?o^PrAcvEtXrw3AkRq=IgVhpYYcUDN$VY1|>~A#w;cC>D0|+G zk}_ItKof!~F_6n+UzC9*AUkKoI;0lWtmFvg!faZ?(vU<)Cz$qMTc+1A8K%ga0isu< zDmXHVCCPVWjL?nYIyEpFP(xLQ4RfnvulPV`=wk0W={gzCfLeiLVI1$!uqXo4KdpG= zVrQOW5xsnLzdqBPi@xq*?qqX?G#r@h%1vE~3X&Bk0Z|kZ{yX`~c=JF@QAa4o&5ZjM zQ%gPu1<|HT_6c?BhSriRXe{HUGEq1EndQTMFqAcsGgKjafnq%FYT{!Apq0Ct*CxuW zronwGfUzjFl)6P^2|N9nuaaU}O7n#ACi7)%P+rfbjGat|vq$rX4J zoTDK@|2sWy|J#?_LYut+#K2^80zclTUlhY2`)}H;MOFkJLtT2c;?W3zb~0q!B|s{B zemSt^uah%ccbk}aw(lBCD*w?w@OwgCK0|?7vW3bD)5Eg$@^_z2&;|=Fs#A_w>x(wU zIwqT2I#~F@XOngLPoULM*7AeTvB0t}|2I&2LA9OH!sktD)*B1iXsUl zNdyT=-1U;H=Xo`ILb%g_hJgYcF_QGCp}^AA%thB0yq^oo#PwHS^XH8ZG9#qbPh*jGRZFdyQbUw>{&Gy9Pt1qO@Y+xQ&P{*)#l45`O4&mr3$RIA>rnfJ(0nz) zl8QQ(tC|Vvq_vZ^EPbv=)9KN)ojHb@*8aDV3Doh(*%gEC+uPXns#?CWZ-bq}q1Z#( z@1c-95@pV{5NsFPxmHLpQ&>&~|A^H<$JyM%f$>W!o}0%nsrV&ht&*8aUo}%H?XZYt z)V@7F%}as#?*lAsA?ZlT4}|y=hj~-%jwEkYm^Hzt~IPoywVqnrsvhAo_7}yzrrY>?es)1p`6&W3X<>X+Os?T zWQz-{@m3SM4#-hLw4b|3vrsE~agDTF^CAHTT@?3l)1X9YDZi1hF8wxp&yOH#RUf98 zQ<|~n>EgWsZHRJkyr+B}3wKb4#oNCBTm1$twSKLxju2~X?Fxm_L}J@D9li0Cnogrrxvm%_;`tw?SE>6Q#B|k99#0Z&}a{8MVlr&FMM*Zq~>VKK6 z1J280;yKS^&AJG4h0?#ZQ=a|Ja*z?J0cG}+bt$?hM6Btj;s+{@*Uu{xS z`~LLJN%-IP{O3flt3biIUJG`o7h|mJt<7#`ePeC0zBL9Hjjp@*XXkHNGm@|%*k_!8 z9;(z+ss8Rr*KUl;7Lv?(V!|U#T7=t=jc|5tBJ~n%NmYc=^6``%jxljuFMA5U=Tc79 z#?|l@%RTp*jkLXj0?}ZQuVhWKk+n%<606sg_Fa-oTeaoReLGm1T24w>WW9^e+iT8* zlQqhr$r%YYzE$%x?b^{+8=%VQuJvmR+V39ZFXSzgw=QRAVremQ?>kt_Vlh{S$l13e zYa`6rwJo(Krdp|9t$7BESFm?h&Sv9i?g;37XDaIJbaNo&96n;tawPoh+LQKoCi9-e z;qKFOj>_}lnXJiJaCU7jGkfS|n^fF&)5Gb3JW2kqwb7QA#ids>0*&XtNjA(H=uK9f zw&6UKS>sH4rqdSofL3kJREH|3vT+6*xNAAiG90D$=JXU(mSTtfowUEVXO?o#n|s2- zIPECJ{nqw#sSAW>($?uTBjtoEeTUHwGZ=kHy;NLyPyUyNFdKN|N%2NkWRZ@z&V!ts z6isFv7-L(2!Z2rdLL6 zj75ww5=l{KAYJC;Y0h}cnG%yFHllR*Nu8zP#0WEB&0}GxW*>vum^H1lf5opsf~n87hHT9v#(rrr~1gJ;Ffk944Dd-l=Ey zdo8yli$N`1d^1tv|2TpF)3D(Lr(OC~{;m1o^+=*X}LG-Z4)$kbai#=#Wwki2Yvu zdEdeTr;asYeYiq@-hIqh=?9kArJk3MH4DZ!I0=#AnQ8a}38BqjhOc?DrEWtiA13Vc zmW7`+xLR)4E4M)iJ6QIMal3hy#iFok?_18snuFzltrogLL}Up3s{P5adz!pP%NqTF zA5$B?6ms{Mi!>MRhnWpq^3Y2!(PzzSO)%wkK@d{phwSgP{e2+yc9=@NxI0V|_IJvP z%n#JSSK-YC+OS{)ZR{^{AO9AOE;Jbnw-ig)Oyk_scw)xW%~{^h*xyag^`@3KdpDeUO%-QGSC}XTpEX2q4UI;v{k ztnu{ydMh7qX%W-7rhIPnYNXr1#r)~H%5_(o0MRsB z*M+oHEmhoE)fcu6RHH}}nan2NI%>i-<4#$u{#u10q`zD#l?aE^ClW(R`IUe8@AaS7 zQ54L8jdEibjdiT1x^n>3gm;e$%YuVyRC`U9tbNhVoN{T6t^J^A@*d#E7+Z`$6VjFy zxVnB8ZG zw}!P`$F82XBQhk0Ai9|_O8lPChMZJ3PyTz?F*q{f9F_kMa}I&nZ$jv$9vms4=q#` zm6oZOGbDDY)W)ZAl>{@E{6LS(vxi8o%IHhG2hD8|MSYx0lB2A1mvphx)%aR5aw$AQ z|D8)NAI?Z}y2e{hG3YKXoI~rYOB=%#z1KB|Ic(E=ZMpIN_QsEtxU?2!fwS)-h^F_B zT8oGeg%@%s!NF8P#^>W&2KWPNJy$5A~spc3^>Vcl-8FHt4m>1Egr2HrN zrIT`sl*Cq)2}`}DC;uk$yPV_ksPJK`r)5;%(ZkdQ{hz^rkIR@wkZKOyiZ-r?Hm-*@ zt}}Comt}Ut8A%D%&_&r;*({xOxCcXr`G;NrSQg@)93{Y(X1JsOFHCS4h}KZ;f61l`YPW--+14bk zO|s#$PU(GZh@A8lO{5kz=m!u#tO;lqO86G^1+4`1Ehlpx*3s0Qr_K-y6xi#_oNP%k zNVJV_9cMA^+sU}buwG55u|{Bh?`o28a4R0S4O3T`4$VQ#Kd6~2*mFTqc!rs}rix21 zs1-g{TqP#>LK5bRtMnChn7JZayylAJNJs6g^yuh=rhpdof(!QLD!8mnZT&HjVV0#B zGVy6BBU%?W5`*#MB%zV_oMF>VQTil{fgI-4K+;#9DJLucPA3C#wdi;zQ<(P!)P8 ze_Xi?MajyuxvgX+I^GIA1VGf)kf>U4LlR~SNut&1289nx0=CbK0YtcKW)XL9ayH?+;!))GEb^?G2ki#BnxA*+52(P`^9MJ{3`RsEkC*WyO)+xJrxiuJYwbsv@WnI6*reFvuHuGW=%95rs z^8m80Bphq*`V}@>y8sFe0f40QGP-H=6;PD!(3RH0pk5lntf>}hNLkbsi!v#WmFxJ) zLvEX|pn=&HwVY0XFc>NRZnd~x$)ub*{X0|)UD4`Y{%`1cz1QA*!##-nQTAWUoXZ__ zQO-aST@0ef?W}MXMj6{s7c(K#c5c*yjOjM@s91HI=eg zN%Bd`u{hS54dAi0qc<0|wXfW=xs|Qm{P2JO@@Kxa=f?jEr>}3-IiaM3{^M)OSM$U5 z+%{3r9CK6xm=UHo%QKO#y@>Q21GLYY%+@{4_3JG}lUm}vFT{WEyy%+JdhB<5Y%Ro} zUAr_yUNbLp(Sd%gM`q?tp~2lm|?$pkQwB%=$x;L`hgKg>@y6+25xg zY(}>l8(JeU7CvNV{5HDb2Iy35q4h`JX`4+*)W(Jzl;q|X<3wRGipD$dB?=u4+Ai7> zQ;%$DjS{~G&1r&XmDwqK66x9NV$@Mbl0hd74uT@9El~fY_1FB5=C)#U1iMNh=81a`TKrV*#cZRnQ2@ zE#7ya8KlcMw}uo8f>0^El!(h~95qy9K+7dw&)kYXd@^5()WVBH@y*edW#YI%Gn9j`iW- zCA<)S4e>!uOd&@AgFs}%k5T2Y9xA|6>pNUdC8*irkQm~o#^SWeyHql`MvYGS$M9@0 zQH!fKP*31|ALkM%@p?N^#~8;lTrp~A?dofrTaaz(+SNCc+eIpND#;PcsR~d|3O`B- zvb8U{d2?$xe&p~;^s4OEYnDi$s#a?8_2Oq$q`PEID;e3KUBJ*Zy%!G(&?6$Z8xQFq ztf)G=iFgaUAGM(xBkLPXX>@7M9%ntC>_=py#6Oo{PY=%rCpNMs#&Ft)^kyGcQm6JV zGQxGSnHFR3q84LsUrx)SrqblGeJ|Riw)QQccCv}1qR@De51lqrkypfg&jQT%oEWp{ z(-!&-h9q?&b#-Eq)QKMS2lNRYpwc-*)Qph7hDjBy8Yc-EhK@;CD{r1yPdxs< zb$NLd>lRwnVA0pnR%^VbK?-V2EHQy7O^qoDtIHyr`HZs6RHP?2UIUS18&oY%*N{p! zF_AI(>!@Pa*x?6o8lU5A0S0_HNT+o+8tZ4^CvmU+FJTyqj6*Tr1zKPue!ZP#>=IU* z7rmz|!n@`jOH*_eyXe_0g{KsAP{mDa6RZY+gZ~}+L%dWqDYBb%Ld;o+QWe?HhR;^f z@LB3et?@RyUZ;s~N-r^8{dw)r5|guon!a*`D7jd9XoZHr^pvsA*b{=-{#4=(_-Qrq?L`-c-MDU`W7qRgRCj+XBdB*|P z?w0}UP;0743&59%xGHZsw2r^y`IpniF=78c<$g3zBNA^2S%YH_z<9z{*(yvhilk(q ziXf;#YUF&*AECbdd4HL{|70OlWFSOlgLqUBk2=ILCHu;8O1mv>oK4>4#2Z9SU6IQ_ zOQDfVkiwkY9eP#6URzf_Yd2aqGwEd+&kLv%qtVZw{EghrJoorlGrx&>+QU#G|NXQ{ zKVf@^`Bc)_lO@?2Xfwv~sBF!#|M6*H-N;~q`I0&pnED5}0Obp)EWWw9RX`yr)q%{% zemXCcU^wn47L2<;l`M%~uQOQv5Sg+S>Dgv;>$quOmCj4sU6@y&_|xj-gsEOR|I@LB zd3i12#JjOlR^FEC8SBP7Fp&rO#G+houolde(f z=wk|r?FviMNDxAejmW@sLy`QaR&DKhn!vKcuJ!k~)X_$?*OwMa=Sax^6W+oJ0dsHK zP7D9%j22d#lxxPdg=$X((X-2E`#A4{6pupk-!f4SB64ExqRpS_fgu`;h;KU_R@F3L zhh-P_uT=LYGv^S0l7P#Sxy_Pg{-&9P&PD^x$oXC;U^OLVHV-MO>gz?M#9OPcmU(`-{S=!fTCvc|o&thaM$Tj$@5Z0EVyU(FG(Kq-!;pGQ@=7`@sgaEaVq zhW!VtLybCQJaW?F&Ot(~bFgcI?^5)#XfBOqufFACzZ&%?lofN|cF<@SMwud?N|~c` z5rPh@H&dv$-MFJBvSZEykQeVYHY&ia%g)dAV!Xw+N4kuFt6Dv0XPl{5WRa7pzT+8a z&32}=k(`xdPC&b<2VcaA;f) z145M3I=Uh5C^tU)V#a9eh3aA48?eW?bSeHvxq;73mR*?G2}8Bq_tL zjO00f1D~6m?hTCRcn#bjUH&#~P||d+K$Pv*o3uQc#{PGlgYD{*N&fYWE{uSY0fVG` z>^u{++Ixp_bPL|NCl&XcDIOos|0-=VPk@11W^t**SWKe38B11IS2^%XIVRZA*HCLN zOwIvH19{_?g~jk3n~I1xrT+By#dC>NTl&@QkU&9F4*D8gzEGnhF8wTMQ7 z<=2)k`OU`TKc5b7EN7nhY__roCtX?3x70cVPKIof(9;-_k1$2~)Wg<-L+p(qPPiQg z7}AJgR1Mp&01duGGX)z_CqKp0XQi^;TfC67r zd{cx;=PVz11DPnwxYgtj(yC@#zL=_8a?bCIY1#Iw?f4>{PU-kqZc)D|_u#XtJ%A@v zjZuNKdTQ?Os*%R4hUe6)cC=G9`3_mtzKid>Rw0FLd85kn3_h#clU6mNjH|TyAEf0& zl<+BQ!nAybpnuBB{d+AqKS1koL?|t%A4>DNtekq#0`k93%Lg7}pFE^`lCPxtE?)^& zsyjbV5gt^1e3qpjY}+o=w>d+cf_p%G=yMhz#5vONvr5AcOT#ysq6+87c#Gec@}Rql zdVY3kNrkEis$C}nWwr!3T@d>e<>L;~mVbvs>oKkX26^6znor{x!4$elHaIgD`|Yd;0V-U{NdqWrl-%*x+( zh{prO6LRMaVm3k?1>%EMMGh*;UWb^G|8oxUNPu`$?gTRmsuLk@!Rq6U6~sP8`GP~V z<$uT__6CRt>%t^j4wOF zl>9S}ustB$C3o5orXs=~5SDciwkgIVjxZ_zV~%iZK)6kA+Ylxr!hR4|br7~H##bF- zLjD7eaAQE&BzMLTCL+Qi5PCWYN2DhGts~6If5;J@HuVXXkUMJ#bB)LnAoO++4lBmj z9bwjDJHq1u;R(5OhAgxCedH!Fyp zit=rTn38|aA+`sIyW~zA#8iaX1H^#}Vw<8o?GTglf7c;y4G_1Q=gP0qPOaa7` zRYeXf%CinJEC0meb2WNC9w45OJ7*BH5#lHicUPr2s3i$m;{pVB-ichVr*5#mlDK3`R2x1xN=A*SWO#Ubts z5ckWSGKlF2u?vVVR1iBA<--m!CI6&DY!483$(=TcsR*$Lh=(hPZHjWMLrlv55r?=n zK-?y`Z4i?YVm}Z!RkYZuC?9o*3Hfh#h#LdMCb=^PF%cmS0rA@v#E}7_+~E*&^55wY zPs=a9kUMJ-a|4ktfcR2Xk;97e`wlTH|CB>K9w45OJ7*BH5#lHiH&>-Ns3_YVVn+VE z9paGy@u=L1CFA^^i4eCe881InLF`kMk2^$L{v8gnH$XfnchVr*5#mlDzEV|Wx1xN) zA*SWuMz->4wADaw5g zF)9D29OBjhahu$>K}<%7{XjfkL2Ol&KXHf&`5$nI8w129xibba5g`r%@w*i{kFb$Z ze%c}C?#$#6Cs&f4lBmj9bwjDJHq1u;R(5OhA~phnSLo&LOr3h`Z!Y z8^lzE*aO7hR}kA2fU9ach9MO>WyDCL_dtAih;WY*mzhafk`|pK*vA1H>k| zGX^mcAr1lYHx;mGWRYi6x%7-0d zO8!ZQ*d8G6k~?h>QxReh5Pw)fY*Un59b!`ck2u7w0pd2fZG+$TA>k*$jI zQHPk2|8|GCF+gmRJ7W-BMRABjKzzI^#Su2!$~zo_yC&!r4)L`7;tRR62EnD3Fn$1W zM+I?MQGVYcX62u9h{prO6LRMaf(tGVaTJI@svr(3%65m~$_jdgLp%~79+f-69thQm z5VxE@UVfs2*rzBTcZjz9I~-zffOt^uq(N{$#!GQ05U=h?oZX7?2}hWgf0rZN7ZC23 zJ7ox57IB1KAndOSu~Sh#=@3)$Pdmi+0CAUv83eaR9AXa;b5)yeQL2Q)_`!E+_oWboyHONgV5JO*s2&`b%Y7|4>-b&0b!He8AF(e2!}uz?jRgt z*SP#!N0^iUkRv=TzgR-BoJu{}WCC3o5& zrXs{1ApW8%#WqEG+94+8|E@#a8X#_y+ct>F2(cfCzpNm(D$2h&#Dx6MIK+(sVw2n% zgP4dAhk*F!sv<{pEaiVV#GL#`9pY*E#TIgB4T38{fh~aeN>z%(it?;O%*sD8=88pt zctY-+L2$7-@P$fIK^#<+8^>I+kbkp7a0bmv!9g-$&osV>5VxE;US7~)&V7n;vm>wM#361C5Vy%~8^mOU*bl_lDq3z; zl#e>Zg#5QV#Ek)BliV4Dn1~REfOxKgIFb_O4u{}cJ6eT9JT1SNLhh_VaB1Ev@)Qs= zS%(&f73KFGVpjeshj?6mAfAvrXAs=0cZj1ve71r(s3_YVVn+VE9paGy@u=L1<;D~d z;uegW-c&*CQ{gUdIK;I4yBy-a0CB(E zDTCm~k3;N|Y1IxXb}Ggv9broTX-C*DKZUrE5(UuCt)VJ_7Y0*jjHa>m9Q*(f!e8^L;#Y@fKgfnTW*R1ob?A!GoHBRiO<5Bw!}q9yobb_ ztE`t3;So>GDU9+lPrcYvFTrVB>O7?0PwK^;thHGERZpz#(F2}1^Tair86~F5{)kC!Z8t@Z_%-74iXhvE1)QD!KqMA1lswR@STw5ose892zhxYqzECe?}V%lA#dx1 ztO+4M-wC-Qgskg?yf=jWRwv}D5VDms4xvC3X$ad^g-yn=omJRW4BK6WO~SUZLttionu z*x@Q{HijLk!scSw)>>7*S}b1`HW|ZqR$)^yYEVu zE5-8l#PU^PlQC>(6*d*ac2{B3F>GHI){bEZtFW0EcDM?gjbTTsu(=qvm1D87e7&)J zRoG+<+gXK8#jxE~*mMlrSB14>*ug4nCWalZ!e(RGkt%F1hHdSu%GVdmSA|W+u$@)d zR1Di)g-yq>eN|XHh8?WJW@6akDr`1}9jU_RV%Sy;_`*ug4nCWalZ!e(RGkt%F1hHV|J$~PG4SA|W+u$@)dR1Di)g-yq>eN|XHh8?WJ zW@6akDr`1}9jU_RV%XMdK$~d9@>OAzF>GfQHWkBmS7FmJY+n`Dj$sF@u$dTkxC)z% zVMnU4xfr%}sG{FcEMFBi8N+r~VN)?|cNI1r!}e8S?HG2j3Y&>xhpVvJ7H4gHXXzERblNIcCZSYiD8GUu-O=PqzaphVOvM4@{Ppu zRbi7cY-bfVO01|1Cc?C_Se zLH#Qaq4M#=RK8V|tyRaS4=>#$ZVu=b$qHF((xF`)!X>6(z3k=s3NIJvH}?F>{_8kZ ziw!J{9bBg`gZS#^(>2-5d_y&0{J(<3->*n>s$au=kW6p%6#X)6&23Hcl+J7>X&6tk44%R+?63_B(X2vXu?ns~vp(X`XvWP386s^s*DJGDuj{0czER zL)Z3vl74V;(bB5k1ux}d0qpguT^YASu&zC4aNCcx*-Thzq__3x1h)WBIN z0vbN2^sUYcu}XFEgys|I|2pjbsgeA~l%GrsI9)#iPp_n2D><^fvep>j=c?=tdETfc zY2$Q$m6Laec?2h^!kvO%rZYSJ2B3~TQ-2*{z5R4vXC38-c!DcE?`I~`;3@*=W_JpL z>sMtz^k+rFesd#h>G3jX3{g0vWB!LJR|4aN1;SGD#{Z!P zzlAi%C7H~w6REvv(TAYU+DToh-ORs@7i9ZI0Va@|nQiGmn+tM@_I4-S%i(kG%JAnQ zrqjDfTmD|Zt%^M$|Gk4qng~^}E{as6h`49XoMDSN@36?BmzlBe0KiZZ3Eg}2U z$n%dpPoztES5=a2p(LFn-;g!qjHt~PjZ1ehS2Jo(?(hckONAMW$!ZVY3!xJhRDMTF z6WE=|tXwtTOdPTo`e4;+Rn{i8Ebrm{99|NMdD@lEMXUT181iQK-+M^aoTHunzDlGQ?3~XiTj>P$?(+3vipqqXADU9?b9p@pPSa z6QigM9#DYmJ4K;mP(qFmj_Z0ktZtOe;d(gTUcu=Ej@dmrfNl$m0sw8%qJS6nb0D2W zDdGwRiG76vz(*@UZaip>rkvercZ;)Sa3BVa>$>sR3B=sjs_Yy{i?fPhvaSxdQjYF+ zf&663B2Qhy&pBlU7hEW1{oG`wib%4eTp~*i7Ppy*?YcX>Lm(H%ng|T;LMktz%X%M< z%;uo_=-;KwWgipEd{!oiNkbPYp+sAuv`};i6ux6GLYKtNm#afyp0Ut1Wr11+ykr`7 zPgspm2>_{k%j6xkC6k;gQ&^cmb(k>>*~0!%iZ4VMqi__B2ohiFnJ5bC3)BWlq=7~@ zzpaesQyEQr-Fz+rxVVMYUnfT8=0NXY6 zWCdU{vYa&Yr##iEpE*LKmSk)EzrvnJFTZs6tq&)m`ZTc$oI({X`pj(XN)*Z7b*=t##jly& z470^8o7vnvk{T*kxjoC!phBmNZzaQJc)_bw7gr7ZzDCzNqJV`p#bN=BaAPFXi}a>3G)ej zW;5Wb3lOoC`*y)7-JAwOr3=7G{(&<+Hy+U{pA7KI{TDnKMX|T!V)-uzLD}!pcrf;P zUW%54#97vq1$ZcWjvVFEk7pHDnN0#p083HfjVlTy^EnxoyU$I|kvJYil9@QB=}{Ie zf$3d_R4}tbuB^m?#aB4|vJh=Z*%pJC^wF~c<}>-F%u(|aWgCm-`AE1PuW(+N)FYYb zgef&%(EVtOkY5g9qZq+33##2JeWIl)Fhro-Z;%{*CpZ0ZE>}+$VN_fCoRbOj`|BDi zz=(*10WWdaY8)iSIXF}l^IZBi#4qYA)>I%Y!t~493bVCWy#(0Ze7}`LFA&N1Cdcp6}7R}R^DbIX4&phdiCZ&sMC3`MU ziLt=A;!60iN-h0dGNDRc3#la=T1$;ET2jE{%0Y@b&l>hY71$guph|5`wx&c<=o&Fl zjHX4+3No;q0c8|p5?C8-N#aWTZ)wts#2HvFbEEldT76inz;dt#liFoGm4&f6dII#m zR1X-)_oC~#HS847csQ)A%?K`a8&mlrj1 z<$Xz6cCN+OW64e-ixp{ck@Lj2Rj@BqPJ^#5KUdjMCCmz|a%8A%m}qt~>0i$17PFyp zb;YD|&s*TwizP`jl&*a*b_UgOF5?e^gHMAs)h3zLbwBX4;#|C8`Q> zLgf;#oT&ARbOmB)HTRW^KKW%dL|laVk8260WPkZw?dogt52BE0?knS^OZhs+$^nJ* zc) zK;MbE5sGzlBQbv{+$jF780Dn6kwdz?QP`#x^{PEj$g9)R;bOgwNeguS6EJDfI9Vnw z8b2r|r8wABd|@Un8Yg1Xwr_u8ENB^>WT#=gV3f$H6?$vbw2L0sDnOLdaUQ8q z9Zq*=P|oX9Sp_5zo3s=xS?0f1_^%iFuO<#l&0zw9^j+rTAn(nLYYe1@eGJuO8pHXz zLPIikX{DB^zTADdTLas{u`#fn$3IgbK? z4BaT@pVt&9kyOuiDp4ElI8X%E>B`6UrTJyVE!2bg{|XGlK@zarX-l@@DyCp)wJ2^8 zXF&Sv<(j=W#NA{v#Ki9J#>%gc!7I}|{aReY;KWZ-wq7=Vn(}MqxV-A>R&V}NhGad1r`59Su@mqRd{Ycty|8+JJ_~mu8Qu$% zePSu9#|uG>=s+_!LM9B42d&-f=W&XjbBM1|QBtE*HW9%-*lv!|L!AZ~m6?hbJad?Y ziXjo13v|*JY*|p00oTO(^Xp`_d47X2>@n#sd#=fEC#Is{(Cl@ZSgqg0CQ{Yxb?9LY zFH+A3TH-B_v#g0lQMEj~KHl>DI>nZU!q)P}C>@hER#?jGEx$xWx0WAKamZw-Nfi)m zOzWugr7e^O6g5q8P*gM>UfRVH{l(G_;q+je4a<=soN$m%3^7nNSP2=33^CvgG0?>j zw9!I_a7KsgD~4dLy2B6%RP={pKny_+fgwgtzz_qHzM*UjSsSG8D9=t>&+ zVTtjB8hU;c&gX@Cex0^&D5y=5zs4Ibm!PkO$#AZjE6)yTFc_0qTIS=yF@kBZI4!@A zZg5U=x{G}p*7himCu=)$G)(PC6$T4Z*Nd9VQYx69|Q9PIoNb^_ccaW|#I~Ica-yp3Y=8yU3(=)R* znp-}Vp2XrIw+mF9q%l)V`()ZlFP+Iu8yGb46)bn)yi@CXxR=Vxy_Ntucg704R?}Jb zYhmL|cF_96E+@UM=n3LVwW+IuVG6Rm^cQOK|02V0T3*L+TmEtDC3V{iL#O{`dJy@i z%mX!A3~{v5|M0MUhD#8%;Z-=6nv~i7Wk60vnwvB@h+fzmukkJiADKq+gxl=vPnc2JvbuLVPxgb;<9Oq~6bMH6tUP(+_h?yX+ zt4Or2t4NpPq21n$GhxNr&$>;YRHZDcN(_0dwoBKu^rkCyrSC&mqEu3n$Vkq$#AgKt z%aX1uUGBV1LqNX{Z@Z<~)o?B)KCfj~1T#)i+Dk`p5#v5e}O} ziEH36JwliFI%SYO|>P@KEBNAo|QCKpJMXH-`B7tN>2THtUb+F zjp}hpPEM40GZlmL*aiRIww$9A8Ju^u3F@XqFD!|$;+@)N3ZXJifFSs4C27{7!BWT7 zScQdTr6QLCs+Em#Y~jk)LQ#>7s}`~i$J64>JIJt{dptciNy-eHb>(*-PxA{kh-77d z6qtp+5Kw0V2J@q214#A^o>HEYbypLY!YYVPK;S5ary&VsA(blW*o$f*iEBkiylQ6( zzGAGgK}9lKjKqT9HDxB_TzqG7j-k#%ErgL$`V$lgksM-vBtY{`)PS5cFiF*gW^n}w zyTICX$;W@v1}G@f0h5k^rBSLOjk{LXEKikDEm4(%6)4NV&JSV2ERqkB8vV}K7I&ku z9MYJEUG(H{Qssq^t*4(5j z_cGekwO;f8vv)3VT2+-B;J?mM|y6It)w0+$*iMJT-DF>hbB<4r^uvpi|w`MABDrVaXHIR>K zNNUtIM=7HN>G*sc2Ze|er+6pWiSSuhvRII9ztt%oXDhBBW=A^LsWC?Ts4+WkK>E~W z#uCsodZoI^achcRi7g`3h@LoW*p@b|b&M`6DO-E98?a>xxtH8EWk2edC|V(E#|0ni z_%sn~f)Xd1$~K>+#x*-4!ejYUNhJ4hE_xCAmaYsrI%PXzuD(yQksYDvtEoy@fE7;2 z1+SB7S1^^k7$?fV#W*fALyDBs1UmMIE#1XMU`C^3&r_OofnzUy=$99wo0pBIEHVg_GsJQpqND^2BbUMjhj~ z33?0TTc(_Zosiv(SIY`x!3RxKD}sSZ%9}DtMN3D%hKMOz#Ob&Mk|Y%&h%_|K1OBTb z7{98hB0g>~ra|{r?>8niWfPZFxrkI+RzOy6RzOy?6j0x4=i(YSl1X0KFH~rh_pe3^ zr4ves6|J(GZk@CGN9EMs` zWkuLBMc|?1D2iVrB@LnxR85%Hp(zcq`hM?W2$yP1DZ=t z#ko`lBq86Z;XD&N>U2x&$O~eplKeQPK*GcgiYriS8YPf)WMwKGrMpNdk|654NZRvZ zBEF142|?Re5A+=eZn(udChuY%QdcD*BN-p)+iW(w*6k^a=bFeXHw5`l`;O-@X7$K_ z{--{8Z?24eUXe!xnMq00W|Xx4V@v82rE7I*!pJ%=dxWP@ z`+kzmeo?9l{hekSVtTL~@hzXqhp7+RY1|v{-e=II2*cBnq7p=u8N@dioj&z9G=t&E z4@td~Jk!u&Cc5RrI7lj5c7`0Hv%F9S6GZ(=Q--SKBc>Z%rh#m_k7O7xNRSB2UP>l# zi_RZXp6pbv;!gage5ytV%>go%N;W+3e2Nd}1oth%e15%iiY;PiV>v_@zN#j!Mw$jL zjs@l7bJuK8!#H4_ls31@6cAS0P|6|>dWZ&85qQcc zEelL*q$QOUm(7|%qp?mulf{S%p>C`_KU?6n#fe^8&Wwm`Ie0@gAD%XWr-M$3{>7KZP3YwM+i+ z?2W$L92@?lyA7jZN-uJgR3Dvv@*&0x4i3Dr?AnX}ZMnvp}Y zg%_1fcwiz=Wi%nHeh_qTQgk9Yi`#KnW&*Ti3p{#n2JWkZtU*H7KL##M90b4&iTv;U zVl~`QEyFPL5R%y=l7u1($G_(I_J~U(PG8XQFefl@h|>B3snR?kv7-COo6LGt>fsqb z$WWekf_qNY3H2hUfF%k{|0N4*>YR`GfC)*u9{%jii@c5t8rTcqEOasT$d+#$+z0)zZt70nqC8HYtrFk0@f~Q)baa zxA~AOJ`XE|0az;>SDx%;fxoGWb4T)TG_BSWD!U{3p?pc^Ow!B6j;c7CnUTbBbP&>D za2coGiySsT3#!?1HeuC_Amn-F4CbUD;$|=z1zA6X=77ejH4K<$mPIsr6A5c#g*xVb z_68rVjr>wk)i`-FQ*jZCAYIihMAAydjF*zY%c5!0$waO)?^@CDlol&91+!FTmuyQ_ zv26*(qCUTrsbwYWvHY5LO>I>0u5zfq3H=os(PmG#YN7-ffoPLyPhdKUdTNxlDR{KW zNPz;vn+ph@o#I)ly?Ja+Ux8SUZhyefKYx7oI4@|9wm*>CtDPISS35qUYk%eC*Xli+ zQR@?Zc}wcc+tOchu?u^2yYf`|eNWlNa-yQWhUc zWpPhBi`=*@;v;&5EV2!%%OVf-<^8EIccs7N#(jy8XuADOoz2S4ofWhomA0rEgK>ZiSC8o=}C9wwsgilC*WC)3z<0Hf}5p zq>Zo2M;&nE(#EGf)5aT1n|u%}@1wn>tr%U8>nU^HPTF{`v?+Xi@kD9+h|ft+2qiZr zB(W`XOvYrlq&_Z_`c!!vMd)e!kH-(NaNXtyCNM%tjfwFH!erev*!Tg8nPiPjeiCsy zpqZkQc#>E$Nr$yVjf1pld2h{R-}a;-Z;XcW0d;sE?YU8<`UtMg@04o~uG`J^G_D=y>R=B3Bj&mu*OTVD8CSoHur&2=mML7v4Qq8$|ANzA)l39S;s zZ{3+D{MIz#xk(7mXJx{3;|R~UJqgbnBfNYNE$^ep-XZ3_9oLiQ+K%hD=GuYlPv+W* z>naMU7(IgPjpo{e>n-Mb8rKcx>iCu)y~|wJGx3*VpaYK3v~4*R?RlL+09o>$~Q<1=sh@bsMf9n(Gc+kGi)K z8as{fq8${tr9}9f6IvyN-}_BR_}}~D_?y#&=O!UMpOp#EjUznY_9Q%SoYcSv(eggp za)WrV8`tgT+Wa7=VVLVCTzky571x$6@^?F~JIu8m*G_Zo!1c7bcH+90qM`=jy2)I7 zaNTOIr*Yk3t`3T7hqd*d%HfDs zX{e}^(#dgg-q<;&envN`g>}yB)nq#7z9&mh_u^b>U2~KCOwdnmZ0mf}5gWYP_*z2? zjUs)W#@o#GCb{-xWR46($$-93Sgo-PFU-gq$Y7aFFj&S5(lSxvnKeLE`}g1Doq?50 z-I|;_T+vr_N#^OjyON#1V|UltT&>k~*)v z{Z%=X%z|N9GNyQe%ytAO{XY5yHa5k!+sqb~T-Qfid6vmxCMm~OVTZ^^Py1&KL*rJO zDi+`(n2ZZ8U|7HfTIx5$yY!kXy&wo=%&{ZbZD^p8mCd;-dt#X(1-)Xk!P7XST9BP& zT5d9}v*V+#BbED6?Q|jcdh3lEQLeqMEujRdql>O|yIdL3)b~vSQ)kyGm?MncOdu9P z3Aq%4PY9Wnvfa>&=4523iUB1ITC+cv;n{Uz7;n@wb@Ay3(S@OOd)`wJ#t=04xgwni zu>(C6vk{9cY`lbn7nz1`ToK7!>`Jprr|KAEL;4yM#3e1Jxb;!OVmwK+SUHJII6$nGSgf2}76&M~*@VS{GK*Qljm1hSr&kD*xiK8GEFpIs zD@eWLRZ%Qqj6=yUEO5AL9d}G5DWL302W06P{AJppTr#=CQS_4OD_b9VNCvY|kScIl zDE4ABfet;456_^-O0`5aT8G%!X1gsULWeIXW9~c#yd$iG*nyPlVr8q2StNDT2#ujJ z=QL!r%o&6@s8r+QvDY9GPVk8HD$SXF47zkg8`*Iore9L{9rhABl!Gy0WQM_JVuc?O zcs;_*T?+FJ6ebatf*mqWEO#uo=oS2^OW~A(f+y}lgFoQtB|cQP#P6x1i?!S`!+8Y?sM6^RHx)X zwd(!>HZM$Sb|YZ@v@+!|v7jnU#*K$;Wn6$JEa3gt?ERGo*UCr&1kJ`^J=+;;JP@7Q zp~W>URBpH=5QCVd)pj|In;NQ}*adsrAv805tu>#2tJWrNW5|N!wPhP4ev4wMVUigx+?jPayXn0U{l7{E(VKq)yat+UE!=yGqhor6P*-)n1NmPOm z$t%6e%1g}<^FhRnMVhK3OFT3}4STiDj2_iP-C^9>?JFayGeD#$@mbT}#)FgAqt(DLh#mCnqK z+4lgOv_QnBQN#M;8nsGBSD+2W$CBcbyfbfPF=@v{NNdMvoM^`|kVA!1<1|=1rY0}t z^&r|YV*fOQTIqJtsoOomd-mEe;`_YfgJ&5XKv;-xj4lCcV8=d~ouX7P!Oi5|2vxEVaR|Ms;*$7NVt;3mb}OdX?a_L-A6xttn?ovuzrd z8(JE&?S37`McU+D@g6m10EAgct@N#+G_f^+shQsgM~faBq#t_o5^9IK>I$kt19fyb zMKCuNlwPTJ7cx^L^D81>lN<7H4zll%`Q4fezSrCyx(p~3@RQR;3zbg$bQ|Q@XsPXd zQ>A%|=MWDzdYH zCandUPY_s(SDU>EBJmM~BDtvpY$R9X{!Y{ z7S(!&v?_ULM4maK>h;sQ78II|RcQ=X+B^j;EtnLv7RZJ2PHyS^GtN#?RXSxq$o{6v z&&B=8QKX4(m=z6u5u1Bos1?W85`_l#Sq}s4jA+&BaVB}tCz^z$&ZSB;F4$4dCX%r( z9X?7F)@po+pdC2!p>33u7lreV!lSkKSZg6mUqT+YFwHH8&z#HP2uX%Y7QZphUs+#Z z4>L73RMV(w6j?fQM`%)$n4m-Or68AO!S&*6Ah4sVyOmnCuT6N*b`eGgN zv0Obz3V7h>?+uDTN0JU^N!E$KoL^SE zDxQ(`txAipwD^6}LRl&;bjNKblKhY$OSOJ#3Ux-2->G#$4hB{3#sH2NYA=Y!1gzr-PTSG<^17XH- zi_Vd4Waok*0>{g$K_n$UI9pXA9T57Hs|c*{5+!Sy2nbnRqR~Z^0Rku}Lr6whZ$>#X zu~@{?OE&b$TkHIhah)4ub2lzlxRh(2`=0{5zOW0E?DJY{z? z$+KauwjD-PhiUy>E<8*HahR)Z<6uD=@n9oM|KW92xS+MDeREuPidH|RsJRL^IxbaH z8C`7~W!%aSsmX_<&MxLicRmW?Z-@dBc?fd#MHWxw5qMrOc zkoChIf7jr%R&|YuG71!yCmMKnldYF4j-Xx;v{rtO&{RTfViKXGLKUl$-5Lmh{The| zS)h1o!x627&oeV2an%Pfhn~h!D3wYJ;)P@shl~E&Kf!8PEzvlC2bm1ZanF=UBe5)d z`PT8zJZYA$Tw$b>AGK`Dk%hiy8XDW_DVA)cO&OTvk7-O-8h%uRks+uSvvFNklB=lG?oRVu2 zXeJz-fC)251XLPrbpl;Ytf4m0Vri}+{glJS`X#K0n*!kzPLx=BrlYRi`t}z%sAzb`qUz83ZBU`YE zhK#=BR+r?v=Gd#O*R(knmuwxIqK+R>P=v}OHCwn*6tjxIM*t*^NoVN~%&we#;b*(D z1IMv<=RwAie9$KjE0?#aT&AZp5BW%VOui0(VNd$O&IujZ*woQap1S%_5F)6})lALa z6pVUO(4uo9zeGZwrAVlNWDGCG{e0c4Q(h)|$vdSxNCXKvhKQhw$!)j!*;G8qhv|6c zd5IB$af*Oyr%?AZ=*HBguUk3U6Tf{WMupIA)sYejfm?<+7jo!hR0?VPNf->x_a6pS zr(>>uM;w+a* zNLp#08*;;rY#6QACI|_tBHB8fZE)wuvIL0%?byE{8&zMb>W`v`PNZ%sE*r5mP1zpX zPeuMogs>AQ776n=8IrxND#*FbZJC&<-WyXeJ$45P+#EuNDM&*8d90q;tNli8Cp0Vs z(H$Svc(K#|n6j(9W0#%mRimUTS+qb9P3fV&$Mha9boLo-+gPlHekk7^`~?e5M)8vM z$lB#E*hp82rSE6dV~yFrpJtjb%;~XKu!h3I!lMthc_8oF^OIEKe1t}WB2F*W%{?a& zToW|WR%v4HsJhVB?bad|iDRq{_-8^pvvw(JtHaWtZ6Tm-*9wi}RoF_tEz}ill)pNQ z9X=q>(&UIvyDsF2HwhnpqdVh61FAtQG1v-6Zjz018S69_vkltvixxJERl?)dTuNtpHCIttxAaxS>2vGUOX+j1E&)&l zSOR0|(*iPEoKTasJUi>F3fq+t+?KeB`Xp&wCa|{86Fo_ z=pUmkd3q!SN?9URkBO31&>7~6D<`FV^zcHJH%|qP)K``KFvH%0(GztYYcL+SLnZYo z2KI<_R<}Y)Gpn72jCZ=IF%8)l$HLVU`t~c)i8-4Ws}hwbXwOgPYZV=-Vu`1UG!WrU zMoH@0OLlzs@{QbxChW1|iKQ!gXVHqIQi<)6^8p^0X{N@Kx~$@|f?}@&>{jf1kim4J zH3F8Y{JT)YlmKGZ4{4x2yjtm2@-@um#D_^UiC9a16?35J6!MeP4Xex$_WZJvo}hCU zHZz~7N44Edj!t3QT(j3I3G_QzyJ5{6iE12KMeWwC5_NAamFUaSl=%g868^K}yErMr z=+AGr)yjSLD|rwWRqd#&xQ5|!^;MMKk*=G}_GdRNqhh1zYm;BtK|RCN_*&L*5PNm0 zCWt2_P4omKj_e(Nd*rvpHEaNnR>QO{JbQ8(_wC3KDw{6G^@}|iEmS?BcTfEqPW_Vk zV7Q~W+y0Vo>6Vx4mo{ZE2G!n}YLq1Ah-IRv!E|0#Fj?;41yzrc*#2T#O%A%PdhE;4 zbsk0$L)#shRP~ssCt<02D1w3-@l^FF#a^vSF-$-CxO!}60q`Kz!x#hpNQYM99%DdR zI8#xT7*G|-Di(XDAWOa&HxONPyn8kftd{E8K(P5(e$F8@5b#~9fzSqH>gSXj32kmh z>g@N^_WLRO-AcT!k=SA`Rctm!;h7qVZg%B)kBaOWH4;}IKpSzT@$+-gL|my_S>oV9 zT8O`g<{@bttb7_g)`)ox-ls4QCT+u&`J4M|8WtaX)3Dtil=ro|%ry<)j+=&^CGDnn z)395Emyd`&aPix-X<(ZdbQ26%NO4B;(@lfD+TG(-o%1wg)9?r}^=cX(VK`RueDJ2h zirH%R!M6*$)bgg)xm{#uPSP$Y{+{hZ*t=bLM0TijyFdVBc&Gh7XusdIUx**K3$Q}m zE^IZI+J#$im8#4IW1I`1C4wpdWn->*U|7HOgP8aWj&-O7)Ju zkItV~mvB4RNF&_r7Q~uyer)$Nw%}-{R*%x{UY8LU*%cLF55fc3vn`T+12c|99 zEA7k8E7QYx#mZQ803t>EWGdSTRER2)Iwe+5)v?Kc1~q~0d{U1{IRf0na7n8_2Ian@ zl|kX=KuUatrs%0(Z3_ zfUrWNMz#Rl`bEhX^zDgP>J~ohh^D_6y&oHC9ZZ*lFv|UT!! z(bt5Xw`Y)6Tsa$L5S7%}pIVUCI;GQ?dQF=hcjq3jaPuzqvK4?+IFTK@sWy@wd$^kH zP`88grucOY5W;~jKb{il(M5N$M|-DcsU$z{_TeU)c8bS|5Z;z$$lct~T;gGeMX{SM z)CaWX7Ej*ygf|&$xc7OVo132Sj^;G149l!_OMA!f7woq~VL+y&ht0%pNzCpppYA0QAr}($bn3$Mn=7q9^pJuI8(g4eR+wdXy_u) z*aw3=))lYFBvDk@3b35w>w zq8#!-(q|r&Obuvq6;3^rsk(Pd zmi=RuYrD3VIy~^-7P2A!yII*8pzTU?Uq5ZvoPxep+hweGGvpbd^%CP*>vb(G`w{V7 zxgDUbi6tN|ae_5p?(7*vs10eGOmZSr@eQZC^J=(A&#NJtFLk@}*Y#+=Y^!Hv6wwvq z<_o*Dwv0o-YcFGbz7W1WGGNKn6C^ziS<(vF z&`FPmtS)O?(XqmVeLEmYFYBHpn}liLTCpS?l2dvya3e!aJtL&EY)zQ6Z#s&r5!3ly zWEH`c?@F~~u~b$|rmCU1Os;lEBB%ZUSEoB-y5-v~tblKifBmI9Fi? zm4FIMG9>L8*o!NZ8;ztgQL`1Drp}4U@KO`=gJN*D^%ColpG3pak`1Pr@tHQ6(ENZn zEKl=gu#8!4-U2HgPsDv>|IPk^$o?TJ{seb_3s8BE+qtdVXgx5wk-Q^;Ks@Rn=Ej))^v4{PZHVxCZC%`_ID5& zw@&E2#lHESm&ktCi#ib5e^Vm+e_~VZk^QA7&rtB+FofVI{AW$@E60uo75T41j@Hma z+Sm1v_6dWgq`k^OQS8?Fd&V;9Kra0~KAVu0!yA&+%5kj5Ffll6~-r>JPmX3KvJUebV`HpkLCzLvm| z@Tg?zBVve&kZJ{`rO=ru#6rD-uo0^2fY^Rf+7+3Jv+8qXG*Jp|R1AJ^P(Tzhw?*6B z^NBX?NA_5&$=D?K=!4daA;s3Z;ZKbN@fIqaG;=kI3RHt2L0^<0ad|<2>O)$GO^fT2F|2A7KsSt1tkvVv&;p0#K!SK^ftIED z;Q!IIe%WgsKFjmRR*bD2TU9-F?ASUmcKC=qzoQS6n?KJFGMTYs{joJ;$JS=Y=Ee>i zn;koLtf?lFc8l%P)NjZgreO9x?j4<>){MiwH+Ji^pgpl$2h8n`-6~~RFv%Ks z)zmYWrZEca=AV}X+Y-AK*yh-+z&c|0V1bQ3pbU;J<;+gtNabwQ0ev46C^uj*Oyx__ zIWqvAe-V@du!BcZ>0qy~Q~(1NRFVKRI-1sAg~R~R0R(YkDGA0esU!?{-zUP(SKZY_ zdL$4WBZ17&`-$pVF;}5W+M!rfhj-`L(}YW2lWdd0|A{cU5-8IF3X4_Q9LIy`doO>i zdef>b7O1)pZcskysJdAqIZpaemel=Kbmb~kL+C{oQk1F%dY$D*PZ%q4Rc5Rk@+O%^ zE9%DBY^xF(M`qk@i6q&o0aR$)*erjeG$ne@HBJ|!kt}*7oRtddU%7cDd?>oOM}Cxb zgw>VUAN%dw{c!~}E0jfe(DKT~=LMk!U z#ug>XA*yH}+DcFJGE*!t?yo0BZQBHTdF6cNKkjC^m!yAGp^REj3aP63P-^F&98NtQ zWAmb`qDgeHBvobmae@^NO1Ji^Yf+Ur4!%-c+A2tuZYuNIG`mSQGu0;z31<455||hRz2_`q_YRbLZA{MaPWOz5P zSvsT+7|=XdrxYI7Ln)L6Yhb02bpF+q!goGfO5uZ#yKxCl1&{8d$E0BiIy`C7&Ks*2 zqvLvEI^y>pM~Y)GWIkB*Z5IYa?f1K3@pq;g4#^aQtA=wvvgPrQJ@mD2-uUf-)0xy? z)BZ~F`2$phXIuMw?!;hO^-D69|75KCB@a;j5RT8P>Nl>W`W=6;s-IQ5DAD~U_R{^1 zbGqO0gX@0dobDGl(+8#6&3PuO-6s!OwNtduK(+f+Uk&RZb;<*d7;Z_acAxGWaqC}6 zwL>sun|mtGy()MQy-i|BgW&mBnd;^Yn%N@K z-@g(Iuls!F4u6}dQ5MFf1 ze%&2F3Y)%8yT|()8zE;3+yZraN)xX z`ti4u36}KiXfkYyWrtF}mv!$VKIU4R?yJ7%^BL3DRB1Y#RY`iFn1aNl0mfg^GoRn-3OCx>6v3(zc4%fdd2rJRK-S%35eUZAZEK9)PnHV>4*YOS%ET-4DjZfsVQ;vp`JjPcG* zGD>d&Wo@#Pu^dxIF40=*lA)UQ$YGu3AL}|1v1<^&9E+U)jES{N2J3=^HheW%j5Rq} zr+%GHzZW+aG-cOJTu(Kr?^oS5k}T5%lpNRD*a00Hf~huSIo*#m@4+rd4va5@Px%LrJC^Itc;kHka~C! zlV(*nt>EC&s4HeYu_aSN0!lq$Jr!apauX4=G*{m()MpcJqEtv0b&2OVGl6G4-bo<9 zZ1|l_uH4K`8{yO{T^n^!EZn4-4UY_-G8D^ZO%gbDsWfwfqVbwbv#j+-ot@!I_iiYuGOYi!jtlbPRTUSlT=H$yktVO)k> z@URoboQ9l~-;%(iTWnIzo$w0>DW!AuLz%{$CQ}j2WERbYnM&y~It@HEgQ`^Kw5NP` zd<|W76ZjH)hzcDv1Dk#BaSx)Asfzq^yBK}&Td9t{Bp-P;5odIdYT1p52b^@{s#WOXK_GVSP0pW+7Wviq# z(cGYU(n`ccWA-EMNlY|8a~2H0)XXKBj=JJjP6Lm3#*JK=3U~BN1!fKQpn@19MTIEW z){6#=P{NbS<8IGR=1BOZpPVb-YU0e6c5pf8Gab&>f6j+4Zmd-QY{mVpj6Yn%5F8#1 z|1#t-v&c*movu1uJ7nZm7iy_mIV!aTIF#39nWA>&TTsk!Op>)K;-Y$*BBtdCXVkO* zjb9iRG-sO4@H?E5Q4X5d`gOs`tzKlIY z4Q4^=u-b1+GKT=vH9cN@;5);6Znao9HDvN|;b|IiiCtuWzO8^T!}nk|cbG@(f^9q<4I~cUjehrds8d=LpC0Dtqx-`N z@!c{BeIjCgH?mt?Sjj3jdqQ}cFkyl{Px@@+)b1v0kWXQ8rVA`li5jg2E&D{=dy#mx z#;nwPc_leaIxiQ{Y^C}x))qIn#yuBA1iG;6xiq&PV8>;SQ&WcSxDc0wda2*yrY`yJ zks8cAeI?Zq4+Vj9YI}BA7SrG}Z_`s|{cO@<=}6{rspZ}$ANy!r`|YsM*Fi;8-|c`q zEPN7oSO}G{2kNl&_9rc?cZa2mu;7zt-eI|)B$(c+q?D9L9Via7>V$E0$g~%!wn>NO ze*XYFEOWb- zqv?_Hp$oXL;zwe8blu#>GE^+rf&IHIU?)0r+J|sRN&8H=p)Zw&;)a2h%&|KbKTxI{x>s-n5te<|? z)to{%U<*c&k7IR21Er0l*NDV&8(ZKQd{vq)7H5?*a}4PhYjR(IYfth=hMNDEcxkr2 zrrN0>tEH+OMykm3E>E-2+SRP;OD8;F_UH-Gk8LOmU5m1?L1U?i1H&t$=KMaE&^< zEXNtkkgkQ{|5UCf3 za#E#jphh_NCmj0i5{F_%g&o~gc*)b=9I7n~c&z~^vzY0I60696KA4qJm9UPU31R|? z8M0hb{W9d96hlhH8E3-2h|C~+yaJ84o`V1yD&Z?ZvMr? zWeKUV3)30Y)IU2?_MexBw+A!DT+ccWKUv`p@Eu6&%;YaX<7hLmYv=jqlS;Q=Y>RQqA^Nv-LD5CbXjw( z?xQs(E&KnL<>teQ-2C5IZXTSxq#W4zHUHm%O@&D%pe!-VDtx~Z69u!>gp>ZXk{M+G z#cj`l(EEqywma?2voyQ^i`$$c^e@@wJ?paVOV5#PYdlD8@L$4ER-91ZEt9zK z>MWwz+}nP;CAQywD7KDmP4i!my@F&FQ%7#E^(ua4zrRF7x3PSw>W65*)!Yh#AKHF< zvvCm#FLBZRfA`k0`xEQf%|lzqjEkT|+JLLcE|`XX1&tcKU-BCpDf=!qCZSnwCm7Wv>!7ACDD%ow_FQ*2)cg^t3x8_1{q>VSTt?HHSaAlDwS#Zk7kfVoShB{3G470DooYfy zOQwBNSz<{HfikZ>~T8Q+<>qK=T zZCh1sjLP7fZI`Z2>PoFpWxfDzcBp1Cgchn-u4G05{%wH;FV3jfd6W$<;Wg{A!z-Z* zI!;fs&0s0eb+zdgEOAp5nnlSPpjJi|n8~6w6;(Dn6VkB^MCsyx6FbC;gj!(BVP@Jt zls=z4WV8RO&Ck-nUZ0laAFwtLX68PW+Wapj`xld$?Li}VgITu^g~{ITOE@F$8eE$& zu4o4^nwV?|b=oIKW1EMZTU=JdAr9l?HU{B{U^b!3Vl+f)WD+xOMRXQ&81RB-*a=RS z!i|?iO?^~kI#`ZJPP+a}vOa55CjJ>D>tHtXLt*;ASDU%^?miHs_W&mM_UF`Q{>}rp znK!c}lBKR*24yr1=1VJNT_jo+>RAPQg0TLKzfJ4W2gh9+X4*n;LqQ^fZJA~N%4U}^ zdBq7OGe7x?t2t=(YmU4@FOiT(qn9u35$^xr@G~`gMTEGLw7dSXA@<;GcsYgq6 znF!cap82m~a9TlgK5f^Sz7%0H`4ALg)vcpQ7N3^TF9+GdQb>?Wp)P$>NN7r-1=>4> z;}ro3W}0V&gpOyI=SLpyWjR=S$Jdxi90Zw7nK$T7195N}SFCcU^`fdbgjI#g?3_)7 zx_~vQ(YW>6AcTM-e?H+=N8{$#bE^#_e5vT1PapcFPJ`xGvw%9=dV8TZ8#L=*m>Hf4 zJfGnw_6wJ0PkbDuONRzeH5!bvW#nV*j!r~vf&H^srF~^FnBy%bDvn${kBh!GUJ1@o za^isIu^5|I>gzBFM2Ck?fL>`1wx)S2o-p{R>mJCTz2xZ__mthLIdNWXS)HAOsV&jH z>`TntEk-=INEkGJ45<_|`Nsp+gZr)GsCt@N<{XC^x-LQfwMKLLI<$!A;^v~h311R3 z{i^Jl)FfDB&wnIy5UrQhtSCY^2eIo!8&_nsZ?JX3Hc9dHXDu*y2G&D514{>8D>=-D zY~^=l{sBK*$CIe0RnDt@i!|+n>VNY`$Pc-Q_TK6;=5mN45M8TR5TU`FQR*xaNLn(bq~3AC+r(cMWmxmGdZt`OaCm z2(ywIuX0*M56JaBue$~jaO-T`ljZe(x%}>$YA<>~&KKz6Q*u>y*VHgYUCtezp5A#P z&NmTPtry+%HIJJ~dc4P+*AYgY7ya_zyky%pJ-KO`;t>}Fe;G?z%C+e)9^8=auJyWW{qEYJ zyEfBZThU!x*1wmUKK*R6vce``6AeaQE#;zQdiCwiG?F%Zl4H(SmwH5qwwGK*wt+;($<$IM zXZYJ>Rx7?o?Lix{{uQxjw*(~uuuL>2KxIq-vtmktvKGCzMCTfCuzfs3Y2iAyY5!uJN>T|%K zeD9$64iz=ditLZQ_|9LM@ZF&^oo0U%y-4#s@*&Q zw%5W;vyVL8f`pZ)ep~Wc|2eA<$2p3jk@i49$C{5&&M^m z#Pi~C+0)AaKl)}#1oB^dQE z^jZFL2sBZ@+g< z%KZ{})QduLH8P^p!1hwe>DR5#^EBk^d=qcqH#_>^Y=mA&@47yE=j`a+v)MFD8N9GQ z%H*4fmn3so(Fl53baZ)B8*!Y*&jOKXYtf(U#eWwPo1GZcz;1Ff?=>jcw&G#Yk3DT_ zWitcgd-aYvTd1LsjkKyH!?s=Z784Wcp4VE;>f#X(oD}u%O-!xF%F4R)#eTX;5;XEF3Y%D~!Vv^9iRD z=MmS1T$|WxECYS|_rOo1@ceM_gmfkPXLuw8$B)+INiL z(F({wmS7o_at*M3D4juFQwq$88|FBp%k{JwCW$P1 z@7oY^0(Cg7o*+l5Q5Ss~pF_I}N1a|zDUn+aTGH_}ZmY{sW@vpRKT+)}aq)b#t(sOp+UmYZ=b|k8A<@z&kK7{m6V;eC9Y&bj)HmYqEuVkVQ zwyrGZAu}aV_JKI%LN=bThq=!c}QYKTW z!T&HvXSAL*#Zh5~FY}Qf4il9zbj+`ZSK@lP`;^$RH*xGcg%oG!*T>JfMc_sLrA3~F z*)Y#GdE@8$R;im$jXgD=3Zeb=9BN7AV<6>dn#yR3w#Xa*-U5Bo_i~yghj&xrR(n0_ z)%dNUzZ4I{AZXT#4YqPjbaq8ERiz-s)x%)1n7{40f>Sm{1LF;becwr?Im5WP zZ&7CZFUoB1qBJ6@&;X}&R;eCULA9E*iaBlb$0nfEU?R4vM0Qo$Zf!l5p)umkYFM8t zPzTBD>Z$G3r}OA_r%QsWwXKUbMQ@N0HN8^?r6MGYE-O?KS`LaR3KgKLG#n~+ty^c# zoQl4R6p^@fN{v{ckfUC}i>en{o>1?qvXoT9b=0rQXvzBMs~)4$gg1t*OZlE!4tGW( zx_7$lNSUyX%27usB~Q%z8qlBi+8xtY91EKl7_*7gjwl{DQZa2J&yu2qT^X{yKF%XI z7BkE(-SEk9ME>$(Rcqw4uV4o9(j3qxG)l!75%N5+%E@yksg4ROW7VTIni3tO5Es-t zpQBophLI~n_E-}e(17)5yBbN68nup&iVgW@+9&=&AEN_xEx$6V(Y$bT)wWTyB{gco z;hF|es3BoB63W&2%dKSCno-4EW&Y2yy&cmDchALrVgU+W%umIh?a}8_fgru0LRBlx zs^lADdN@KS8;&JVFZ%b{%p-4-T+5zKb%u8qSQJSTU?ZiIO3;g7<#=5bbx|!}*Dk0h z9EyYJRx+cs25Q3)RXTT$*iG<;Ss0(KT16q~;u?5ID<{ffaZx6# zQq)X`R5l3>*?HiEf-1_mex+KDQJo?0l29qCh;|TFO=lg>I+r^hkd3(QsB~o8Y;`aQuh1BLBn|CiTXDNWyT0wZUYlO7()( z@l{E^C{YwIsE|tRNKRub40kG#_S>aiU?t#X|5d|`)Y{h+z0CNyXh#~pCr<9}Xc(f)KX3 z)2YXl0wFR5!k78q`s#sTtJbBasD=kV zRA&PLZobs#qmQEHDmu|mJ}E02hCrwP(it&Boq~J}9i%iC5I8gRYj|#E>I*c(>IQ6u z+WM9BT`Ti4bV~KrWDP2BaZPo#nBy(3u}CY*z1p}f`_XE4>xFjlR%-Mhj}F-VV;of( z7h@e7^RGHO$j=BCIM=ut!8w*iH?ONgB1_Hw^-94En#8pDo_6;Xf^0{gyUz3q96 z63gbWD@A8*ZHn08GOl1lL^cM=02E^=>fl$0bWbX{)JbF2hkhI99}Ms{(u)zyfxhO< z1FDZw!(MDwifqyE0*%9?xbv9vxQs(&Ghk)mL76x;w8=K~W9K?h4`Ck1E~vUl+~G9! z6@b-Q1zJ|yH5uhb8#{5CSgf00%!6ZR$CqJh`)N$*CP_v4V2$>QU6f)&XaZ~4!HUx`BM6(Wi2dfMtJc*Ic zj`}YO%xb0;f0*l)TGTkY1PV*$O{G+9fliw15j3?&HJ3_FaB;nL+up;kkX&l6I4p;l zWBYjZkYyhomT-=UBC`%PA+A5#f6vt)N(gsGm42AS^e~GgjvM~P& zH4C;8F(u3TIE{S<8l4r5IVMWAaty>mV&Q)x#l&SYrJ)zB9FQjpMde{fGm_hpS@=^0 zK%vPfz!uGF9y1X(s8Xc7koACcoPigG!b`qU?BiC#bg|DcL-H&zh=_0PyN#|J`j$Bv z7@|$tf}}}&-cAd~pMb=YSu211B0Nx%1F}F7D@A-x!6*j)$3|AAkTHB`BUWO`G@*Ms z8lH!IieKneKp6?L$MSXjy-w0(kTLZ0-|@AMk|I*-EbIxqo9#7ZHxFJq80y#vD=D6_ zkRmEmYRKXl`%hRrQfvAz9?C^M=bps_>kM5y-yN`cIs&&-3JYkZCQuShg^HlrSPZ`K z#d@?*mZV0>!_#JaW<}G++ZJ;p^~O~?J|p219RsW3qGG5D@sm^+@v3`<0LHUw46=jC z4uOY=>vm1HCr^gB9e zoRLA}lHi;8H#DLtr?ZZU@kU?ruo39ItNfg;)^`WbPVz293x#$ z7oI&GZeO8rP{e&cQz5?M=ilo`TkrAn5Bkw9 z_uAcFE)V+I3Tj4nua;z>Nh4h}TAES$OwghQcm&pvCa4t&+J%prX`{VpBx*_+pI{mg zie4aPjhaBGj>au$)`utAlSl%9O~|Nm6`PJiBc^Ugn@|naFQLV=0i|5A!ZpO3&cvL6 zC$VNlvE~f=km#h+u~0%$uIpuq#)$7&pToFm_^RsVK@YVx`58 zuX345!cbnQEG0T=jInWjl;5DNONq9=12V;CG+Lx$CsZ?)4W$4H5qYExk;*d~OT85@ z(N=_&G_Dv7kgn2tW1>}Lv-{ufAMW3H+_{&m*buh2T;3jXUAiXpF1cb|OWUdyYg)Za z+S}J{n0?%FmtA(*u@|phd-1B4W0$R6?HwD=T^nApc4N3|MQcmAqWu(4e^*v`p3gM^ zi>6=He)+}~CoEpp*3zN0tJkesx~yek9K+P(mz;Ly*>j>Zmn>PdWNOobIcqPU zw`lQ_SxZ-~TDxp%``WgJi>ED_$6u0!{ys>enmY5sr5jc(Te6|OZN-|4`E6Ocdf_sH zn>uwFDOl3pwsb}NhK0-K^@@TAiom6J>hyFV7jC@hz(Xh{`lNGDo;^FhYni-Z#cNxZ zw1;bs4qv$Dg<;F(%UW8NZwOZ}y?n*$jjO{A8`rH{+t%K)Je0pA6$eALSqqW^@0G7X zNtgO6iF7JOb1qwuya9890~%Z913Qd@yC{KJec+hSxO1 zo7Lz|ZEW;rP31Dxn{_;whAHF0V3W=-cZ-J5j+mlM2MGq}v~9=)jpT;)C5 z`8KXsgKKc#!1a2dXKx3(-vZtNZUpZHH-S#@F7R$}Gk6bpFL)og1-u`80DKT^1s?(* z2LBFj1s?(b0X_%g19X7Fb47VuU;emlu;C;9Cpzn$c_ll*p)-%j$| zNq#%YZzuWfB)^^Hx0C#KlHX49+ev;q$!{n5?IgdQItNgg}NV<&m+B#)hUd)}}*kJj{6 zGfzCxtAC|e|BB;}U(N4S{g|uCT<+f7)9r!%&M>F_PBW+d&N8R{daJ!>QDF8byLz@_ zQ%~5?vZ}>|8!f~Yt6G+vb>6C%O5{vGXT{|$tLDvH(!0)`AR%?>VkbwE_MxYcbdu=O zm&S1=L6sY3LrQcgOfL*ROyb;9l@QG4fT|G{6~P z30N27yIdauKLU?|pMgE#=inD$WVJ&h*VDm&fNkIj@D%uSjKi7Cd<3WmM}bM;h2Ur~ z1-u-*0(=|%82kieYEfIjN#JB~Hh2j*A6y8QfvdnZ;LaF#aoqv_2iym~0UiL~i}5Je zpMbx_@au>NoD}0^u5-X?U;#J-oCRJIV;$G^U}KD{xLyP9jByv&d%^#JuYqrX2f(A? zC*Y4@Kfuo9Wxz=>PUbonoCX$vGr(EkJa9g^5G(^%$GD5@SHM@necE;8E}s;0+@m;6!i| zI2p_ZXzCiR)S#1=;dtlAxRC2Ia22=)d_Bg4TptGCjj@aCkHBxhQ()?FhbFGG!D(O- z_)LsDxZVlw0}p_4Bj7hMJ;n^K!mJo4b3FyD2iJn@z?;C^z`MbFz@6Z$F^ za`0;K8gL<44lV|(!FtdRt_E)dH^g`^*Y|^0ji!EqQDZ%C3^*P%ftP~CpbcyQcYtq$ zAH>LxgVf-S;5zWJ7~v6~cMNC*CxWr#sbk;f~Ua53D6Jh1P_6S!5;977*BH*eh>Ztx}L`s{0Zy_xzJ%J*S+9Z4W9RF zuxX0JZm#>miyA%eIPf0uUa&g+QIZOqzAk@#x}0^fKMOhd;bNtgD&t0 z_yK4<-1nNnC&1^y^Tzt#F`!`_bOVh?5GI%bW`YyJ$)GvL9ImH=Z-MWD?}Odou^9e% z->U=Dz$|bgI2oK4<0V{Q0p0@M1CE>EdnbUI;1qBp_$c@o_#Bw}Jl=!ZF;3$8VsHwW z2TqIe7OrmxTfjTOJHflbQ_uIk-+{d=eeY?|*h+Zd?6nRr;rb?U1Go`97Gp2hUxWAG z>3bglE#LCJ6<{@J1Fr*DgExY=f{%kwf;kUSj==jq@qiP-DzGuewOobwfe(TYflmW( zH+&3gz&KD33g9R(5xfAr2sHkfaKV$0`rfa=&ON^OT`>1?-#Z=r=_%ja4?=Iaw+VRu zaQ1KGIudyd#vg@91V@7xfycp6#%N3O!3V^qG-^MpE(1(Rc($yHbsV=>qB!1*yc zxxO20i*Ywsq5c@pn*h#fo_GDN_yb=BuR+dU3B21q@87@2^$&#mN5m1b z?+DNcUJA|y7lBJaEAWwtuK~NkPj&6ZuiiS}`~92Xr_H|io$I;24W0ttHs5>xXOMZ| zrC>R@7_0+-`cL1h*z52hSK;lyc6bNZ_X6)X$U%??CxT|M0GtC}0$u}JfG6GqQ^0gE z16&E-0Nx39nnF^Y)zQ zd6&NoUOJ!P`8yMRX(iWIunHUvR)aMF)r27_&lBsf1?#|i0NZ+PAk~-K(7t@d8Z-0J zXOlg%iEz&e=_9Nuo91MUT-6d@w6-nW(7trd@}+Id!xd}RZEPnj{q5qL4P14<5nKu` z1DAsN%`Pz-`Nrri+JWnKSk=VsXjvOg>rF&AVOV+v7gp8=;eWtG3^S#haT> zrk^ll=B#MWsdMMepVD~2F^v~M8ytp0-_K_?>&-m{Zz+7Hl022Q>9^TCJ_khH|p1qg*_kni&ZUz;&^>;4sid@kz zyl%o4^lT#clfbR`-JbG)3-4~>`TJA;_3Q)Oe-J#3-#x&JgZm}|r@!bS3oK5hNzdSW z^#i@9xfk?|zMDsX&8r}@U4;2C*aNyj1JA~Z2>e~kbt~5offZ{vERh*&_UvV=T9&pY z6>etod>(!@;Il6N_CBs3=Gni4xN^>N!vTEJ|5$)Y011Fw_*QZ2FCRi1t{(w?!?~=_ zxD9fo6wYIDIEip5585#1GvJ_&6GY0(1mYg>+kvAtI$V(Yc3PbA!3LWY>m9^-6W{62 z2cltyLQB%nE1UsSpl}`u6^aW-H0&pwwFi=(iSUH}21!p6&Yrg_crV^tKGP(!BMJM)iKn;;>b}~R$)ysg2j?`MQW<~oICboE<{`*$@ z2fXv&|D_jotb6H*{rgXTp~UBMu!q3%DBWAHLy?;^!s~b!QsT$ItyJBd4%UNK>fty4 zw15ANckkcNt^M)n;Ql;6$W&BTRoB$U-_>Pv!-kK@j~q36%wdO*9e2d|`U%f_{*hs! zc$D)n)cb>r{#o};ek!UnRh2P4D2Fac*+toR@vN%~R0E2oi>A2?dUw%$b-_bjG>Tm` zhF!FLT{L%HBLPia7dE)AG2k$8I2a2k2kA?)k98pzyJ9<57oxO_>efZ{pM}@&A^v-a z{~qGMhxqRy{(Ff39^$`;`0pY9dx-xY;=hOZzfJu25dS?$u*b9|rswzBlY zQ59<5yfodmPNb8`vr~^f@7(!QX8PCpckraYzcWu=5}kQw`3?7{p8N81=IIIUMdzJ0 z@1+Y*HTSs-&$7pQe(Kq0o*A9XE$*|fU*PZe11dz%f0`E&|LgUpr$2Y+zow#VuzxkX`u^+bzversfA`iL(7$vDHQ!DB z`)bVr{Y$iu7}0|fJs7dnSSJm1(kR1-ri6rCkwYb=L7XuOyZ|6yN{Z5pa32F2z!V@w={V2` zrUEHS(?AoD06GE805icXFdLi*P696mCxcT!Gl;+(0B3n~ff#E(I1MZS3&H8&3?S}2 z3oHU>gLA-3z)Qhma4t9xybPQV;56^$;NQS2z$?M4z^lO$@EY*fivM-QbtQN`cmvqv z2U{BdRsP;mXmKG}29|>sa1po|Tmn{rm7o=@0;|CquokQX>p>gX0NTMua4EP9Tn?@P zuLT2@|6eQqzU9AfcDYxx^ulG!TP|{ao69daX3DyARxDhz$eXl|JgYx?rqxSor?Tu# zS~z>sS+gfC4kxXfv;e1`=}&c6^ikcETl7raqJy5PK1_+-@|(EjSMOEdRA1#jE9F-G z3W1(mB4W4dXxcxwr9b)Y{XX%l@FtykQL1O>O**!b2NDGQU4X~`=K2NjMLpneJJ0Uq z`X!)ecY(V>7x*&x3b+UC0QUm@g?#f>uKxq{&3)i&;OpQU;C}D`_$JWbUi?4EbtjPj zZ-Ixvx52~UJ3xP9PGppk>-T{C?E?P~d>{NTcm%Y!ZEWFUd?_9kZ`uQ{7cE`2L2mK7 zcu>489!}m*T7BH4<;P7@u^G)(R!Ld*E?4s-Mt~<0|AW!p{45P8T^LSU9vTN3Gl?}U zE~O`o-Kv|3Tk$6D!NO1cSb%(!;#Uj*V0etrz1=h>Kj8X9AX>*t_zBJ$HvJ;z@wLz6 zxjJ_D;kR3i%in8gfb`vufWF%eeheN3KLL+{{{ue-KLdNfhI||O;6%hntlO(34R6kf?tE*fTutl z+l*z*(?fBZw)K;yCsS#V3C5~lvrbV$efNE~N3eiY}Q!C%0B;Q9Oq0g!^! zC(af9$GLrwID3b2S>GTm-Q7cnk?`G;B`a31OZcuCxuNnd$Fph`rKCxo#+Sn}~ugs;H2 zfy$+dYc;3=`n#F;wYVAdwf9-BIWP?9ujwSmOAG?r`w?98U?dm?MuRcnFmO0vaMWX9 z)H?zsv?Cu&E^Z+kGQG@N;cN&PQw7@qu)FaVEZWNE|q6jxJvu3IGse*BTqNQ&(nF@o66JPI8QI&L*?m(TqlF0 z!Hd8#paDz)$AWY|7>|g{ZtWqIorO})T~c;DPM6*1NT-z%SN)L`Z)fb*^H;|1bUt^* z&*Xpm$*$~<<3r`Mk?T}&JeUTWz;ti|m;rj{)0J0$`8?3_Qa;P&wVCwjkEnX&V{ZIB zosX^YGx^_s3jHlUngx`P*<4QqCxI7(lffyV8OU%e{}Jvv;8ZXd%meemX&}z$%=Q(l zTMoH0S|Bp*&a<|1J#ok3YdUfg#S+b!XS(vmPHMU~?0WpF92>amF9VWx^;({Z9^3S; z2Jm-lGdd^fUkF5p)484j&ID(HMc{034iFvW|0TFz3KoNN!Fk|i;C#@B4u?=d2gs}y zzU0sqq(ymc;;O&?@_I`%FXFr|h>-E5@#R2y{kPufJ;aKrxvW+=grjyyX*`-ZmBz=E z4*t^o*vz{mZTI1R1?hPuP}*L_wFfPY?M=Y1?MFxqTzLpf@pllu{sxNwm2+IZesvuG z60WZSOTmR;8CVWlz(wF<5T|cy@ok}-X#*q(c~oJQkp`pz0-6q z&jR<@+ll)JxGy0t(PRbJm7o=@0;|Cqz@!6BH1O7g0n#*8X;Peb3=!wtQ(c^Ggrzt) zaBT-0!KL6ba5=aFycWC;^cUx4F&z}=WWv;+@|D!ZbUwGoab8JSiu3hc-vBm&4saE? z8e9Xe1#bic#97McEknfl%DFC|*AbTDd=uBr<#1=YVmm~w!qji^hLeaCfz^rG#4Wl! z-Cr7cSNg-h%Ky!A8sEb8t^KC)5QI$6G?rw`592i69H%E;cKcFkyfsea^>G^C#`W!e z(s-zXMco*qqXm@E@oM509Z%w_zjPXJiJ$5Dg87b)H^gb&!u1{frqR)H?Li5cgcEzD zu|&rg5Vz8}yPq^R^Dg=8iqm*woW^%@y$N)d(>Zf>%Z3fKcD53%Q~{iJmRfKzI30?i|*5DPu?eK)O|WVx=*J;_opvivvFzL72f=o3){?b*3!0Rmw3^- zwiTnXVn#6wDIDN8`{0aE$iA_R$tiC=AF&_CS4b;z0^Hm`IvJMszM}y zHU*_X6o!J(_xe&_d3>NW0MSLXSKj3o4U@7}9#ke5#?Slnqw-I_Q<$QG{vsgzV^Suv zo9Qp{pTwawBy?9?`b(bu|5ncBIf^QZ!xN1!eBpcJqKObe9@FpcDUc$P7(j!81S>wU zGnpBZmdPZUnS@}uuu7}2EEkk3N=rdS#W(6dz`_OP!eYVNa;FQ+wF|27`*pfwPYA3$ zRbTEsx6eKI+3C*hd!sy=o&3peG7U9PG@cUmt@5for71oQs<+~*gXB3-9c80AyYl+} zG+pb`*YnYzUX!2e+2s2bvt%yFR^>^uKFI2o?<-x;+OKhuWO~+z`M%KgeEX&6+bKQY zF6sF;Nbege469D^t57lwS^WPvb|s&B|G&}SGP2Qo^Nrr~ixb6G@mMi#7LOL=1}kj! zda*X$sx)Knjz+O{yv0pYtj80@+4d9%daH^zxzjjJoaoysg^Ko$ak4ne6;)@VYTTMF zw<}XodnQ^kEVRo_-a|4?%M>KEHe1GyCyjxj=)j?YLj(QMzL97*A7rDUzOkt9;NVCh z=eIfEh~h>xUFHYz*79 zVcyCNy)z(N{q6EQ_L&WfC8^D^TKQ85FN`qXqx*Yr%^49w6h zaVpiaY|F7+%d>ndutKY3o3>@!wqv`tXZv$;xnyMY_JCC~IM&-NV8^*qn_0x$GRzUf=O?K{5fd%o`ne(0A1Gq3_XZ~`~*0zU|X zFers)XoYs@gl_1Cei(#dSSnG)62+HrT_RhFq@}$pycBUdUG2)t8WcUluD8jg@XPz# zqo}f2jwX4$RHJfbZa!|-3ag|U)mob^v$d+xtW|hJh!;5I&t{jHY4Tb!sD%wJ<48HK zW73{6Qdh?GJpVV)8Vl3 zvQ!t;!Wrt@OZYf!giY`SY=$kc6}CYUOt8QP2jpuHzJ?7H|4x1P;z)<5w?GkW@F0ZkuoL>A9|mC`48bsr!1JI(*N0&o zsxS#hp#e>phvV=%ya8{*33vxGxkv?HKzR{ff|ubiyaEx7LmAYMQ{0GZw+=vGAfM7s z>E=Y<1DrdZkp;gc{-E7(cqZx|!BjyM~!m%W`Bn))|>Zor1SjP44 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_style_hyperlink.worker.js b/examples/dom/ftxui_example_style_hyperlink.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_style_hyperlink.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_style_inverted.js b/examples/dom/ftxui_example_style_inverted.js new file mode 100644 index 000000000..797a0b5c9 --- /dev/null +++ b/examples/dom/ftxui_example_style_inverted.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_inverted.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22720:function(){throw"Canceled!"},22738:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_inverted.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22712;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28180;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_inverted.wasm b/examples/dom/ftxui_example_style_inverted.wasm new file mode 100755 index 0000000000000000000000000000000000000000..79e5ddc59ba906b56928852466e4cb38c6189d8d GIT binary patch literal 191054 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 z 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 I@BO*jKM-wN&Hw-a literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_style_inverted.worker.js b/examples/dom/ftxui_example_style_inverted.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_style_inverted.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_style_italic.js b/examples/dom/ftxui_example_style_italic.js new file mode 100644 index 000000000..8d69eb2a1 --- /dev/null +++ b/examples/dom/ftxui_example_style_italic.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_italic.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22768:function(){throw"Canceled!"},22786:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_italic.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22760;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28228;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_italic.wasm b/examples/dom/ftxui_example_style_italic.wasm new file mode 100755 index 0000000000000000000000000000000000000000..25c2963355026b2115d35f896b4ce6da67ed0673 GIT binary patch literal 191109 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 cNk^9D)90#eO}1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_strikethrough.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22784:function(){throw"Canceled!"},22802:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_strikethrough.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22776;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28244;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_strikethrough.wasm b/examples/dom/ftxui_example_style_strikethrough.wasm new file mode 100755 index 0000000000000000000000000000000000000000..798b40d780c107e792d01452e9a442c2d0958f5c GIT binary patch literal 191147 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 zrD1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_underlined.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22736:function(){throw"Canceled!"},22754:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_underlined.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22728;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28196;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_underlined.wasm b/examples/dom/ftxui_example_style_underlined.wasm new file mode 100755 index 0000000000000000000000000000000000000000..dd26a2812892f016cdd7e1af1f3c7d3f7d9d9b6c GIT binary patch literal 191071 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 b)S+eibdr^o1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_style_underlined_double.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22800:function(){throw"Canceled!"},22818:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_style_underlined_double.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22792;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28260;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_style_underlined_double.wasm b/examples/dom/ftxui_example_style_underlined_double.wasm new file mode 100755 index 0000000000000000000000000000000000000000..fd2296556fd935ce15763695a3079dd33df8c422 GIT binary patch literal 191163 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

    lD(BBE)JOrm26AQ27kk$v%! zj)^wNiFvH6=}2`3Iw;9jDVN=VMvFxNiBdoz-$@42EhhQ0#tNZFH%W}2fw19MC{Bv0 zBIAR}2^TV09=q+S(4q_uOtaCZLX6c46-^<-9rL1z5&h{X4Qfu7eKL3-KU~E!o^m_+ z4BO7S3&Z}$SF1v;-R@sJ@v@@-aPR}kWxDXy&8B+@gg=ohRRh0Gy{TPgVsWEVio5Z{ zRhKKx|Mn+42#0|)o5mIwXD-u5abJz@UMZR3q+IibRF#HH6ShekP`E1p+>xjFz2gBe z4Ip7x)97RR6s#I*GWehtoi_LEzn1}>H_1+}g@zUtP|}7Fzm-tSm<1MkXV;5Q5B%%#{EEw|96MU_5`|8^L=E5UL z^F>;AeRYHV5|;EL_!fzjztv^h(Oz2d?x?d@_v;iB^&Yj~q`K#%LA{?vy@#eyyot=f zd&b?cG{b+Ui^n5ayhCg*D3VlRE>1sOrKs2g@Lu@&8!OA(uyPF+gR0vhE$vq4Ad%ho z6pg0p2jn=SIqHKMnO#x7DpDi*Zq5S zh)D;^_30g}qN5B*A)c^ji*~$MO;NIhzv##7e2T~Pl`e;4lsFRuN+8&izM_Nlg7Nhz zEYclogDgfthVO#fHcRTmBbU@LJc|Sy_#_9;P(V?OT5SIQ`TDq9zwNqFQ_&D4G9O#m zb}SS&D-lV@2uX$CFASNIU~kvRtcOuL+_1_Yz6bVM3pZjhS|=9QFRNinBwY+k7z&=S zPvpquP;Xj*2)l zm%jOGk#lMff9p8bwd!r2@Z>}XlbH!T2wDUM8)l3DIYbXv{&lOX)?nh=HOO*I)He<= zUAQ;umoS}HNt^I!Afr>tGlWSBT*Lu`4ej(CS=wBbfzPdCe5kDZ%%ZB*J$X=-%`Fhk?#s*3f|$5oCnVE>PnIi`g@TV}$_;QPN}XbCGgm_#lzR zIyM5D%r~eX71Ku{RmYnRVT`8MjmpblS9i!ZhDH0_2PX&@@ns-pxFo!W)~Bmah(Vc3 zem;?$K8?GHqcO4KIpC4LF37)E)>5g{b7Im^-TQp|v<$&Uu|ThDK=}B%TrpIPej-*_ zqk}tQRhZsljM`{zS_Um7T0^Ibh8CDs$cT)TKAO;3NG?hSD8mpT$`m*EF^ZFnZ>eaa zo|3?@ASR)GL|_nqR|^a+XSKkf{q#u)3~Ldk#^Qpa&`_XvzYoP*Hmx#9%`I}nCci(J zCFC(e9LR@_$&qo_M#L?lGp3_H2xUrUR)^}KjB#NoZK9Z&Utb=M; zGyr7ClwegEB$jZ_AGW@bSFj3Vl902=@-DKxX@AD@9Pnvao-O?mmiMr{VX{bdqkvdG zGJIPM-x*?fbMJ`AWrQFO8Hq^)ppgb17@Haw-|{=cw?m!qZLvc;8Sri02^81wq~=>X zVdC(FLTZ{IlRtPs8Tdq8o|(vDyhU`^VQj7JbvoA$TbN}XOSbnjK>Mt-v8xROMrXA{ zIGPSzOKCcGbH^ksrWH}COo&9b_GaViB@LRC!kP4*i#qRsZE6SH`QV&_Qyxv8*wqM1qTwC_&qh z;|$_#*WZa!4(B`=4pK}b;jnRGp+!vM^qrb8wofx zFgF;O++zKK(M%dcO}?`+S@iO^8511{bBqbhJ@qkZLD!fhu(Uw;Br_x8H0V==JE%bm zx%?dVMYk;br?GfN7e}OsW-(5lS^BpyTLl)yw=IMc8+}Y7r914GucED_R6$esO4fq? z=5{SR)1^*Lc26(Iw5-qA!~rGwx|)jnSal$%K=koJWEP?mO4}Tw#+hhtFdDWw9|;l% zlc#HaZ93(aiPy%WDM9K z>&kPX@u#N?_>S-t;Zx{~+)SFM4seYb0BB_q{bPOfQ`gWhhA$ni8NrC~m%m39xe|q8 zFdDpboFO}75>|}x3m!zm$=r(80;j5|*|XRO<;Zj~)2 zU~-X6S{y^%s-Zob+tNO{9I4bMcG+pRQf8@9k4a{l(GF`G(zLP)Xo^!qo+y`L@~@s) z2_NP_`wG*n*(0;8xdnbLIFPW-t>KUy`Ni@`*7Yglsm&=YBAHm4*;!V`NSdn|NNEIpqLQJ*SL}kv@dk)WGtHGre&c`vJp9? zEOCa8lWQ>m=mU-yq`S80L0K{OD*L#Ps*vW|ids9-7U6{Iw=q;$vGOZ?3ML4YB>Y zVQUe65A1uYW$(=55#dJ?AjfcLO<*p>Phgo+F-1CEktXb$AjlG}-~d_69~(gAKS_;H@mPH%=Z2DIG8o^olMyyzXh>8^(4C*J)3Oz?c$&t@ z=c)Rb+VYA`V?vJ?dDv|yeAB6>^fkugdw^EWnRx-B zL+c8fkray#hm^CE5^PvHI2`&7zpUTz)};;81itA}I9|~&e*PiF0U``Ar`|xKKwztS zzZOm1LMtA1x_srQo(xu5`*mTJni7#lJl8qk*>e6{zs%M;r@p_1T6TX6wa)C9nW@XX zu%AQxfwl7-%^>a=i%&pi`I>ke(v^g1NcWZz(v@tiN%s)CHC{jtaFmysV@`DV`@2ZD zMrq5??Wdj!-P)){w@B(`==QV!n{NNJ)2*3d1v4mN7yVQAgCZMr@~b(5Ua@&lxt>QN z<2G&H`fnQte+|?%x8byX34XVzD0JMTaCE@r?XzqCi$GaF*xt) zjh`*MxXf3N?BuXxtN0rIU{_Tbxw2qW;+Z$A$%T#+=Io7Yn{_fFXtCX;@{`i`H*lQc3 z-)4YA+1!*~bhw@+%9R7j?^R=wp@&^oruvjMplCH49_WTR(1L-o zsAsc|9k$smdv^=bEW87VSD9>EY3$OORRvz`i+<>;`f593Ytg_~y~a+vCPKA^hsI+y=H+`S8!T}O5AxgVz= z>eFg%NiAEJ1nhGx7#Zv!z*xpW+`GXKjFUJ(xP;{UE_1_VNH@74V;s+1J=&IRL}Z4> zhQuHZ?W%uOty;Be)vBshm-yvOhwdbmZQIxuUf$ZxbG`tDHanHK-W#7F9QWR3AC!jX;vAc8gPp^T=L`*ek0 zJ~MGa&AO@NH4RmNUoyv2&7*W%B=PZFu~gn_Y<*KE)L)9Xnk0Cup>gF93)O|*s|Oz5 zF+!W)jel10SnXwdM8*<$<*g=rg9LeSRRh6ood=I2<}5`YDI_BRD@~etNK=Pa7*WO4 zM?0ul3EhiYh9k$~z2{ieV&6H%-BH#T$=h&OXuS^SHAc4)Iae{i4%Iy`J{hRnkmL?* zjB3oGe>o0pPL67Q9aKZ!i7>KXiD2SZ?K5#gw!PLEEg2fwmuL1;Hmcye#$MA7x}J>3 z8gZs(W7_P8Vaz7k$8}m`#1(B}`oiyTJj!uR;*M*ac{D45dGrX(BbMpPHXP4!4Q$US z{sxF)T}V@Dm5{lUIeU`Lpwwx$Ry;rtR#VypS!WAy)ntnve!Pwz?@OFaNmywr>{tvf@rM2j7Bz)SAxM3dkY5RhR>`xV#&91^hw zAP#N#ZVT7)oUwO+dY=cgYa>R(%A*xq3CpJW!9(kLWg{x3QjQ-6TW|lm%o`Gh$F4A| zxL(gL)iakD9oS9FN1_i2$pdu@$5%Kq8I?~e^GsMqAnGgv(k8Mm)9>@t91Ch8RG+kDX{1~HI`jz7%(BXG?T;yt?n4sNw zvq7M$aw$`$7@300BWh0*3g5o!;w82!@|C-nBK@#Dy^-pFA4AwS-4cm7UIdqP0rmrbqZ1}li6zDg`8b&N}fi0c^$xT}VNu^pTxCgIWwD282-ym@^t*Q@?Dp9*aSQVk z`Rmbce~v1se*|AT90QH(+22`DP{)!;6=zFhpj(F%!o2s|A{v>~L$mE@QP$Uy1{g_H z5M8?_ine{>kV4XuHUDC8M4twAkC_7L$l0HZMuRLYG6v(>=yVyR6FNQF+x(iFx-k?W z1MS9c6;}(SR197`m-eASyDwlQ{UiygpKVtU%M@v`@**|nO6(Jg=aJ0tnX@NAsu*9v zUU}h4H)l)ZQpHoeV4=3@yJ$dcMKD4zoVwS)t2OHCn1gNy^G=~TkKg~Ld5Dpy28jR_ zL9Eii=Cqi}WA94fbL$&=8}iMAtyi1T2`aS{VEh`iY=|U>`;p@ij8v-`9kr8(FBGZt zOsMinOKlf%aD)Ou=@*-p*Kdm!;W9IoL5eL&o|$Mn z8wso?fHtgZ7-)-xE3Zx`BO0lQx{6hGgfz6qNpPJq!DlE#kTOJrZOUlkK?xY!_;8CK zriCA+)NgLo+A@n6Ho_T^yHzJK78yquHM*#U^yYL(FDfeCG2Gf_E1>yw4K@zk)VRz38k!n$h7|rhjrQ&nf;8wC$gj$DradU##=dO3!q2*^2q+1 z**wuq{>XR^ayFt=+(BFC@rQ78W@#BTvb0I1hz22vtBu52Po1+>K?sr2rzrEk3{c`^ zhzzKmC`?Ccu}8oj=(qZGa{p*#DDtS=8;V=U#@3qUL4nWUO;r(kHad{jR(4rq@$=8G zx^N*!Ar?}88gp@9)co##QK@Jx!JWc7ChtR$9 z=-El`FwctmpQhNiUd=|~GV@&|0I7Ec6DLP%>F|U@wOCG`4{MDB{x2oqwPRDEhP#9f zUf*eT_UPjULZ2>N2t%uy)8J8}s%$!K#!tgrtG9C#|DBlM%BfP6~f70gyxs*+S+u1IxP zN0tCAHGtONRatgWDC2UHj=Wp#_+$6Z%}`l;i)HL?BT^xH4*)eA)oF2rndOZsDH_<0vc}n^Yfzq#i4Ic(EFiDVg_6Ebg?WSi)E2Lf zbY`gHoZ8~Z*?|$R3JndO`X^S+=X}Z?tmfa@6*1rU&}Q8p$#ySMgiJ~2CwQ;NWar#5 z;pQXhfG1;5$w?$L!qyhoJ*~E~sh{R7Cu8N?;p6i|N%8J-e6|Yf59Qac^5ri|>Gf<~ z|Lg}m@>k+2a%U}T+{#MH)+GDTEf`+!)SN_mf)Dp-J_yDqd!#A6T=N&%B7=8SS4PlL z5Yy5zZ8ih8DLRT1^>o zZ>6Ve0okH48wFSeX8)-k{fzf%+m$K-Ooe5!piuJt>V97#Jvq21R#Yl&-LRylVt5u* zx}&nnkW(DN?O(nAfmk}yw<9g!pt@)xnMldAi3;ExT7cU1(^EwdHeoE{NPpBc30J*P zD7AM~R(2ETL;z+3j(JNB>HO03>+cWMv!wWxE}#Ka&C{Vqp)FbUEmJfkza-c^+0~zA zEd&V~355h-wmzmploS2baHLnRh!V<3q1ED=rN7lQa%_V2-;U&XkmBQF&Ytpt$j|U= zR8EEhuZnRkSoRrOgy4wVUlI!`h(d`2`xF&iD z4A!oSX2ha}4p#EVXc73DS@~bY4NxFN+y1dcW-8hIFtD<>B`VVTU#9W^OxFFF0C>pL zu9@7}`)nn`KyYi!3K6Fz0OQq<8qmVpKF&kaQ#O!sdPFmMV+!r^;*(~f+VREaMdI*F zdGNpxBvM&qX7ugI{bl6Hl6qv0aT~pIW2R5+LUr>KYTj&N4Ue~zv}$p$N~z2y^rFl{xs&WFnpT@wUV~J)>2Exme*d8d-ziYmquyw1 zGrYTN&tym(<@^2BiTgE;Q(vOv)Of33MsDzwsr2^BD8%o!w6I_L17YS3pA)}+s}|?T zf5sfN@`4}a7?EbYVVq*%I#_1RY&L3;=l-VaU68F$o&Ro-43cF#f3@L{OBM zUND_-HL)e>?6b_~{FFhW6d5EEbBAR)6(BfMRY{KaE{*uyT)(d;?h7(wDTSj9$|5cB zkKH(h0t^N!Kz|;%jqS`v)sO zdAOk6?sbJgxKFE4~}DuJPN5_ zK&n$@FIglZm-lBE@&8V;NY<&CjZ-m8Vd$2~Yt|ZzQ%HbtS^Qh{WgY*|7ZWMeub%^= z>f?(^&{%8?Fwn#s3NqJ{@p^GHBLb(ydnC4neQ@=UZL#b{%ZA!Rj| zjddbyZ3i{$jb&cS43-c<8%vZ%LO#ovRS5Z#hD>c#DPQ6=ms2{K)F_Jdnc1+jN!ncO zNvxSTYp^-5w~0yv7*Q3%bs=-VSu54+ut^s@jRO#>%KsNpS~7;;NPy>`5lXuRy${o< z^F~F6KJuQ6TIHz9jx-m^gr9*fYw+C2p$PdRJ2>;CRBr5tT>pXS!Ww~<1uRw`gqLx>TC)v&aQ`Je*k6rT;e)TUMME<&64ZQOrm+wQ;6H_Bt&y2ox?@*B1Ci9GN+c*T~4m*w9E5TDW0G1IK?~HpR}cN zgmvJUQhDdEUV;U=I$J7>3ua4Yg;cWl1f+7nJz6T?@;_CbI;C=TUq<3;vc^qQco7xa zClxez{c1$aUCg`?)y>I?yvPS9C)4)&3|WFSSIG`0GDz6FPfRrfumAaS*UBeR-0I}V zXnaoc;Tlh74!d|3nmfLM-}Pb}BC3w#Q2m|8uiJB)ivZS1$*r*x6yqtJI>x(w&heR7 z*8zqs$BR)N>oPC>ysTBoLSAycWR*Qfs*WsbOm|QvI3ZEa(@cdR2azJWitjFYu%2l6 zUdROPHT++*w)Pik3_13h@{2S@$=Xt3xPlUwA+9jIwIj8$CaX9o40CWzVZbRUzKC zs2CL?ew6*j3OZTev2$hCjv>^Jmzrf??Qoo_uUrrqC>zH$SS&Q`V^lX_vyZ*AVo$+6 zbBkJ4>7*)j(wWYxgJo)S{dT4&RpF!ATSsVN@I-Df`m6`aVwGH|neBf;MO>dRz5D`s z^snawZb0Fc5d;gO5}F||ucNm78B`7XT@>|=8hX^PEVeqjbr%Z~8&rK!5Qgby5TBiw zxk2@;J;lz#6k8#l!oX!EY_e~aK8=e(&sZiNcx@Cb5B6I^vBpyV#vp@6xn)hpXPFzY zw=U-~NQu)SDuoc?H$}flM|?ryw{b4j=BcAKCSQE+tE9x}wTW=A&wy>`kT#&8r-zz^ zI@*Zbrl7uxMrF={aKr^rf7tObTSA@;#~Ml~u=Nekx1*p-MCRHRujvY1}uG!G{?S*4wv+j>hCN!fI5Zi~8VVenH5W zxkxbiVLUP&UmZKN4_hBAI2*$dhypMJ(VtFKhynSsh!q#M5q!4yA{+4-EDOtX=G0-Tvn^TIV z4TWa#MiD8MIRt`@q8s3q2pJ zJpz#`C$lCkx@Id(T6A~TE9yT=lJ3pjy0l=3m5$ZclgOnRD_=I@L%Eb%QLZNb26zxk z?I<)WBZvz`J8LpZp^q%P4UKZno7F>(k)MkfJ05E}l*eNYr{j3!4G3{YvYhD&C}$)b zzhWgS?_X!DZ}oLa&ab|8T0_ehtkcS0&Z(?(S@swj&3klKD{gq<*brW%Z^vO%j6FRa zN`|yfwg!2k)e?NAsyrztFxQNn<^JXwx4d}k(sLnfN(tAcYyEBQx^xY1-IQ}(ntNET z+vY9aa-Ax(w@l~Rpz0aX3)e+2wYOxgl}`uU*LZ<>%c+64I8-vHh7yoNqu2r;ihUn= zxT9OdGlfw-z&Jp+T-pv0t+m0_SBMcevz@-+NWe;jsxeNF#f8Kv^F|h3WZ(yj=BQ=Y z#m#Qg>WkK86wHE{@tM|@Z)F}S`+=<@v%-mlV1}7y6I79?EC{F0lLFxfB{YsUy32;! zJ8FZAPD2RWe)yU*2Q;`;Id4yeznQd*p;hEC7e?8vzw5LUnG3%uS1;VGN*Yto1dT+q2<9h@?Q^Ele=H3TZEm^6 z4)crUTG}~oCvNwc$n){FfaNxK2@_IH+m17}_6#}PRnDuuB#5>Gb{x$<tM%j9^J=EaB8}`36-fy)q7j%%l~R={{~Ut^w6UqIgzZT)v$aPk zb(GO}yghBr#Z4IP$@Scv=b4ktnOu8`PO3~YdUuHRbe34pN~wPA>Gntb%F1%S?Mp|@ zw`EMzR0P(cJSQ^W#&C3{3#?z#ocp=I(mD6)xpVFpoWz{FEn#FX`?F(B=u(tcV-Y5Z z$}NT^OXfT2+>X=ny_rvTD*h2$iaznNn!&0)8K1=_)&r;@lkwHR^2vB7-B8DmI~i}c z5*$4Lj9indW3`^Qo%+BDOvjhcosP4W-lpTr(W(BOrsLY#SH#6x*(cfQeL?5!x>_+K zg50V_#aV^j=f|{Nn|v9C?4WgADzQG{uD`Go1^u46X%(M0ja~`cgDqIFc@jRfxQnu6TjDB-aruwuFe9GPsP+C?Xv#C0DpOYTTUP2;&VI*gHN&Y3{hNx zV**ePa-_gSrYRau;H`lz%0-mDH_jtGvlM^jr=R%N|EER&TaEz`l>oc2EzSnG)sM3| zK#v2=s>6TymDS;W$Em~inEGlTFH>Mmmiu{pJ8bW@3A)dA>1dd2WHR85Ay?bjiH%`I zX#)iNj`b@S(s>b<5B<8>AD4OH%l+3&{BgEF&h$q%Pm9b$(6To35tMDCN&V68_O{Ul z;=XJMlMVMpaP{s&oEgd2Xqch;4YA2kGL%Qn9{2|{%X2u|7{w8WRGclfY!8|?q@^+^ zcsFk9Rv#I*aQ2}GJ&H?yuq^_Ek-Lf4^7vBJIsq0O)wH*`$nlV9s!m_Ac3xOtNWf0y zuzm8_jsq(z?(720iP?iY?Izxt7;P~9;O{l>)&>!F)vmx%k}j!x1yAySh^^1vuV7V& z7%FtP3F|Uhd{i>|-tLG<4L9f9zZVSes1#;0RfzfjrNr83PJu(I{o-S%8ee)?uhAZ2 zGl$Ak%Ac@WCs(`JEa^Bb`S&zfh#_XLw#=l!X|FaeMC`!Ac-(b#2@H#+;ks6eZ9vcE zKx9@aXT?!_gm&x??bx4l^_uC+b5mCJV{m)LNCU&Gt|a8XBy#I)nnfk%>>a(39WwXg z&Xk94HLM$(bWmJO*Ta=|)EDy2;x~>uSjC(5P)^pdRnE{N+R9pzPc|8hl^yY$I+~Aa zIy;5oH8`*)M`D=E=W8c;!-y^y3Nk|KKtxCMe#qz?ISont0Nz3 zko$CpxajaagWXuoiU_d*2q&|2GJX~2dB%KF;kHOF5svmeQ>#4Bu)%=;+~p9dWk}9b zIdJd`DD0SfmoFE|BFGm;aBPuScxgUJgf{?2B*`!;X6%JXFb_38v`{R&dZEW^mq+zO zl|YfhqVDYFn1bo0+1pP}pdf=b%t~2RY?dU!&z~eoN1Jp= z636t7sL&k|($^_T(xGH1*G_7BtPVPKm$C%$ek{S@kcb5p(*+3*tfX|A*q(>V5(jvG znk@^YR0ToMD?v~?pAwJFV(|`{G*8wx{QRKi-t?vu^enm;TG=@Xw?{U`+ZsR z=@ru~)owz}Ma2~Al|l|ABiTltExzPU6urPpwkS2n#ZUH(T$BAW%8+R{Vz(H-QaY+e zjyf&mI*^nbBQQrfQ3lD9th7@}s^UId_GEcOMF-J{hq}i3B3LLy63yS(6)&WhDSYHV%mgNq) z(&DZ)Q@J^Z;>AAbTI$0G6d*#2DEvVa@5wF~0Ys6o9-gSC%n1(0ZFgN?HGeb~W?PIY zgf?giWwiJ!ZY)$2`?|g)FrPJ4*{M3GEn`l1_Gw%1?<@c?ED62Hv*)iGnF@~ItUVF2}Cm#+uzKQT`4~_o9V2OZZF^n6% ziX^)aWh?JF!!N(KH@o~g3_~1y37_oEKKXd1F*ug7 zO6My157+$YvuLKOzIHsY=iTDvrb2iuoSnnk{(TrI{%>dF``kU|0xc)jZ1YR~&NxXo z#~Zwg5IGs5y|sQ$uGO)FH^y1mHLZTYH=eg zvEs%}bjp(E{;GkYt2j#omUN4z+Jgh)vA44rw!3N)8bP;^Aa|dceUSsSb4U(9bda2_ zhq#h;cCpEjeqlyS)^faapc@MV z-L`U|bCD-``6PoH!u3}>xNWn+Z46l|)AO&{;I=IcZav2w+%yNTw~iX!&WxUnq3o>D zt(f|LlwDz61fpQIr9JEaL&mqNOK21+YupXEEH?B|SpuB@4Clb`C} zuMGuX-RySpuXd*zskVRl#C>0uM) zF}BUPway7Y^KPH;WAH^YD<}Nyf|ILR9VwQd;`t~1-PMGjBgXt!PWTy7YTD2kyNePu zI2xQ$hGE=1l**34?lf6P*wEnGomx>*+IxFm8KI^eRRMM;y@diZ+|&x2Gg99A zmE5m{=qPzz9+vx1-bb3-Za5Fe#sF|nulTVkZ)D&BON6Vo;QN`)6SAVZI%iP z?{JLv9)=HNvid0qaRqg-VD|Z>zO$C}Y_0{)!-|nmO)8octL1P_R{du8!k9+VO@6Kn ztg^A&?*bw`8G`EFEfk6TLMXXlwCIv45k>8+$Q3jy-^HqM_d;p&)=S8NuTnnRX4OKT zzin`|fuAbZn5tM&-Xf3Uif>laLf6v^yZ9ET7a!E2Whk$U1B*;d?CUbrfUPVmopbwm zt2g`hG;l}WNHl#@0hnM@fVDWXx24eqY_p>PvW02`%xPlLuHx%*bW=}J{7H|Dp_Vw9&p4Oiy1%-L5{LwVxTpD&# z96G=ogXLx!{`P1K9|gxV)PWe~ZAY(pFqX`PL1z66sv8Bgz4R#Iu-F9@RnD29Nh&=m zwKv^@;3NmcZ;Ra z&%2ANQ9Kd75@OYg)Ov+cuekb}t-TcH@?wm)tN1`+Q#om384M$WO*ZhoVZD&-EqWOl z(p$HLm&N$h%Q7+Bm=z-s5jvii2yZ=aIWC{R zk}AV7ST5li=NKx=zrZ!RnN1GlqN zsE#TCM|jtuIbAT|0#Y>MlcsF#<_kecZL;m8mU^l>TW2q#|Kus%r~^?hf3cz2SqWqV zUCiIHwVW<9S!CXK5Gpn<+sdvQhG~x!hWgXVg*{9B8ULcr97V-0J(aPXiaonM*7+83 zGuNQFAC54|m}SOSoUzis>*>j&&0QMd#?^kZ?i6~*Q#o%qmcLZiCizZEi@ydZ_n-JP zY7CHQl37`o60J!tU6CN1Wxk8>B&TB;{?ECaBC7jf{JD@<9|mpFAt4MYM9pYTwvh83 z*V;Brs>bPXl)VZFoQ%^|n@I3A$(yt_+DCpdH?~Q$LZ{j3+`n}cfO!DykC<^`P#0zL@ zgI2EEMN-Wum6d7HLNQrCu<&?Y7fcQg$10eFEyG!Yh=e&QAmcqt3i1X+@seV->=Y^} z!Huw-6l;kNEaGy}!oUc9JjVrm!C677qvhCM&0QTgHHT&c{&PTlhkt&W1_f3nQjQSX zGsP1Ms)A&{GzLw#rG$w+i87)RczasxSD^eQMcV&>e{@6ij)C)Pef+D{`uH!^pFV#3AA9=O8s}KM z`eKh*OZZajOYmjMYSu_j&k*gt7hTwlSCY{t4cOc|Y95I?BK)9?kQT8=pkYwt(5(sv zTqjAlDoQZ=kJT|Qp1ZzCFKn`Z-%bIt2t=dQxH`2s$Ud3~+SZGIHm6W^+||o62j%tu zOLV9cZtKajd@%cxz5jB$g!iPfBXJF*v7d#`?h?|Sl0D5O*{dj~Se3INV%?@)DB|NB zX{kB0#nW+a$I()KZ%Duyeg}USStG8RZ}uBBc#y_q;HhIaZAS{r{C@4-D6;Kmu-Z!a#7 zWCCt1%`;p^clT&Pym%CK;}KJvQQ2{2R$QHAe`XQfTWgX?xfTfvSS&XqterL~7Z*0y$0g>e0~2J~kXLGF7MO1%vL}s;6B0=c8^md^yi3GQqcn&PbLKJjn+^ALKh7mTIGk;2CIc@Yg z6CVrI#F{v{ksxIuNL<(qE3xU-i5IE(k74>{EPui^DX#u}Bt|GQT?(&$bOG$foVh(l zh|RcB)~L!L78jhX()GAWnG_Yy63*>=xd{%G5T>YWF)yRik(j}Zq|Ec69#mKJ(Aw}L z0-gGwc)=Y)na9OVcl^@<9dA|!Z?9JdX=%P}Lt{yq z*He!1WpTN;8K4i4*ZcYZX|K1ReVdxXZ7yR*`8qh$*v{-bq1tG1aH0yraYe~i^|E+W z%2S(!h&V|%h>=h{PCAV=7M8_37UNXhST=+vclpBN^N;-KT%$$K0ZB-bFJverHXBil zB$S1ch(1fnY)QU!Q*#+L7=DsD>?t-cPV!~>DNrbvYA89V zSS#`+zsW))b8x8xOQa4U0D7!x|2{d_)*!>re~4d{n$eQ4T5KdKi;c=$0Np>Pl3Qtk?;N zq7d=##4F>?11&`zp%^#oj_o#6OFjk#(WXlF33X~ibLnL?mhn;%shhrP<-#5q%9_X- zDwn@VF&+m;d1C~il{=c(CdydT;64?=SQJ`H-6FDto&L;LN%1VEdBR9Tj>#c+m~C*A zm^FRCsp^BPPA1ukZ3XMai?dxE*Twu*8yr$OTjIH>{<4VDcg|j6$Yf-oJ7NiquKdrHI%iu`bi8dquKu{b-lM4S?w9# zw2y&5T<^_Qx2no*q-8&JAW0-hNa9Z~xq6;gvnzx<4QLoBz!oD(j}!%#re-cWoO4kx zC}UTxzx@BLU(Jk=Rzu~{Kjx!8%<`~d)-Yyio{`KAsi~N86pL3i@AY{QiYBJ+69thz zW4eN!Yhx8fG*reC{`S^34`7JZu+Y}kYKShTU^eBBPpaIgYl(C*nyJ{2{uF78k*RB{ z0wd)f8yc9nV`5M)x3R9(w`s%h+Kqe&Rg0~dQbUy1HS^LO6X;Xs!(@2)WADE9>tDG0 z@XnYuG_nAjq-mSlPle{z1WPLFSgvX&q?0DE!6&cW&$-IIXhy| zeY@*>o}Xr$dp6lF9E#mU%mcY7wq4?gFHT-;O^)8T!Vvr>%K^!cLp3VSFBexc%a%VKQVgf>xBb#kIc zl#QjDeD-(Q)5$26T2=Sypd3+b%6o2qSrmnC=FUwqr} zY1fsl*gAiMBwX4NCZVlAn3E)0FElxSx zw4!T^cOsnPQM(OU9+Ug?L1|O{=;LV+9k&hV*KO5Cu3%E_mtkQr=MgoQK|8gITEHZw zEt3=<>}VedZ0+N-rIT$R^T0u^J&S=_6vv4f2ivn%YjX6iHe0G?HG$@CNgI~MmhHK! zEV?Ozffm60rP4fAQmyDEn~m+(!XZ|d-_Tl4M{3z9rRjBKoYoDv!q;8xQqMbM@vblm zXe&MCE1?wMrsL#$s@CjIJ<;OAYFr40t^;x@AzDwKuUV)SJ-=Mqt-T@v`dk!uanhhb zX(=9xuuH$v?j|INTGbZP%PGxZ<5cn90xgKLalET|5r#V`gYmZKKd9fJrPi*{(Gg+| z4zE%eO@tPlUCawMqto(b)pgrH*LBOTz$?@!Br_g@J+%9 znY~Pp-i8H5jZ>6SuezT4Un1|2v$7a_(z6&EEnzNG`qw$k#SIQXV~izasKK30Zh|(N zb+)SvyK`EsqqV}0I@^*i_LI_*vV`a}ZsRQ%5|Rb%;HS)do{n(kk}v|s**4%V{h-LULJ-2ZpmIRg1r?K9#_d=cWOR}U2izK4*SM%zOgw7 z7cCmS?e}IcSSQ5<2EiWV1oTj)o{05#7x$o-$`+E$cw)>Wj9Y}8j*f6fIu?5ga6my3 z78MW2tZ)p9@HLlWA{|k~S1kABU7Klp1qGtPAYV-yWFv2*#w1p+39Y+C7dO+D z&V9QuO|2v)EV9wX=S`_I;dn|pG&v)|=1Vj`)2bb9wF#;$+Ou&ur~Ph4{zBd&x@09Q z6U*{}+g^<=3uCSv(X(zx)<&2!(rqaY^&!ew+Bgm473|FjoQ$BkBcQY0v8b=z&4G|J zyb*gEL1HH+L(=wcU6KkAt&veql?v&MLg*sF*k&H0dz+EeOEa#!r-khFd!cy$A zzvK4zro>Xtcyo_g7`q*X$j$;4Id*~Y)3|vm%}6=nN?&2L%?w5#QZEx1-kRNS2-AT# zz9-)3h%C|(*Ljd*0m@*?vU!jm(H;-2$dmrLWuNbz`}qv6!E*k)(~WEDP*#?Cd&?U< z?wjfwGV@d9Y01V|#26!y6m+7KUo{Fqn;h zKC<1t@Yn!;{F_Tg8%q-#uUy2tPGjR0r0hxJcq`CDlm9x>&(-nfEP$Y8k#(V0s$wcJWGO zB>H~i!sdcPA~R^)D^0D&gaRj1R!y$+Wesi?V1kW2?YW>~MhnSM3B=;@McU7_Fkg17 zFi<-elFfKGHU?Q>n)vOPA;tXHVbIlVql=Ylrt_*T#MRmZ#A8BnVKb459p=D(thxwK zBc--lj9rMK2G7M87Kh#)Hx}x!#R=0wONw4m8_+aIg2;pLckjx^AXG3@nT-OUGiw>A zUo;AwS_(9c0#tG^KUK@A7||GZxPHmFi9Ik@k}w#^ss@S3kJT)-M_{?mNR0LjTi%Cc zp7H^sJB%MBqQ2wZ%|xWfz4PpG!cG=oQAmeYv`an=qP%~eF^e^)1Tg!559VqY#{wK-O(YX z8W8&p`tzo_15Qnj*Z6Rm{=Dv}uhI`JuZuk|A8Y1}Z*USK!!y(H1rkD=zYJfqWJ}G4 zR6dN^=WTO8YjCyPu2OD&5Vo)A72|gDD#oH6mFb_cWfE@^mwn_fPHbwEg{F zoPEUrrb0m;w1Ny!wT*P*m2_EWG-p+a6WEP$wPX(7Qmd_oM#?g6fDEX-v&72Z2fcI} z6MI#(n|xYqMPuMol$J%j*Zwj%5^|>{LeWVAiDaEh+bv1KWO0=6p*fNE66$@l6piv0 ztkPyHH1QH6q82FU&1l>yG1TFRtPwz%#n^ifA4;KH+DW%&&!5^}tOdl9`7c;N3412`OnR4q$wjNIne@7E?SRtTW|q?x-MMbT(A-yiBgTS$&q)?w<1O{&%b%} z%_cxJjn;7?nW{BvIjg#1+dwsnG?2+G@{Ljxjv2ShV)d65hLGN3wNxS=TChVPMa5UX z|FhcfXe$an$rf>97mal=Ro&SDYQnoqg~i~Y8l^8xqT#1q$1a!V;PBO=$?Jg|WNa}4 zjY(Tp=q71#%WgF*Fx|uV1bh@{c7w>S%)aq`+QrWsp01P?LNS$eIi+Tc};L z0Mi&jNPg!7pZdRAngk#wS!M62JY}*jI;~)&C&#`J8uoVvbL$!DPrFbid48|Ud)ssu zEmReimZ=p}BzCFP;!Wc!38pOhgIzAq?j^Y@qc5#4G`Bt!^$`w9F2c@T(8UT@Qcz%P_8sJRF~j9y;lo5%)2P0yi>V9xKZ5}umotqZ)eO27ZCnd& zTnlYnW9AMo%k75A0TfoKPKei4%Vp*zmF=SUee$2}%mEW0;!{BS4zX8?K$L??SX+OY zI$!f#@+S~g%JQd|k$)QU*F25i)2Z#IV=^`NMc}1r!(^1Y4fVYM)gmxJO<7eQ3{|GTJ=I&I`@ZO#Zj#iEO>|-axq)loO9J|FQOm zHX^Of*@2ui$U9RtzwrWwg4El5f+=@0RBXzZFdPM|sT7+ULPR!H`!CwEF1-m1&9=sQ z+9Vr3YnR?_L*%5dXd-E;LEnk^!6u+tDB;`C7i0f1D6%C*&hQLrZL5k ziBCfr(K@h^7>pk$2#vgF51USk(kC$nvYAr@Nl&ptkEHmPb_Vj4(QyS+Qca~$6}l*Y zX}JtVNs2Q#tz;#d&jJqt5OpaM6#xy;$y}1iI$fvm!6aa-?I_<&+>zbzVkB}$Jg|Pt zEz4SnUH@sudG5NFIa@N}L;hM|vh%mFvmvQ|^wVi;*OpwwJZuXaO=?;)gh%7`P6833 z9i-XpXz}wWO)5#PD4uvSW(Pbiik-5Pmz#Y7SGIoctn2s{76n5{zLguhP?j{6nFWw^ zBw<@~$FH!^+5wPj2mmCWmC?0ZFN30VhmN!s2KC|)W=*wNL(1ZgSd>X|tX%Ua54ml< zj0R>^)N(ooLSISo*Qv#IzbfU_?%)2r|1xeI{y*q>-B;YU;Z{s>i&%dxG7fjpMcD&+ zXUv{kp4e`naY^9wbt0$Btdl8=`}+Tq%bL9a^#-6`17c)n!9ELEyJA`&tcjSlN|KLL zjwNNCSpXg!UUXfa4nJ?()@Cxi^}e6|{aydG@0x#w(>FG2>`>B1|B+$x)%Yo6w+jTWLwE%DwI;=f^5bWLeJ_Uk;h4Dn~A7l+70 zvm)nh=yN?XGjAfV36b;8$R+G@#q36T=o!W4pKS8XdP9;(Nidhfx)R8&?^6#Jqnq_j z%>fvTH)Lk{ZPBI;&?(kquf7MqZ$^-UX;IE5)*$>S(ruCJ|sj-Wfg~#CD#o< z?kurX-$Z@Sav_jT#W;wYTxPAA+#xaNSnLq7gO_RwJ7M z;c%6Z;fUFIC9cP$&8+1T6+Q10M6*UIXfKhF{~`&Oc=&nO!RwF-^|`DM8!zF7@>f3} z)Wj5W05AwdHvCwm95zA)SZZUN%c%r4TM`mO+}K#0HhHZ|2G^+3DgPiZn@rU5R2!%# zu)mLe36yxF?Wkjn!wi=%vb}b-;l?&(TRgn>I&wQ-#f~L8%5tg#l#{|Qq6EqCGp^g( zTv&c&^GW%tvRkiNDuJq6sl_*npH-30k~OSkWP^4AL(}wLJSaeqD7oEuNE=~A)kRx~ zH@Evy8>%s|vCfo6XJYMg-uYxdA{!FW zQYT_pCl*Vc=t6%$pU?&>?K4Ep2>ENs#675udMi6(*6&LEeAAR0_o=ED-)p?Sp=pmFre{q9}9%APPwJKqF9B4oz z<2!Vh+0ZPeoiILUXL#}WLze%Ru}v(+k?ILGoB4DzEALSW)8e|Zjl|>cB`b@^@opib z21Z{;TdVP!2Fa;0vBU(TG&QCqSeHdMdo#*1Q<0ure<4IJ+n{QBx`tG;v9W~7Ut1Ns z+%`XeQ~xY`3vl4WMmpKqXslPkPvTztFJc%g8HZxL7PP=d{Q6zY*afUKD|%N)gxAj6 zmZs<`cHXsB3Qr;Cpo&|DBfJKH!~3iChj_7Sk|)<{hnTYvrOK1v3!kl`;j`3{wEjvv zUMEvROfNBA{kYC>iOJqUO<&nU6kVV^WT7E2K54A8qGMydhH{ClDp`WHjG|!(Ti#6d zSf#nH7R6;7Ta%oPA3QOg*ixssmLm~kGl{6EqMaA9{)Z<5s)Kp+0BiNjfVHVLR-`%L zOGR9jx9A_`?@0Fdas8;U_s5)%=4wph^&@L|*abkIa80rX7mOk)8K@!%YLMy~pR=z~ zU;ezUh~IXi5GpbdBC|pKgCPFFA&x59{qvOegK_-~@-A905jAy0F8d6HMlL}Ldu0Bg zSJiQwy4ms>-fZ2>q}R~_HGt~9{KC&kQSq(AP$5HWrk}99!+a{L?@OX& z2-*y?Jt`SG`X8Sbj1KfgxG$-3fT?!@2cX=5it)|etpW;3sSad5`qSBo1jD?aFc^1! zDlmy&r9D`^5Sg-ZeUJIvnm6t9<5_7t3-f|we_9(IGu88Ee>%D_&q*V8yc;Ve#f>pH zsnqMQ#zh|F6N|DP&Su!Ymr)_jgfL{Os4c#sLV4=@D04pP7^Sv8#*o;KutfC;AynUt z42(DB(Wjf~@Y$NcVqus4{h}J$h}QbzJZf(V`Cr4uJRxA_Ww+46|2?6F)h1lJq$O0l zB8r|}Jki5`7o>P8B;UbAIf%%yne(^a)dfS;7ZcxBIIOC1_GUc0sDH&eH<>tx`27eR zmeeWw6avs8wBaR^{eZlgPtzibub33rPRnDjM()^Zq$g0!uy4-^hJlu1+L3d%2K!lh zrDof)#TBY=y%7WAB(Elq%2uP&Y5dw7<6a3?#8Q!rW-s*MDJ|nn6F@ zJ(JXLOSuZG+_W98!a6HD+r|D`ws-|fu`M0{%Q_gn)+BI&++B|U2dhI$9TIL_X>#Tu zBG#GsHR0`I^s>@j8fLGam14h?`V)%9+?O3R+J#Xj&u)peT}DP7!R6H3PTWxw&g#nm zM73z77uu)*w=O>?8T8^TCqg=;&rq(}bw)?#UOd`z~PU| zi;P}er@7?Q88?$Oomzp5xKvaU=Iy;R3~I1n3v-; z@R$$8C(^+0V()85Ka8@661puyMNSK%;=M04;i~m^n8lp1i(_JO%nI@KNcQ!(!59G3 zG|kIWo0*t6cQTXq5Ug?F)q0pPM@K`IIWIaBC=K5A>*p5ds?O5vIr}L~^WZPDH2>Lj zFqdYR7MdWUj~t98mhDl@Osd16UHeP+F9|b?V%ujG+9cdX@})QhrAO+|D!C_7;yk`w zlMsT=Wonu?viFG<0qz zP%en++%A}wqYO)PrXs9m1B1CRP>V?Vue_po#@p+U{6V~MbJ6;z&m^mvTmDnLx|Y2& zZ4WXD@<@VC<3={XwB*CAr%}s(*27>3PK0TTh=xM4l_ygIG~g1=lxoDA-YH(0%2sR* zM}bMUkfiPCOvO0@K@-p_KL_k883x3AjU^}KC;X&H8ty^RwlJ+t`fOUR@k%81qELvdBJpHefrWl~Ih zF)k**XjQxEi*!0mM?LO+f!_A;)vC6OmrylE0`}*rxjU-{pjVBTldswj+Evrr%`Geb zw|V`9)kuN&+S~VdvyZ!8s=5(nq)=Tx6c=|=#68xAc#rsEoc%Z{_I=KRv;Ri(QMtI7 z*dJ$)v61%k7La`-E_Usw{vp+ad?nSl`AV=-U4JikZ+u=A@~M@6uvWWV-=_BqaUAvm z@y;(;fDori!_O)WKP(O3Xp1VGA6(wKCb@V8I284qz=XH^u7wwiq6PRVEo?lx0+$ef+ zJfZh5bNLeCx9EM63r(V8g1b_lCb!0mUmWjKFv)l5`4vw#uJ;E#*$sLp`HgzEEctku z`~aR*nlFwKL_*lE7+-UQF};7?5v~acTlAbVgs~Fg&@6-_3yJX!N0`z3K}UE@@08)k zdQKa{%)(Fwu4v&5a=Q?R73G@_F|GG+ImE*O;t@S(3}U*3cpQjraU0^GqCDgfQ+j{I zA?^#~gt(rKI~@@F73Dh)(bD^O9pdf)agUzk2GJ@ZZU$nis>ohN`MyI; z>iw`o+#VqA&~w5dCQFDtKulKEAjV6G13*kv5Ze{yUmaph?>}*fYXZa;J$2m0r8otB1ii9 z_%nx?(fbjHcueo&3q7X|Vg?V~#@ass;_eFKu%i6jA*S{Iq(eL$ARf_k#vrCkh{u7r zx~j-QMY(#(bJek?^uA@uS?XB#>z(HVdX6!TpgJYQ_3WCzrh?e7DAzhfOYiS+h`R&C zJ$jBCM5~0j8Hm9)bM94)cRIqP-nTo#?E&EqJtqudvP9Se!s<4{ZpC<)BTVT1-Hvce zK-j70q#;a{2>U=--bUD=81Hd}alPN@2sZ?T8})1%!gz^r0E9Jdgzbv)K1UeS`(HZ3 zH34CZo>PV}Rw5h%p{tE>M0(Qu9brcAI~?ILy^AIEoHm4+ddU(Xbhi->E5-*MVOsBh z

    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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_style_underlined_double.worker.js b/examples/dom/ftxui_example_style_underlined_double.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_style_underlined_double.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_table.js b/examples/dom/ftxui_example_table.js new file mode 100644 index 000000000..a6f8b4d94 --- /dev/null +++ b/examples/dom/ftxui_example_table.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_table.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={31296:function(){throw"Canceled!"},31314:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_table.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=31288;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=37332;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_table.wasm b/examples/dom/ftxui_example_table.wasm new file mode 100755 index 0000000000000000000000000000000000000000..04e328306982167179080285b3823e1042eeb9f3 GIT binary patch literal 231673 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

    Xo{qaG`e~J^ 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_vbox_hbox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22088:function(){throw"Canceled!"},22106:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_vbox_hbox.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"w":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"v":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"t":_emscripten_memcpy_big,"y":_emscripten_receive_on_main_thread_js,"u":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"x":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"z":_fd_close,"q":_fd_read,"r":_fd_seek,"f":_fd_write,"s":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22080;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=27540;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_vbox_hbox.wasm b/examples/dom/ftxui_example_vbox_hbox.wasm new file mode 100755 index 0000000000000000000000000000000000000000..019f6638d9c102a9ffe134d94c6591a99168bb8b GIT binary patch literal 190878 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%0AyQjfW4r?mEQe<8qIc*XyR^3cBlRUHlF? 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_vflow.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={24216:function(){throw"Canceled!"},24234:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_vflow.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"w":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"v":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"t":_emscripten_memcpy_big,"y":_emscripten_receive_on_main_thread_js,"u":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"x":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"z":_fd_close,"q":_fd_read,"r":_fd_seek,"f":_fd_write,"s":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=24208;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=30100;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_vflow.wasm b/examples/dom/ftxui_example_vflow.wasm new file mode 100755 index 0000000000000000000000000000000000000000..e1986027e16f5e5c410b56a469f79a2067f8a7eb GIT binary patch literal 213170 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

  1. xUUuGfsr$Wh&_#W>xA@C`#Y6*OJaTZ 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 literal 0 HcmV?d00001 diff --git a/examples/dom/ftxui_example_vflow.worker.js b/examples/dom/ftxui_example_vflow.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/dom/ftxui_example_vflow.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/index.css b/examples/index.css new file mode 100644 index 000000000..32b44750f --- /dev/null +++ b/examples/index.css @@ -0,0 +1,107 @@ +@import url(https://fonts.googleapis.com/css?family=Khula:700); + +body { + background-color:#EEE; + padding:0px; + margin:0px; + font-family: Khula, Helvetica, sans-serif; + font-size: 130%; +} + +.page { + max-width:1300px; + margin: auto; + padding: 10px; +} + +a { + box-shadow: inset 0 0 0 0 #54b3d6; + color: #0087b9; + margin: 0 -.25rem; + padding: 0 .25rem; + transition: color .3s ease-in-out, + box-shadow .3s ease-in-out; +} + +a:hover { + box-shadow: inset 120px 0 0 0 #54b3d6; + color: white; +} + +h1 { + text-decoration: underline; + width:100%; + background-color: rgba(100,100,255,0.5); + padding: 10px; + margin: 0; +} + + +#selectExample { + flex:1; +} + +#selectExample, #selectExample option { + font-size: 16px; + font-family: sans-serif; + font-weight: 700; + line-height: 1.3; + border:0px; + background-color: #bbb; + color:black; +} + +#selectExample:focus { + outline:none; +} + +#terminal { + width:100%; + height 500px; + height: calc(clamp(200px, 100vh - 300px, 900px)); + overflow: hidden; + border:none; + background-color:black; +} + +#terminalContainer { + overflow: hidden; + border-radius: 10px; + box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.75), + 0px 2px 80px 0px rgba(0,0,0,0.50); +} + +.fakeButtons { + height: 10px; + width: 10px; + border-radius: 50%; + border: 1px solid #000; + margin:6px; + background-color: #ff3b47; + border-color: #9d252b; + display: inline-block; +} + +.fakeMinimize { + left: 11px; + background-color: #ffc100; + border-color: #9d802c; +} + +.fakeZoom { + left: 16px; + background-color: #00d742; + border-color: #049931; +} + +.fakeMenu { + display:flex; + flex-direction: row; + width:100%; + box-sizing: border-box; + height: 25px; + background-color: #bbb; + color:black; + margin: 0 auto; + overflow: hidden; +} diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 000000000..675f70d2a --- /dev/null +++ b/examples/index.html @@ -0,0 +1,32 @@ + + + + + FTXUI examples WebAssembly + + + + + + + + + + + diff --git a/examples/index.mjs b/examples/index.mjs new file mode 100644 index 000000000..69ed12020 --- /dev/null +++ b/examples/index.mjs @@ -0,0 +1,97 @@ +import xterm from 'https://cdn.jsdelivr.net/npm/xterm@4.18.0/+esm' +import xterm_addon_webgl from 'https://cdn.jsdelivr.net/npm/xterm-addon-webgl@0.11.4/+esm' +import xterm_addon_fit from 'https://cdn.jsdelivr.net/npm/xterm-addon-fit@0.5.0/+esm' + +// Add COOP/COEP via a ServiceWorker to use SharedArrayBuffer +if ("serviceWorker" in navigator && !window.crossOriginIsolated) { + const url_sw = new URL("./sw.js", location.href); + const registration = await navigator.serviceWorker.register(url_sw); + window.location.reload(); // Reload to ensure the COOP/COEP headers are set. +} + +const example_list = "component/button;component/button_animated;component/button_in_frame;component/button_style;component/canvas_animated;component/checkbox;component/checkbox_in_frame;component/collapsible;component/composition;component/custom_loop;component/dropdown;component/dropdown_custom;component/flexbox_gallery;component/focus;component/focus_cursor;component/gallery;component/homescreen;component/input;component/input_in_frame;component/input_style;component/linear_gradient_gallery;component/maybe;component/menu;component/menu2;component/menu_entries;component/menu_entries_animated;component/menu_in_frame;component/menu_in_frame_horizontal;component/menu_multiple;component/menu_style;component/menu_underline_animated_gallery;component/modal_dialog;component/modal_dialog_custom;component/nested_screen;component/print_key_press;component/radiobox;component/radiobox_in_frame;component/renderer;component/resizable_split;component/scrollbar;component/selection;component/slider;component/slider_direction;component/slider_rgb;component/tab_horizontal;component/tab_vertical;component/textarea;component/toggle;component/window;component/with_restored_io;dom/border;dom/border_colored;dom/border_style;dom/canvas;dom/color_gallery;dom/color_info_palette256;dom/color_truecolor_HSV;dom/color_truecolor_RGB;dom/dbox;dom/gauge;dom/gauge_direction;dom/graph;dom/gridbox;dom/hflow;dom/html_like;dom/linear_gradient;dom/package_manager;dom/paragraph;dom/separator;dom/separator_style;dom/size;dom/spinner;dom/style_blink;dom/style_bold;dom/style_color;dom/style_dim;dom/style_gallery;dom/style_hyperlink;dom/style_inverted;dom/style_italic;dom/style_strikethrough;dom/style_underlined;dom/style_underlined_double;dom/table;dom/vbox_hbox;dom/vflow".split(";"); +const url_search_params = new URLSearchParams(window.location.search); + +const select = document.getElementById("selectExample"); +for(const example of example_list) { + const option = document.createElement("option"); + option.textContent = example; + option.value = example; + select.appendChild(option); +} +const example = url_search_params.get("file") || "dom/color_gallery"; +select.selectedIndex = example_list.findIndex(path => path == example) || 0; +select.addEventListener("change", () => { + history.pushState({}, "", "?file=" + example_list[select.selectedIndex]); + location.reload(); +}); + +const term_element = document.querySelector('#terminal'); +const term = new xterm.Terminal(); +term.options.scrollback = 0; +term.open(term_element); +const fit_addon = new xterm_addon_fit.FitAddon(); +const webgl_addon = new xterm_addon_webgl.WebglAddon(); +term.loadAddon(webgl_addon); +term.loadAddon(fit_addon); + +const stdin_buffer = []; +const stdout_buffer = []; +const stderr_buffer = []; + +const stdin = () => { + return stdin_buffer.shift() || 0; +} + +const stdout = code => { + if (code == 0) { + term.write(new Uint8Array(stdout_buffer)); + stdout_buffer.length = 0; + } else { + stdout_buffer.push(code) + } +} + +const stderr = code => { + if (code == 0 || code == 10) { + console.error(String.fromCodePoint(...stderr_buffer)); + stderr_buffer.length = 0; + } else { + stderr_buffer.push(code) + } +} + +const onBinary = e => { + for(const c of e) + stdin_buffer.push(c.charCodeAt(0)); +} + +term.onBinary(onBinary); +term.onData(onBinary) +term.resize(140,43); + +window.Module = { + preRun: () => { + FS.init(stdin, stdout, stderr); + }, + postRun: [], + onRuntimeInitialized: () => { + if (window.Module._ftxui_on_resize == undefined) + return; + fit_addon.fit(); + + const resize_handler = () => { + const {cols, rows} = fit_addon.proposeDimensions(); + term.resize(cols, rows); + window.Module._ftxui_on_resize(cols, rows); + fit_addon.fit(); + }; + const resize_observer = new ResizeObserver(resize_handler); + resize_observer.observe(term_element); + resize_handler(); + }, +}; + +const words = example.split('/') +words[1] = "ftxui_example_" + words[1] + ".js" +document.querySelector("#example_script").src = words.join('/'); diff --git a/examples/sw.js b/examples/sw.js new file mode 100644 index 000000000..1d0dd5b18 --- /dev/null +++ b/examples/sw.js @@ -0,0 +1,25 @@ +// sw.js +self.addEventListener("install", () => self.skipWaiting()); +self.addEventListener("activate", e => e.waitUntil(self.clients.claim())); +self.addEventListener("fetch", e => { + if (e.request.mode != 'navigate' && + !e.request.url.includes(".worker.js")) { + return; + } + + e.respondWith((async () => { + const response = await fetch(e.request); + + const newHeaders = new Headers(response.headers); + newHeaders.set("Cross-Origin-Embedder-Policy", "require-corp"); + newHeaders.set("Cross-Origin-Opener-Policy", "same-origin"); + + const moddedResponse = new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: newHeaders, + }); + + return moddedResponse; + })()); +}); diff --git a/examples_2component_2button_8cpp.html b/examples_2component_2button_8cpp.html new file mode 100644 index 000000000..f3ff27cfa --- /dev/null +++ b/examples_2component_2button_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: button.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    button.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    ButtonOption Style ()
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Style()

    + +
    +
    + + + + + + + +
    ButtonOption Style ()
    +
    + +

    Definition at line 21 of file examples/component/button.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 33 of file examples/component/button.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2button_8cpp.js b/examples_2component_2button_8cpp.js new file mode 100644 index 000000000..b611b34ed --- /dev/null +++ b/examples_2component_2button_8cpp.js @@ -0,0 +1,5 @@ +var examples_2component_2button_8cpp = +[ + [ "Style", "examples_2component_2button_8cpp.html#a98e3b8d17caf902b7bf0fe47562cea08", null ], + [ "main", "examples_2component_2button_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2button_8cpp_source.html b/examples_2component_2button_8cpp_source.html new file mode 100644 index 000000000..8f5d29e13 --- /dev/null +++ b/examples_2component_2button_8cpp_source.html @@ -0,0 +1,299 @@ + + + + + + + + +FTXUI: button.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/button.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for shared_ptr, __shared_ptr_access
    +
    5#include <string> // for operator+, to_string
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Button, Horizontal, Renderer
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    11#include "ftxui/dom/elements.hpp" // for separator, gauge, text, Element, operator|, vbox, border
    +
    12
    +
    13using namespace ftxui;
    +
    14
    +
    15// This is a helper function to create a button with a custom style.
    +
    16// The style is defined by a lambda function that takes an EntryState and
    +
    17// returns an Element.
    +
    18// We are using `center` to center the text inside the button, then `border` to
    +
    19// add a border around the button, and finally `flex` to make the button fill
    +
    20// the available space.
    +
    + +
    22 auto option = ButtonOption::Animated();
    +
    23 option.transform = [](const EntryState& s) {
    +
    24 auto element = text(s.label);
    +
    25 if (s.focused) {
    +
    26 element |= bold;
    +
    27 }
    +
    28 return element | center | borderEmpty | flex;
    +
    29 };
    +
    30 return option;
    +
    31}
    +
    +
    32
    +
    +
    33int main() {
    +
    34 int value = 50;
    +
    35
    +
    36 // clang-format off
    +
    37 auto btn_dec_01 = Button("-1", [&] { value += 1; }, Style());
    +
    38 auto btn_inc_01 = Button("+1", [&] { value -= 1; }, Style());
    +
    39 auto btn_dec_10 = Button("-10", [&] { value -= 10; }, Style());
    +
    40 auto btn_inc_10 = Button("+10", [&] { value += 10; }, Style());
    +
    41 // clang-format on
    +
    42
    +
    43 // The tree of components. This defines how to navigate using the keyboard.
    +
    44 // The selected `row` is shared to get a grid layout.
    +
    45 int row = 0;
    +
    46 auto buttons = Container::Vertical({
    +
    47 Container::Horizontal({btn_dec_01, btn_inc_01}, &row) | flex,
    +
    48 Container::Horizontal({btn_dec_10, btn_inc_10}, &row) | flex,
    +
    49 });
    +
    50
    +
    51 // Modify the way to render them on screen:
    +
    52 auto component = Renderer(buttons, [&] {
    +
    53 return vbox({
    +
    54 text("value = " + std::to_string(value)),
    +
    55 separator(),
    +
    56 buttons->Render() | flex,
    +
    57 }) |
    +
    58 flex | border;
    +
    59 });
    +
    60
    +
    61 auto screen = ScreenInteractive::FitComponent();
    +
    62 screen.Loop(component);
    +
    63 return 0;
    +
    64}
    +
    + + + + +
    ButtonOption Style()
    + +
    static ButtonOption Animated()
    Create a ButtonOption, using animated colors.
    +
    static ScreenInteractive FitComponent()
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Option for the AnimatedButton component.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
    +
    +
    + + + + + diff --git a/examples_2component_2checkbox_8cpp.html b/examples_2component_2checkbox_8cpp.html new file mode 100644 index 000000000..8b4d569ca --- /dev/null +++ b/examples_2component_2checkbox_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: checkbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    checkbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 17 of file examples/component/checkbox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2checkbox_8cpp.js b/examples_2component_2checkbox_8cpp.js new file mode 100644 index 000000000..1201d715d --- /dev/null +++ b/examples_2component_2checkbox_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2checkbox_8cpp = +[ + [ "main", "examples_2component_2checkbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2checkbox_8cpp_source.html b/examples_2component_2checkbox_8cpp_source.html new file mode 100644 index 000000000..5df6b7074 --- /dev/null +++ b/examples_2component_2checkbox_8cpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: checkbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/checkbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <array> // for array
    +
    5#include <iostream>
    +
    6#include <memory> // for shared_ptr, __shared_ptr_access
    +
    7#include <string> // for operator+, to_string
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Checkbox, Renderer, Vertical
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    13#include "ftxui/dom/elements.hpp" // for operator|, Element, size, border, frame, vscroll_indicator, HEIGHT, LESS_THAN
    +
    14
    +
    15using namespace ftxui;
    +
    16
    +
    +
    17int main() {
    +
    18 bool download = false;
    +
    19 bool upload = false;
    +
    20 bool ping = false;
    +
    21
    +
    22 auto container = Container::Vertical({
    +
    23 Checkbox("Download", &download),
    +
    24 Checkbox("Upload", &upload),
    +
    25 Checkbox("Ping", &ping),
    +
    26 });
    +
    27
    +
    28 auto screen = ScreenInteractive::FitComponent();
    +
    29 screen.Loop(container);
    +
    30
    +
    31 std::cout << "---" << std::endl;
    +
    32 std::cout << "Download: " << download << std::endl;
    +
    33 std::cout << "Upload: " << upload << std::endl;
    +
    34 std::cout << "Ping: " << ping << std::endl;
    +
    35 std::cout << "---" << std::endl;
    +
    36
    +
    37 return 0;
    +
    38}
    +
    + + + + + +
    static ScreenInteractive FitComponent()
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/examples_2component_2collapsible_8cpp.html b/examples_2component_2collapsible_8cpp.html new file mode 100644 index 000000000..64f822ca9 --- /dev/null +++ b/examples_2component_2collapsible_8cpp.html @@ -0,0 +1,281 @@ + + + + + + + + +FTXUI: collapsible.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    collapsible.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Functions

    Component Inner (std::vector< Component > children)
     
    Component Empty ()
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Inner()

    + +
    +
    + + + + + + + +
    Component Inner (std::vector< Component > children)
    +
    + +

    Definition at line 18 of file examples/component/collapsible.cpp.

    + +
    +
    + +

    ◆ Empty()

    + +
    +
    + + + + + + + +
    Component Empty ()
    +
    + +

    Definition at line 28 of file examples/component/collapsible.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 32 of file examples/component/collapsible.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2collapsible_8cpp.js b/examples_2component_2collapsible_8cpp.js new file mode 100644 index 000000000..82b74dd5d --- /dev/null +++ b/examples_2component_2collapsible_8cpp.js @@ -0,0 +1,6 @@ +var examples_2component_2collapsible_8cpp = +[ + [ "Inner", "examples_2component_2collapsible_8cpp.html#a74bf63b8448df7b03bd98ae6de127c0a", null ], + [ "Empty", "examples_2component_2collapsible_8cpp.html#aacbbfcb3c5bc93d26a5c681172e27eae", null ], + [ "main", "examples_2component_2collapsible_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2collapsible_8cpp_source.html b/examples_2component_2collapsible_8cpp_source.html new file mode 100644 index 000000000..b2ae3b27a --- /dev/null +++ b/examples_2component_2collapsible_8cpp_source.html @@ -0,0 +1,290 @@ + + + + + + + + +FTXUI: collapsible.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/collapsible.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, make_shared, __shared_ptr_access
    +
    5#include <utility> // for move
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Collapsible, Renderer, Vertical
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for text, hbox, Element
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    16// Take a list of component, display them vertically, one column shifted to the
    +
    17// right.
    +
    +
    18Component Inner(std::vector<Component> children) {
    +
    19 Component vlist = Container::Vertical(std::move(children));
    +
    20 return Renderer(vlist, [vlist] {
    +
    21 return hbox({
    +
    22 text(" "),
    +
    23 vlist->Render(),
    +
    24 });
    +
    25 });
    +
    26}
    +
    +
    27
    +
    + +
    29 return std::make_shared<ComponentBase>();
    +
    30}
    +
    +
    31
    +
    +
    32int main() {
    +
    33 auto component =
    +
    34 Collapsible("Collapsible 1",
    +
    35 Inner({
    +
    36 Collapsible("Collapsible 1.1",
    +
    37 Inner({
    +
    38 Collapsible("Collapsible 1.1.1", Empty()),
    +
    39 Collapsible("Collapsible 1.1.2", Empty()),
    +
    40 Collapsible("Collapsible 1.1.3", Empty()),
    +
    41 })),
    +
    42 Collapsible("Collapsible 1.2",
    +
    43 Inner({
    +
    44 Collapsible("Collapsible 1.2.1", Empty()),
    +
    45 Collapsible("Collapsible 1.2.2", Empty()),
    +
    46 Collapsible("Collapsible 1.2.3", Empty()),
    +
    47 })),
    +
    48 Collapsible("Collapsible 1.3",
    +
    49 Inner({
    +
    50 Collapsible("Collapsible 1.3.1", Empty()),
    +
    51 Collapsible("Collapsible 1.3.2", Empty()),
    +
    52 Collapsible("Collapsible 1.3.3", Empty()),
    +
    53 })),
    +
    54 }));
    +
    55
    + +
    57}
    +
    + + + + +
    Component Inner(std::vector< Component > children)
    +
    Component Empty()
    + +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    static ScreenInteractive FitComponent()
    +
    void Loop(Component)
    Execute the main loop.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
    A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed...
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/examples_2component_2dropdown_8cpp.html b/examples_2component_2dropdown_8cpp.html new file mode 100644 index 000000000..808c56fd8 --- /dev/null +++ b/examples_2component_2dropdown_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: dropdown.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dropdown.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file examples/component/dropdown.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2dropdown_8cpp.js b/examples_2component_2dropdown_8cpp.js new file mode 100644 index 000000000..75eb3309f --- /dev/null +++ b/examples_2component_2dropdown_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2dropdown_8cpp = +[ + [ "main", "examples_2component_2dropdown_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2dropdown_8cpp_source.html b/examples_2component_2dropdown_8cpp_source.html new file mode 100644 index 000000000..f57674aa4 --- /dev/null +++ b/examples_2component_2dropdown_8cpp_source.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: dropdown.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/dropdown.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <string> // for basic_string, string, allocator
    +
    5#include <vector> // for vector
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Dropdown, Horizontal, Vertical
    +
    9#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13
    +
    14 std::vector<std::string> entries = {
    +
    15 "tribute", "clearance", "ally", "bend", "electronics",
    +
    16 "module", "era", "cultural", "sniff", "nationalism",
    +
    17 "negotiation", "deliver", "figure", "east", "tribute",
    +
    18 "clearance", "ally", "bend", "electronics", "module",
    +
    19 "era", "cultural", "sniff", "nationalism", "negotiation",
    +
    20 "deliver", "figure", "east", "tribute", "clearance",
    +
    21 "ally", "bend", "electronics", "module", "era",
    +
    22 "cultural", "sniff", "nationalism", "negotiation", "deliver",
    +
    23 "figure", "east",
    +
    24 };
    +
    25
    +
    26 int selected_1 = 0;
    +
    27 int selected_2 = 0;
    +
    28 int selected_3 = 0;
    +
    29 int selected_4 = 0;
    +
    30
    +
    31 auto layout = Container::Vertical({
    +
    32 Container::Horizontal({
    +
    33 Dropdown(&entries, &selected_1),
    +
    34 Dropdown(&entries, &selected_2),
    +
    35 }),
    +
    36 Container::Horizontal({
    +
    37 Dropdown(&entries, &selected_3),
    +
    38 Dropdown(&entries, &selected_4),
    +
    39 }),
    +
    40 });
    +
    41
    +
    42 auto screen = ScreenInteractive::FitComponent();
    +
    43 screen.Loop(layout);
    +
    44}
    +
    + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/examples_2component_2focus_8cpp.html b/examples_2component_2focus_8cpp.html new file mode 100644 index 000000000..e6e97d3ff --- /dev/null +++ b/examples_2component_2focus_8cpp.html @@ -0,0 +1,285 @@ + + + + + + + + +FTXUI: focus.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    focus.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Functions

    Element make_box (int x, int y)
     
    Element make_grid ()
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ make_box()

    + +
    +
    + + + + + + + + + + + +
    Element make_box (int x,
    int y )
    +
    + +

    Definition at line 17 of file examples/component/focus.cpp.

    + +
    +
    + +

    ◆ make_grid()

    + +
    +
    + + + + + + + +
    Element make_grid ()
    +
    + +

    Definition at line 24 of file examples/component/focus.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 37 of file examples/component/focus.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2focus_8cpp.js b/examples_2component_2focus_8cpp.js new file mode 100644 index 000000000..863606792 --- /dev/null +++ b/examples_2component_2focus_8cpp.js @@ -0,0 +1,6 @@ +var examples_2component_2focus_8cpp = +[ + [ "make_box", "examples_2component_2focus_8cpp.html#a9ffb8a33ec5d0133f63f791d526df1c7", null ], + [ "make_grid", "examples_2component_2focus_8cpp.html#a9543e1b98f00db8484ee0c856a1d4cca", null ], + [ "main", "examples_2component_2focus_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2focus_8cpp_source.html b/examples_2component_2focus_8cpp_source.html new file mode 100644 index 000000000..b0fab78b9 --- /dev/null +++ b/examples_2component_2focus_8cpp_source.html @@ -0,0 +1,311 @@ + + + + + + + + +FTXUI: focus.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/focus.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    5#include <string> // for operator+, char_traits, to_string, string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Slider, Renderer, Vertical
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for Elements, Element, operator|, separator, text, focusPositionRelative, size, border, flex, frame, bgcolor, gridbox, vbox, EQUAL, center, HEIGHT, WIDTH
    +
    13#include "ftxui/screen/color.hpp" // for Color
    +
    14
    +
    15using namespace ftxui;
    +
    16
    +
    +
    17Element make_box(int x, int y) {
    +
    18 std::string title = "(" + std::to_string(x) + ", " + std::to_string(y) + ")";
    +
    19 return text(title) | center | size(WIDTH, EQUAL, 18) |
    +
    20 size(HEIGHT, EQUAL, 9) | border |
    +
    21 bgcolor(Color::HSV(x * 255 / 15, 255, y * 255 / 15));
    +
    22};
    +
    +
    23
    +
    + +
    25 std::vector<Elements> rows;
    +
    26 for (int i = 0; i < 15; i++) {
    +
    27 std::vector<Element> cols;
    +
    28 for (int j = 0; j < 15; j++) {
    +
    29 cols.push_back(make_box(i, j));
    +
    30 }
    +
    31 rows.push_back(cols);
    +
    32 }
    +
    33
    +
    34 return gridbox(rows);
    +
    35};
    +
    +
    36
    +
    +
    37int main() {
    +
    38 float focus_x = 0.5f;
    +
    39 float focus_y = 0.5f;
    +
    40
    +
    41 auto slider_x = Slider("x", &focus_x, 0.f, 1.f, 0.01f);
    +
    42 auto slider_y = Slider("y", &focus_y, 0.f, 1.f, 0.01f);
    +
    43
    +
    44 auto renderer = Renderer(
    +
    45 Container::Vertical({
    +
    46 slider_x,
    +
    47 slider_y,
    +
    48 }),
    +
    49 [&] {
    +
    50 auto title = "focusPositionRelative(" + //
    +
    51 std::to_string(focus_x) + ", " + //
    +
    52 std::to_string(focus_y) + ")"; //
    +
    53 return vbox({
    +
    54 text(title),
    +
    55 separator(),
    +
    56 slider_x->Render(),
    +
    57 slider_y->Render(),
    +
    58 separator(),
    +
    59 make_grid() | focusPositionRelative(focus_x, focus_y) |
    +
    60 frame | flex,
    +
    61 }) |
    +
    62 border;
    +
    63 });
    +
    64
    +
    65 auto screen = ScreenInteractive::Fullscreen();
    +
    66 screen.Loop(renderer);
    +
    67
    +
    68 return 0;
    +
    69}
    +
    + + + + + +
    Element make_grid()
    +
    Element make_box(int x, int y)
    + +
    static ScreenInteractive Fullscreen()
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Decorator focusPositionRelative(float x, float y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    Element gridbox(std::vector< Elements > lines)
    A container displaying a grid of elements.
    + + +
    +
    + + + + + diff --git a/examples_2component_2input_8cpp.html b/examples_2component_2input_8cpp.html new file mode 100644 index 000000000..67c784cf7 --- /dev/null +++ b/examples_2component_2input_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: input.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    input.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 15 of file examples/component/input.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2input_8cpp.js b/examples_2component_2input_8cpp.js new file mode 100644 index 000000000..7cd112c0e --- /dev/null +++ b/examples_2component_2input_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2input_8cpp = +[ + [ "main", "examples_2component_2input_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2input_8cpp_source.html b/examples_2component_2input_8cpp_source.html new file mode 100644 index 000000000..3df9b3564 --- /dev/null +++ b/examples_2component_2input_8cpp_source.html @@ -0,0 +1,293 @@ + + + + + + + + +FTXUI: input.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/input.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, __shared_ptr_access
    +
    5#include <string> // for char_traits, operator+, string, basic_string
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Input, Renderer, Vertical
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    10#include "ftxui/component/component_options.hpp" // for InputOption
    +
    11#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for text, hbox, separator, Element, operator|, vbox, border
    +
    13#include "ftxui/util/ref.hpp" // for Ref
    +
    14
    +
    +
    15int main() {
    +
    16 using namespace ftxui;
    +
    17
    +
    18 // The data:
    +
    19 std::string first_name;
    +
    20 std::string last_name;
    +
    21 std::string password;
    +
    22 std::string phoneNumber;
    +
    23
    +
    24 // The basic input components:
    +
    25 Component input_first_name = Input(&first_name, "first name");
    +
    26 Component input_last_name = Input(&last_name, "last name");
    +
    27
    +
    28 // The password input component:
    +
    29 InputOption password_option;
    +
    30 password_option.password = true;
    +
    31 Component input_password = Input(&password, "password", password_option);
    +
    32
    +
    33 // The phone number input component:
    +
    34 // We are using `CatchEvent` to filter out non-digit characters.
    +
    35 Component input_phone_number = Input(&phoneNumber, "phone number");
    +
    36 input_phone_number |= CatchEvent([&](Event event) {
    +
    37 return event.is_character() && !std::isdigit(event.character()[0]);
    +
    38 });
    +
    39 input_phone_number |= CatchEvent([&](Event event) {
    +
    40 return event.is_character() && phoneNumber.size() > 10;
    +
    41 });
    +
    42
    +
    43 // The component tree:
    +
    44 auto component = Container::Vertical({
    +
    45 input_first_name,
    +
    46 input_last_name,
    +
    47 input_password,
    +
    48 input_phone_number,
    +
    49 });
    +
    50
    +
    51 // Tweak how the component tree is rendered:
    +
    52 auto renderer = Renderer(component, [&] {
    +
    53 return vbox({
    +
    54 hbox(text(" First name : "), input_first_name->Render()),
    +
    55 hbox(text(" Last name : "), input_last_name->Render()),
    +
    56 hbox(text(" Password : "), input_password->Render()),
    +
    57 hbox(text(" Phone num : "), input_phone_number->Render()),
    +
    58 separator(),
    +
    59 text("Hello " + first_name + " " + last_name),
    +
    60 text("Your password is " + password),
    +
    61 text("Your phone number is " + phoneNumber),
    +
    62 }) |
    +
    63 border;
    +
    64 });
    +
    65
    +
    66 auto screen = ScreenInteractive::TerminalOutput();
    +
    67 screen.Loop(renderer);
    +
    68}
    +
    + + + + + + +
    std::string character() const
    Definition event.hpp:107
    +
    Ref< bool > password
    Obscure the input content using '*'.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    Option for the Input component.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + + +
    +
    + + + + + diff --git a/examples_2component_2maybe_8cpp.html b/examples_2component_2maybe_8cpp.html new file mode 100644 index 000000000..92ffa9293 --- /dev/null +++ b/examples_2component_2maybe_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: maybe.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    maybe.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file examples/component/maybe.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2maybe_8cpp.js b/examples_2component_2maybe_8cpp.js new file mode 100644 index 000000000..1c94985cf --- /dev/null +++ b/examples_2component_2maybe_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2maybe_8cpp = +[ + [ "main", "examples_2component_2maybe_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2maybe_8cpp_source.html b/examples_2component_2maybe_8cpp_source.html new file mode 100644 index 000000000..8efe097df --- /dev/null +++ b/examples_2component_2maybe_8cpp_source.html @@ -0,0 +1,269 @@ + + + + + + + + +FTXUI: maybe.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/maybe.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <string> // for string, allocator, basic_string
    +
    5#include <vector> // for vector
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for operator|, Maybe, Checkbox, Radiobox, Renderer, Vertical
    +
    9#include "ftxui/component/component_base.hpp" // for Component
    +
    10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    11#include "ftxui/dom/elements.hpp" // for Element, border, color, operator|, text
    +
    12#include "ftxui/screen/color.hpp" // for Color, Color::Red
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> entries = {
    +
    18 "entry 1",
    +
    19 "entry 2",
    +
    20 "entry 3",
    +
    21 };
    +
    22 int menu_1_selected = 0;
    +
    23 int menu_2_selected = 0;
    +
    24
    +
    25 bool menu_1_show = false;
    +
    26 bool menu_2_show = false;
    +
    27
    +
    28 auto layout = Container::Vertical({
    +
    29 Checkbox("Show menu_1", &menu_1_show),
    +
    30 Radiobox(&entries, &menu_1_selected) | border | Maybe(&menu_1_show),
    +
    31 Checkbox("Show menu_2", &menu_2_show),
    +
    32 Radiobox(&entries, &menu_2_selected) | border | Maybe(&menu_2_show),
    +
    33
    +
    34 Renderer([] {
    +
    35 return text("You found the secret combinaison!") | color(Color::Red);
    +
    36 }) | Maybe([&] { return menu_1_selected == 1 && menu_2_selected == 2; }),
    +
    37 });
    +
    38
    + +
    40 screen.Loop(layout);
    +
    41}
    +
    + + + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Component Maybe(Component, const bool *show)
    Decorate a component |child|. It is shown only when |show| is true.
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Decorator color(Color)
    Decorate using a foreground color.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/examples_2component_2menu_8cpp.html b/examples_2component_2menu_8cpp.html new file mode 100644 index 000000000..9b35586ec --- /dev/null +++ b/examples_2component_2menu_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: menu.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file examples/component/menu.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2menu_8cpp.js b/examples_2component_2menu_8cpp.js new file mode 100644 index 000000000..dfc9e04da --- /dev/null +++ b/examples_2component_2menu_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2menu_8cpp = +[ + [ "main", "examples_2component_2menu_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2menu_8cpp_source.html b/examples_2component_2menu_8cpp_source.html new file mode 100644 index 000000000..1aa5ba9c1 --- /dev/null +++ b/examples_2component_2menu_8cpp_source.html @@ -0,0 +1,251 @@ + + + + + + + + +FTXUI: menu.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/menu.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <iostream> // for basic_ostream::operator<<, operator<<, endl, basic_ostream, basic_ostream<>::__ostream_type, cout, ostream
    +
    6#include <string> // for string, basic_string, allocator
    +
    7#include <vector> // for vector
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Menu
    +
    11#include "ftxui/component/component_options.hpp" // for MenuOption
    +
    12#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16 auto screen = ScreenInteractive::TerminalOutput();
    +
    17
    +
    18 std::vector<std::string> entries = {
    +
    19 "entry 1",
    +
    20 "entry 2",
    +
    21 "entry 3",
    +
    22 };
    +
    23 int selected = 0;
    +
    24
    +
    25 MenuOption option;
    +
    26 option.on_enter = screen.ExitLoopClosure();
    +
    27 auto menu = Menu(&entries, &selected, option);
    +
    28
    +
    29 screen.Loop(menu);
    +
    30
    +
    31 std::cout << "Selected element = " << selected << std::endl;
    +
    32}
    +
    + + + + +
    std::function< void()> on_enter
    +
    Option for the Menu component.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/examples_2component_2radiobox_8cpp.html b/examples_2component_2radiobox_8cpp.html new file mode 100644 index 000000000..17a2dd2bc --- /dev/null +++ b/examples_2component_2radiobox_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: radiobox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    radiobox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 13 of file examples/component/radiobox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2radiobox_8cpp.js b/examples_2component_2radiobox_8cpp.js new file mode 100644 index 000000000..ac6865865 --- /dev/null +++ b/examples_2component_2radiobox_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2radiobox_8cpp = +[ + [ "main", "examples_2component_2radiobox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2radiobox_8cpp_source.html b/examples_2component_2radiobox_8cpp_source.html new file mode 100644 index 000000000..ab82a7f7c --- /dev/null +++ b/examples_2component_2radiobox_8cpp_source.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: radiobox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/radiobox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <string> // for string, allocator, basic_string
    +
    5#include <vector> // for vector
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Radiobox
    +
    9#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    10
    +
    11using namespace ftxui;
    +
    12
    +
    +
    13int main() {
    +
    14 std::vector<std::string> radiobox_list = {
    +
    15 "Use gcc",
    +
    16 "Use clang",
    +
    17 "Use emscripten",
    +
    18 "Use tcc",
    +
    19 };
    +
    20 int selected = 0;
    +
    21
    + +
    23 screen.Loop(Radiobox(&radiobox_list, &selected));
    +
    24 return 0;
    +
    25}
    +
    + + + +
    static ScreenInteractive TerminalOutput()
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/examples_2component_2renderer_8cpp.html b/examples_2component_2renderer_8cpp.html new file mode 100644 index 000000000..29b574872 --- /dev/null +++ b/examples_2component_2renderer_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: renderer.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    renderer.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 13 of file examples/component/renderer.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2renderer_8cpp.js b/examples_2component_2renderer_8cpp.js new file mode 100644 index 000000000..cb5dbefe0 --- /dev/null +++ b/examples_2component_2renderer_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2renderer_8cpp = +[ + [ "main", "examples_2component_2renderer_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2renderer_8cpp_source.html b/examples_2component_2renderer_8cpp_source.html new file mode 100644 index 000000000..973db7947 --- /dev/null +++ b/examples_2component_2renderer_8cpp_source.html @@ -0,0 +1,269 @@ + + + + + + + + +FTXUI: renderer.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/renderer.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for shared_ptr, allocator, __shared_ptr_access
    +
    5
    +
    6#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    7#include "ftxui/component/component.hpp" // for Renderer, Button, Vertical
    +
    8#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    9#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    10#include "ftxui/dom/elements.hpp" // for operator|, Element, text, bold, border, center, color
    +
    11#include "ftxui/screen/color.hpp" // for Color, Color::Red
    +
    12
    +
    +
    13int main() {
    +
    14 using namespace ftxui;
    +
    15 auto screen = ScreenInteractive::FitComponent();
    +
    16
    +
    17 // A Renderer() is a component using a lambda function as a parameter to
    +
    18 // render itself.
    +
    19
    +
    20 // 1. Example of focusable renderer:
    +
    21 auto renderer_focusable = Renderer([](bool focused) {
    +
    22 if (focused) {
    +
    23 return text("FOCUSABLE RENDERER()") | center | bold | border;
    +
    24 } else {
    +
    25 return text(" Focusable renderer() ") | center | border;
    +
    26 }
    +
    27 });
    +
    28
    +
    29 // 2. Examples of a non focusable renderer.
    +
    30 auto renderer_non_focusable = Renderer([&] {
    +
    31 return text("~~~~~ Non Focusable renderer() ~~~~~"); //
    +
    32 });
    +
    33
    +
    34 // 3. Renderer can wrap other components to redefine their Render() function.
    +
    35 auto button = Button("Wrapped quit button", screen.ExitLoopClosure());
    +
    36 auto renderer_wrap = Renderer(button, [&] {
    +
    37 if (button->Focused()) {
    +
    38 return button->Render() | bold | color(Color::Red);
    +
    39 } else {
    +
    40 return button->Render();
    +
    41 }
    +
    42 });
    +
    43
    +
    44 // Let's renderer everyone:
    +
    45 screen.Loop(Container::Vertical({
    +
    46 renderer_focusable,
    +
    47 renderer_non_focusable,
    +
    48 renderer_wrap,
    +
    49 }));
    +
    50}
    +
    + + + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/examples_2component_2resizable__split_8cpp.html b/examples_2component_2resizable__split_8cpp.html new file mode 100644 index 000000000..e03e5b010 --- /dev/null +++ b/examples_2component_2resizable__split_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: resizable_split.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    resizable_split.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file examples/component/resizable_split.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2resizable__split_8cpp.js b/examples_2component_2resizable__split_8cpp.js new file mode 100644 index 000000000..f53ca0512 --- /dev/null +++ b/examples_2component_2resizable__split_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2resizable__split_8cpp = +[ + [ "main", "examples_2component_2resizable__split_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2resizable__split_8cpp_source.html b/examples_2component_2resizable__split_8cpp_source.html new file mode 100644 index 000000000..15a1e0da4 --- /dev/null +++ b/examples_2component_2resizable__split_8cpp_source.html @@ -0,0 +1,268 @@ + + + + + + + + +FTXUI: resizable_split.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/resizable_split.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for shared_ptr, allocator, __shared_ptr_access
    +
    5
    +
    6#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    7#include "ftxui/component/component.hpp" // for Renderer, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
    +
    8#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    9#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    10#include "ftxui/dom/elements.hpp" // for Element, operator|, text, center, border
    +
    11
    +
    12using namespace ftxui;
    +
    13
    +
    +
    14int main() {
    +
    15 auto screen = ScreenInteractive::Fullscreen();
    +
    16
    +
    17 auto middle = Renderer([] { return text("middle") | center; });
    +
    18 auto left = Renderer([] { return text("Left") | center; });
    +
    19 auto right = Renderer([] { return text("right") | center; });
    +
    20 auto top = Renderer([] { return text("top") | center; });
    +
    21 auto bottom = Renderer([] { return text("bottom") | center; });
    +
    22
    +
    23 int left_size = 20;
    +
    24 int right_size = 20;
    +
    25 int top_size = 10;
    +
    26 int bottom_size = 10;
    +
    27
    +
    28 auto container = middle;
    +
    29 container = ResizableSplitLeft(left, container, &left_size);
    +
    30 container = ResizableSplitRight(right, container, &right_size);
    +
    31 container = ResizableSplitTop(top, container, &top_size);
    +
    32 container = ResizableSplitBottom(bottom, container, &bottom_size);
    +
    33
    +
    34 auto renderer =
    +
    35 Renderer(container, [&] { return container->Render() | border; });
    +
    36
    +
    37 screen.Loop(renderer);
    +
    38}
    +
    + + + + + +
    static ScreenInteractive Fullscreen()
    +
    Component ResizableSplitTop(Component main, Component back, int *main_size)
    An vertical split in between two components, configurable using the mouse.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component ResizableSplitRight(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Component ResizableSplitBottom(Component main, Component back, int *main_size)
    An vertical split in between two components, configurable using the mouse.
    +
    Component ResizableSplitLeft(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element border(Element)
    Draw a border around the element.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::uint8_t top
    Definition screen.cpp:131
    +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t right
    Definition screen.cpp:132
    + +
    +
    + + + + + diff --git a/examples_2component_2selection_8cpp.html b/examples_2component_2selection_8cpp.html new file mode 100644 index 000000000..7bb2b3b1a --- /dev/null +++ b/examples_2component_2selection_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: selection.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    selection.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    Element LoremIpsum ()
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ LoremIpsum()

    + +
    +
    + + + + + + + +
    Element LoremIpsum ()
    +
    + +

    Definition at line 15 of file examples/component/selection.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 24 of file examples/component/selection.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2selection_8cpp.js b/examples_2component_2selection_8cpp.js new file mode 100644 index 000000000..69d33eecc --- /dev/null +++ b/examples_2component_2selection_8cpp.js @@ -0,0 +1,5 @@ +var examples_2component_2selection_8cpp = +[ + [ "LoremIpsum", "examples_2component_2selection_8cpp.html#a693bf20426978b4a6d5114374d8c521d", null ], + [ "main", "examples_2component_2selection_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2selection_8cpp_source.html b/examples_2component_2selection_8cpp_source.html new file mode 100644 index 000000000..5f8b0fc44 --- /dev/null +++ b/examples_2component_2selection_8cpp_source.html @@ -0,0 +1,334 @@ + + + + + + + + +FTXUI: selection.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/selection.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <string> // for char_traits, operator+, string, basic_string
    +
    5
    +
    6#include "ftxui/component/component.hpp" // for Input, Renderer, Vertical
    +
    7#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    8#include "ftxui/component/component_options.hpp" // for InputOption
    +
    9#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    10#include "ftxui/dom/elements.hpp" // for text, hbox, separator, Element, operator|, vbox, border
    +
    11#include "ftxui/util/ref.hpp" // for Ref
    +
    12
    +
    13using namespace ftxui;
    +
    14
    +
    + +
    16 return vbox({
    +
    17 text("FTXUI: A powerful library for building user interfaces."),
    +
    18 text("Enjoy a rich set of components and a declarative style."),
    +
    19 text("Create beautiful and responsive UIs with minimal effort."),
    +
    20 text("Join the community and experience the power of FTXUI."),
    +
    21 });
    +
    22}
    +
    +
    23
    +
    +
    24int main() {
    + +
    26
    +
    27 auto quit =
    +
    28 Button("Quit", screen.ExitLoopClosure(), ButtonOption::Animated());
    +
    29
    +
    30 int selection_change_counter = 0;
    +
    31 std::string selection_content = "";
    +
    32 screen.SelectionChange([&] {
    +
    33 selection_change_counter++;
    +
    34 selection_content = screen.GetSelection();
    +
    35 });
    +
    36
    +
    37 // The components:
    +
    38 auto renderer = Renderer(quit, [&] {
    +
    39 return vbox({
    +
    40 text("Select changed: " + std::to_string(selection_change_counter) +
    +
    41 " times"),
    +
    42 text("Currently selected: "),
    +
    43 paragraph(selection_content) | vscroll_indicator | frame | border |
    +
    44 size(HEIGHT, EQUAL, 10),
    +
    45 window(text("Horizontal split"), hbox({
    +
    46 LoremIpsum(),
    +
    47 separator(),
    +
    48 LoremIpsum(),
    +
    49 separator(),
    +
    50 LoremIpsum(),
    +
    51 })),
    +
    52 window(text("Vertical split"), vbox({
    +
    53 LoremIpsum(),
    +
    54 separator(),
    +
    55 LoremIpsum(),
    +
    56 separator(),
    +
    57 LoremIpsum(),
    +
    58 })),
    +
    59 window(text("Grid split with different style"),
    +
    60 vbox({
    +
    61 hbox({
    +
    62 LoremIpsum(),
    +
    63 separator(),
    +
    64 LoremIpsum() //
    + + + +
    68 separator(),
    + +
    70 }),
    +
    71 separator(),
    +
    72 hbox({
    + +
    74 separator(),
    +
    75 LoremIpsum() | selectionStyle([](Pixel& pixel) {
    +
    76 pixel.underlined_double = true;
    +
    77 }),
    +
    78 separator(),
    +
    79 LoremIpsum(),
    +
    80 }),
    +
    81 })),
    +
    82 quit->Render(),
    +
    83 });
    +
    84 });
    +
    85
    +
    86 screen.Loop(renderer);
    +
    87}
    +
    + + + + +
    Element LoremIpsum()
    + +
    static ButtonOption Animated()
    Create a ButtonOption, using animated colors.
    +
    static ScreenInteractive TerminalOutput()
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + +
    bool underlined_double
    Definition pixel.hpp:34
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Decorator selectionStyle(std::function< void(Pixel &)> style)
    Set the style of an element when selected.
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Decorator selectionBackgroundColor(Color foreground)
    Set the background color of an element when selected. Note that the style is applied on top of the ex...
    +
    Decorator selectionColor(Color foreground)
    Set the color of an element when selected.
    +
    Element selectionStyleReset(Element)
    Reset the selection style of an element.
    +
    Elements paragraph(std::wstring text)
    + + + +
    +
    + + + + + diff --git a/examples_2component_2slider_8cpp.html b/examples_2component_2slider_8cpp.html new file mode 100644 index 000000000..d3ab7a001 --- /dev/null +++ b/examples_2component_2slider_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: slider.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    slider.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 7 of file examples/component/slider.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2slider_8cpp.js b/examples_2component_2slider_8cpp.js new file mode 100644 index 000000000..0f0dc37a7 --- /dev/null +++ b/examples_2component_2slider_8cpp.js @@ -0,0 +1,4 @@ +var examples_2component_2slider_8cpp = +[ + [ "main", "examples_2component_2slider_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2slider_8cpp_source.html b/examples_2component_2slider_8cpp_source.html new file mode 100644 index 000000000..5c9fde565 --- /dev/null +++ b/examples_2component_2slider_8cpp_source.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: slider.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/slider.cpp
    +
    +
    +Go to the documentation of this file.
    1#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    2#include "ftxui/component/component.hpp" // for Slider
    +
    3#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    4
    +
    5using namespace ftxui;
    +
    6
    +
    +
    7int main() {
    + +
    9 int value = 50;
    +
    10 auto slider = Slider("Value:", &value, 0, 100, 1);
    +
    11 screen.Loop(slider);
    +
    12}
    +
    +
    13
    +
    14// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    15// Use of this source code is governed by the MIT license that can be found in
    +
    16// the LICENSE file.
    + + + +
    static ScreenInteractive TerminalOutput()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    + +
    +
    + + + + + diff --git a/examples_2component_2window_8cpp.html b/examples_2component_2window_8cpp.html new file mode 100644 index 000000000..8bd523e2a --- /dev/null +++ b/examples_2component_2window_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: window.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    window.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    Component DummyWindowContent ()
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ DummyWindowContent()

    + +
    +
    + + + + + + + +
    Component DummyWindowContent ()
    +
    + +

    Definition at line 10 of file examples/component/window.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 29 of file examples/component/window.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2component_2window_8cpp.js b/examples_2component_2window_8cpp.js new file mode 100644 index 000000000..a2cd78d9d --- /dev/null +++ b/examples_2component_2window_8cpp.js @@ -0,0 +1,5 @@ +var examples_2component_2window_8cpp = +[ + [ "DummyWindowContent", "examples_2component_2window_8cpp.html#a83db372d294b69185f7a26148935cfc3", null ], + [ "main", "examples_2component_2window_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2component_2window_8cpp_source.html b/examples_2component_2window_8cpp_source.html new file mode 100644 index 000000000..8b74f0938 --- /dev/null +++ b/examples_2component_2window_8cpp_source.html @@ -0,0 +1,319 @@ + + + + + + + + +FTXUI: window.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/component/window.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + + +
    6#include <string>
    +
    7
    +
    8using namespace ftxui;
    +
    9
    +
    + +
    11 class Impl : public ComponentBase {
    +
    12 private:
    +
    13 bool checked[3] = {false, false, false};
    +
    14 float slider = 50;
    +
    15
    +
    16 public:
    +
    17 Impl() {
    +
    18 Add(Container::Vertical({
    +
    19 Checkbox("Check me", &checked[0]),
    +
    20 Checkbox("Check me", &checked[1]),
    +
    21 Checkbox("Check me", &checked[2]),
    +
    22 Slider("Slider", &slider, 0.f, 100.f),
    +
    23 }));
    +
    24 }
    +
    25 };
    +
    26 return Make<Impl>();
    +
    27}
    +
    +
    28
    +
    +
    29int main() {
    +
    30 int window_1_left = 20;
    +
    31 int window_1_top = 10;
    +
    32 int window_1_width = 40;
    +
    33 int window_1_height = 20;
    +
    34
    +
    35 auto window_1 = Window({
    +
    36 .inner = DummyWindowContent(),
    +
    37 .title = "First window",
    +
    38 .left = &window_1_left,
    +
    39 .top = &window_1_top,
    +
    40 .width = &window_1_width,
    +
    41 .height = &window_1_height,
    +
    42 });
    +
    43
    +
    44 auto window_2 = Window({
    +
    45 .inner = DummyWindowContent(),
    +
    46 .title = "My window",
    +
    47 .left = 40,
    +
    48 .top = 20,
    +
    49 });
    +
    50
    +
    51 auto window_3 = Window({
    +
    52 .inner = DummyWindowContent(),
    +
    53 .title = "My window",
    +
    54 .left = 60,
    +
    55 .top = 30,
    +
    56 });
    +
    57
    +
    58 auto window_4 = Window({
    +
    59 .inner = DummyWindowContent(),
    +
    60 });
    +
    61
    +
    62 auto window_5 = Window({});
    +
    63
    +
    64 auto window_container = Container::Stacked({
    +
    65 window_1,
    +
    66 window_2,
    +
    67 window_3,
    +
    68 window_4,
    +
    69 window_5,
    +
    70 });
    +
    71
    +
    72 auto display_win_1 = Renderer([&] {
    +
    73 return text("window_1: " + //
    +
    74 std::to_string(window_1_width) + "x" +
    +
    75 std::to_string(window_1_height) + " + " +
    +
    76 std::to_string(window_1_left) + "," +
    +
    77 std::to_string(window_1_top));
    +
    78 });
    +
    79
    +
    80 auto layout = Container::Vertical({
    +
    81 display_win_1,
    +
    82 window_container,
    +
    83 });
    +
    84
    +
    85 auto screen = ScreenInteractive::Fullscreen();
    +
    86 screen.Loop(layout);
    +
    87
    +
    88 return EXIT_SUCCESS;
    +
    89}
    +
    + +
    Component DummyWindowContent()
    + +
    void Add(Component children)
    Add a child. @param child The child to be attached.
    Definition component.cpp:70
    +
    static ScreenInteractive Fullscreen()
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Window(WindowOptions option)
    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Stacked(Components children)
    A list of components to be stacked on top of each other. Events are propagated to the first component...
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/examples_2dom_2border_8cpp.html b/examples_2dom_2border_8cpp.html new file mode 100644 index 000000000..9db805075 --- /dev/null +++ b/examples_2dom_2border_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: border.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    border.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file examples/dom/border.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2border_8cpp.js b/examples_2dom_2border_8cpp.js new file mode 100644 index 000000000..8ed410df6 --- /dev/null +++ b/examples_2dom_2border_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2border_8cpp = +[ + [ "main", "examples_2dom_2border_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2border_8cpp_source.html b/examples_2dom_2border_8cpp_source.html new file mode 100644 index 000000000..ae03be0e9 --- /dev/null +++ b/examples_2dom_2border_8cpp_source.html @@ -0,0 +1,255 @@ + + + + + + + + +FTXUI: border.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/border.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdlib.h> // for EXIT_SUCCESS
    +
    5#include <ftxui/dom/elements.hpp> // for text, operator|, vbox, border, Element, Fit, hbox
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <memory> // for allocator
    +
    8
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto document = //
    +
    15 hbox({
    +
    16 vbox({
    +
    17 text("Line 1"),
    +
    18 text("Line 2"),
    +
    19 text("Line 3"),
    +
    20 }) | border,
    +
    21
    +
    22 vbox({
    +
    23 text("Line 4"),
    +
    24 text("Line 5"),
    +
    25 text("Line 6"),
    +
    26 }) | border,
    +
    27
    +
    28 vbox({
    +
    29 text("Line 7"),
    +
    30 text("Line 8"),
    +
    31 text("Line 9"),
    +
    32 }) | border,
    +
    33 });
    +
    34 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    35 Render(screen, document);
    +
    36 screen.Print();
    +
    37 return EXIT_SUCCESS;
    +
    38}
    +
    + + +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2canvas_8cpp.html b/examples_2dom_2canvas_8cpp.html new file mode 100644 index 000000000..c3c64fbdc --- /dev/null +++ b/examples_2dom_2canvas_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: canvas.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    canvas.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file examples/dom/canvas.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2canvas_8cpp.js b/examples_2dom_2canvas_8cpp.js new file mode 100644 index 000000000..dcfb8222e --- /dev/null +++ b/examples_2dom_2canvas_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2canvas_8cpp = +[ + [ "main", "examples_2dom_2canvas_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2canvas_8cpp_source.html b/examples_2dom_2canvas_8cpp_source.html new file mode 100644 index 000000000..38292d184 --- /dev/null +++ b/examples_2dom_2canvas_8cpp_source.html @@ -0,0 +1,272 @@ + + + + + + + + +FTXUI: canvas.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/canvas.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdio.h> // for getchar
    +
    5#include <cmath> // for cos
    +
    6#include <ftxui/dom/elements.hpp> // for Fit, canvas, operator|, border, Element
    +
    7#include <ftxui/screen/screen.hpp> // for Pixel, Screen
    +
    8#include <vector> // for vector, allocator
    +
    9
    +
    10#include "ftxui/dom/canvas.hpp" // for Canvas
    +
    11#include "ftxui/dom/node.hpp" // for Render
    +
    12#include "ftxui/screen/color.hpp" // for Color, Color::Red, Color::Blue, Color::Green, ftxui
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16
    +
    17 auto c = Canvas(100, 100);
    +
    18
    +
    19 c.DrawText(0, 0, "This is a canvas", [](Pixel& p) {
    +
    20 p.foreground_color = Color::Red;
    +
    21 p.underlined = true;
    +
    22 });
    +
    23
    +
    24 // Triangle:
    +
    25 c.DrawPointLine(10, 10, 80, 10, Color::Red);
    +
    26 c.DrawPointLine(80, 10, 80, 40, Color::Blue);
    +
    27 c.DrawPointLine(80, 40, 10, 10, Color::Green);
    +
    28
    +
    29 // Circle, not filled and filled:
    +
    30 c.DrawPointCircle(30, 50, 20);
    +
    31 c.DrawPointCircleFilled(40, 40, 10);
    +
    32
    +
    33 // Plot a function:
    +
    34 std::vector<int> ys(100);
    +
    35 for (int x = 0; x < 100; x++) {
    +
    36 ys[x] = int(80 + 20 * cos(x * 0.2));
    +
    37 }
    +
    38 for (int x = 0; x < 99; x++) {
    +
    39 c.DrawPointLine(x, ys[x], x + 1, ys[x + 1], Color::Red);
    +
    40 }
    +
    41
    +
    42 auto document = canvas(&c) | border;
    +
    43
    +
    44 auto screen = Screen::Create(Dimension::Fit(document));
    +
    45 Render(screen, document);
    +
    46 screen.Print();
    +
    47 getchar();
    +
    48
    +
    49 return 0;
    +
    50}
    +
    + + + +
    int main()
    +
    Canvas is a drawable buffer associated with drawing operations.
    Definition canvas.hpp:38
    +
    Color foreground_color
    Definition pixel.hpp:49
    +
    bool underlined
    Definition pixel.hpp:33
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2dbox_8cpp.html b/examples_2dom_2dbox_8cpp.html new file mode 100644 index 000000000..eb6fd60e1 --- /dev/null +++ b/examples_2dom_2dbox_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: dbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file examples/dom/dbox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2dbox_8cpp.js b/examples_2dom_2dbox_8cpp.js new file mode 100644 index 000000000..78e9a3593 --- /dev/null +++ b/examples_2dom_2dbox_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2dbox_8cpp = +[ + [ "main", "examples_2dom_2dbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2dbox_8cpp_source.html b/examples_2dom_2dbox_8cpp_source.html new file mode 100644 index 000000000..6ab34bb21 --- /dev/null +++ b/examples_2dom_2dbox_8cpp_source.html @@ -0,0 +1,246 @@ + + + + + + + + +FTXUI: dbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/dbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, border, Element, vbox, center, Fit, dbox
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = dbox({
    +
    14 vbox({
    +
    15 text("line_1"),
    +
    16 text("line_2"),
    +
    17 text("line_3"),
    +
    18 text("line_4"),
    +
    19 text("line_5"),
    +
    20 }) | border,
    +
    21 text("overlay") | border | center,
    +
    22 });
    +
    23 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    24 Render(screen, document);
    +
    25
    +
    26 screen.Print();
    +
    27
    +
    28 return 0;
    +
    29}
    +
    + + +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2gauge_8cpp.html b/examples_2dom_2gauge_8cpp.html new file mode 100644 index 000000000..f7220309c --- /dev/null +++ b/examples_2dom_2gauge_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: gauge.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    gauge.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file examples/dom/gauge.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2gauge_8cpp.js b/examples_2dom_2gauge_8cpp.js new file mode 100644 index 000000000..ae6e44cf3 --- /dev/null +++ b/examples_2dom_2gauge_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2gauge_8cpp = +[ + [ "main", "examples_2dom_2gauge_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2gauge_8cpp_source.html b/examples_2dom_2gauge_8cpp_source.html new file mode 100644 index 000000000..8621cf3f3 --- /dev/null +++ b/examples_2dom_2gauge_8cpp_source.html @@ -0,0 +1,254 @@ + + + + + + + + +FTXUI: gauge.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/gauge.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <ftxui/dom/elements.hpp> // for text, gauge, operator|, flex, hbox, Element
    +
    6#include <ftxui/screen/screen.hpp> // for Screen
    +
    7#include <iostream> // for cout, endl, ostream
    +
    8#include <string> // for allocator, char_traits, operator+, operator<<, string, to_string, basic_string
    +
    9#include <thread> // for sleep_for
    +
    10
    +
    11#include "ftxui/dom/node.hpp" // for Render
    +
    12#include "ftxui/screen/color.hpp" // for ftxui
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16 using namespace std::chrono_literals;
    +
    17
    +
    18 std::string reset_position;
    +
    19 for (float percentage = 0.0f; percentage <= 1.0f; percentage += 0.002f) {
    +
    20 std::string data_downloaded =
    +
    21 std::to_string(int(percentage * 5000)) + "/5000";
    +
    22 auto document = hbox({
    +
    23 text("downloading:"),
    +
    24 gauge(percentage) | flex,
    +
    25 text(" " + data_downloaded),
    +
    26 });
    +
    27 auto screen = Screen(100, 1);
    +
    28 Render(screen, document);
    +
    29 std::cout << reset_position;
    +
    30 screen.Print();
    +
    31 reset_position = screen.ResetPosition();
    +
    32
    +
    33 std::this_thread::sleep_for(0.01s);
    +
    34 }
    +
    35 std::cout << std::endl;
    +
    36}
    +
    + + +
    int main()
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2graph_8cpp.html b/examples_2dom_2graph_8cpp.html new file mode 100644 index 000000000..c2713a150 --- /dev/null +++ b/examples_2dom_2graph_8cpp.html @@ -0,0 +1,264 @@ + + + + + + + + +FTXUI: graph.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    graph.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    std::vector< int > triangle (int width, int height)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ triangle()

    + +
    +
    + + + + + + + + + + + +
    std::vector< int > triangle (int width,
    int height )
    +
    + +

    Definition at line 37 of file examples/dom/graph.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 45 of file examples/dom/graph.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2graph_8cpp.js b/examples_2dom_2graph_8cpp.js new file mode 100644 index 000000000..1b5449d68 --- /dev/null +++ b/examples_2dom_2graph_8cpp.js @@ -0,0 +1,5 @@ +var examples_2dom_2graph_8cpp = +[ + [ "triangle", "examples_2dom_2graph_8cpp.html#a5ab45e2cb218468666c7dc7b2b957396", null ], + [ "main", "examples_2dom_2graph_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2graph_8cpp_source.html b/examples_2dom_2graph_8cpp_source.html new file mode 100644 index 000000000..47ad626ea --- /dev/null +++ b/examples_2dom_2graph_8cpp_source.html @@ -0,0 +1,307 @@ + + + + + + + + +FTXUI: graph.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/graph.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <cmath> // for sin
    +
    6#include <ftxui/dom/elements.hpp> // for graph, operator|, separator, color, Element, vbox, flex, inverted, operator|=, Fit, hbox, size, border, GREATER_THAN, HEIGHT
    +
    7#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    8#include <functional> // for ref, reference_wrapper
    +
    9#include <iostream> // for cout, ostream
    +
    10#include <memory> // for shared_ptr
    +
    11#include <string> // for operator<<, string
    +
    12#include <thread> // for sleep_for
    +
    13#include <utility> // for ignore
    +
    14#include <vector> // for vector
    +
    15
    +
    16#include "ftxui/dom/node.hpp" // for Render
    +
    17#include "ftxui/screen/color.hpp" // for Color, Color::BlueLight, Color::RedLight, Color::YellowLight, ftxui
    +
    18
    +
    19class Graph {
    +
    20 public:
    +
    21 std::vector<int> operator()(int width, int height) const {
    +
    22 std::vector<int> output(width);
    +
    23 for (int i = 0; i < width; ++i) {
    +
    24 float v = 0;
    +
    25 v += 0.1f * sin((i + shift) * 0.1f); // NOLINT
    +
    26 v += 0.2f * sin((i + shift + 10) * 0.15f); // NOLINT
    +
    27 v += 0.1f * sin((i + shift) * 0.03f); // NOLINT
    +
    28 v *= height; // NOLINT
    +
    29 v += 0.5f * height; // NOLINT
    +
    30 output[i] = static_cast<int>(v);
    +
    31 }
    +
    32 return output;
    +
    33 }
    +
    34 int shift = 0;
    +
    35};
    +
    36
    +
    +
    37std::vector<int> triangle(int width, int height) {
    +
    38 std::vector<int> output(width);
    +
    39 for (int i = 0; i < width; ++i) {
    +
    40 output[i] = i % (height - 4) + 2;
    +
    41 }
    +
    42 return output;
    +
    43}
    +
    +
    44
    +
    +
    45int main() {
    +
    46 using namespace ftxui;
    +
    47 using namespace std::chrono_literals;
    +
    48
    +
    49 Graph my_graph;
    +
    50
    +
    51 std::string reset_position;
    +
    52 for (int i = 0;; ++i) {
    +
    53 std::ignore = i;
    +
    54 auto document = hbox({
    +
    55 vbox({
    +
    56 graph(std::ref(my_graph)),
    +
    57 separator(),
    +
    58 graph(triangle) | inverted,
    +
    59 }) | flex,
    +
    60 separator(),
    +
    61 vbox({
    +
    62 graph(std::ref(my_graph)) | color(Color::BlueLight),
    +
    63 separator(),
    +
    64 graph(std::ref(my_graph)) | color(Color::RedLight),
    +
    65 separator(),
    +
    66 graph(std::ref(my_graph)) | color(Color::YellowLight),
    +
    67 }) | flex,
    +
    68 });
    +
    69
    +
    70 document |= border;
    +
    71
    +
    72 const int min_width = 40;
    +
    73 document |= size(HEIGHT, GREATER_THAN, min_width);
    +
    74
    +
    75 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    76 Render(screen, document);
    +
    77 std::cout << reset_position;
    +
    78 screen.Print();
    +
    79 reset_position = screen.ResetPosition();
    +
    80
    +
    81 const auto sleep_time = 0.03s;
    +
    82 std::this_thread::sleep_for(sleep_time);
    +
    83 my_graph.shift++;
    +
    84 }
    +
    85
    +
    86 return 0;
    +
    87}
    +
    + + +
    std::vector< int > triangle(int width, int height)
    +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2gridbox_8cpp.html b/examples_2dom_2gridbox_8cpp.html new file mode 100644 index 000000000..ca447e1c0 --- /dev/null +++ b/examples_2dom_2gridbox_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: gridbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    gridbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file examples/dom/gridbox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2gridbox_8cpp.js b/examples_2dom_2gridbox_8cpp.js new file mode 100644 index 000000000..5235441fe --- /dev/null +++ b/examples_2dom_2gridbox_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2gridbox_8cpp = +[ + [ "main", "examples_2dom_2gridbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2gridbox_8cpp_source.html b/examples_2dom_2gridbox_8cpp_source.html new file mode 100644 index 000000000..3167cb731 --- /dev/null +++ b/examples_2dom_2gridbox_8cpp_source.html @@ -0,0 +1,265 @@ + + + + + + + + +FTXUI: gridbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/gridbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdio.h> // for getchar
    +
    5#include <ftxui/dom/elements.hpp> // for Elements, gridbox, Fit, operator|, text, border, Element
    +
    6#include <ftxui/screen/screen.hpp> // for Screen
    +
    7#include <memory> // for allocator, shared_ptr
    +
    8
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto cell = [](const char* t) { return text(t) | border; };
    +
    15 auto document = //
    +
    16 gridbox({
    +
    17 {
    +
    18 cell("north-west"),
    +
    19 cell("north"),
    +
    20 cell("north-east"),
    +
    21 },
    +
    22 {
    +
    23 cell("center-west"),
    +
    24 gridbox({
    +
    25 {
    +
    26 cell("center-north-west"),
    +
    27 cell("center-north-east"),
    +
    28 },
    +
    29 {
    +
    30 cell("center-south-west"),
    +
    31 cell("center-south-east"),
    +
    32 },
    +
    33 }),
    +
    34 cell("center-east"),
    +
    35 },
    +
    36 {
    +
    37 cell("south-west"),
    +
    38 cell("south"),
    +
    39 cell("south-east"),
    +
    40 },
    +
    41 });
    +
    42 auto screen = Screen::Create(Dimension::Fit(document));
    +
    43 Render(screen, document);
    +
    44 screen.Print();
    +
    45 getchar();
    +
    46
    +
    47 return 0;
    +
    48}
    +
    + + +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2linear__gradient_8cpp.html b/examples_2dom_2linear__gradient_8cpp.html new file mode 100644 index 000000000..133c37c3c --- /dev/null +++ b/examples_2dom_2linear__gradient_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: linear_gradient.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    linear_gradient.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file examples/dom/linear_gradient.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2linear__gradient_8cpp.js b/examples_2dom_2linear__gradient_8cpp.js new file mode 100644 index 000000000..7ac9ecb3d --- /dev/null +++ b/examples_2dom_2linear__gradient_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2linear__gradient_8cpp = +[ + [ "main", "examples_2dom_2linear__gradient_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2linear__gradient_8cpp_source.html b/examples_2dom_2linear__gradient_8cpp_source.html new file mode 100644 index 000000000..d5bc91201 --- /dev/null +++ b/examples_2dom_2linear__gradient_8cpp_source.html @@ -0,0 +1,244 @@ + + + + + + + + +FTXUI: linear_gradient.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/linear_gradient.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for bgcolor, operator|, operator|=, text, center, Element
    +
    5#include <ftxui/dom/linear_gradient.hpp> // for LinearGradient::Stop, LinearGradient
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <memory> // for allocator, shared_ptr
    +
    8
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for Color, Color::DeepPink1, Color::DeepSkyBlue1, Color::Yellow, ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto document = text("gradient") | center;
    +
    15
    +
    16 document |= bgcolor(LinearGradient()
    +
    17 .Angle(45)
    +
    18 .Stop(Color::DeepPink1)
    +
    19 .Stop(Color::DeepSkyBlue1));
    +
    20 auto screen = Screen::Create(Dimension::Full(), Dimension::Full());
    +
    21 Render(screen, document);
    +
    22 screen.Print();
    +
    23
    +
    24 return 0;
    +
    25}
    +
    + + + +
    A class representing the settings for linear-gradient color effect.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2paragraph_8cpp.html b/examples_2dom_2paragraph_8cpp.html new file mode 100644 index 000000000..eb9b6928c --- /dev/null +++ b/examples_2dom_2paragraph_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: paragraph.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    paragraph.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file examples/dom/paragraph.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2paragraph_8cpp.js b/examples_2dom_2paragraph_8cpp.js new file mode 100644 index 000000000..c25d2ffba --- /dev/null +++ b/examples_2dom_2paragraph_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2paragraph_8cpp = +[ + [ "main", "examples_2dom_2paragraph_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2paragraph_8cpp_source.html b/examples_2dom_2paragraph_8cpp_source.html new file mode 100644 index 000000000..fe850f2d5 --- /dev/null +++ b/examples_2dom_2paragraph_8cpp_source.html @@ -0,0 +1,270 @@ + + + + + + + + +FTXUI: paragraph.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/paragraph.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <iostream> // for cout, ostream
    +
    7#include <memory> // for allocator, shared_ptr
    +
    8#include <string> // for string, operator<<
    +
    9#include <thread> // for sleep_for
    +
    10
    +
    11#include "ftxui/dom/elements.hpp" // for hflow, paragraph, separator, hbox, vbox, filler, operator|, border, Element
    +
    12#include "ftxui/dom/node.hpp" // for Render
    +
    13#include "ftxui/screen/box.hpp" // for ftxui
    +
    14
    +
    15using namespace std::chrono_literals;
    +
    +
    16int main() {
    +
    17 using namespace ftxui;
    +
    18 std::string p =
    +
    19 R"(In probability theory and statistics, Bayes' theorem (alternatively Bayes' law or Bayes' rule) describes the probability of an event, based on prior knowledge of conditions that might be related to the event. For example, if cancer is related to age, then, using Bayes' theorem, a person's age can be used to more accurately assess the probability that they have cancer, compared to the assessment of the probability of cancer made without knowledge of the person's age. One of the many applications of Bayes' theorem is Bayesian inference, a particular approach to statistical inference. When applied, the probabilities involved in Bayes' theorem may have different probability interpretations. With the Bayesian probability interpretation the theorem expresses how a subjective degree of belief should rationally change to account for availability of related evidence. Bayesian inference is fundamental to Bayesian statistics.)";
    +
    20
    +
    21 std::string reset_position;
    +
    22 while (true) {
    +
    23 auto document = vbox({
    +
    24 hflow(paragraph(p)),
    +
    25 separator(),
    +
    26 hflow(paragraph(p)),
    +
    27 separator(),
    +
    28 hbox({
    +
    29 hflow(paragraph(p)),
    +
    30 separator(),
    +
    31 hflow(paragraph(p)),
    +
    32 }),
    +
    33 }) |
    +
    34 border;
    +
    35
    +
    36 document = vbox(filler(), document);
    +
    37
    +
    38 // auto screen = Screen::Create(Dimension::Fit(document));
    +
    39 // Render(screen, document);
    +
    40 // screen.Print();
    +
    41 // getchar();
    +
    42
    +
    43 auto screen = Screen::Create(Dimension::Full());
    +
    44 Render(screen, document);
    +
    45 std::cout << reset_position;
    +
    46 screen.Print();
    +
    47 reset_position = screen.ResetPosition();
    +
    48
    +
    49 std::this_thread::sleep_for(0.01s);
    +
    50 }
    +
    51
    +
    52 return 0;
    +
    53}
    +
    + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2separator_8cpp.html b/examples_2dom_2separator_8cpp.html new file mode 100644 index 000000000..3d5da5b6f --- /dev/null +++ b/examples_2dom_2separator_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: separator.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    separator.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file examples/dom/separator.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2separator_8cpp.js b/examples_2dom_2separator_8cpp.js new file mode 100644 index 000000000..9d1377a6b --- /dev/null +++ b/examples_2dom_2separator_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2separator_8cpp = +[ + [ "main", "examples_2dom_2separator_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2separator_8cpp_source.html b/examples_2dom_2separator_8cpp_source.html new file mode 100644 index 000000000..2ab94a55d --- /dev/null +++ b/examples_2dom_2separator_8cpp_source.html @@ -0,0 +1,247 @@ + + + + + + + + +FTXUI: separator.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/separator.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, center, separator, operator|, flex, Element, vbox, Fit, hbox, border
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = hbox({
    +
    14 text("left-column"),
    +
    15 separator(),
    +
    16 vbox({
    +
    17 center(text("top")) | flex,
    +
    18 separator(),
    +
    19 center(text("bottom")),
    +
    20 }) | flex,
    +
    21 separator(),
    +
    22 text("right-column"),
    +
    23 }) |
    +
    24 border;
    +
    25 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    26 Render(screen, document);
    +
    27 screen.Print();
    +
    28
    +
    29 return 0;
    +
    30}
    +
    + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2size_8cpp.html b/examples_2dom_2size_8cpp.html new file mode 100644 index 000000000..d8a6ea78c --- /dev/null +++ b/examples_2dom_2size_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: size.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    size.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 13 of file examples/dom/size.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2size_8cpp.js b/examples_2dom_2size_8cpp.js new file mode 100644 index 000000000..98b5bbfaf --- /dev/null +++ b/examples_2dom_2size_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2size_8cpp = +[ + [ "main", "examples_2dom_2size_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2size_8cpp_source.html b/examples_2dom_2size_8cpp_source.html new file mode 100644 index 000000000..acb0e203e --- /dev/null +++ b/examples_2dom_2size_8cpp_source.html @@ -0,0 +1,250 @@ + + + + + + + + +FTXUI: size.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/size.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for operator|, text, Element, hcenter, Fit, hbox, size, window, Elements, bold, dim, EQUAL, WIDTH
    +
    5#include <ftxui/screen/screen.hpp> // for Screen
    +
    6#include <memory> // for allocator, shared_ptr
    +
    7#include <string> // for string, to_string
    +
    8#include <utility> // for move
    +
    9
    +
    10#include "ftxui/dom/node.hpp" // for Render
    +
    11#include "ftxui/screen/color.hpp" // for ftxui
    +
    12
    +
    +
    13int main() {
    +
    14 using namespace ftxui;
    +
    15 auto make_box = [](const std::string& title) {
    +
    16 return window(text(title) | hcenter | bold,
    +
    17 text("content") | hcenter | dim);
    +
    18 };
    +
    19
    +
    20 Elements content;
    +
    21 for (int x = 3; x < 30; ++x) {
    +
    22 content.push_back(make_box(std::to_string(x)) | size(WIDTH, EQUAL, x));
    +
    23 }
    +
    24
    +
    25 auto document = hbox(std::move(content));
    +
    26 auto screen = Screen::Create(Dimension::Fit(document));
    +
    27 Render(screen, document);
    +
    28 screen.Print();
    +
    29
    +
    30 return 0;
    +
    31}
    +
    + + +
    Element make_box(int x, int y)
    +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + +
    +
    + + + + + diff --git a/examples_2dom_2spinner_8cpp.html b/examples_2dom_2spinner_8cpp.html new file mode 100644 index 000000000..be965d193 --- /dev/null +++ b/examples_2dom_2spinner_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: spinner.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    spinner.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file examples/dom/spinner.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2spinner_8cpp.js b/examples_2dom_2spinner_8cpp.js new file mode 100644 index 000000000..421393780 --- /dev/null +++ b/examples_2dom_2spinner_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2spinner_8cpp = +[ + [ "main", "examples_2dom_2spinner_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2spinner_8cpp_source.html b/examples_2dom_2spinner_8cpp_source.html new file mode 100644 index 000000000..53fd23fe9 --- /dev/null +++ b/examples_2dom_2spinner_8cpp_source.html @@ -0,0 +1,264 @@ + + + + + + + + +FTXUI: spinner.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/spinner.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <ftxui/dom/elements.hpp> // for Element, operator|, separator, filler, hbox, size, spinner, text, vbox, bold, border, Fit, EQUAL, WIDTH
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <iostream> // for cout, endl, ostream
    +
    8#include <string> // for to_string, operator<<, string
    +
    9#include <thread> // for sleep_for
    +
    10#include <utility> // for move
    +
    11#include <vector> // for vector
    +
    12
    +
    13#include "ftxui/dom/node.hpp" // for Render
    +
    14#include "ftxui/screen/color.hpp" // for ftxui
    +
    15
    +
    +
    16int main() {
    +
    17 using namespace ftxui;
    +
    18 using namespace std::chrono_literals;
    +
    19
    +
    20 std::string reset_position;
    +
    21 for (int index = 0; index < 200; ++index) {
    +
    22 std::vector<Element> entries;
    +
    23 for (int i = 0; i < 23; ++i) {
    +
    24 if (i != 0) {
    +
    25 entries.push_back(separator());
    +
    26 }
    +
    27 entries.push_back( //
    +
    28 hbox({
    +
    29 text(std::to_string(i)) | size(WIDTH, EQUAL, 2),
    +
    30 separator(),
    +
    31 spinner(i, index) | bold,
    +
    32 }));
    +
    33 }
    +
    34 auto document = hbox({
    +
    35 vbox(std::move(entries)) | border,
    +
    36 filler(),
    +
    37 });
    +
    38 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    39 Render(screen, document);
    +
    40 std::cout << reset_position;
    +
    41 screen.Print();
    +
    42 reset_position = screen.ResetPosition();
    +
    43
    +
    44 std::this_thread::sleep_for(0.1s);
    +
    45 }
    +
    46 std::cout << std::endl;
    +
    47}
    +
    + + +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/examples_2dom_2table_8cpp.html b/examples_2dom_2table_8cpp.html new file mode 100644 index 000000000..adebe3df4 --- /dev/null +++ b/examples_2dom_2table_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: table.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    table.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file examples/dom/table.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/examples_2dom_2table_8cpp.js b/examples_2dom_2table_8cpp.js new file mode 100644 index 000000000..eb38b8c1f --- /dev/null +++ b/examples_2dom_2table_8cpp.js @@ -0,0 +1,4 @@ +var examples_2dom_2table_8cpp = +[ + [ "main", "examples_2dom_2table_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/examples_2dom_2table_8cpp_source.html b/examples_2dom_2table_8cpp_source.html new file mode 100644 index 000000000..7925a444f --- /dev/null +++ b/examples_2dom_2table_8cpp_source.html @@ -0,0 +1,286 @@ + + + + + + + + +FTXUI: table.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    examples/dom/table.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for color, Fit, LIGHT, align_right, bold, DOUBLE
    +
    5#include <ftxui/dom/table.hpp> // for Table, TableSelection
    +
    6#include <ftxui/screen/screen.hpp> // for Screen
    +
    7#include <iostream> // for endl, cout, ostream
    +
    8#include <string> // for basic_string, allocator, string
    +
    9#include <vector> // for vector
    +
    10
    +
    11#include "ftxui/dom/node.hpp" // for Render
    +
    12#include "ftxui/screen/color.hpp" // for Color, Color::Blue, Color::Cyan, Color::White, ftxui
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16
    +
    17 auto table = Table({
    +
    18 {"Version", "Marketing name", "Release date", "API level", "Runtime"},
    +
    19 {"2.3", "Gingerbread", "February 9 2011", "10", "Dalvik 1.4.0"},
    +
    20 {"4.0", "Ice Cream Sandwich", "October 19 2011", "15", "Dalvik"},
    +
    21 {"4.1", "Jelly Bean", "July 9 2012", "16", "Dalvik"},
    +
    22 {"4.2", "Jelly Bean", "November 13 2012", "17", "Dalvik"},
    +
    23 {"4.3", "Jelly Bean", "July 24 2013", "18", "Dalvik"},
    +
    24 {"4.4", "KitKat", "October 31 2013", "19", "Dalvik and ART"},
    +
    25 {"5.0", "Lollipop", "November 3 2014", "21", "ART"},
    +
    26 {"5.1", "Lollipop", "March 9 2015", "22", "ART"},
    +
    27 {"6.0", "Marshmallow", "October 5 2015", "23", "ART"},
    +
    28 {"7.0", "Nougat", "August 22 2016", "24", "ART"},
    +
    29 {"7.1", "Nougat", "October 4 2016", "25", "ART"},
    +
    30 {"8.0", "Oreo", "August 21 2017", "26", "ART"},
    +
    31 {"8.1", "Oreo", "December 5 2017", "27", "ART"},
    +
    32 {"9", "Pie", "August 6 2018", "28", "ART"},
    +
    33 {"10", "10", "September 3 2019", "29", "ART"},
    +
    34 {"11", "11", "September 8 2020", "30", "ART"},
    +
    35 });
    +
    36
    +
    37 table.SelectAll().Border(LIGHT);
    +
    38
    +
    39 // Add border around the first column.
    +
    40 table.SelectColumn(0).Border(LIGHT);
    +
    41
    +
    42 // Make first row bold with a double border.
    +
    43 table.SelectRow(0).Decorate(bold);
    +
    44 table.SelectRow(0).SeparatorVertical(LIGHT);
    +
    45 table.SelectRow(0).Border(DOUBLE);
    +
    46
    +
    47 // Align right the "Release date" column.
    +
    48 table.SelectColumn(2).DecorateCells(align_right);
    +
    49
    +
    50 // Select row from the second to the last.
    +
    51 auto content = table.SelectRows(1, -1);
    +
    52 // Alternate in between 3 colors.
    +
    53 content.DecorateCellsAlternateRow(color(Color::Blue), 3, 0);
    +
    54 content.DecorateCellsAlternateRow(color(Color::Cyan), 3, 1);
    +
    55 content.DecorateCellsAlternateRow(color(Color::White), 3, 2);
    +
    56
    +
    57 auto document = table.Render();
    +
    58 auto screen =
    +
    59 Screen::Create(Dimension::Fit(document, /*extend_beyond_screen=*/true));
    +
    60 Render(screen, document);
    +
    61 screen.Print();
    +
    62 std::cout << std::endl;
    +
    63
    +
    64 return 0;
    +
    65}
    +
    +
    void Border(BorderStyle border=LIGHT)
    Apply a border around the selection.
    + + +
    int main()
    +
    TableSelection SelectAll()
    Select all the table.
    +
    Table is a utility to draw tables.
    Definition table.hpp:36
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + +
    +
    + + + + + diff --git a/files.html b/files.html new file mode 100644 index 000000000..b67ca873f --- /dev/null +++ b/files.html @@ -0,0 +1,473 @@ + + + + + + + + +FTXUI: File List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    File List
    +
    +
    +
    Here is a list of all files with brief descriptions:
    +
    [detail level 1234]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     doc
     doc
      examples
      component
     button.cpp
     button_animated.cpp
     button_in_frame.cpp
     button_style.cpp
     canvas_animated.cpp
     checkbox.cpp
     checkbox_in_frame.cpp
     collapsible.cpp
     composition.cpp
     custom_loop.cpp
     dropdown.cpp
     dropdown_custom.cpp
     flexbox_gallery.cpp
     focus.cpp
     focus_cursor.cpp
     gallery.cpp
     homescreen.cpp
     input.cpp
     input_in_frame.cpp
     input_style.cpp
     linear_gradient_gallery.cpp
     maybe.cpp
     menu.cpp
     menu2.cpp
     menu_entries.cpp
     menu_entries_animated.cpp
     menu_in_frame.cpp
     menu_in_frame_horizontal.cpp
     menu_multiple.cpp
     menu_style.cpp
     menu_underline_animated_gallery.cpp
     modal_dialog.cpp
     modal_dialog_custom.cpp
     nested_screen.cpp
     print_key_press.cpp
     radiobox.cpp
     radiobox_in_frame.cpp
     renderer.cpp
     resizable_split.cpp
     scrollbar.cpp
     selection.cpp
     slider.cpp
     slider_direction.cpp
     slider_rgb.cpp
     tab_horizontal.cpp
     tab_vertical.cpp
     textarea.cpp
     toggle.cpp
     window.cpp
     with_restored_io.cpp
      dom
     border.cpp
     border_colored.cpp
     border_style.cpp
     canvas.cpp
     color_gallery.cpp
     color_info_palette256.cpp
     color_info_sorted_2d.ipp
     color_truecolor_HSV.cpp
     color_truecolor_RGB.cpp
     dbox.cpp
     gauge.cpp
     gauge_direction.cpp
     graph.cpp
     gridbox.cpp
     hflow.cpp
     html_like.cpp
     linear_gradient.cpp
     package_manager.cpp
     paragraph.cpp
     separator.cpp
     separator_style.cpp
     size.cpp
     spinner.cpp
     style_blink.cpp
     style_bold.cpp
     style_color.cpp
     style_dim.cpp
     style_gallery.cpp
     style_hyperlink.cpp
     style_inverted.cpp
     style_italic.cpp
     style_strikethrough.cpp
     style_underlined.cpp
     style_underlined_double.cpp
     table.cpp
     vbox_hbox.cpp
     vflow.cpp
      include
      ftxui
      component
      dom
      screen
      util
      src
      ftxui
      component
      dom
      screen
      util
     component.cppm
     dom.cppm
     ftxui.cppm
     screen.cppm
     util.cppm
    +
    +
    +
    + + + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 000000000..48f034d94 --- /dev/null +++ b/files_dup.js @@ -0,0 +1,8 @@ +var files_dup = +[ + [ "doc", "dir_6c89d1ed406002b4e6ebce07fb51a507.html", null ], + [ "doc", "dir_e68e8157741866f444e17edd764ebbae.html", null ], + [ "examples", "dir_d28a4824dc47e487b107a5db32ef43c4.html", "dir_d28a4824dc47e487b107a5db32ef43c4" ], + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ], + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] +]; \ No newline at end of file diff --git a/flex_8cpp.html b/flex_8cpp.html new file mode 100644 index 000000000..e4232cd66 --- /dev/null +++ b/flex_8cpp.html @@ -0,0 +1,274 @@ + + + + + + + + +FTXUI: flex.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flex.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Element filler ()
     An element that will take expand proportionally to the space left in a container.
     
    Element flex (Element child)
     Make a child element to expand proportionally to the space left in a container.
     
    Element xflex (Element child)
     Expand/Minimize if possible/needed on the X axis.
     
    Element yflex (Element child)
     Expand/Minimize if possible/needed on the Y axis.
     
    Element flex_grow (Element child)
     Expand if possible.
     
    Element xflex_grow (Element child)
     Expand if possible on the X axis.
     
    Element yflex_grow (Element child)
     Expand if possible on the Y axis.
     
    Element flex_shrink (Element child)
     Minimize if needed.
     
    Element xflex_shrink (Element child)
     Minimize if needed on the X axis.
     
    Element yflex_shrink (Element child)
     Minimize if needed on the Y axis.
     
    Element notflex (Element child)
     Make the element not flexible.
     
    +

    Variable Documentation

    + +

    ◆ f_

    + +
    +
    + + + + +
    FlexFunction f_
    +
    + +

    Definition at line 90 of file flex.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/flex_8cpp.js b/flex_8cpp.js new file mode 100644 index 000000000..221292742 --- /dev/null +++ b/flex_8cpp.js @@ -0,0 +1,15 @@ +var flex_8cpp = +[ + [ "filler", "flex_8cpp.html#gac2a9ed2d22ec3c8811b61f4a901ed367", null ], + [ "flex", "flex_8cpp.html#ga257acd2bd47bab7db879cca2c0e67e23", null ], + [ "xflex", "flex_8cpp.html#ga0dbba98e14f63f1dd5163cbdc4f42da8", null ], + [ "yflex", "flex_8cpp.html#ga42c7a33df6d890de30fc1ebb2d1b3ca6", null ], + [ "flex_grow", "flex_8cpp.html#ga81ed6b31f512e849247f13d249f6f20e", null ], + [ "xflex_grow", "flex_8cpp.html#ga1618cb15307f29eb3d531e7b44c280d3", null ], + [ "yflex_grow", "flex_8cpp.html#ga7eac3f709e905af8f583aed52093b7ce", null ], + [ "flex_shrink", "flex_8cpp.html#ga4629196b5ffc280054d35f2a9977e829", null ], + [ "xflex_shrink", "flex_8cpp.html#ga95275a9271934cf76e970c6650cc224d", null ], + [ "yflex_shrink", "flex_8cpp.html#gaf7d0757f5965aa579bccc125ff909256", null ], + [ "notflex", "flex_8cpp.html#ga845b0ea50d51024aa4e050447b46e1dd", null ], + [ "f_", "flex_8cpp.html#a51920d6139d68e1a860381e730c217c3", null ] +]; \ No newline at end of file diff --git a/flex_8cpp_source.html b/flex_8cpp_source.html new file mode 100644 index 000000000..b2837d473 --- /dev/null +++ b/flex_8cpp_source.html @@ -0,0 +1,431 @@ + + + + + + + + +FTXUI: flex.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flex.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared, __shared_ptr_access
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, unpack, filler, flex, flex_grow, flex_shrink, notflex, xflex, xflex_grow, xflex_shrink, yflex, yflex_grow, yflex_shrink
    +
    8#include "ftxui/dom/node.hpp" // for Elements, Node
    +
    9#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14namespace {
    +
    15
    +
    16using FlexFunction = void (*)(Requirement&);
    +
    17
    +
    18void function_flex_grow(Requirement& r) {
    +
    19 r.flex_grow_x = 1;
    +
    20 r.flex_grow_y = 1;
    +
    21}
    +
    22
    +
    23void function_xflex_grow(Requirement& r) {
    +
    24 r.flex_grow_x = 1;
    +
    25}
    +
    26
    +
    27void function_yflex_grow(Requirement& r) {
    +
    28 r.flex_grow_y = 1;
    +
    29}
    +
    30
    +
    31void function_flex_shrink(Requirement& r) {
    +
    32 r.flex_shrink_x = 1;
    +
    33 r.flex_shrink_y = 1;
    +
    34}
    +
    35
    +
    36void function_xflex_shrink(Requirement& r) {
    +
    37 r.flex_shrink_x = 1;
    +
    38}
    +
    39
    +
    40void function_yflex_shrink(Requirement& r) {
    +
    41 r.flex_shrink_y = 1;
    +
    42}
    +
    43
    +
    44void function_flex(Requirement& r) {
    +
    45 r.flex_grow_x = 1;
    +
    46 r.flex_grow_y = 1;
    +
    47 r.flex_shrink_x = 1;
    +
    48 r.flex_shrink_y = 1;
    +
    49}
    +
    50
    +
    51void function_xflex(Requirement& r) {
    +
    52 r.flex_grow_x = 1;
    +
    53 r.flex_shrink_x = 1;
    +
    54}
    +
    55
    +
    56void function_yflex(Requirement& r) {
    +
    57 r.flex_grow_y = 1;
    +
    58 r.flex_shrink_y = 1;
    +
    59}
    +
    60
    +
    61void function_not_flex(Requirement& r) {
    +
    62 r.flex_grow_x = 0;
    +
    63 r.flex_grow_y = 0;
    +
    64 r.flex_shrink_x = 0;
    +
    65 r.flex_shrink_y = 0;
    +
    66}
    +
    67
    +
    68class Flex : public Node {
    +
    69 public:
    +
    70 explicit Flex(FlexFunction f) : f_(f) {}
    +
    71 Flex(FlexFunction f, Element child) : Node(unpack(std::move(child))), f_(f) {}
    +
    72 void ComputeRequirement() override {
    +
    73 requirement_.min_x = 0;
    +
    74 requirement_.min_y = 0;
    +
    75 if (!children_.empty()) {
    +
    76 children_[0]->ComputeRequirement();
    +
    77 requirement_ = children_[0]->requirement();
    +
    78 }
    +
    79 f_(requirement_);
    +
    80 }
    +
    81
    +
    82 void SetBox(Box box) override {
    +
    83 Node::SetBox(box);
    +
    84 if (children_.empty()) {
    +
    85 return;
    +
    86 }
    +
    87 children_[0]->SetBox(box);
    +
    88 }
    +
    89
    +
    90 FlexFunction f_;
    +
    91};
    +
    92
    +
    93} // namespace
    +
    94
    +
    95/// @brief An element that will take expand proportionally to the space left in
    +
    96/// a container.
    +
    97/// @ingroup dom
    +
    + +
    99 return std::make_shared<Flex>(function_flex);
    +
    100}
    +
    +
    101
    +
    102/// @brief Make a child element to expand proportionally to the space left in a
    +
    103/// container.
    +
    104/// @ingroup dom
    +
    105///
    +
    106/// #### Examples:
    +
    107///
    +
    108/// ~~~cpp
    +
    109/// hbox({
    +
    110/// text("left") | border ,
    +
    111/// text("middle") | border | flex,
    +
    112/// text("right") | border,
    +
    113/// });
    +
    114/// ~~~
    +
    115///
    +
    116/// #### Output:
    +
    117///
    +
    118/// ~~~bash
    +
    119/// ┌────┐┌─────────────────────────────────────────────────────────┐┌─────┐
    +
    120/// │left││middle ││right│
    +
    121/// └────┘└─────────────────────────────────────────────────────────┘└─────┘
    +
    122/// ~~~
    +
    + +
    124 return std::make_shared<Flex>(function_flex, std::move(child));
    +
    125}
    +
    +
    126
    +
    127/// @brief Expand/Minimize if possible/needed on the X axis.
    +
    128/// @ingroup dom
    +
    + +
    130 return std::make_shared<Flex>(function_xflex, std::move(child));
    +
    131}
    +
    +
    132
    +
    133/// @brief Expand/Minimize if possible/needed on the Y axis.
    +
    134/// @ingroup dom
    +
    + +
    136 return std::make_shared<Flex>(function_yflex, std::move(child));
    +
    137}
    +
    +
    138
    +
    139/// @brief Expand if possible.
    +
    140/// @ingroup dom
    +
    + +
    142 return std::make_shared<Flex>(function_flex_grow, std::move(child));
    +
    143}
    +
    +
    144
    +
    145/// @brief Expand if possible on the X axis.
    +
    146/// @ingroup dom
    +
    + +
    148 return std::make_shared<Flex>(function_xflex_grow, std::move(child));
    +
    149}
    +
    +
    150
    +
    151/// @brief Expand if possible on the Y axis.
    +
    152/// @ingroup dom
    +
    + +
    154 return std::make_shared<Flex>(function_yflex_grow, std::move(child));
    +
    155}
    +
    +
    156
    +
    157/// @brief Minimize if needed.
    +
    158/// @ingroup dom
    +
    + +
    160 return std::make_shared<Flex>(function_flex_shrink, std::move(child));
    +
    161}
    +
    +
    162
    +
    163/// @brief Minimize if needed on the X axis.
    +
    164/// @ingroup dom
    +
    + +
    166 return std::make_shared<Flex>(function_xflex_shrink, std::move(child));
    +
    167}
    +
    +
    168
    +
    169/// @brief Minimize if needed on the Y axis.
    +
    170/// @ingroup dom
    +
    + +
    172 return std::make_shared<Flex>(function_yflex_shrink, std::move(child));
    +
    173}
    +
    +
    174
    +
    175/// @brief Make the element not flexible.
    +
    176/// @ingroup dom
    +
    + +
    178 return std::make_shared<Flex>(function_not_flex, std::move(child));
    +
    179}
    +
    +
    180
    +
    181} // namespace ftxui
    + + +
    FlexFunction f_
    Definition flex.cpp:90
    +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Element xflex_grow(Element)
    Expand if possible on the X axis.
    Definition flex.cpp:147
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element yflex(Element)
    Expand/Minimize if possible/needed on the Y axis.
    Definition flex.cpp:135
    +
    Element flex_shrink(Element)
    Minimize if needed.
    Definition flex.cpp:159
    +
    Element yflex_grow(Element)
    Expand if possible on the Y axis.
    Definition flex.cpp:153
    +
    Element flex_grow(Element)
    Expand if possible.
    Definition flex.cpp:141
    +
    Element notflex(Element)
    Make the element not flexible.
    Definition flex.cpp:177
    +
    Element xflex_shrink(Element)
    Minimize if needed on the X axis.
    Definition flex.cpp:165
    +
    Element filler()
    An element that will take expand proportionally to the space left in a container.
    Definition flex.cpp:98
    +
    Element yflex_shrink(Element)
    Minimize if needed on the Y axis.
    Definition flex.cpp:171
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + +
    +
    + + + + + diff --git a/flexbox_8cpp.html b/flexbox_8cpp.html new file mode 100644 index 000000000..9e8a5edae --- /dev/null +++ b/flexbox_8cpp.html @@ -0,0 +1,314 @@ + + + + + + + + +FTXUI: flexbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + +

    +Functions

    Element flexbox (Elements children, FlexboxConfig config)
     A container displaying elements on row/columns and capable of wrapping on the next column/row when full.
     
    Element hflow (Elements children)
     A container displaying elements in rows from left to right. When filled, it starts on a new row below.
     
    Element vflow (Elements children)
     A container displaying elements in rows from top to bottom. When filled, it starts on a new columns on the right. filled, it starts on a new row. is full, it starts a new row.
     
    +

    Variable Documentation

    + +

    ◆ asked_

    + +
    +
    + + + + +
    int asked_ = 6000
    +
    + +

    Definition at line 222 of file flexbox.cpp.

    + +
    +
    + +

    ◆ need_iteration_

    + +
    +
    + + + + +
    bool need_iteration_ = true
    +
    + +

    Definition at line 223 of file flexbox.cpp.

    + +
    +
    + +

    ◆ config_

    + +
    +
    + + + + +
    const FlexboxConfig config_
    +
    + +

    Definition at line 224 of file flexbox.cpp.

    + +
    +
    + +

    ◆ config_normalized_

    + +
    +
    + + + + +
    const FlexboxConfig config_normalized_
    +
    + +

    Definition at line 225 of file flexbox.cpp.

    + +
    +
    + +

    ◆ global_

    + +
    +
    + + + + +
    flexbox_helper::Global global_
    +
    + +

    Definition at line 226 of file flexbox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/flexbox_8cpp.js b/flexbox_8cpp.js new file mode 100644 index 000000000..0bae4fd5a --- /dev/null +++ b/flexbox_8cpp.js @@ -0,0 +1,11 @@ +var flexbox_8cpp = +[ + [ "flexbox", "flexbox_8cpp.html#a168a235aa438b6c72df5861322154be3", null ], + [ "hflow", "flexbox_8cpp.html#a345b31919048562675615d5af78e6322", null ], + [ "vflow", "flexbox_8cpp.html#ae0da51b614e95a0687727644b5898a23", null ], + [ "asked_", "flexbox_8cpp.html#a020ee158f0c398a7ffd442a82bb878d0", null ], + [ "need_iteration_", "flexbox_8cpp.html#a82e273363997977449a51ea1b7dce6f0", null ], + [ "config_", "flexbox_8cpp.html#a85d583fe20f57cb4f383cba6eae3d073", null ], + [ "config_normalized_", "flexbox_8cpp.html#a8a92e22645479418ed4d290ebf4b51c3", null ], + [ "global_", "flexbox_8cpp.html#ac8e8d5f863ecfaf27c5cf94ab6c9c9ca", null ] +]; \ No newline at end of file diff --git a/flexbox_8cpp_source.html b/flexbox_8cpp_source.html new file mode 100644 index 000000000..565f64ca6 --- /dev/null +++ b/flexbox_8cpp_source.html @@ -0,0 +1,542 @@ + + + + + + + + +FTXUI: flexbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for min, max
    +
    5#include <cstddef> // for size_t
    +
    6#include <memory> // for __shared_ptr_access, shared_ptr, allocator_traits<>::value_type, make_shared
    +
    7#include <tuple> // for ignore
    +
    8#include <utility> // for move, swap
    +
    9#include <vector> // for vector
    +
    10
    +
    11#include "ftxui/dom/elements.hpp" // for Element, Elements, flexbox, hflow, vflow
    +
    12#include "ftxui/dom/flexbox_config.hpp" // for FlexboxConfig, FlexboxConfig::Direction, FlexboxConfig::Direction::Column, FlexboxConfig::AlignContent, FlexboxConfig::Direction::ColumnInversed, FlexboxConfig::Direction::Row, FlexboxConfig::JustifyContent, FlexboxConfig::Wrap, FlexboxConfig::AlignContent::FlexStart, FlexboxConfig::Direction::RowInversed, FlexboxConfig::JustifyContent::FlexStart, FlexboxConfig::Wrap::Wrap
    +
    13#include "ftxui/dom/flexbox_helper.hpp" // for Block, Global, Compute
    +
    14#include "ftxui/dom/node.hpp" // for Node, Elements, Node::Status
    +
    15#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    16#include "ftxui/dom/selection.hpp" // for Selection
    +
    17#include "ftxui/screen/box.hpp" // for Box
    +
    18
    +
    19namespace ftxui {
    +
    20
    +
    21namespace {
    +
    22void Normalize(FlexboxConfig::Direction& direction) {
    +
    23 switch (direction) {
    + + + +
    27 } break;
    + + + +
    31 } break;
    +
    32 }
    +
    33}
    +
    34
    +
    35void Normalize(FlexboxConfig::AlignContent& align_content) {
    + +
    37}
    +
    38
    +
    39void Normalize(FlexboxConfig::JustifyContent& justify_content) {
    + +
    41}
    +
    42
    +
    43void Normalize(FlexboxConfig::Wrap& wrap) {
    + +
    45}
    +
    46
    +
    47FlexboxConfig Normalize(FlexboxConfig config) {
    +
    48 Normalize(config.direction);
    +
    49 Normalize(config.wrap);
    +
    50 Normalize(config.justify_content);
    +
    51 Normalize(config.align_content);
    +
    52 return config;
    +
    53}
    +
    54
    +
    55class Flexbox : public Node {
    +
    56 public:
    +
    57 Flexbox(Elements children, FlexboxConfig config)
    +
    58 : Node(std::move(children)),
    +
    59 config_(config),
    +
    60 config_normalized_(Normalize(config)) {
    +
    61 requirement_.flex_grow_x = 1;
    +
    62 requirement_.flex_grow_y = 0;
    +
    63
    +
    64 if (IsColumnOriented()) {
    +
    65 std::swap(requirement_.flex_grow_x, requirement_.flex_grow_y);
    +
    66 }
    +
    67 }
    +
    68
    +
    69 bool IsColumnOriented() const {
    +
    70 return config_.direction == FlexboxConfig::Direction::Column ||
    + +
    72 }
    +
    73
    +
    74 void Layout(flexbox_helper::Global& global,
    +
    75 bool compute_requirement = false) {
    +
    76 global.blocks.reserve(children_.size());
    +
    77 for (auto& child : children_) {
    +
    78 flexbox_helper::Block block;
    +
    79 block.min_size_x = child->requirement().min_x;
    +
    80 block.min_size_y = child->requirement().min_y;
    +
    81 if (!compute_requirement) {
    +
    82 block.flex_grow_x = child->requirement().flex_grow_x;
    +
    83 block.flex_grow_y = child->requirement().flex_grow_y;
    +
    84 block.flex_shrink_x = child->requirement().flex_shrink_x;
    +
    85 block.flex_shrink_y = child->requirement().flex_shrink_y;
    +
    86 }
    +
    87 global.blocks.push_back(block);
    +
    88 }
    +
    89
    + +
    91 }
    +
    92
    +
    93 void ComputeRequirement() override {
    +
    94 requirement_ = Requirement{};
    +
    95 for (auto& child : children_) {
    +
    96 child->ComputeRequirement();
    +
    97 }
    +
    98 global_ = flexbox_helper::Global();
    + +
    100 if (IsColumnOriented()) {
    +
    101 global_.size_x = 100000; // NOLINT
    +
    102 global_.size_y = asked_;
    +
    103 } else {
    +
    104 global_.size_x = asked_;
    +
    105 global_.size_y = 100000; // NOLINT
    +
    106 }
    +
    107 Layout(global_, true);
    +
    108
    +
    109 if (global_.blocks.empty()) {
    +
    110 return;
    +
    111 }
    +
    112
    +
    113 // Compute the union of all the blocks:
    +
    114 Box box;
    +
    115 box.x_min = global_.blocks[0].x;
    +
    116 box.y_min = global_.blocks[0].y;
    +
    117 box.x_max = global_.blocks[0].x + global_.blocks[0].dim_x;
    +
    118 box.y_max = global_.blocks[0].y + global_.blocks[0].dim_y;
    +
    119 for (auto& b : global_.blocks) {
    +
    120 box.x_min = std::min(box.x_min, b.x);
    +
    121 box.y_min = std::min(box.y_min, b.y);
    +
    122 box.x_max = std::max(box.x_max, b.x + b.dim_x);
    +
    123 box.y_max = std::max(box.y_max, b.y + b.dim_y);
    +
    124 }
    +
    125 requirement_.min_x = box.x_max - box.x_min;
    +
    126 requirement_.min_y = box.y_max - box.y_min;
    +
    127
    +
    128 // Find the selection:
    +
    129 for (size_t i = 0; i < children_.size(); ++i) {
    +
    130 if (requirement_.focused.Prefer(children_[i]->requirement().focused)) {
    +
    131 requirement_.focused = children_[i]->requirement().focused;
    +
    132 // Shift |focused.box| according to its position inside this component:
    +
    133 auto& b = global_.blocks[i];
    +
    134 requirement_.focused.box.Shift(b.x, b.y);
    +
    135 requirement_.focused.box =
    +
    136 Box::Intersection(requirement_.focused.box, box);
    +
    137 }
    +
    138 }
    +
    139 }
    +
    140
    +
    141 void SetBox(Box box) override {
    +
    142 Node::SetBox(box);
    +
    143
    +
    144 const int asked_previous = asked_;
    +
    145 asked_ = std::min(asked_, IsColumnOriented() ? box.y_max - box.y_min + 1
    +
    146 : box.x_max - box.x_min + 1);
    +
    147 need_iteration_ = (asked_ != asked_previous);
    +
    148
    +
    149 flexbox_helper::Global global;
    +
    150 global.config = config_;
    +
    151 global.size_x = box.x_max - box.x_min + 1;
    +
    152 global.size_y = box.y_max - box.y_min + 1;
    +
    153 Layout(global);
    +
    154
    +
    155 for (size_t i = 0; i < children_.size(); ++i) {
    +
    156 auto& child = children_[i];
    +
    157 auto& b = global.blocks[i];
    +
    158
    +
    159 Box children_box;
    +
    160 children_box.x_min = box.x_min + b.x;
    +
    161 children_box.y_min = box.y_min + b.y;
    +
    162 children_box.x_max = box.x_min + b.x + b.dim_x - 1;
    +
    163 children_box.y_max = box.y_min + b.y + b.dim_y - 1;
    +
    164
    +
    165 const Box intersection = Box::Intersection(children_box, box);
    +
    166 child->SetBox(intersection);
    +
    167
    +
    168 need_iteration_ |= (intersection != children_box);
    +
    169 }
    +
    170 }
    +
    171
    +
    172 void Select(Selection& selection) override {
    +
    173 // If this Node box_ doesn't intersect with the selection, then no
    +
    174 // selection.
    +
    175 if (Box::Intersection(selection.GetBox(), box_).IsEmpty()) {
    +
    176 return;
    +
    177 }
    +
    178
    +
    179 Selection selection_lines = IsColumnOriented()
    +
    180 ? selection.SaturateVertical(box_)
    +
    181 : selection.SaturateHorizontal(box_);
    +
    182
    +
    183 size_t i = 0;
    +
    184 for (auto& line : global_.lines) {
    +
    185 Box box;
    +
    186 box.x_min = box_.x_min + line.x;
    +
    187 box.x_max = box_.x_min + line.x + line.dim_x - 1;
    +
    188 box.y_min = box_.y_min + line.y;
    +
    189 box.y_max = box_.y_min + line.y + line.dim_y - 1;
    +
    190
    +
    191 // If the line box doesn't intersect with the selection, then no
    +
    192 // selection.
    +
    193 if (Box::Intersection(selection.GetBox(), box).IsEmpty()) {
    +
    194 continue;
    +
    195 }
    +
    196
    +
    197 Selection selection_line = IsColumnOriented()
    +
    198 ? selection_lines.SaturateHorizontal(box)
    +
    199 : selection_lines.SaturateVertical(box);
    +
    200
    +
    201 for (auto& block : line.blocks) {
    +
    202 std::ignore = block;
    +
    203 children_[i]->Select(selection_line);
    +
    204 i++;
    +
    205 }
    +
    206 }
    +
    207 }
    +
    208
    +
    209 void Check(Status* status) override {
    +
    210 for (auto& child : children_) {
    +
    211 child->Check(status);
    +
    212 }
    +
    213
    +
    214 if (status->iteration == 0) {
    +
    215 asked_ = 6000; // NOLINT
    +
    216 need_iteration_ = true;
    +
    217 }
    +
    218
    +
    219 status->need_iteration |= need_iteration_;
    +
    220 }
    +
    221
    +
    222 int asked_ = 6000; // NOLINT
    +
    223 bool need_iteration_ = true;
    +
    224 const FlexboxConfig config_;
    +
    225 const FlexboxConfig config_normalized_;
    +
    226 flexbox_helper::Global global_;
    +
    227};
    +
    228
    +
    229} // namespace
    +
    230
    +
    231/// @brief A container displaying elements on row/columns and capable of
    +
    232/// wrapping on the next column/row when full.
    +
    233/// @param children The elements in the container
    +
    234/// @param config The option
    +
    235/// @return The container.
    +
    236///
    +
    237/// #### Example
    +
    238///
    +
    239/// ```cpp
    +
    240/// flexbox({
    +
    241/// text("element 1"),
    +
    242/// text("element 2"),
    +
    243/// text("element 3"),
    +
    244/// }, FlexboxConfig()
    +
    245/// .Set(FlexboxConfig::Direction::Column)
    +
    246/// .Set(FlexboxConfig::Wrap::WrapInversed)
    +
    247/// .SetGapMainAxis(1)
    +
    248/// .SetGapCrossAxis(1)
    +
    249/// )
    +
    250/// ```
    +
    + +
    252 return std::make_shared<Flexbox>(std::move(children), config);
    +
    253}
    +
    +
    254
    +
    255/// @brief A container displaying elements in rows from left to right. When
    +
    256/// filled, it starts on a new row below.
    +
    257/// @param children The elements in the container
    +
    258/// @return The container.
    +
    259///
    +
    260/// #### Example
    +
    261///
    +
    262/// ```cpp
    +
    263/// hflow({
    +
    264/// text("element 1"),
    +
    265/// text("element 2"),
    +
    266/// text("element 3"),
    +
    267/// });
    +
    268/// ```
    +
    + +
    270 return flexbox(std::move(children), FlexboxConfig());
    +
    271}
    +
    +
    272
    +
    273/// @brief A container displaying elements in rows from top to bottom. When
    +
    274/// filled, it starts on a new columns on the right.
    +
    275/// filled, it starts on a new row.
    +
    276/// is full, it starts a new row.
    +
    277/// @param children The elements in the container
    +
    278/// @return The container.
    +
    279///
    +
    280/// #### Example
    +
    281///
    +
    282/// ```cpp
    +
    283/// vflow({
    +
    284/// text("element 1"),
    +
    285/// text("element 2"),
    +
    286/// text("element 3"),
    +
    287/// });
    +
    288/// ```
    +
    + +
    290 return flexbox(std::move(children),
    + +
    292}
    +
    +
    293
    +
    294} // namespace ftxui
    + + +
    int asked_
    Definition flexbox.cpp:222
    +
    bool need_iteration_
    Definition flexbox.cpp:223
    +
    const FlexboxConfig config_
    Definition flexbox.cpp:224
    +
    const FlexboxConfig config_normalized_
    Definition flexbox.cpp:225
    +
    flexbox_helper::Global global_
    Definition flexbox.cpp:226
    + + + +
    @ FlexStart
    items are placed at the start of the cross axis.
    + +
    @ Column
    Flex items are laid out in a column.
    + +
    @ Row
    Flex items are laid out in a row.
    +
    @ RowInversed
    Flex items are laid out in a row, but in reverse order.
    +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    + +
    @ Wrap
    Flex items will wrap onto multiple lines.
    + +
    @ FlexStart
    Items are aligned to the start of flexbox's direction.
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    void Compute(Global &global)
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
    A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
    Definition flexbox.cpp:251
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hflow(Elements)
    A container displaying elements in rows from left to right. When filled, it starts on a new row below...
    Definition flexbox.cpp:269
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Element vflow(Elements)
    A container displaying elements in rows from top to bottom. When filled, it starts on a new columns o...
    Definition flexbox.cpp:289
    + + + +
    +
    + + + + + diff --git a/flexbox__config_8cpp.html b/flexbox__config_8cpp.html new file mode 100644 index 000000000..b649cb445 --- /dev/null +++ b/flexbox__config_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: flexbox_config.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox_config.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/flexbox__config_8cpp_source.html b/flexbox__config_8cpp_source.html new file mode 100644 index 000000000..d25a4e414 --- /dev/null +++ b/flexbox__config_8cpp_source.html @@ -0,0 +1,283 @@ + + + + + + + + +FTXUI: flexbox_config.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox_config.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6namespace ftxui {
    +
    7
    +
    8/// @brief Set the flexbox direction.
    +
    + +
    10 this->direction = d;
    +
    11 return *this;
    +
    12}
    +
    +
    13
    +
    14/// @brief Set the flexbox wrap.
    +
    + +
    16 this->wrap = w;
    +
    17 return *this;
    +
    18}
    +
    +
    19
    +
    20/// @brief Set the flexbox justify content.
    +
    + +
    22 this->justify_content = j;
    +
    23 return *this;
    +
    24}
    +
    +
    25
    +
    26/// @brief Set the flexbox align items.
    +
    + +
    28 this->align_items = a;
    +
    29 return *this;
    +
    30}
    +
    +
    31
    +
    32/// @brief Set the flexbox align content.
    +
    + +
    34 this->align_content = a;
    +
    35 return *this;
    +
    36}
    +
    +
    37
    +
    38/// @brief Set the flexbox flex direction.
    +
    + +
    40 this->gap_x = x;
    +
    41 this->gap_y = y;
    +
    42 return *this;
    +
    43}
    +
    +
    44
    +
    45} // namespace ftxui
    + + + + + + + + + + +
    FlexboxConfig & SetGap(int gap_x, int gap_y)
    Set the flexbox flex direction.
    + +
    JustifyContent justify_content
    + +
    FlexboxConfig & Set(FlexboxConfig::Direction)
    Set the flexbox direction.
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/flexbox__config_8cppm.html b/flexbox__config_8cppm.html new file mode 100644 index 000000000..049a7037e --- /dev/null +++ b/flexbox__config_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: flexbox_config.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox_config.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/flexbox__config_8cppm_source.html b/flexbox__config_8cppm_source.html new file mode 100644 index 000000000..4b488b991 --- /dev/null +++ b/flexbox__config_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: flexbox_config.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox_config.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.dom.flexbox_config
    +
    2/// @brief Module file for the FlexboxConfig struct of the Dom module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.dom.flexbox_config;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16}
    + +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    Module file for the FlexboxConfig struct of the Dom module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/flexbox__config_8hpp.html b/flexbox__config_8hpp.html new file mode 100644 index 000000000..476d7a8ef --- /dev/null +++ b/flexbox__config_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: flexbox_config.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox_config.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    struct  FlexboxConfig
     FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container. More...
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/flexbox__config_8hpp_source.html b/flexbox__config_8hpp_source.html new file mode 100644 index 000000000..ef5b64f9e --- /dev/null +++ b/flexbox__config_8hpp_source.html @@ -0,0 +1,379 @@ + + + + + + + + +FTXUI: flexbox_config.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox_config.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_FLEXBOX_CONFIG_HPP
    +
    5#define FTXUI_DOM_FLEXBOX_CONFIG_HPP
    +
    6
    +
    7/*
    +
    8 This replicate the CSS flexbox model.
    +
    9 See guide for documentation:
    +
    10 https://css-tricks.com/snippets/css/a-guide-to-flexbox/
    +
    11*/
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief FlexboxConfig is a configuration structure that defines the layout
    +
    16/// properties for a flexbox container.
    +
    17//
    +
    18/// It allows you to specify the direction of the flex items, whether they
    +
    19/// should wrap, how they should be justified along the main axis, and how
    +
    20/// they should be aligned along the cross axis.
    +
    21/// It also includes properties for gaps between flex items in both the
    +
    22/// main and cross axes.
    +
    23/// This structure is used to configure the layout behavior of flexbox
    +
    24/// containers in a terminal user interface.
    +
    25///
    +
    26/// @ingroup dom
    +
    + +
    28 /// This establishes the main-axis, thus defining the direction flex items are
    +
    29 /// placed in the flex container. Flexbox is (aside wrapping) single-direction
    +
    30 /// layout concept. Think of flex items as primarily laying out either in
    +
    31 /// horizontal rows or vertical columns.
    +
    +
    32 enum class Direction {
    +
    33 Row, ///< Flex items are laid out in a row.
    +
    34 RowInversed, ///< Flex items are laid out in a row, but in reverse order.
    +
    35 Column, ///< Flex items are laid out in a column.
    +
    36 ColumnInversed ///< Flex items are laid out in a column, but in reverse
    +
    37 ///< order.
    +
    38 };
    +
    + +
    40
    +
    41 /// By default, flex items will all try to fit onto one line. You can change
    +
    42 /// that and allow the items to wrap as needed with this property.
    +
    +
    43 enum class Wrap {
    +
    44 NoWrap, ///< Flex items will all try to fit onto one line.
    +
    45 Wrap, ///< Flex items will wrap onto multiple lines.
    +
    46 WrapInversed, ///< Flex items will wrap onto multiple lines, but in reverse
    +
    47 ///< order.
    +
    48 };
    +
    + +
    50
    +
    51 /// This defines the alignment along the main axis. It helps distribute extra
    +
    52 /// free space leftover when either all the flex items on a line are
    +
    53 /// inflexible, or are flexible but have reached their maximum size. It also
    +
    54 /// exerts some control over the alignment of items when they overflow the
    +
    55 /// line.
    +
    +
    56 enum class JustifyContent {
    +
    57 /// Items are aligned to the start of flexbox's direction.
    + +
    59 /// Items are aligned to the end of flexbox's direction.
    +
    60 FlexEnd,
    +
    61 /// Items are centered along the line.
    +
    62 Center,
    +
    63 /// Items are stretched to fill the line.
    +
    64 Stretch,
    +
    65 /// Items are evenly distributed in the line; first item is on the start
    +
    66 // line, last item on the end line
    + +
    68 /// Items are evenly distributed in the line with equal space around them.
    +
    69 /// Note that visually the spaces aren’t equal, since all the items have
    +
    70 /// equal space on both sides. The first item will have one unit of space
    +
    71 /// against the container edge, but two units of space between the next item
    +
    72 /// because that next item has its own spacing that applies.
    + +
    74 /// Items are distributed so that the spacing between any two items (and the
    +
    75 /// space to the edges) is equal.
    + +
    77 };
    +
    + +
    79
    +
    80 /// This defines the default behavior for how flex items are laid out along
    +
    81 /// the cross axis on the current line. Think of it as the justify-content
    +
    82 /// version for the cross-axis (perpendicular to the main-axis).
    +
    +
    83 enum class AlignItems {
    +
    84 FlexStart, ///< items are placed at the start of the cross axis.
    +
    85 FlexEnd, ///< items are placed at the end of the cross axis.
    +
    86 Center, ///< items are centered along the cross axis.
    +
    87 Stretch, ///< items are stretched to fill the cross axis.
    +
    88 };
    +
    + +
    90
    +
    91 // This aligns a flex container’s lines within when there is extra space in
    +
    92 // the cross-axis, similar to how justify-content aligns individual items
    +
    93 // within the main-axis.
    +
    +
    94 enum class AlignContent {
    +
    95 FlexStart, ///< items are placed at the start of the cross axis.
    +
    96 FlexEnd, ///< items are placed at the end of the cross axis.
    +
    97 Center, ///< items are centered along the cross axis.
    +
    98 Stretch, ///< items are stretched to fill the cross axis.
    +
    99 SpaceBetween, ///< items are evenly distributed in the cross axis.
    +
    100 SpaceAround, ///< tems evenly distributed with equal space around each
    +
    101 ///< line.
    +
    102 SpaceEvenly, ///< items are evenly distributed in the cross axis with equal
    +
    103 ///< space around them.
    +
    104 };
    +
    + +
    106
    +
    107 int gap_x = 0;
    +
    108 int gap_y = 0;
    +
    109
    +
    110 // Constructor pattern. For chained use like:
    +
    111 // ```
    +
    112 // FlexboxConfig()
    +
    113 // .Set(FlexboxConfig::Direction::Row)
    +
    114 // .Set(FlexboxConfig::Wrap::Wrap);
    +
    115 // ```
    + + + + + +
    121 FlexboxConfig& SetGap(int gap_x, int gap_y);
    +
    122};
    +
    +
    123
    +
    124} // namespace ftxui
    +
    125
    +
    126#endif // FTXUI_DOM_FLEXBOX_CONFIG_HPP
    + + + + +
    @ FlexStart
    items are placed at the start of the cross axis.
    + +
    @ Column
    Flex items are laid out in a column.
    + +
    @ Row
    Flex items are laid out in a row.
    +
    @ RowInversed
    Flex items are laid out in a row, but in reverse order.
    + + + +
    @ NoWrap
    Flex items will all try to fit onto one line.
    +
    @ Wrap
    Flex items will wrap onto multiple lines.
    + + +
    @ FlexStart
    items are placed at the start of the cross axis.
    +
    FlexboxConfig & SetGap(int gap_x, int gap_y)
    Set the flexbox flex direction.
    + +
    JustifyContent justify_content
    + + +
    @ Center
    Items are centered along the line.
    +
    @ FlexStart
    Items are aligned to the start of flexbox's direction.
    +
    @ FlexEnd
    Items are aligned to the end of flexbox's direction.
    + +
    @ SpaceBetween
    Items are evenly distributed in the line; first item is on the start.
    +
    @ Stretch
    Items are stretched to fill the line.
    +
    FlexboxConfig & Set(FlexboxConfig::Direction)
    Set the flexbox direction.
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/flexbox__gallery_8cpp.html b/flexbox__gallery_8cpp.html new file mode 100644 index 000000000..72ad37cce --- /dev/null +++ b/flexbox__gallery_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: flexbox_gallery.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox_gallery.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 19 of file flexbox_gallery.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/flexbox__gallery_8cpp.js b/flexbox__gallery_8cpp.js new file mode 100644 index 000000000..fc23a60f6 --- /dev/null +++ b/flexbox__gallery_8cpp.js @@ -0,0 +1,4 @@ +var flexbox__gallery_8cpp = +[ + [ "main", "flexbox__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/flexbox__gallery_8cpp_source.html b/flexbox__gallery_8cpp_source.html new file mode 100644 index 000000000..7ce03f3c9 --- /dev/null +++ b/flexbox__gallery_8cpp_source.html @@ -0,0 +1,459 @@ + + + + + + + + +FTXUI: flexbox_gallery.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox_gallery.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stddef.h> // for size_t
    +
    5#include <memory> // for shared_ptr, __shared_ptr_access, allocator
    +
    6#include <string> // for string, basic_string, to_string, operator+, char_traits
    +
    7#include <vector> // for vector
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Radiobox, Vertical, Checkbox, Horizontal, Renderer, ResizableSplitBottom, ResizableSplitRight
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    13#include "ftxui/dom/elements.hpp" // for text, window, operator|, vbox, hbox, Element, flexbox, bgcolor, filler, flex, size, border, hcenter, color, EQUAL, bold, dim, notflex, xflex_grow, yflex_grow, HEIGHT, WIDTH
    +
    14#include "ftxui/dom/flexbox_config.hpp" // for FlexboxConfig, FlexboxConfig::AlignContent, FlexboxConfig::JustifyContent, FlexboxConfig::AlignContent::Center, FlexboxConfig::AlignItems, FlexboxConfig::Direction, FlexboxConfig::JustifyContent::Center, FlexboxConfig::Wrap
    +
    15#include "ftxui/screen/color.hpp" // for Color, Color::Black
    +
    16
    +
    17using namespace ftxui;
    +
    18
    +
    +
    19int main() {
    +
    20 auto screen = ScreenInteractive::Fullscreen();
    +
    21
    +
    22 int direction_index = 0;
    +
    23 int wrap_index = 0;
    +
    24 int justify_content_index = 0;
    +
    25 int align_items_index = 0;
    +
    26 int align_content_index = 0;
    +
    27
    +
    28 std::vector<std::string> directions = {
    +
    29 "Row",
    +
    30 "RowInversed",
    +
    31 "Column",
    +
    32 "ColumnInversed",
    +
    33 };
    +
    34
    +
    35 std::vector<std::string> wraps = {
    +
    36 "NoWrap",
    +
    37 "Wrap",
    +
    38 "WrapInversed",
    +
    39 };
    +
    40
    +
    41 std::vector<std::string> justify_content = {
    +
    42 "FlexStart", "FlexEnd", "Center", "Stretch",
    +
    43 "SpaceBetween", "SpaceAround", "SpaceEvenly",
    +
    44 };
    +
    45
    +
    46 std::vector<std::string> align_items = {
    +
    47 "FlexStart",
    +
    48 "FlexEnd",
    +
    49 "Center",
    +
    50 "Stretch",
    +
    51 };
    +
    52
    +
    53 std::vector<std::string> align_content = {
    +
    54 "FlexStart", "FlexEnd", "Center", "Stretch",
    +
    55 "SpaceBetween", "SpaceAround", "SpaceEvenly",
    +
    56 };
    +
    57
    +
    58 auto radiobox_direction = Radiobox(&directions, &direction_index);
    +
    59 auto radiobox_wrap = Radiobox(&wraps, &wrap_index);
    +
    60 auto radiobox_justify_content =
    +
    61 Radiobox(&justify_content, &justify_content_index);
    +
    62 auto radiobox_align_items = Radiobox(&align_items, &align_items_index);
    +
    63 auto radiobox_align_content = Radiobox(&align_content, &align_content_index);
    +
    64
    +
    65 bool element_xflex_grow = false;
    +
    66 bool element_yflex_grow = false;
    +
    67 bool group_xflex_grow = true;
    +
    68 bool group_yflex_grow = true;
    +
    69 auto checkbox_element_xflex_grow =
    +
    70 Checkbox("element |= xflex_grow", &element_xflex_grow);
    +
    71 auto checkbox_element_yflex_grow =
    +
    72 Checkbox("element |= yflex_grow", &element_yflex_grow);
    +
    73 auto checkbox_group_xflex_grow =
    +
    74 Checkbox("group |= xflex_grow", &group_xflex_grow);
    +
    75 auto checkbox_group_yflex_grow =
    +
    76 Checkbox("group |= yflex_grow", &group_yflex_grow);
    +
    77
    +
    78 auto make_box = [&](size_t dimx, size_t dimy, size_t index) {
    +
    79 std::string title = std::to_string(dimx) + "x" + std::to_string(dimy);
    +
    80 auto element = window(text(title) | hcenter | bold,
    +
    81 text(std::to_string(index)) | hcenter | dim) |
    +
    82 size(WIDTH, EQUAL, dimx) | size(HEIGHT, EQUAL, dimy) |
    +
    83 bgcolor(Color::HSV(index * 25, 255, 255)) |
    + +
    85 if (element_xflex_grow) {
    +
    86 element = element | xflex_grow;
    +
    87 }
    +
    88 if (element_yflex_grow) {
    +
    89 element = element | yflex_grow;
    +
    90 }
    +
    91 return element;
    +
    92 };
    +
    93
    +
    94 auto content_renderer = Renderer([&] {
    +
    95 FlexboxConfig config;
    +
    96 config.direction = static_cast<FlexboxConfig::Direction>(direction_index);
    +
    97 config.wrap = static_cast<FlexboxConfig::Wrap>(wrap_index);
    +
    98 config.justify_content =
    +
    99 static_cast<FlexboxConfig::JustifyContent>(justify_content_index);
    +
    100 config.align_items =
    +
    101 static_cast<FlexboxConfig::AlignItems>(align_items_index);
    +
    102 config.align_content =
    +
    103 static_cast<FlexboxConfig::AlignContent>(align_content_index);
    +
    104
    +
    105 auto group = flexbox(
    +
    106 {
    +
    107 make_box(8, 4, 0),
    +
    108 make_box(9, 6, 1),
    +
    109 make_box(11, 6, 2),
    +
    110 make_box(10, 4, 3),
    +
    111 make_box(13, 7, 4),
    +
    112 make_box(12, 4, 5),
    +
    113 make_box(12, 5, 6),
    +
    114 make_box(10, 4, 7),
    +
    115 make_box(12, 4, 8),
    +
    116 make_box(10, 5, 9),
    +
    117 },
    +
    118 config);
    +
    119
    +
    120 group = group | bgcolor(Color::Black);
    +
    121
    +
    122 group = group | notflex;
    +
    123
    +
    124 if (!group_xflex_grow) {
    +
    125 group = hbox(group, filler());
    +
    126 }
    +
    127 if (!group_yflex_grow) {
    +
    128 group = vbox(group, filler());
    +
    129 }
    +
    130
    +
    131 group = group | flex;
    +
    132 return group;
    +
    133 });
    +
    134
    +
    135 auto center = FlexboxConfig()
    + + +
    138 int space_right = 10;
    +
    139 int space_bottom = 1;
    +
    140 content_renderer = ResizableSplitRight(
    +
    141 Renderer([&] { return flexbox({text("resizable")}, center); }),
    +
    142 content_renderer, &space_right);
    +
    143 content_renderer = ResizableSplitBottom(
    +
    144 Renderer([&] { return flexbox({text("resizable")}, center); }),
    +
    145 content_renderer, &space_bottom);
    +
    146
    +
    147 auto main_container = Container::Vertical({
    + +
    149 radiobox_direction,
    +
    150 radiobox_wrap,
    + +
    152 checkbox_element_xflex_grow,
    +
    153 checkbox_element_yflex_grow,
    +
    154 checkbox_group_xflex_grow,
    +
    155 checkbox_group_yflex_grow,
    +
    156 }),
    +
    157 }),
    +
    158 Container::Horizontal({
    +
    159 radiobox_justify_content,
    +
    160 radiobox_align_items,
    +
    161 radiobox_align_content,
    +
    162 }),
    +
    163 content_renderer,
    +
    164 });
    +
    165
    +
    166 auto main_renderer = Renderer(main_container, [&] {
    +
    167 return vbox({
    +
    168 vbox({hbox({
    +
    169 window(text("FlexboxConfig::Direction"),
    +
    170 radiobox_direction->Render()),
    +
    171 window(text("FlexboxConfig::Wrap"), radiobox_wrap->Render()),
    +
    172 window(text("Misc:"),
    +
    173 vbox({
    +
    174 checkbox_element_xflex_grow->Render(),
    +
    175 checkbox_element_yflex_grow->Render(),
    +
    176 checkbox_group_xflex_grow->Render(),
    +
    177 checkbox_group_yflex_grow->Render(),
    +
    178 })),
    +
    179 }),
    +
    180 hbox({
    +
    181 window(text("FlexboxConfig::JustifyContent"),
    +
    182 radiobox_justify_content->Render()),
    +
    183 window(text("FlexboxConfig::AlignItems"),
    +
    184 radiobox_align_items->Render()),
    +
    185 window(text("FlexboxConfig::AlignContent"),
    +
    186 radiobox_align_content->Render()),
    +
    187 })}),
    +
    188 content_renderer->Render() | flex | border,
    +
    189 });
    +
    190 });
    +
    191
    +
    192 screen.Loop(main_renderer);
    +
    193
    +
    194 return 0;
    +
    195}
    +
    + + + + + +
    Element make_box(int x, int y)
    + + +
    static ScreenInteractive Fullscreen()
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component ResizableSplitRight(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Component ResizableSplitBottom(Component main, Component back, int *main_size)
    An vertical split in between two components, configurable using the mouse.
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    + + + +
    @ Center
    items are centered along the cross axis.
    + + + + +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    + +
    JustifyContent justify_content
    + +
    @ Center
    Items are centered along the line.
    +
    FlexboxConfig & Set(FlexboxConfig::Direction)
    Set the flexbox direction.
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Element xflex_grow(Element)
    Expand if possible on the X axis.
    Definition flex.cpp:147
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element yflex_grow(Element)
    Expand if possible on the Y axis.
    Definition flex.cpp:153
    +
    Element notflex(Element)
    Make the element not flexible.
    Definition flex.cpp:177
    +
    Element filler()
    An element that will take expand proportionally to the space left in a container.
    Definition flex.cpp:98
    +
    Element border(Element)
    Draw a border around the element.
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
    A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
    Definition flexbox.cpp:251
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    + + +
    +
    + + + + + diff --git a/flexbox__helper_8cpp.html b/flexbox__helper_8cpp.html new file mode 100644 index 000000000..a930bac15 --- /dev/null +++ b/flexbox__helper_8cpp.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: flexbox_helper.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox_helper.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::flexbox_helper
     
    + + + +

    +Functions

    void Compute (Global &global)
     
    +
    +
    + + + + + diff --git a/flexbox__helper_8cpp.js b/flexbox__helper_8cpp.js new file mode 100644 index 000000000..ec6715a21 --- /dev/null +++ b/flexbox__helper_8cpp.js @@ -0,0 +1,4 @@ +var flexbox__helper_8cpp = +[ + [ "Compute", "flexbox__helper_8cpp.html#aaf9df834cf83e439dd0e74cb1999c83d", null ] +]; \ No newline at end of file diff --git a/flexbox__helper_8cpp_source.html b/flexbox__helper_8cpp_source.html new file mode 100644 index 000000000..e21f06154 --- /dev/null +++ b/flexbox__helper_8cpp_source.html @@ -0,0 +1,648 @@ + + + + + + + + +FTXUI: flexbox_helper.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox_helper.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6#include <algorithm> // for max, min
    +
    7#include <cstddef> // for size_t
    +
    8#include <ftxui/dom/flexbox_config.hpp> // for FlexboxConfig, FlexboxConfig::Direction, FlexboxConfig::AlignContent, FlexboxConfig::JustifyContent, FlexboxConfig::Wrap, FlexboxConfig::Direction::RowInversed, FlexboxConfig::AlignItems, FlexboxConfig::Direction::Row, FlexboxConfig::Direction::Column, FlexboxConfig::Direction::ColumnInversed, FlexboxConfig::Wrap::WrapInversed, FlexboxConfig::AlignContent::Stretch, FlexboxConfig::JustifyContent::Stretch, FlexboxConfig::Wrap::Wrap, FlexboxConfig::AlignContent::Center, FlexboxConfig::AlignContent::FlexEnd, FlexboxConfig::AlignContent::FlexStart, FlexboxConfig::AlignContent::SpaceAround, FlexboxConfig::AlignContent::SpaceBetween, FlexboxConfig::AlignContent::SpaceEvenly, FlexboxConfig::AlignItems::Center, FlexboxConfig::AlignItems::FlexEnd, FlexboxConfig::AlignItems::FlexStart, FlexboxConfig::AlignItems::Stretch, FlexboxConfig::JustifyContent::Center, FlexboxConfig::JustifyContent::FlexEnd, FlexboxConfig::JustifyContent::FlexStart, FlexboxConfig::JustifyContent::SpaceAround, FlexboxConfig::JustifyContent::SpaceBetween, FlexboxConfig::JustifyContent::SpaceEvenly, FlexboxConfig::Wrap::NoWrap
    +
    9#include <utility> // for swap, move
    +
    10#include <vector>
    +
    11
    +
    12#include "ftxui/dom/box_helper.hpp" // for Element, Compute
    +
    13
    +
    + +
    15
    +
    16namespace {
    +
    17void SymmetryXY(FlexboxConfig& c) {
    +
    18 std::swap(c.gap_x, c.gap_y);
    +
    19 switch (c.direction) {
    + + +
    22 break;
    + + +
    25 break;
    + + +
    28 break;
    + + +
    31 break;
    +
    32 }
    +
    33}
    +
    34
    +
    35void SymmetryX(FlexboxConfig& c) {
    +
    36 switch (c.direction) {
    + + +
    39 break;
    + + +
    42 break;
    +
    43 default:
    +
    44 break;
    +
    45 }
    +
    46}
    +
    47
    +
    48void SymmetryY(FlexboxConfig& c) {
    +
    49 switch (c.wrap) {
    + +
    51 break;
    + + +
    54 break;
    + + +
    57 break;
    +
    58 }
    +
    59}
    +
    60
    +
    61void SymmetryXY(Global& g) {
    +
    62 SymmetryXY(g.config);
    +
    63 std::swap(g.size_x, g.size_y);
    +
    64 for (auto& b : g.blocks) {
    +
    65 std::swap(b.min_size_x, b.min_size_y);
    +
    66 std::swap(b.flex_grow_x, b.flex_grow_y);
    +
    67 std::swap(b.flex_shrink_x, b.flex_shrink_y);
    +
    68 std::swap(b.x, b.y);
    +
    69 std::swap(b.dim_x, b.dim_y);
    +
    70 }
    +
    71 for (auto& l : g.lines) {
    +
    72 std::swap(l.x, l.y);
    +
    73 std::swap(l.dim_x, l.dim_y);
    +
    74 }
    +
    75}
    +
    76
    +
    77void SymmetryX(Global& g) {
    +
    78 SymmetryX(g.config);
    +
    79 for (auto& b : g.blocks) {
    +
    80 b.x = g.size_x - b.x - b.dim_x;
    +
    81 }
    +
    82 for (auto& l : g.lines) {
    +
    83 l.x = g.size_x - l.x - l.dim_x;
    +
    84 }
    +
    85}
    +
    86
    +
    87void SymmetryY(Global& g) {
    +
    88 SymmetryY(g.config);
    +
    89 for (auto& b : g.blocks) {
    +
    90 b.y = g.size_y - b.y - b.dim_y;
    +
    91 }
    +
    92 for (auto& l : g.lines) {
    +
    93 l.y = g.size_y - l.y - l.dim_y;
    +
    94 }
    +
    95}
    +
    96
    +
    97void SetX(Global& global) {
    +
    98 for (auto& line : global.lines) {
    +
    99 std::vector<box_helper::Element> elements;
    +
    100 elements.reserve(line.blocks.size());
    +
    101 for (auto* block : line.blocks) {
    +
    102 box_helper::Element element;
    +
    103 element.min_size = block->min_size_x;
    +
    104 element.flex_grow =
    +
    105 block->flex_grow_x != 0 || global.config.justify_content ==
    + +
    107 ? 1
    +
    108 : 0;
    +
    109 element.flex_shrink = block->flex_shrink_x;
    +
    110 elements.push_back(element);
    +
    111 }
    +
    112
    + +
    114 &elements,
    +
    115 global.size_x - global.config.gap_x * (int(line.blocks.size()) - 1));
    +
    116
    +
    117 int x = 0;
    +
    118 for (size_t i = 0; i < line.blocks.size(); ++i) {
    +
    119 line.blocks[i]->x = x;
    +
    120 line.blocks[i]->dim_x = elements[i].size;
    +
    121 x += elements[i].size;
    +
    122 x += global.config.gap_x;
    +
    123 }
    +
    124 }
    +
    125
    +
    126 for (auto& line : global.lines) {
    +
    127 line.x = 0;
    +
    128 line.dim_x = global.size_x;
    +
    129 }
    +
    130}
    +
    131
    +
    132// NOLINTNEXTLINE(readability-function-cognitive-complexity)
    +
    133void SetY(Global& g) {
    +
    134 std::vector<box_helper::Element> elements;
    +
    135 elements.reserve(g.lines.size());
    +
    136 for (auto& line : g.lines) {
    +
    137 box_helper::Element element;
    +
    138 element.flex_shrink = line.blocks.front()->flex_shrink_y;
    +
    139 element.flex_grow = line.blocks.front()->flex_grow_y;
    +
    140 for (auto* block : line.blocks) {
    +
    141 element.min_size = std::max(element.min_size, block->min_size_y);
    +
    142 element.flex_shrink = std::min(element.flex_shrink, block->flex_shrink_y);
    +
    143 element.flex_grow = std::min(element.flex_grow, block->flex_grow_y);
    +
    144 }
    +
    145 elements.push_back(element);
    +
    146 }
    +
    147
    +
    148 // box_helper::Compute(&elements, g.size_y);
    +
    149 box_helper::Compute(&elements, 10000); // NOLINT
    +
    150
    +
    151 // [Align-content]
    +
    152 std::vector<int> ys(elements.size());
    +
    153 int y = 0;
    +
    154 for (size_t i = 0; i < elements.size(); ++i) {
    +
    155 ys[i] = y;
    +
    156 y += elements[i].size;
    +
    157 y += g.config.gap_y;
    +
    158 }
    +
    159 int remaining_space = std::max(0, g.size_y - y);
    +
    160 switch (g.config.align_content) {
    + +
    162 break;
    +
    163 }
    +
    164
    + +
    166 for (size_t i = 0; i < ys.size(); ++i) { // NOLINT
    +
    167 ys[i] += remaining_space;
    +
    168 }
    +
    169 break;
    +
    170 }
    +
    171
    + +
    173 for (size_t i = 0; i < ys.size(); ++i) { // NOLINT
    +
    174 ys[i] += remaining_space / 2;
    +
    175 }
    +
    176 break;
    +
    177 }
    +
    178
    + +
    180 for (int i = static_cast<int>(ys.size()) - 1; i >= 0; --i) { // NOLINT
    +
    181 const int shifted = remaining_space * (i + 0) / (i + 1);
    +
    182 ys[i] += shifted;
    +
    183 const int consumed = remaining_space - shifted;
    +
    184 elements[i].size += consumed;
    +
    185 remaining_space -= consumed;
    +
    186 }
    +
    187 break;
    +
    188 }
    +
    189
    + +
    191 for (int i = static_cast<int>(ys.size()) - 1; i >= 1; --i) { // NOLINT
    +
    192 ys[i] += remaining_space;
    +
    193 remaining_space = remaining_space * (i - 1) / i;
    +
    194 }
    +
    195 break;
    +
    196 }
    +
    197
    + +
    199 for (int i = static_cast<int>(ys.size()) - 1; i >= 0; --i) { // NOLINT
    +
    200 ys[i] += remaining_space * (2 * i + 1) / (2 * i + 2);
    +
    201 remaining_space = remaining_space * (2 * i) / (2 * i + 2);
    +
    202 }
    +
    203 break;
    +
    204 }
    +
    205
    + +
    207 for (int i = static_cast<int>(ys.size()) - 1; i >= 0; --i) { // NOLINT
    +
    208 ys[i] += remaining_space * (i + 1) / (i + 2);
    +
    209 remaining_space = remaining_space * (i + 1) / (i + 2);
    +
    210 }
    +
    211 break;
    +
    212 }
    +
    213 }
    +
    214
    +
    215 // [Align items]
    +
    216 for (size_t i = 0; i < g.lines.size(); ++i) {
    +
    217 auto& element = elements[i];
    +
    218 for (auto* block : g.lines[i].blocks) {
    +
    219 const bool stretch =
    +
    220 block->flex_grow_y != 0 ||
    + +
    222 const int size =
    +
    223 stretch ? element.size : std::min(element.size, block->min_size_y);
    +
    224 switch (g.config.align_items) {
    + +
    226 block->y = ys[i];
    +
    227 block->dim_y = size;
    +
    228 break;
    +
    229 }
    +
    230
    + +
    232 block->y = ys[i] + (element.size - size) / 2;
    +
    233 block->dim_y = size;
    +
    234 break;
    +
    235 }
    +
    236
    + +
    238 block->y = ys[i] + element.size - size;
    +
    239 block->dim_y = size;
    +
    240 break;
    +
    241 }
    +
    242
    + +
    244 block->y = ys[i];
    +
    245 block->dim_y = element.size;
    +
    246 break;
    +
    247 }
    +
    248 }
    +
    249 }
    +
    250 }
    +
    251
    +
    252 ys.push_back(g.size_y);
    +
    253 for (size_t i = 0; i < g.lines.size(); ++i) {
    +
    254 g.lines[i].y = ys[i];
    +
    255 g.lines[i].dim_y = ys[i + 1] - ys[i];
    +
    256 }
    +
    257}
    +
    258
    +
    259void JustifyContent(Global& g) {
    +
    260 for (auto& line : g.lines) {
    +
    261 Block* last = line.blocks.back();
    +
    262 int remaining_space = g.size_x - last->x - last->dim_x;
    +
    263 switch (g.config.justify_content) {
    + + +
    266 break;
    +
    267
    + +
    269 for (auto* block : line.blocks) {
    +
    270 block->x += remaining_space;
    +
    271 }
    +
    272 break;
    +
    273 }
    +
    274
    + +
    276 for (auto* block : line.blocks) {
    +
    277 block->x += remaining_space / 2;
    +
    278 }
    +
    279 break;
    +
    280 }
    +
    281
    + +
    283 for (int i = (int)line.blocks.size() - 1; i >= 1; --i) {
    +
    284 line.blocks[i]->x += remaining_space;
    +
    285 remaining_space = remaining_space * (i - 1) / i;
    +
    286 }
    +
    287 break;
    +
    288 }
    +
    289
    + +
    291 for (int i = (int)line.blocks.size() - 1; i >= 0; --i) {
    +
    292 line.blocks[i]->x += remaining_space * (2 * i + 1) / (2 * i + 2);
    +
    293 remaining_space = remaining_space * (2 * i) / (2 * i + 2);
    +
    294 }
    +
    295 break;
    +
    296 }
    +
    297
    + +
    299 for (int i = (int)line.blocks.size() - 1; i >= 0; --i) {
    +
    300 line.blocks[i]->x += remaining_space * (i + 1) / (i + 2);
    +
    301 remaining_space = remaining_space * (i + 1) / (i + 2);
    +
    302 }
    +
    303 break;
    +
    304 }
    +
    305 }
    +
    306 }
    +
    307}
    +
    308
    +
    309void Compute1(Global& global);
    +
    310void Compute2(Global& global);
    +
    311void Compute3(Global& global);
    +
    312
    +
    313void Compute1(Global& global) {
    + +
    315 SymmetryX(global);
    +
    316 Compute2(global);
    +
    317 SymmetryX(global);
    +
    318 return;
    +
    319 }
    +
    320 Compute2(global);
    +
    321}
    +
    322
    +
    323void Compute2(Global& global) {
    + +
    325 SymmetryY(global);
    +
    326 Compute3(global);
    +
    327 SymmetryY(global);
    +
    328 return;
    +
    329 }
    +
    330 Compute3(global);
    +
    331}
    +
    332
    +
    333void Compute3(Global& global) {
    +
    334 // Step 1: Lay out every elements into rows:
    +
    335 {
    +
    336 Line line;
    +
    337 int x = 0;
    +
    338 for (auto& block : global.blocks) {
    +
    339 // Does it fit the end of the row?
    +
    340 // No? Then we need to start a new one:
    +
    341 if (x + block.min_size_x > global.size_x) {
    +
    342 x = 0;
    +
    343 if (!line.blocks.empty()) {
    +
    344 global.lines.push_back(std::move(line));
    +
    345 }
    +
    346 line = Line();
    +
    347 }
    +
    348
    +
    349 block.line = static_cast<int>(global.lines.size());
    +
    350 block.line_position = static_cast<int>(line.blocks.size());
    +
    351 line.blocks.push_back(&block);
    +
    352 x += block.min_size_x + global.config.gap_x;
    +
    353 }
    +
    354 if (!line.blocks.empty()) {
    +
    355 global.lines.push_back(std::move(line));
    +
    356 }
    +
    357 }
    +
    358
    +
    359 // Step 2: Set positions on the X axis.
    +
    360 SetX(global);
    +
    361 JustifyContent(global); // Distribute remaining space.
    +
    362
    +
    363 // Step 3: Set positions on the Y axis.
    +
    364 SetY(global);
    +
    365}
    +
    366
    +
    367} // namespace
    +
    368
    +
    +
    369void Compute(Global& global) {
    + + +
    372 SymmetryXY(global);
    +
    373 Compute1(global);
    +
    374 SymmetryXY(global);
    +
    375 return;
    +
    376 }
    +
    377 Compute1(global);
    +
    378}
    +
    +
    379
    +
    380} // namespace ftxui::flexbox_helper
    +
    + + + + + + + +
    @ Center
    items are centered along the cross axis.
    +
    @ FlexStart
    items are placed at the start of the cross axis.
    +
    @ FlexEnd
    items are placed at the end of the cross axis.
    + +
    @ SpaceBetween
    items are evenly distributed in the cross axis.
    +
    @ Stretch
    items are stretched to fill the cross axis.
    +
    @ Column
    Flex items are laid out in a column.
    + +
    @ Row
    Flex items are laid out in a row.
    +
    @ RowInversed
    Flex items are laid out in a row, but in reverse order.
    + + +
    @ NoWrap
    Flex items will all try to fit onto one line.
    +
    @ Wrap
    Flex items will wrap onto multiple lines.
    + +
    @ Center
    items are centered along the cross axis.
    +
    @ FlexStart
    items are placed at the start of the cross axis.
    +
    @ FlexEnd
    items are placed at the end of the cross axis.
    +
    @ Stretch
    items are stretched to fill the cross axis.
    + +
    JustifyContent justify_content
    + +
    @ Center
    Items are centered along the line.
    +
    @ FlexStart
    Items are aligned to the start of flexbox's direction.
    +
    @ FlexEnd
    Items are aligned to the end of flexbox's direction.
    + +
    @ SpaceBetween
    Items are evenly distributed in the line; first item is on the start.
    +
    @ Stretch
    Items are stretched to fill the line.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    void Compute(std::vector< Element > *elements, int target_size)
    + +
    void Compute(Global &global)
    + + + + + + + + + + + + + + +
    std::vector< Block * > blocks
    +
    +
    + + + + + diff --git a/flexbox__helper_8hpp.html b/flexbox__helper_8hpp.html new file mode 100644 index 000000000..11b1ff345 --- /dev/null +++ b/flexbox__helper_8hpp.html @@ -0,0 +1,238 @@ + + + + + + + + +FTXUI: flexbox_helper.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    flexbox_helper.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Classes

    struct  Block
     
    struct  Line
     
    struct  Global
     
    + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::flexbox_helper
     
    + + + +

    +Functions

    void Compute (Global &global)
     
    +
    +
    + + + + + diff --git a/flexbox__helper_8hpp.js b/flexbox__helper_8hpp.js new file mode 100644 index 000000000..71641b2d5 --- /dev/null +++ b/flexbox__helper_8hpp.js @@ -0,0 +1,7 @@ +var flexbox__helper_8hpp = +[ + [ "Block", "structftxui_1_1flexbox__helper_1_1Block.html", "structftxui_1_1flexbox__helper_1_1Block" ], + [ "Line", "structftxui_1_1flexbox__helper_1_1Line.html", "structftxui_1_1flexbox__helper_1_1Line" ], + [ "Global", "structftxui_1_1flexbox__helper_1_1Global.html", "structftxui_1_1flexbox__helper_1_1Global" ], + [ "Compute", "flexbox__helper_8hpp.html#aaf9df834cf83e439dd0e74cb1999c83d", null ] +]; \ No newline at end of file diff --git a/flexbox__helper_8hpp_source.html b/flexbox__helper_8hpp_source.html new file mode 100644 index 000000000..7c04cfb5f --- /dev/null +++ b/flexbox__helper_8hpp_source.html @@ -0,0 +1,298 @@ + + + + + + + + +FTXUI: flexbox_helper.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    flexbox_helper.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_FLEXBOX_HELPER_HPP
    +
    5#define FTXUI_DOM_FLEXBOX_HELPER_HPP
    +
    6
    +
    7#include <vector>
    + +
    9
    +
    10namespace ftxui::flexbox_helper {
    +
    11
    +
    12// A block is a rectangle in the flexbox.
    +
    +
    13struct Block {
    +
    14 // Input:
    +
    15 int min_size_x = 0;
    +
    16 int min_size_y = 0;
    +
    17 int flex_grow_x = 0;
    +
    18 int flex_grow_y = 0;
    + + +
    21
    +
    22 // Output:
    +
    23 int line{};
    + +
    25 int x = 0;
    +
    26 int y = 0;
    +
    27 int dim_x = 0;
    +
    28 int dim_y = 0;
    +
    29 bool overflow = false;
    +
    30};
    +
    +
    31
    +
    32// A line is a row of blocks.
    +
    +
    33struct Line {
    +
    34 std::vector<Block*> blocks;
    +
    35 int x = 0;
    +
    36 int y = 0;
    +
    37 int dim_x = 0;
    +
    38 int dim_y = 0;
    +
    39};
    +
    +
    40
    +
    +
    41struct Global {
    +
    42 std::vector<Block> blocks;
    +
    43 std::vector<Line> lines;
    + +
    45 int size_x;
    +
    46 int size_y;
    +
    47};
    +
    +
    48
    +
    49void Compute(Global& global);
    +
    50
    +
    51} // namespace ftxui::flexbox_helper
    +
    52
    +
    53#endif /* end of include guard: FTXUI_DOM_FLEXBOX_HELPER_HPP*/
    + +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    + +
    void Compute(Global &global)
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::vector< Block * > blocks
    + +
    +
    + + + + + diff --git a/focus__cursor_8cpp.html b/focus__cursor_8cpp.html new file mode 100644 index 000000000..f447b9e5f --- /dev/null +++ b/focus__cursor_8cpp.html @@ -0,0 +1,264 @@ + + + + + + + + +FTXUI: focus_cursor.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    focus_cursor.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    Component Instance (std::string label, Decorator focusCursor)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Instance()

    + +
    +
    + + + + + + + + + + + +
    Component Instance (std::string label,
    Decorator focusCursor )
    +
    + +

    Definition at line 13 of file focus_cursor.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 25 of file focus_cursor.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/focus__cursor_8cpp.js b/focus__cursor_8cpp.js new file mode 100644 index 000000000..7c22c3f63 --- /dev/null +++ b/focus__cursor_8cpp.js @@ -0,0 +1,5 @@ +var focus__cursor_8cpp = +[ + [ "Instance", "focus__cursor_8cpp.html#a96da73e7fb75cca8a91e59559ce1dba2", null ], + [ "main", "focus__cursor_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/focus__cursor_8cpp_source.html b/focus__cursor_8cpp_source.html new file mode 100644 index 000000000..c2255c38c --- /dev/null +++ b/focus__cursor_8cpp_source.html @@ -0,0 +1,263 @@ + + + + + + + + +FTXUI: focus_cursor.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    focus_cursor.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/component/captured_mouse.hpp> // for ftxui
    +
    5#include <string> // for allocator, operator+, char_traits, string
    +
    6
    +
    7#include "ftxui/component/component.hpp" // for Renderer, Vertical
    +
    8#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive, Component
    +
    9#include "ftxui/dom/elements.hpp" // for text, Decorator, focus, focusCursorBar, focusCursorBarBlinking, focusCursorBlock, focusCursorBlockBlinking, focusCursorUnderline, focusCursorUnderlineBlinking, hbox, Element
    +
    10
    +
    11using namespace ftxui;
    +
    12
    +
    +
    13Component Instance(std::string label, Decorator focusCursor) {
    +
    14 return Renderer([=](bool focused) {
    +
    15 if (focused) {
    +
    16 return hbox({
    +
    17 text("> " + label + " "),
    +
    18 focusCursor(text(" ")),
    +
    19 });
    +
    20 }
    +
    21 return text(" " + label + " ");
    +
    22 });
    +
    23};
    +
    +
    24
    +
    +
    25int main() {
    +
    26 auto screen = ScreenInteractive::Fullscreen();
    +
    27 screen.Loop(Container::Vertical({
    +
    28 Instance("focus", focus),
    +
    29 Instance("focusCursorBlock", focusCursorBlock),
    +
    30 Instance("focusCursorBlockBlinking", focusCursorBlockBlinking),
    +
    31 Instance("focusCursorBar", focusCursorBar),
    +
    32 Instance("focusCursorBarBlinking", focusCursorBarBlinking),
    +
    33 Instance("focusCursorUnderline", focusCursorUnderline),
    +
    34 Instance("focusCursorUnderlineBlinking", focusCursorUnderlineBlinking),
    +
    35 }));
    +
    36 return 0;
    +
    37}
    +
    + + + +
    Component Instance(std::string label, Decorator focusCursor)
    +
    int main()
    +
    static ScreenInteractive Fullscreen()
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 000000000..8de6910ee --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 000000000..7690e5701 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 000000000..b45daf8df --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 000000000..4f13873dc --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/frame_8cpp.html b/frame_8cpp.html new file mode 100644 index 000000000..9a95d049a --- /dev/null +++ b/frame_8cpp.html @@ -0,0 +1,257 @@ + + + + + + + + +FTXUI: frame.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    frame.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Element focus (Element child)
     Set the child to be the one focused among its siblings.
     
    Element select (Element child)
     Set the child to be the one focused among its siblings.
     
    Element frame (Element child)
     Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container. In this case only a smaller portion is displayed. The view is scrollable to make the focused element visible.
     
    Element xframe (Element child)
     Same as frame, but only on the x-axis.
     
    Element yframe (Element child)
     Same as frame, but only on the y-axis.
     
    Element focusCursorBlock (Element child)
     Same as focus, but set the cursor shape to be a still block.
     
    Element focusCursorBlockBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking block.
     
    Element focusCursorBar (Element child)
     Same as focus, but set the cursor shape to be a still block.
     
    Element focusCursorBarBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking bar.
     
    Element focusCursorUnderline (Element child)
     Same as focus, but set the cursor shape to be a still underline.
     
    Element focusCursorUnderlineBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking underline.
     
    +
    +
    + + + + + diff --git a/frame_8cpp.js b/frame_8cpp.js new file mode 100644 index 000000000..c69606d7f --- /dev/null +++ b/frame_8cpp.js @@ -0,0 +1,14 @@ +var frame_8cpp = +[ + [ "focus", "frame_8cpp.html#gaa2d7d671f184f85e0f396f2610fa6c2e", null ], + [ "select", "frame_8cpp.html#a9e3e2988ed61a129d82d634ad66f7eb1", null ], + [ "frame", "frame_8cpp.html#ad0d6a96f6e1fb6d67d9fa6323062a737", null ], + [ "xframe", "frame_8cpp.html#a2d0617c0912b732f059cf360ac951c49", null ], + [ "yframe", "frame_8cpp.html#a7ea9d3ceb2a977955125c6e4a6072325", null ], + [ "focusCursorBlock", "frame_8cpp.html#ga509ef7e7f8913ea3de7efd45e3301ea1", null ], + [ "focusCursorBlockBlinking", "frame_8cpp.html#gadda589914ba8fe863c905b6566557768", null ], + [ "focusCursorBar", "frame_8cpp.html#ga4f89e72e7001064e3eb8189c8317e95b", null ], + [ "focusCursorBarBlinking", "frame_8cpp.html#ga085a7c997e7364c5a54e73c7b84145db", null ], + [ "focusCursorUnderline", "frame_8cpp.html#ga61e1fe02a18c2b18e31ccc9cd3943823", null ], + [ "focusCursorUnderlineBlinking", "frame_8cpp.html#ga33637d59d1e52aa06dd2a94162adbfe9", null ] +]; \ No newline at end of file diff --git a/frame_8cpp_source.html b/frame_8cpp_source.html new file mode 100644 index 000000000..1a9d6cb60 --- /dev/null +++ b/frame_8cpp_source.html @@ -0,0 +1,484 @@ + + + + + + + + +FTXUI: frame.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    frame.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max, min
    +
    5#include <memory> // for make_shared, __shared_ptr_access
    +
    6#include <utility> // for move
    +
    7
    +
    8#include "ftxui/dom/elements.hpp" // for Element, unpack, Elements, focus, frame, select, xframe, yframe
    +
    9#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    10#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    11#include "ftxui/screen/box.hpp" // for Box
    +
    12#include "ftxui/screen/screen.hpp" // for Screen, Screen::Cursor
    +
    13#include "ftxui/util/autoreset.hpp" // for AutoReset
    +
    14
    +
    15namespace ftxui {
    +
    16
    +
    17namespace {
    +
    18class Focus : public Node {
    +
    19 public:
    +
    20 explicit Focus(Elements children) : Node(std::move(children)) {}
    +
    21
    +
    22 void ComputeRequirement() override {
    + +
    24 requirement_ = children_[0]->requirement();
    +
    25 requirement_.focused.enabled = true;
    +
    26 requirement_.focused.node = this;
    +
    27 requirement_.focused.box.x_min = 0;
    +
    28 requirement_.focused.box.y_min = 0;
    +
    29 requirement_.focused.box.x_max = requirement_.min_x - 1;
    +
    30 requirement_.focused.box.y_max = requirement_.min_y - 1;
    +
    31 }
    +
    32
    +
    33 void SetBox(Box box) override {
    +
    34 Node::SetBox(box);
    +
    35 children_[0]->SetBox(box);
    +
    36 }
    +
    37};
    +
    38
    +
    39class Frame : public Node {
    +
    40 public:
    +
    41 Frame(Elements children, bool x_frame, bool y_frame)
    +
    42 : Node(std::move(children)), x_frame_(x_frame), y_frame_(y_frame) {}
    +
    43
    +
    44 void SetBox(Box box) override {
    +
    45 Node::SetBox(box);
    +
    46 auto& focused_box = requirement_.focused.box;
    +
    47 Box children_box = box;
    +
    48
    +
    49 if (x_frame_) {
    +
    50 const int external_dimx = box.x_max - box.x_min;
    +
    51 const int internal_dimx = std::max(requirement_.min_x, external_dimx);
    +
    52 const int focused_dimx = focused_box.x_max - focused_box.x_min;
    +
    53 int dx = focused_box.x_min - external_dimx / 2 + focused_dimx / 2;
    +
    54 dx = std::max(0, std::min(internal_dimx - external_dimx - 1, dx));
    +
    55 children_box.x_min = box.x_min - dx;
    +
    56 children_box.x_max = box.x_min + internal_dimx - dx;
    +
    57 }
    +
    58
    +
    59 if (y_frame_) {
    +
    60 const int external_dimy = box.y_max - box.y_min;
    +
    61 const int internal_dimy = std::max(requirement_.min_y, external_dimy);
    +
    62 const int focused_dimy = focused_box.y_max - focused_box.y_min;
    +
    63 int dy = focused_box.y_min - external_dimy / 2 + focused_dimy / 2;
    +
    64 dy = std::max(0, std::min(internal_dimy - external_dimy - 1, dy));
    +
    65 children_box.y_min = box.y_min - dy;
    +
    66 children_box.y_max = box.y_min + internal_dimy - dy;
    +
    67 }
    +
    68
    +
    69 children_[0]->SetBox(children_box);
    +
    70 }
    +
    71
    +
    72 void Render(Screen& screen) override {
    +
    73 const AutoReset<Box> stencil(&screen.stencil,
    +
    74 Box::Intersection(box_, screen.stencil));
    +
    75 children_[0]->Render(screen);
    +
    76 }
    +
    77
    +
    78 private:
    +
    79 bool x_frame_;
    +
    80 bool y_frame_;
    +
    81};
    +
    82
    +
    83class FocusCursor : public Focus {
    +
    84 public:
    +
    85 FocusCursor(Elements children, Screen::Cursor::Shape shape)
    +
    86 : Focus(std::move(children)), shape_(shape) {}
    +
    87
    +
    88 private:
    +
    89 void ComputeRequirement() override {
    +
    90 Focus::ComputeRequirement(); // NOLINT
    +
    91 requirement_.focused.cursor_shape = shape_;
    +
    92 }
    + +
    94};
    +
    95
    +
    96} // namespace
    +
    97
    +
    98/// @brief Set the `child` to be the one focused among its siblings.
    +
    99/// @param child The element to be focused.
    +
    100/// @ingroup dom
    +
    + +
    102 return std::make_shared<Focus>(unpack(std::move(child)));
    +
    103}
    +
    +
    104
    +
    105/// This is deprecated. Use `focus` instead.
    +
    106/// @brief Set the `child` to be the one focused among its siblings.
    +
    107/// @param child The element to be focused.
    +
    + +
    109 return focus(std::move(child));
    +
    110}
    +
    +
    111
    +
    112/// @brief Allow an element to be displayed inside a 'virtual' area. It size can
    +
    113/// be larger than its container. In this case only a smaller portion is
    +
    114/// displayed. The view is scrollable to make the focused element visible.
    +
    115/// @see frame
    +
    116/// @see xframe
    +
    117/// @see yframe
    +
    + +
    119 return std::make_shared<Frame>(unpack(std::move(child)), true, true);
    +
    120}
    +
    +
    121
    +
    122/// @brief Same as `frame`, but only on the x-axis.
    +
    123/// @see frame
    +
    124/// @see xframe
    +
    125/// @see yframe
    +
    + +
    127 return std::make_shared<Frame>(unpack(std::move(child)), true, false);
    +
    128}
    +
    +
    129
    +
    130/// @brief Same as `frame`, but only on the y-axis.
    +
    131/// @see frame
    +
    132/// @see xframe
    +
    133/// @see yframe
    +
    + +
    135 return std::make_shared<Frame>(unpack(std::move(child)), false, true);
    +
    136}
    +
    +
    137
    +
    138/// @brief Same as `focus`, but set the cursor shape to be a still block.
    +
    139/// @see focus
    +
    140/// @see focusCursorBlock
    +
    141/// @see focusCursorBlockBlinking
    +
    142/// @see focusCursorBar
    +
    143/// @see focusCursorBarBlinking
    +
    144/// @see focusCursorUnderline
    +
    145/// @see focusCursorUnderlineBlinking
    +
    146/// @ingroup dom
    +
    + +
    148 return std::make_shared<FocusCursor>(unpack(std::move(child)),
    + +
    150}
    +
    +
    151
    +
    152/// @brief Same as `focus`, but set the cursor shape to be a blinking block.
    +
    153/// @see focus
    +
    154/// @see focusCursorBlock
    +
    155/// @see focusCursorBlockBlinking
    +
    156/// @see focusCursorBar
    +
    157/// @see focusCursorBarBlinking
    +
    158/// @see focusCursorUnderline
    +
    159/// @see focusCursorUnderlineBlinking
    +
    160/// @ingroup dom
    +
    + +
    162 return std::make_shared<FocusCursor>(unpack(std::move(child)),
    + +
    164}
    +
    +
    165
    +
    166/// @brief Same as `focus`, but set the cursor shape to be a still block.
    +
    167/// @see focus
    +
    168/// @see focusCursorBlock
    +
    169/// @see focusCursorBlockBlinking
    +
    170/// @see focusCursorBar
    +
    171/// @see focusCursorBarBlinking
    +
    172/// @see focusCursorUnderline
    +
    173/// @see focusCursorUnderlineBlinking
    +
    174/// @ingroup dom
    +
    + +
    176 return std::make_shared<FocusCursor>(unpack(std::move(child)),
    + +
    178}
    +
    +
    179
    +
    180/// @brief Same as `focus`, but set the cursor shape to be a blinking bar.
    +
    181/// @see focus
    +
    182/// @see focusCursorBlock
    +
    183/// @see focusCursorBlockBlinking
    +
    184/// @see focusCursorBar
    +
    185/// @see focusCursorBarBlinking
    +
    186/// @see focusCursorUnderline
    +
    187/// @see focusCursorUnderlineBlinking
    +
    188/// @ingroup dom
    +
    + +
    190 return std::make_shared<FocusCursor>(unpack(std::move(child)),
    + +
    192}
    +
    +
    193
    +
    194/// @brief Same as `focus`, but set the cursor shape to be a still underline.
    +
    195/// @see focus
    +
    196/// @see focusCursorBlock
    +
    197/// @see focusCursorBlockBlinking
    +
    198/// @see focusCursorBar
    +
    199/// @see focusCursorBarBlinking
    +
    200/// @see focusCursorUnderline
    +
    201/// @see focusCursorUnderlineBlinking
    +
    202/// @ingroup dom
    +
    + +
    204 return std::make_shared<FocusCursor>(unpack(std::move(child)),
    + +
    206}
    +
    +
    207
    +
    208/// @brief Same as `focus`, but set the cursor shape to be a blinking underline.
    +
    209/// @see focus
    +
    210/// @see focusCursorBlock
    +
    211/// @see focusCursorBlockBlinking
    +
    212/// @see focusCursorBar
    +
    213/// @see focusCursorBarBlinking
    +
    214/// @see focusCursorUnderline
    +
    215/// @see focusCursorUnderlineBlinking
    +
    216/// @ingroup dom
    +
    + +
    218 return std::make_shared<FocusCursor>(unpack(std::move(child)),
    + +
    220}
    +
    +
    221
    +
    222} // namespace ftxui
    + + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    Element focusCursorBarBlinking(Element)
    Same as focus, but set the cursor shape to be a blinking bar.
    Definition frame.cpp:189
    +
    Element focusCursorUnderlineBlinking(Element)
    Same as focus, but set the cursor shape to be a blinking underline.
    Definition frame.cpp:217
    +
    Element focusCursorBar(Element)
    Same as focus, but set the cursor shape to be a still block.
    Definition frame.cpp:175
    +
    Element focusCursorBlock(Element)
    Same as focus, but set the cursor shape to be a still block.
    Definition frame.cpp:147
    +
    Element focusCursorUnderline(Element)
    Same as focus, but set the cursor shape to be a still underline.
    Definition frame.cpp:203
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Element focusCursorBlockBlinking(Element)
    Same as focus, but set the cursor shape to be a blinking block.
    Definition frame.cpp:161
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element xframe(Element)
    Same as frame, but only on the x-axis.
    Definition frame.cpp:126
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Element yframe(Element)
    Same as frame, but only on the y-axis.
    Definition frame.cpp:134
    +
    Element select(Element e)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:108
    +
    Element frame(Element)
    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
    Definition frame.cpp:118
    + + + + + + + + + + +
    +
    + + + + + diff --git a/ftxui.html b/ftxui.html new file mode 100644 index 000000000..b8f44dc78 --- /dev/null +++ b/ftxui.html @@ -0,0 +1,267 @@ + + + + + + + + +FTXUI: ftxui + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ftxui
    +
    +
    +

    +

    title-img

    +

    FTXUI is organized into three modules, each building upon the previous:

    +
      +
    1. ftxui/screen - Low-level rendering
    2. +
    3. ftxui/dom - Layout and composition
    4. +
    5. ftxui/component - User interaction
    6. +
    +
    +

    +ftxui/screen

    +

    Defines:

    + +

    Use for direct terminal drawing and styling.

    +
    + + + + +
    Next
    Documentation
    +

    +

    +ftxui/dom

    +

    Provides:

    +
      +
    • ftxui::Element: a tree structure for layout and UI.
    • +
    • Composable and responsive elements.
    • +
    • Render() to draw onto a Screen.
    • +
    +

    Ideal for structured, styled UIs.

    +
    + + + + +
    Next
    Documentation
    +

    +

    +ftxui/component

    +

    Adds:

    +
      +
    • ftxui::Component: stateful, interactive widgets.
    • +
    • Built-ins: Checkbox, Input, Menu, Button.
    • +
    • Supports keyboard/cursor input and composition.
    • +
    +

    Use for interactive apps.

    +
    + + + + +
    Next
    Documentation
    +

    +

    Modules can be used independently, or together: screen → dom → component.

    +
    +
    +
    + + + + + diff --git a/ftxui_8cppm.html b/ftxui_8cppm.html new file mode 100644 index 000000000..bcc37f329 --- /dev/null +++ b/ftxui_8cppm.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: ftxui.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ftxui.cppm File Reference
    module ftxui
    +
    + +
    + + + + + diff --git a/ftxui_8cppm_source.html b/ftxui_8cppm_source.html new file mode 100644 index 000000000..291933a3d --- /dev/null +++ b/ftxui_8cppm_source.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: ftxui.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ftxui.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui
    +
    2/// @brief Module file re-exporting all FTXUI submodules.
    +
    3
    +
    4export module ftxui;
    +
    5
    +
    6export import ftxui.component;
    +
    7export import ftxui.dom;
    +
    8export import ftxui.screen;
    +
    9export import ftxui.util;
    +
    Module file for FTXUI component operations.
    +
    Module file for FTXUI main operations.
    +
    Module file for FTXUI screen operations.
    +
    Module file for FTXUI utility operations.
    +
    Module file re-exporting all FTXUI submodules.
    +
    +
    + + + + + diff --git a/functions.html b/functions.html new file mode 100644 index 000000000..56d001e51 --- /dev/null +++ b/functions.html @@ -0,0 +1,268 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - a -

    +
    +
    + + + + + diff --git a/functions_b.html b/functions_b.html new file mode 100644 index 000000000..874904a61 --- /dev/null +++ b/functions_b.html @@ -0,0 +1,240 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - b -

    +
    +
    + + + + + diff --git a/functions_c.html b/functions_c.html new file mode 100644 index 000000000..18aaae404 --- /dev/null +++ b/functions_c.html @@ -0,0 +1,316 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - c -

    +
    +
    + + + + + diff --git a/functions_d.html b/functions_d.html new file mode 100644 index 000000000..620bd9a91 --- /dev/null +++ b/functions_d.html @@ -0,0 +1,305 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - d -

    +
    +
    + + + + + diff --git a/functions_dup.js b/functions_dup.js new file mode 100644 index 000000000..dce297a95 --- /dev/null +++ b/functions_dup.js @@ -0,0 +1,30 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "j", "functions_j.html", null ], + [ "k", "functions_k.html", null ], + [ "l", "functions_l.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "q", "functions_q.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "v", "functions_v.html", null ], + [ "w", "functions_w.html", null ], + [ "x", "functions_x.html", null ], + [ "y", "functions_y.html", null ], + [ "z", "functions_z.html", null ], + [ "~", "functions_~.html", null ] +]; \ No newline at end of file diff --git a/functions_e.html b/functions_e.html new file mode 100644 index 000000000..267614415 --- /dev/null +++ b/functions_e.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - e -

    +
    +
    + + + + + diff --git a/functions_enum.html b/functions_enum.html new file mode 100644 index 000000000..7aea0c52e --- /dev/null +++ b/functions_enum.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Class Members - Enumerations + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enums with links to the classes they belong to:
    +
    +
    + + + + + diff --git a/functions_eval.html b/functions_eval.html new file mode 100644 index 000000000..4e9765697 --- /dev/null +++ b/functions_eval.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - a -

    +
    +
    + + + + + diff --git a/functions_eval.js b/functions_eval.js new file mode 100644 index 000000000..0a0baa99c --- /dev/null +++ b/functions_eval.js @@ -0,0 +1,23 @@ +var functions_eval = +[ + [ "a", "functions_eval.html", null ], + [ "b", "functions_eval_b.html", null ], + [ "c", "functions_eval_c.html", null ], + [ "d", "functions_eval_d.html", null ], + [ "g", "functions_eval_g.html", null ], + [ "h", "functions_eval_h.html", null ], + [ "i", "functions_eval_i.html", null ], + [ "k", "functions_eval_k.html", null ], + [ "l", "functions_eval_l.html", null ], + [ "m", "functions_eval_m.html", null ], + [ "n", "functions_eval_n.html", null ], + [ "o", "functions_eval_o.html", null ], + [ "p", "functions_eval_p.html", null ], + [ "r", "functions_eval_r.html", null ], + [ "s", "functions_eval_s.html", null ], + [ "t", "functions_eval_t.html", null ], + [ "u", "functions_eval_u.html", null ], + [ "v", "functions_eval_v.html", null ], + [ "w", "functions_eval_w.html", null ], + [ "y", "functions_eval_y.html", null ] +]; \ No newline at end of file diff --git a/functions_eval_b.html b/functions_eval_b.html new file mode 100644 index 000000000..d92d0116b --- /dev/null +++ b/functions_eval_b.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - b -

    +
    +
    + + + + + diff --git a/functions_eval_c.html b/functions_eval_c.html new file mode 100644 index 000000000..6a9e40d3e --- /dev/null +++ b/functions_eval_c.html @@ -0,0 +1,224 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - c -

    +
    +
    + + + + + diff --git a/functions_eval_d.html b/functions_eval_d.html new file mode 100644 index 000000000..45272a468 --- /dev/null +++ b/functions_eval_d.html @@ -0,0 +1,261 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - d -

    +
    +
    + + + + + diff --git a/functions_eval_g.html b/functions_eval_g.html new file mode 100644 index 000000000..023dec60b --- /dev/null +++ b/functions_eval_g.html @@ -0,0 +1,252 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - g -

    +
    +
    + + + + + diff --git a/functions_eval_h.html b/functions_eval_h.html new file mode 100644 index 000000000..9266f86a0 --- /dev/null +++ b/functions_eval_h.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - h -

    +
    +
    + + + + + diff --git a/functions_eval_i.html b/functions_eval_i.html new file mode 100644 index 000000000..d97d62098 --- /dev/null +++ b/functions_eval_i.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - i -

    +
    +
    + + + + + diff --git a/functions_eval_k.html b/functions_eval_k.html new file mode 100644 index 000000000..394dec9d3 --- /dev/null +++ b/functions_eval_k.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - k -

    +
    +
    + + + + + diff --git a/functions_eval_l.html b/functions_eval_l.html new file mode 100644 index 000000000..0283d6e95 --- /dev/null +++ b/functions_eval_l.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - l -

      +
    • Left : Mouse
    • +
    • LightCoral : Color
    • +
    • LightCyan1Bis : Color
    • +
    • LightCyan3 : Color
    • +
    • LightGoldenrod1 : Color
    • +
    • LightGoldenrod2 : Color
    • +
    • LightGoldenrod2Bis : Color
    • +
    • LightGoldenrod2Ter : Color
    • +
    • LightGoldenrod3 : Color
    • +
    • LightGreen : Color
    • +
    • LightGreenBis : Color
    • +
    • LightPink1 : Color
    • +
    • LightPink3 : Color
    • +
    • LightPink4 : Color
    • +
    • LightSalmon1 : Color
    • +
    • LightSalmon3 : Color
    • +
    • LightSalmon3Bis : Color
    • +
    • LightSeaGreen : Color
    • +
    • LightSkyBlue1 : Color
    • +
    • LightSkyBlue3 : Color
    • +
    • LightSkyBlue3Bis : Color
    • +
    • LightSlateBlue : Color
    • +
    • LightSlateGrey : Color
    • +
    • LightSteelBlue : Color
    • +
    • LightSteelBlue1 : Color
    • +
    • LightSteelBlue3 : Color
    • +
    • LightYellow3 : Color
    • +
    +
    +
    + + + + + diff --git a/functions_eval_m.html b/functions_eval_m.html new file mode 100644 index 000000000..99724c763 --- /dev/null +++ b/functions_eval_m.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - m -

    +
    +
    + + + + + diff --git a/functions_eval_n.html b/functions_eval_n.html new file mode 100644 index 000000000..50502864d --- /dev/null +++ b/functions_eval_n.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - n -

    +
    +
    + + + + + diff --git a/functions_eval_o.html b/functions_eval_o.html new file mode 100644 index 000000000..be994a26a --- /dev/null +++ b/functions_eval_o.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - o -

    +
    +
    + + + + + diff --git a/functions_eval_p.html b/functions_eval_p.html new file mode 100644 index 000000000..672382d88 --- /dev/null +++ b/functions_eval_p.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - p -

    +
    +
    + + + + + diff --git a/functions_eval_r.html b/functions_eval_r.html new file mode 100644 index 000000000..69155a955 --- /dev/null +++ b/functions_eval_r.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - r -

    +
    +
    + + + + + diff --git a/functions_eval_s.html b/functions_eval_s.html new file mode 100644 index 000000000..038323fb9 --- /dev/null +++ b/functions_eval_s.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - s -

    +
    +
    + + + + + diff --git a/functions_eval_t.html b/functions_eval_t.html new file mode 100644 index 000000000..c695105bc --- /dev/null +++ b/functions_eval_t.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - t -

    +
    +
    + + + + + diff --git a/functions_eval_u.html b/functions_eval_u.html new file mode 100644 index 000000000..16b79e104 --- /dev/null +++ b/functions_eval_u.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - u -

    +
    +
    + + + + + diff --git a/functions_eval_v.html b/functions_eval_v.html new file mode 100644 index 000000000..b37b58701 --- /dev/null +++ b/functions_eval_v.html @@ -0,0 +1,210 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - v -

    +
    +
    + + + + + diff --git a/functions_eval_w.html b/functions_eval_w.html new file mode 100644 index 000000000..4537961cd --- /dev/null +++ b/functions_eval_w.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - w -

    +
    +
    + + + + + diff --git a/functions_eval_y.html b/functions_eval_y.html new file mode 100644 index 000000000..2d1f425af --- /dev/null +++ b/functions_eval_y.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all enum values with links to the classes they belong to:
    + +

    - y -

    +
    +
    + + + + + diff --git a/functions_f.html b/functions_f.html new file mode 100644 index 000000000..15d65631a --- /dev/null +++ b/functions_f.html @@ -0,0 +1,246 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - f -

    +
    +
    + + + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 000000000..4fd4e0ad9 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - a -

    +
    +
    + + + + + diff --git a/functions_func.js b/functions_func.js new file mode 100644 index 000000000..58f8dc287 --- /dev/null +++ b/functions_func.js @@ -0,0 +1,24 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_b.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "e", "functions_func_e.html", null ], + [ "f", "functions_func_f.html", null ], + [ "g", "functions_func_g.html", null ], + [ "h", "functions_func_h.html", null ], + [ "i", "functions_func_i.html", null ], + [ "l", "functions_func_l.html", null ], + [ "m", "functions_func_m.html", null ], + [ "n", "functions_func_n.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "t", "functions_func_t.html", null ], + [ "u", "functions_func_u.html", null ], + [ "v", "functions_func_v.html", null ], + [ "w", "functions_func_w.html", null ], + [ "~", "functions_func_~.html", null ] +]; \ No newline at end of file diff --git a/functions_func_b.html b/functions_func_b.html new file mode 100644 index 000000000..9de746af3 --- /dev/null +++ b/functions_func_b.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - b -

    +
    +
    + + + + + diff --git a/functions_func_c.html b/functions_func_c.html new file mode 100644 index 000000000..665bcae1d --- /dev/null +++ b/functions_func_c.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - c -

    +
    +
    + + + + + diff --git a/functions_func_d.html b/functions_func_d.html new file mode 100644 index 000000000..9b6d47afc --- /dev/null +++ b/functions_func_d.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - d -

    +
    +
    + + + + + diff --git a/functions_func_e.html b/functions_func_e.html new file mode 100644 index 000000000..b3f6f6f3d --- /dev/null +++ b/functions_func_e.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - e -

    +
    +
    + + + + + diff --git a/functions_func_f.html b/functions_func_f.html new file mode 100644 index 000000000..ccfe829e3 --- /dev/null +++ b/functions_func_f.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - f -

    +
    +
    + + + + + diff --git a/functions_func_g.html b/functions_func_g.html new file mode 100644 index 000000000..5d550dfc0 --- /dev/null +++ b/functions_func_g.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - g -

    +
    +
    + + + + + diff --git a/functions_func_h.html b/functions_func_h.html new file mode 100644 index 000000000..36c7d876d --- /dev/null +++ b/functions_func_h.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - h -

    +
    +
    + + + + + diff --git a/functions_func_i.html b/functions_func_i.html new file mode 100644 index 000000000..d140f4794 --- /dev/null +++ b/functions_func_i.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - i -

    +
    +
    + + + + + diff --git a/functions_func_l.html b/functions_func_l.html new file mode 100644 index 000000000..6e0b561fc --- /dev/null +++ b/functions_func_l.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - l -

    +
    +
    + + + + + diff --git a/functions_func_m.html b/functions_func_m.html new file mode 100644 index 000000000..5c00351b8 --- /dev/null +++ b/functions_func_m.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - m -

    +
    +
    + + + + + diff --git a/functions_func_n.html b/functions_func_n.html new file mode 100644 index 000000000..ff05eac8f --- /dev/null +++ b/functions_func_n.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - n -

    +
    +
    + + + + + diff --git a/functions_func_o.html b/functions_func_o.html new file mode 100644 index 000000000..d8263cb2e --- /dev/null +++ b/functions_func_o.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - o -

    +
    +
    + + + + + diff --git a/functions_func_p.html b/functions_func_p.html new file mode 100644 index 000000000..75f7e92e4 --- /dev/null +++ b/functions_func_p.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - p -

    +
    +
    + + + + + diff --git a/functions_func_r.html b/functions_func_r.html new file mode 100644 index 000000000..416667192 --- /dev/null +++ b/functions_func_r.html @@ -0,0 +1,224 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - r -

    +
    +
    + + + + + diff --git a/functions_func_s.html b/functions_func_s.html new file mode 100644 index 000000000..cec508c50 --- /dev/null +++ b/functions_func_s.html @@ -0,0 +1,245 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - s -

    +
    +
    + + + + + diff --git a/functions_func_t.html b/functions_func_t.html new file mode 100644 index 000000000..3cc12e597 --- /dev/null +++ b/functions_func_t.html @@ -0,0 +1,219 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - t -

    +
    +
    + + + + + diff --git a/functions_func_u.html b/functions_func_u.html new file mode 100644 index 000000000..9e21e1214 --- /dev/null +++ b/functions_func_u.html @@ -0,0 +1,210 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - u -

      +
    • Union() : Box
    • +
    +
    +
    + + + + + diff --git a/functions_func_v.html b/functions_func_v.html new file mode 100644 index 000000000..a82fc1330 --- /dev/null +++ b/functions_func_v.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - v -

    +
    +
    + + + + + diff --git a/functions_func_w.html b/functions_func_w.html new file mode 100644 index 000000000..f0584503a --- /dev/null +++ b/functions_func_w.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - w -

    +
    +
    + + + + + diff --git a/functions_func_~.html b/functions_func_~.html new file mode 100644 index 000000000..536d94874 --- /dev/null +++ b/functions_func_~.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - ~ -

    +
    +
    + + + + + diff --git a/functions_g.html b/functions_g.html new file mode 100644 index 000000000..70023d728 --- /dev/null +++ b/functions_g.html @@ -0,0 +1,264 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - g -

    +
    +
    + + + + + diff --git a/functions_h.html b/functions_h.html new file mode 100644 index 000000000..46cc82702 --- /dev/null +++ b/functions_h.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - h -

    +
    +
    + + + + + diff --git a/functions_i.html b/functions_i.html new file mode 100644 index 000000000..248137fc7 --- /dev/null +++ b/functions_i.html @@ -0,0 +1,238 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - i -

    +
    +
    + + + + + diff --git a/functions_j.html b/functions_j.html new file mode 100644 index 000000000..50866170a --- /dev/null +++ b/functions_j.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - j -

    +
    +
    + + + + + diff --git a/functions_k.html b/functions_k.html new file mode 100644 index 000000000..2b669dd75 --- /dev/null +++ b/functions_k.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - k -

    +
    +
    + + + + + diff --git a/functions_l.html b/functions_l.html new file mode 100644 index 000000000..36bb3abe1 --- /dev/null +++ b/functions_l.html @@ -0,0 +1,248 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - l -

    +
    +
    + + + + + diff --git a/functions_m.html b/functions_m.html new file mode 100644 index 000000000..906593218 --- /dev/null +++ b/functions_m.html @@ -0,0 +1,254 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - m -

    +
    +
    + + + + + diff --git a/functions_n.html b/functions_n.html new file mode 100644 index 000000000..3a7dbdab0 --- /dev/null +++ b/functions_n.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - n -

    +
    +
    + + + + + diff --git a/functions_o.html b/functions_o.html new file mode 100644 index 000000000..9b077369a --- /dev/null +++ b/functions_o.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - o -

    +
    +
    + + + + + diff --git a/functions_p.html b/functions_p.html new file mode 100644 index 000000000..06f59c359 --- /dev/null +++ b/functions_p.html @@ -0,0 +1,251 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - p -

    +
    +
    + + + + + diff --git a/functions_q.html b/functions_q.html new file mode 100644 index 000000000..72b413062 --- /dev/null +++ b/functions_q.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - q -

    +
    +
    + + + + + diff --git a/functions_r.html b/functions_r.html new file mode 100644 index 000000000..ab1bf9044 --- /dev/null +++ b/functions_r.html @@ -0,0 +1,245 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - r -

    +
    +
    + + + + + diff --git a/functions_rela.html b/functions_rela.html new file mode 100644 index 000000000..df9e49be7 --- /dev/null +++ b/functions_rela.html @@ -0,0 +1,208 @@ + + + + + + + + +FTXUI: Class Members - Related Symbols + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all related symbols with links to the classes they belong to:
    +
    +
    + + + + + diff --git a/functions_s.html b/functions_s.html new file mode 100644 index 000000000..6a1c7d53b --- /dev/null +++ b/functions_s.html @@ -0,0 +1,285 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - s -

    +
    +
    + + + + + diff --git a/functions_t.html b/functions_t.html new file mode 100644 index 000000000..cf5a2a357 --- /dev/null +++ b/functions_t.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - t -

    +
    +
    + + + + + diff --git a/functions_type.html b/functions_type.html new file mode 100644 index 000000000..228cbff6d --- /dev/null +++ b/functions_type.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all typedefs with links to the classes they belong to:
    +
    +
    + + + + + diff --git a/functions_u.html b/functions_u.html new file mode 100644 index 000000000..2e17ea4ce --- /dev/null +++ b/functions_u.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - u -

    +
    +
    + + + + + diff --git a/functions_v.html b/functions_v.html new file mode 100644 index 000000000..6bbc8876c --- /dev/null +++ b/functions_v.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - v -

    +
    +
    + + + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 000000000..a00f49740 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,251 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - a -

    +
    +
    + + + + + diff --git a/functions_vars.js b/functions_vars.js new file mode 100644 index 000000000..f7307cc5f --- /dev/null +++ b/functions_vars.js @@ -0,0 +1,29 @@ +var functions_vars = +[ + [ "a", "functions_vars.html", null ], + [ "b", "functions_vars_b.html", null ], + [ "c", "functions_vars_c.html", null ], + [ "d", "functions_vars_d.html", null ], + [ "e", "functions_vars_e.html", null ], + [ "f", "functions_vars_f.html", null ], + [ "g", "functions_vars_g.html", null ], + [ "h", "functions_vars_h.html", null ], + [ "i", "functions_vars_i.html", null ], + [ "j", "functions_vars_j.html", null ], + [ "k", "functions_vars_k.html", null ], + [ "l", "functions_vars_l.html", null ], + [ "m", "functions_vars_m.html", null ], + [ "n", "functions_vars_n.html", null ], + [ "o", "functions_vars_o.html", null ], + [ "p", "functions_vars_p.html", null ], + [ "q", "functions_vars_q.html", null ], + [ "r", "functions_vars_r.html", null ], + [ "s", "functions_vars_s.html", null ], + [ "t", "functions_vars_t.html", null ], + [ "u", "functions_vars_u.html", null ], + [ "v", "functions_vars_v.html", null ], + [ "w", "functions_vars_w.html", null ], + [ "x", "functions_vars_x.html", null ], + [ "y", "functions_vars_y.html", null ], + [ "z", "functions_vars_z.html", null ] +]; \ No newline at end of file diff --git a/functions_vars_b.html b/functions_vars_b.html new file mode 100644 index 000000000..34ac6743c --- /dev/null +++ b/functions_vars_b.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - b -

    +
    +
    + + + + + diff --git a/functions_vars_c.html b/functions_vars_c.html new file mode 100644 index 000000000..787ca1101 --- /dev/null +++ b/functions_vars_c.html @@ -0,0 +1,279 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - c -

    +
    +
    + + + + + diff --git a/functions_vars_d.html b/functions_vars_d.html new file mode 100644 index 000000000..66ee67200 --- /dev/null +++ b/functions_vars_d.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - d -

    +
    +
    + + + + + diff --git a/functions_vars_e.html b/functions_vars_e.html new file mode 100644 index 000000000..acb35ccb1 --- /dev/null +++ b/functions_vars_e.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - e -

    +
    +
    + + + + + diff --git a/functions_vars_f.html b/functions_vars_f.html new file mode 100644 index 000000000..63e17c267 --- /dev/null +++ b/functions_vars_f.html @@ -0,0 +1,237 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - f -

    +
    +
    + + + + + diff --git a/functions_vars_g.html b/functions_vars_g.html new file mode 100644 index 000000000..e0208d5dc --- /dev/null +++ b/functions_vars_g.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - g -

    +
    +
    + + + + + diff --git a/functions_vars_h.html b/functions_vars_h.html new file mode 100644 index 000000000..60a19d42c --- /dev/null +++ b/functions_vars_h.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - h -

    +
    +
    + + + + + diff --git a/functions_vars_i.html b/functions_vars_i.html new file mode 100644 index 000000000..82c642a9d --- /dev/null +++ b/functions_vars_i.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - i -

    +
    +
    + + + + + diff --git a/functions_vars_j.html b/functions_vars_j.html new file mode 100644 index 000000000..225d1db43 --- /dev/null +++ b/functions_vars_j.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - j -

    +
    +
    + + + + + diff --git a/functions_vars_k.html b/functions_vars_k.html new file mode 100644 index 000000000..34591a148 --- /dev/null +++ b/functions_vars_k.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - k -

    +
    +
    + + + + + diff --git a/functions_vars_l.html b/functions_vars_l.html new file mode 100644 index 000000000..3d4c012f1 --- /dev/null +++ b/functions_vars_l.html @@ -0,0 +1,219 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - l -

    +
    +
    + + + + + diff --git a/functions_vars_m.html b/functions_vars_m.html new file mode 100644 index 000000000..c0ac0c101 --- /dev/null +++ b/functions_vars_m.html @@ -0,0 +1,224 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - m -

    +
    +
    + + + + + diff --git a/functions_vars_n.html b/functions_vars_n.html new file mode 100644 index 000000000..c71321f82 --- /dev/null +++ b/functions_vars_n.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - n -

    +
    +
    + + + + + diff --git a/functions_vars_o.html b/functions_vars_o.html new file mode 100644 index 000000000..a910743c9 --- /dev/null +++ b/functions_vars_o.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - o -

    +
    +
    + + + + + diff --git a/functions_vars_p.html b/functions_vars_p.html new file mode 100644 index 000000000..8ee8b2689 --- /dev/null +++ b/functions_vars_p.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - p -

    +
    +
    + + + + + diff --git a/functions_vars_q.html b/functions_vars_q.html new file mode 100644 index 000000000..039b13c07 --- /dev/null +++ b/functions_vars_q.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - q -

    +
    +
    + + + + + diff --git a/functions_vars_r.html b/functions_vars_r.html new file mode 100644 index 000000000..255200905 --- /dev/null +++ b/functions_vars_r.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - r -

    +
    +
    + + + + + diff --git a/functions_vars_s.html b/functions_vars_s.html new file mode 100644 index 000000000..854843929 --- /dev/null +++ b/functions_vars_s.html @@ -0,0 +1,225 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - s -

    +
    +
    + + + + + diff --git a/functions_vars_t.html b/functions_vars_t.html new file mode 100644 index 000000000..4b8c7d1cb --- /dev/null +++ b/functions_vars_t.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - t -

    +
    +
    + + + + + diff --git a/functions_vars_u.html b/functions_vars_u.html new file mode 100644 index 000000000..2c189be67 --- /dev/null +++ b/functions_vars_u.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - u -

    +
    +
    + + + + + diff --git a/functions_vars_v.html b/functions_vars_v.html new file mode 100644 index 000000000..f2d08da79 --- /dev/null +++ b/functions_vars_v.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - v -

    +
    +
    + + + + + diff --git a/functions_vars_w.html b/functions_vars_w.html new file mode 100644 index 000000000..71f9d86a9 --- /dev/null +++ b/functions_vars_w.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - w -

    +
    +
    + + + + + diff --git a/functions_vars_x.html b/functions_vars_x.html new file mode 100644 index 000000000..301bdf8fb --- /dev/null +++ b/functions_vars_x.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - x -

    +
    +
    + + + + + diff --git a/functions_vars_y.html b/functions_vars_y.html new file mode 100644 index 000000000..1db2b5615 --- /dev/null +++ b/functions_vars_y.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - y -

    +
    +
    + + + + + diff --git a/functions_vars_z.html b/functions_vars_z.html new file mode 100644 index 000000000..f83216b7f --- /dev/null +++ b/functions_vars_z.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the classes they belong to:
    + +

    - z -

    +
    +
    + + + + + diff --git a/functions_w.html b/functions_w.html new file mode 100644 index 000000000..0546b3a28 --- /dev/null +++ b/functions_w.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - w -

    +
    +
    + + + + + diff --git a/functions_x.html b/functions_x.html new file mode 100644 index 000000000..04bd60326 --- /dev/null +++ b/functions_x.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - x -

    +
    +
    + + + + + diff --git a/functions_y.html b/functions_y.html new file mode 100644 index 000000000..cbd9b260b --- /dev/null +++ b/functions_y.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - y -

    +
    +
    + + + + + diff --git a/functions_z.html b/functions_z.html new file mode 100644 index 000000000..b40864d10 --- /dev/null +++ b/functions_z.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - z -

    +
    +
    + + + + + diff --git a/functions_~.html b/functions_~.html new file mode 100644 index 000000000..9a36af5ad --- /dev/null +++ b/functions_~.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: Class Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - ~ -

    +
    +
    + + + + + diff --git a/gallery_8cpp.html b/gallery_8cpp.html new file mode 100644 index 000000000..339e99758 --- /dev/null +++ b/gallery_8cpp.html @@ -0,0 +1,264 @@ + + + + + + + + +FTXUI: gallery.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    gallery.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    Component Wrap (std::string name, Component component)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Wrap()

    + +
    +
    + + + + + + + + + + + +
    Component Wrap (std::string name,
    Component component )
    +
    + +

    Definition at line 18 of file gallery.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 29 of file gallery.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/gallery_8cpp.js b/gallery_8cpp.js new file mode 100644 index 000000000..072faa9bd --- /dev/null +++ b/gallery_8cpp.js @@ -0,0 +1,5 @@ +var gallery_8cpp = +[ + [ "Wrap", "gallery_8cpp.html#a0a320000c5a485508c57030f605b800a", null ], + [ "main", "gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/gallery_8cpp_source.html b/gallery_8cpp_source.html new file mode 100644 index 000000000..2605f9f27 --- /dev/null +++ b/gallery_8cpp_source.html @@ -0,0 +1,398 @@ + + + + + + + + +FTXUI: gallery.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    gallery.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <memory> // for shared_ptr, allocator, __shared_ptr_access
    +
    6#include <string> // for string, basic_string
    +
    7#include <vector> // for vector
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Slider, Checkbox, Vertical, Renderer, Button, Input, Menu, Radiobox, Toggle
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    13#include "ftxui/dom/elements.hpp" // for separator, operator|, Element, size, xflex, text, WIDTH, hbox, vbox, EQUAL, border, GREATER_THAN
    +
    14
    +
    15using namespace ftxui;
    +
    16
    +
    17// Display a component nicely with a title on the left.
    +
    +
    18Component Wrap(std::string name, Component component) {
    +
    19 return Renderer(component, [name, component] {
    +
    20 return hbox({
    +
    21 text(name) | size(WIDTH, EQUAL, 8),
    +
    22 separator(),
    +
    23 component->Render() | xflex,
    +
    24 }) |
    +
    25 xflex;
    +
    26 });
    +
    27}
    +
    +
    28
    +
    +
    29int main() {
    +
    30 auto screen = ScreenInteractive::FitComponent();
    +
    31
    +
    32 // -- Menu
    +
    33 // ----------------------------------------------------------------------
    +
    34 const std::vector<std::string> menu_entries = {
    +
    35 "Menu 1",
    +
    36 "Menu 2",
    +
    37 "Menu 3",
    +
    38 "Menu 4",
    +
    39 };
    +
    40 int menu_selected = 0;
    +
    41 auto menu = Menu(&menu_entries, &menu_selected);
    +
    42 menu = Wrap("Menu", menu);
    +
    43
    +
    44 // -- Toggle------------------------------------------------------------------
    +
    45 int toggle_selected = 0;
    +
    46 std::vector<std::string> toggle_entries = {
    +
    47 "Toggle_1",
    +
    48 "Toggle_2",
    +
    49 };
    +
    50 auto toggle = Toggle(&toggle_entries, &toggle_selected);
    +
    51 toggle = Wrap("Toggle", toggle);
    +
    52
    +
    53 // -- Checkbox ---------------------------------------------------------------
    +
    54 bool checkbox_1_selected = false;
    +
    55 bool checkbox_2_selected = false;
    +
    56 bool checkbox_3_selected = false;
    +
    57 bool checkbox_4_selected = false;
    +
    58
    +
    59 auto checkboxes = Container::Vertical({
    +
    60 Checkbox("checkbox1", &checkbox_1_selected),
    +
    61 Checkbox("checkbox2", &checkbox_2_selected),
    +
    62 Checkbox("checkbox3", &checkbox_3_selected),
    +
    63 Checkbox("checkbox4", &checkbox_4_selected),
    +
    64 });
    +
    65 checkboxes = Wrap("Checkbox", checkboxes);
    +
    66
    +
    67 // -- Radiobox ---------------------------------------------------------------
    +
    68 int radiobox_selected = 0;
    +
    69 std::vector<std::string> radiobox_entries = {
    +
    70 "Radiobox 1",
    +
    71 "Radiobox 2",
    +
    72 "Radiobox 3",
    +
    73 "Radiobox 4",
    +
    74 };
    +
    75 auto radiobox = Radiobox(&radiobox_entries, &radiobox_selected);
    +
    76 radiobox = Wrap("Radiobox", radiobox);
    +
    77
    +
    78 // -- Input ------------------------------------------------------------------
    +
    79 std::string input_label;
    +
    80 auto input = Input(&input_label, "placeholder");
    +
    81 input = Wrap("Input", input);
    +
    82
    +
    83 // -- Button -----------------------------------------------------------------
    +
    84 std::string button_label = "Quit";
    +
    85 std::function<void()> on_button_clicked_;
    +
    86 auto button = Button(&button_label, screen.ExitLoopClosure());
    +
    87 button = Wrap("Button", button);
    +
    88
    +
    89 // -- Slider -----------------------------------------------------------------
    +
    90 int slider_value_1 = 12;
    +
    91 int slider_value_2 = 56;
    +
    92 int slider_value_3 = 128;
    +
    93 auto sliders = Container::Vertical({
    +
    94 Slider("R:", &slider_value_1, 0, 256, 1),
    +
    95 Slider("G:", &slider_value_2, 0, 256, 1),
    +
    96 Slider("B:", &slider_value_3, 0, 256, 1),
    +
    97 });
    +
    98 sliders = Wrap("Slider", sliders);
    +
    99
    +
    100 // A large text:
    +
    101 auto lorel_ipsum = Renderer([] {
    +
    102 return vbox({
    +
    103 text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "),
    +
    104 text("Sed do eiusmod tempor incididunt ut labore et dolore magna "
    +
    105 "aliqua. "),
    +
    106 text("Ut enim ad minim veniam, quis nostrud exercitation ullamco "
    +
    107 "laboris nisi ut aliquip ex ea commodo consequat. "),
    +
    108 text("Duis aute irure dolor in reprehenderit in voluptate velit esse "
    +
    109 "cillum dolore eu fugiat nulla pariatur. "),
    +
    110 text("Excepteur sint occaecat cupidatat non proident, sunt in culpa "
    +
    111 "qui officia deserunt mollit anim id est laborum. "),
    +
    112
    +
    113 });
    +
    114 });
    +
    115 lorel_ipsum = Wrap("Lorel Ipsum", lorel_ipsum);
    +
    116
    +
    117 // -- Layout
    +
    118 // -----------------------------------------------------------------
    +
    119 auto layout = Container::Vertical({
    +
    120 menu,
    +
    121 toggle,
    +
    122 checkboxes,
    +
    123 radiobox,
    +
    124 input,
    +
    125 sliders,
    +
    126 button,
    +
    127 lorel_ipsum,
    +
    128 });
    +
    129
    +
    130 auto component = Renderer(layout, [&] {
    +
    131 return vbox({
    +
    132 menu->Render(),
    +
    133 separator(),
    +
    134 toggle->Render(),
    +
    135 separator(),
    +
    136 checkboxes->Render(),
    +
    137 separator(),
    +
    138 radiobox->Render(),
    +
    139 separator(),
    +
    140 input->Render(),
    +
    141 separator(),
    +
    142 sliders->Render(),
    +
    143 separator(),
    +
    144 button->Render(),
    +
    145 separator(),
    +
    146 lorel_ipsum->Render(),
    +
    147 }) |
    +
    148 xflex | size(WIDTH, GREATER_THAN, 40) | border;
    +
    149 });
    +
    150
    +
    151 screen.Loop(component);
    +
    152
    +
    153 return 0;
    +
    154}
    +
    + + + + +
    Component Wrap(std::string name, Component component)
    Definition gallery.cpp:18
    +
    int main()
    Definition gallery.cpp:29
    +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    static ScreenInteractive FitComponent()
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Toggle(ConstStringListRef entries, int *selected)
    An horizontal list of elements. The user can navigate through them.
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Input(InputOption options={})
    An input box for editing text.
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element border(Element)
    Draw a border around the element.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    + +
    @ GREATER_THAN
    Definition elements.hpp:162
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/gauge__direction_8cpp.html b/gauge__direction_8cpp.html new file mode 100644 index 000000000..56785add7 --- /dev/null +++ b/gauge__direction_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: gauge_direction.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    gauge_direction.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file gauge_direction.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/gauge__direction_8cpp.js b/gauge__direction_8cpp.js new file mode 100644 index 000000000..9b2057523 --- /dev/null +++ b/gauge__direction_8cpp.js @@ -0,0 +1,4 @@ +var gauge__direction_8cpp = +[ + [ "main", "gauge__direction_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/gauge__direction_8cpp_source.html b/gauge__direction_8cpp_source.html new file mode 100644 index 000000000..862b1d35d --- /dev/null +++ b/gauge__direction_8cpp_source.html @@ -0,0 +1,296 @@ + + + + + + + + +FTXUI: gauge_direction.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    gauge_direction.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <ftxui/dom/elements.hpp> // for filler, operator|, separator, text, border, Element, vbox, vtext, hbox, center, gaugeDown, gaugeLeft, gaugeRight, gaugeUp
    +
    6#include <ftxui/screen/screen.hpp> // for Screen
    +
    7#include <iostream> // for cout, endl, ostream
    +
    8#include <string> // for allocator, operator+, operator<<, string, to_string
    +
    9#include <thread> // for sleep_for
    +
    10
    +
    11#include "ftxui/dom/node.hpp" // for Render
    +
    12#include "ftxui/screen/color.hpp" // for ftxui
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16 using namespace std::chrono_literals;
    +
    17
    +
    18 std::string reset_position;
    +
    19 for (float percentage = 0.0f; percentage <= 1.0f; percentage += 0.002f) {
    +
    20 std::string data_downloaded =
    +
    21 std::to_string(int(percentage * 5000)) + "/5000";
    +
    22
    +
    23 auto gauge_up = //
    +
    24 hbox({
    +
    25 vtext("gauge vertical"),
    +
    26 separator(),
    +
    27 gaugeUp(percentage),
    +
    28 }) |
    +
    29 border;
    +
    30
    +
    31 auto gauge_down = //
    +
    32 hbox({
    +
    33 vtext("gauge vertical"),
    +
    34 separator(),
    +
    35 gaugeDown(percentage),
    +
    36 }) |
    +
    37 border;
    +
    38
    +
    39 auto gauge_right = //
    +
    40 vbox({
    +
    41 text("gauge horizontal"),
    +
    42 separator(),
    +
    43 gaugeRight(percentage),
    +
    44 }) |
    +
    45 border;
    +
    46
    +
    47 auto gauge_left = //
    +
    48 vbox({
    +
    49 text("gauge horizontal"),
    +
    50 separator(),
    +
    51 gaugeLeft(percentage),
    +
    52 }) |
    +
    53 border;
    +
    54
    +
    55 auto document = hbox({
    +
    56 gauge_up,
    +
    57 filler(),
    +
    58 vbox({
    +
    59 gauge_right,
    +
    60 filler(),
    +
    61 text(data_downloaded) | border | center,
    +
    62 filler(),
    +
    63 gauge_left,
    +
    64 }),
    +
    65 filler(),
    +
    66 gauge_down,
    +
    67 });
    +
    68
    +
    69 auto screen = Screen(32, 16);
    +
    70 Render(screen, document);
    +
    71 std::cout << reset_position;
    +
    72 screen.Print();
    +
    73 reset_position = screen.ResetPosition();
    +
    74
    +
    75 std::this_thread::sleep_for(0.01s);
    +
    76 }
    +
    77 std::cout << std::endl;
    +
    78}
    +
    + + +
    int main()
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/getting-started.html b/getting-started.html new file mode 100644 index 000000000..1eefc5cba --- /dev/null +++ b/getting-started.html @@ -0,0 +1,268 @@ + + + + + + + + +FTXUI: Getting Started + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Getting Started
    +
    +
    +

    Table of Contents

    + +
    +

    title-img

    +

    +Install FTXUI

    +

    To set up FTXUI in your project, follow the installation guide, which provides instructions for multiple build systems and package managers.

    +

    +Minimal Example

    +

    Save the following code as main.cpp:

    +
    + +
    #include <iostream>
    +
    +
    int main() {
    +
    using namespace ftxui;
    +
    +
    Element document = hbox({
    +
    text("left") | border,
    +
    text("middle") | border | flex,
    +
    text("right") | border,
    +
    });
    +
    +
    auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    Render(screen, document);
    +
    screen.Print();
    +
    }
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + +

    Build and run it using your preferred build system.
    + If unsure, start with one of the methods described in the installation page.

    +

    Expected output:

    +
    ┌────┐┌────────────────────────────────────┐┌─────┐
    +
    │left││middle ││right│
    +
    └────┘└────────────────────────────────────┘└─────┘
    +

    +Starter Template

    +

    For a complete working project, clone the official starter repository:

    +
    git clone https://github.com/ArthurSonzogni/ftxui-starter
    +

    Follow the build instructions in the README.md of that repository.

    +
    + + + + +
    Previous Next
    Introduction Modules
    +
    +
    +
    + + + + + diff --git a/getting-started_8md.html b/getting-started_8md.html new file mode 100644 index 000000000..8b82a28d2 --- /dev/null +++ b/getting-started_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: getting-started.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    getting-started.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/globals.html b/globals.html new file mode 100644 index 000000000..c310d8df6 --- /dev/null +++ b/globals.html @@ -0,0 +1,352 @@ + + + + + + + + +FTXUI: File Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all file members with links to the files they belong to:
    + +

    - a -

    + + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

    + + +

    - h -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - v -

    + + +

    - w -

    + + +

    - x -

    + + +

    - y -

    +
    +
    + + + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 000000000..0a3253726 --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,210 @@ + + + + + + + + +FTXUI: File Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all macros with links to the files they belong to:
    +
    +
    + + + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 000000000..669267a1a --- /dev/null +++ b/globals_func.html @@ -0,0 +1,289 @@ + + + + + + + + +FTXUI: File Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all functions with links to the files they belong to:
    + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - h -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - n -

    + + +

    - s -

    + + +

    - t -

    + + +

    - v -

    + + +

    - w -

    +
    +
    + + + + + diff --git a/globals_vars.html b/globals_vars.html new file mode 100644 index 000000000..97b1d1b57 --- /dev/null +++ b/globals_vars.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: File Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all variables with links to the files they belong to:
    +
    +
    + + + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 000000000..f80595a5a --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,268 @@ + + + + + + + + +FTXUI: Graph Legend + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Graph Legend
    +
    +
    +

    This page explains how to interpret the graphs that are generated by doxygen.

    +

    Consider the following example:

    /*! Invisible class because of truncation */
    +
    class Invisible { };
    +
    +
    /*! Truncated class, inheritance relation is hidden */
    +
    class Truncated : public Invisible { };
    +
    +
    /* Class not documented with doxygen comments */
    +
    class Undocumented { };
    +
    +
    /*! Class that is inherited using public inheritance */
    +
    class PublicBase : public Truncated { };
    +
    +
    /*! A template class */
    +
    template<class T> class Templ { };
    +
    +
    /*! Class that is inherited using protected inheritance */
    +
    class ProtectedBase { };
    +
    +
    /*! Class that is inherited using private inheritance */
    +
    class PrivateBase { };
    +
    +
    /*! Class that is used by the Inherited class */
    +
    class Used { };
    +
    +
    /*! Super class that inherits a number of other classes */
    +
    class Inherited : public PublicBase,
    +
    protected ProtectedBase,
    +
    private PrivateBase,
    +
    public Undocumented,
    +
    public Templ<int>
    +
    {
    +
    private:
    +
    Used *m_usedClass;
    +
    };
    +

    This will result in the following graph:

    +

    The boxes in the above graph have the following meaning:

    +
      +
    • +A filled gray box represents the struct or class for which the graph is generated.
    • +
    • +A box with a black border denotes a documented struct or class.
    • +
    • +A box with a gray border denotes an undocumented struct or class.
    • +
    • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
    • +
    +

    The arrows have the following meaning:

    +
      +
    • +A blue arrow is used to visualize a public inheritance relation between two classes.
    • +
    • +A dark green arrow is used for protected inheritance.
    • +
    • +A dark red arrow is used for private inheritance.
    • +
    • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
    • +
    • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
    • +
    +
    +
    + + + + + diff --git a/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 000000000..34a71d615 --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +238bc3d95adc1929b3259d0c39010ed6 \ No newline at end of file diff --git a/graph_legend.png b/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..15bf62a2f49d3dcd38283293de89b3390e2981b5 GIT binary patch literal 23370 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 literal 0 HcmV?d00001 diff --git a/group__component.html b/group__component.html new file mode 100644 index 000000000..c3c23f80b --- /dev/null +++ b/group__component.html @@ -0,0 +1,12317 @@ + + + + + + + + +FTXUI: ftxui/component + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui/component
    +
    +
    +

    Detailed Description

    +

    Please check the tutorial of the ftxui/component module.

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

    +Classes

    class  ComponentBase
     It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event. More...
     
    struct  UnderlineOption
     Option for the underline effect. More...
     
    struct  AnimatedColorOption
     Option about a potentially animated color. More...
     
    struct  MenuEntryOption
     Option for the MenuEntry component. More...
     
    struct  MenuOption
     Option for the Menu component. More...
     
    struct  ButtonOption
     Option for the AnimatedButton component. More...
     
    struct  CheckboxOption
     Option for the Checkbox component. More...
     
    struct  InputOption
     Option for the Input component. More...
     
    struct  RadioboxOption
     Option for the Radiobox component. More...
     
    struct  WindowRenderState
     State passed to the Window component's render function. More...
     
    struct  DropdownOption
     Option for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox. More...
     
    struct  Event
     Represent an event. It can be key press event, a terminal resize, or more ... More...
     
    class  Loop
     Loop is a class that manages the event loop for a component. More...
     
    struct  Mouse
     A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta). More...
     
    class  ScreenInteractive
     ScreenInteractive is a Screen that can handle events, run a main loop, and manage components. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void RequestAnimationFrame ()
     RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle.
     
    Component Button (ButtonOption option)
     Draw a button. Execute a function when clicked.
     
    Component Button (ConstStringRef label, std::function< void()> on_click, ButtonOption option)
     Draw a button. Execute a function when clicked.
     
    Component CatchEvent (Component child, std::function< bool(Event event)> on_event)
     Return a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
     
    ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
     Decorate a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
     
    Component Checkbox (CheckboxOption option)
     Draw checkable element.
     
    Component Checkbox (ConstStringRef label, bool *checked, CheckboxOption option)
     Draw checkable element.
     
    Component Vertical (Components children)
     A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys.
     
    Component Vertical (Components children, int *selector)
     A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys. This is useful for implementing a Menu for instance.
     
    Component Horizontal (Components children)
     A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
     
    Component Horizontal (Components children, int *selector)
     A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
     
    Component Tab (Components children, int *selector)
     A list of components, where only one is drawn and interacted with at a time. The |selector| gives the index of the selected component. This is useful to implement tabs.
     
    Component Stacked (Components children)
     A list of components to be stacked on top of each other. Events are propagated to the first component, then the second if not handled, etc. The components are drawn in the reverse order they are given. When a component take focus, it is put at the front, without changing the relative order of the other elements.
     
    Component Dropdown (ConstStringListRef entries, int *selected)
     A dropdown menu.
     
    Component Dropdown (DropdownOption option)
     A dropdown menu.
     
    Component Hoverable (Component component, bool *hover)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Hoverable (Component component, std::function< void()> on_enter, std::function< void()> on_leave)
     Wrap a component. Uses callbacks.
     
    ComponentDecorator Hoverable (bool *hover)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (std::function< void()> on_enter, std::function< void()> on_leave)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Hoverable (Component component, std::function< void(bool)> on_change)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (std::function< void(bool)> on_change)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Input (InputOption option)
     An input box for editing text.
     
    Component Input (StringRef content, InputOption option)
     An input box for editing text.
     
    Component Input (StringRef content, StringRef placeholder, InputOption option)
     An input box for editing text.
     
    Component Maybe (Component child, std::function< bool()> show)
     Decorate a component |child|. It is shown only when |show| returns true.
     
    ComponentDecorator Maybe (std::function< bool()> show)
     Decorate a component. It is shown only when the |show| function returns true.
     
    Component Maybe (Component child, const bool *show)
     Decorate a component |child|. It is shown only when |show| is true.
     
    ComponentDecorator Maybe (const bool *show)
     Decorate a component. It is shown only when |show| is true.
     
    Component Menu (MenuOption option)
     A list of text. The focused element is selected.
     
    Component Menu (ConstStringListRef entries, int *selected, MenuOption option)
     A list of text. The focused element is selected.
     
    Component Toggle (ConstStringListRef entries, int *selected)
     An horizontal list of elements. The user can navigate through them.
     
    Component MenuEntry (ConstStringRef label, MenuEntryOption option)
     A specific menu entry. They can be put into a Container::Vertical to form a menu.
     
    Component MenuEntry (MenuEntryOption option)
     A specific menu entry. They can be put into a Container::Vertical to form a menu.
     
    Component Modal (Component main, Component modal, const bool *show_modal)
     
    ComponentDecorator Modal (Component modal, const bool *show_modal)
     
    Component Radiobox (RadioboxOption option)
     A list of element, where only one can be selected.
     
    Component Radiobox (ConstStringListRef entries, int *selected, RadioboxOption option)
     A list of element, where only one can be selected.
     
    Component Renderer (std::function< Element()> render)
     Return a component, using |render| to render its interface.
     
    Component Renderer (Component child, std::function< Element()> render)
     Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
     
    Component Renderer (std::function< Element(bool)> render)
     Return a focusable component, using |render| to render its interface.
     
    ComponentDecorator Renderer (ElementDecorator decorator)
     Decorate a component, by decorating what it renders.
     
    Component ResizableSplitLeft (Component main, Component back, int *main_size)
     An horizontal split in between two components, configurable using the mouse.
     
    Component ResizableSplitRight (Component main, Component back, int *main_size)
     An horizontal split in between two components, configurable using the mouse.
     
    Component ResizableSplitTop (Component main, Component back, int *main_size)
     An vertical split in between two components, configurable using the mouse.
     
    Component ResizableSplitBottom (Component main, Component back, int *main_size)
     An vertical split in between two components, configurable using the mouse.
     
    Component Slider (ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)
     An horizontal slider.
     
    Component Window (WindowOptions option)
     A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stacked({...}) component;.
     
    +

    Class Documentation

    + +

    ◆ ftxui::ComponentBase

    + +
    +
    + + + + +
    class ftxui::ComponentBase
    +
    +

    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event.

    + +

    Definition at line 30 of file component_base.hpp.

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

    Public Member Functions

     ComponentBase (Components children)
     
    virtual ~ComponentBase ()
     
     ComponentBase ()=default
     
     ComponentBase (const ComponentBase &)=delete
     
     ComponentBase (ComponentBase &&)=delete
     
    ComponentBaseoperator= (const ComponentBase &)=delete
     
    ComponentBaseoperator= (ComponentBase &&)=delete
     
    ComponentBaseParent () const
     Return the parent ComponentBase, or nul if any.
     
    ComponentChildAt (size_t i)
     Access the child at index i.
     
    size_t ChildCount () const
     Returns the number of children.
     
    int Index () const
     Return index of the component in its parent. -1 if no parent.
     
    void Add (Component children)
     Add a child. @param child The child to be attached.
     
    void Detach ()
     Detach this child from its parent.
     
    void DetachAllChildren ()
     Remove all children.
     
    Element Render ()
     Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::ComponentBase. Please override OnRender() to modify the rendering.
     
    virtual Element OnRender ()
     Draw the component. Build a ftxui::Element to be drawn on the ftxi::Screen representing this ftxui::ComponentBase. This function is means to be overridden.
     
    virtual bool OnEvent (Event)
     Called in response to an event.
     
    virtual void OnAnimation (animation::Params &params)
     Called in response to an animation event.
     
    virtual Component ActiveChild ()
     Return the currently Active child.
     
    virtual bool Focusable () const
     Return true when the component contains focusable elements. The non focusable Components will be skipped when navigating using the keyboard.
     
    bool Active () const
     Returns if the element if the currently active child of its parent.
     
    bool Focused () const
     Returns if the elements if focused by the user. True when the ComponentBase is focused by the user. An element is Focused when it is with all its ancestors the ActiveChild() of their parents, and it Focusable().
     
    virtual void SetActiveChild (ComponentBase *child)
     Make the |child| to be the "active" one.
     
    void SetActiveChild (Component child)
     Make the |child| to be the "active" one.
     
    void TakeFocus ()
     Configure all the ancestors to give focus to this component.
     

    Protected Member Functions

    CapturedMouse CaptureMouse (const Event &event)
     Take the CapturedMouse if available. There is only one component of them. It represents a component taking priority over others.
     

    Protected Attributes

    Components children_
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ ComponentBase() [1/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    ComponentBase (Components children)
    +
    +inlineexplicit
    +
    + +

    Definition at line 32 of file component_base.hpp.

    + +
    +
    + +

    ◆ ~ComponentBase()

    + +
    +
    + + + + + +
    + + + + + + + +
    ~ComponentBase ()
    +
    +virtual
    +
    + +

    Definition at line 31 of file component.cpp.

    + +
    +
    + +

    ◆ ComponentBase() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    ComponentBase ()
    +
    +default
    +
    + +
    +
    + +

    ◆ ComponentBase() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    ComponentBase (const ComponentBase & )
    +
    +delete
    +
    + +
    +
    + +

    ◆ ComponentBase() [4/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    ComponentBase (ComponentBase && )
    +
    +delete
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    ComponentBase & operator= (const ComponentBase & )
    +
    +delete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    ComponentBase & operator= (ComponentBase && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ Parent()

    + +
    +
    + + + + + + + +
    ComponentBase * Parent () const
    +
    + +

    Return the parent ComponentBase, or nul if any.

    +
    See also
    Detach
    +
    +Parent
    + +

    Definition at line 38 of file component.cpp.

    + +
    +
    + +

    ◆ ChildAt()

    + +
    +
    + + + + + + + +
    Component & ChildAt (size_t i)
    +
    + +

    Access the child at index i.

    + +

    Definition at line 43 of file component.cpp.

    + +
    +
    + +

    ◆ ChildCount()

    + +
    +
    + + + + + + + +
    size_t ChildCount () const
    +
    + +

    Returns the number of children.

    + +

    Definition at line 49 of file component.cpp.

    + +
    +
    + +

    ◆ Index()

    + +
    +
    + + + + + + + +
    int Index () const
    +
    + +

    Return index of the component in its parent. -1 if no parent.

    + +

    Definition at line 54 of file component.cpp.

    + +
    +
    + +

    ◆ Add()

    + +
    +
    + + + + + + + +
    void Add (Component children)
    +
    + +

    Add a child. @param child The child to be attached.

    + +

    Definition at line 70 of file component.cpp.

    + +
    +
    + +

    ◆ Detach()

    + +
    +
    + + + + + + + +
    void Detach ()
    +
    + +

    Detach this child from its parent.

    +
    See also
    Detach
    +
    +Parent
    + +

    Definition at line 79 of file component.cpp.

    + +
    +
    + +

    ◆ DetachAllChildren()

    + +
    +
    + + + + + + + +
    void DetachAllChildren ()
    +
    + +

    Remove all children.

    + +

    Definition at line 94 of file component.cpp.

    + +
    +
    + +

    ◆ Render()

    + +
    +
    + + + + + + + +
    Element Render ()
    +
    + +

    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::ComponentBase. Please override OnRender() to modify the rendering.

    + +

    Definition at line 103 of file component.cpp.

    + +
    +
    + +

    ◆ OnRender()

    + +
    +
    + + + + + +
    + + + + + + + +
    Element OnRender ()
    +
    +virtual
    +
    + +

    Draw the component. Build a ftxui::Element to be drawn on the ftxi::Screen representing this ftxui::ComponentBase. This function is means to be overridden.

    + +

    Definition at line 138 of file component.cpp.

    + +
    +
    + +

    ◆ OnEvent()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool OnEvent (Event event)
    +
    +virtual
    +
    + +

    Called in response to an event.

    +
    Parameters
    + + +
    eventThe event.
    +
    +
    +
    Returns
    True when the event has been handled. The default implementation called OnEvent on every child until one return true. If none returns true, return false.
    + +

    Definition at line 151 of file component.cpp.

    + +
    +
    + +

    ◆ OnAnimation()

    + +
    +
    + + + + + +
    + + + + + + + +
    void OnAnimation (animation::Params & params)
    +
    +virtual
    +
    + +

    Called in response to an animation event.

    +
    Parameters
    + + +
    paramsthe parameters of the animation The default implementation dispatch the event to every child.
    +
    +
    + +

    Definition at line 163 of file component.cpp.

    + +
    +
    + +

    ◆ ActiveChild()

    + +
    +
    + + + + + +
    + + + + + + + +
    Component ActiveChild ()
    +
    +virtual
    +
    + +

    Return the currently Active child.

    +
    Returns
    the currently Active child.
    + +

    Definition at line 171 of file component.cpp.

    + +
    +
    + +

    ◆ Focusable()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool Focusable () const
    +
    +virtual
    +
    + +

    Return true when the component contains focusable elements. The non focusable Components will be skipped when navigating using the keyboard.

    + +

    Definition at line 183 of file component.cpp.

    + +
    +
    + +

    ◆ Active()

    + +
    +
    + + + + + + + +
    bool Active () const
    +
    + +

    Returns if the element if the currently active child of its parent.

    + +

    Definition at line 193 of file component.cpp.

    + +
    +
    + +

    ◆ Focused()

    + +
    +
    + + + + + + + +
    bool Focused () const
    +
    + +

    Returns if the elements if focused by the user. True when the ComponentBase is focused by the user. An element is Focused when it is with all its ancestors the ActiveChild() of their parents, and it Focusable().

    + +

    Definition at line 201 of file component.cpp.

    + +
    +
    + +

    ◆ SetActiveChild() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    void SetActiveChild (ComponentBase * child)
    +
    +virtual
    +
    + +

    Make the |child| to be the "active" one.

    +
    Parameters
    + + +
    childthe child to become active.
    +
    +
    + +

    Definition at line 211 of file component.cpp.

    + +
    +
    + +

    ◆ SetActiveChild() [2/2]

    + +
    +
    + + + + + + + +
    void SetActiveChild (Component child)
    +
    + +

    Make the |child| to be the "active" one.

    +
    Parameters
    + + +
    childthe child to become active.
    +
    +
    + +

    Definition at line 215 of file component.cpp.

    + +
    +
    + +

    ◆ TakeFocus()

    + +
    +
    + + + + + + + +
    void TakeFocus ()
    +
    + +

    Configure all the ancestors to give focus to this component.

    + +

    Definition at line 220 of file component.cpp.

    + +
    +
    + +

    ◆ CaptureMouse()

    + +
    +
    + + + + + +
    + + + + + + + +
    CapturedMouse CaptureMouse (const Event & event)
    +
    +protected
    +
    + +

    Take the CapturedMouse if available. There is only one component of them. It represents a component taking priority over others.

    +
    Parameters
    + + +
    eventThe event
    +
    +
    + +

    Definition at line 231 of file component.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ children_

    + +
    +
    + + + + + +
    + + + + +
    Components children_
    +
    +protected
    +
    + +

    Definition at line 96 of file component_base.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::UnderlineOption

    + +
    +
    + + + + +
    struct ftxui::UnderlineOption
    +
    +

    Option for the underline effect.

    + +

    Definition at line 33 of file component_options.hpp.

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

    Public Member Functions

    void SetAnimation (animation::Duration d, animation::easing::Function f)
     Set how the underline should animate.
     
    void SetAnimationDuration (animation::Duration d)
     Set how the underline should animate.
     
    void SetAnimationFunction (animation::easing::Function f)
     Set how the underline should animate.
     
    void SetAnimationFunction (animation::easing::Function f_leader, animation::easing::Function f_follower)
     Set how the underline should animate. This is useful to desynchronize the animation of the leader and the follower.
     

    Public Attributes

    bool enabled = false
     
    Color color_active = Color::White
     
    Color color_inactive = Color::GrayDark
     
    animation::easing::Function leader_function
     
    animation::easing::Function follower_function
     
    animation::Duration leader_duration = std::chrono::milliseconds(250)
     
    animation::Duration leader_delay = std::chrono::milliseconds(0)
     
    animation::Duration follower_duration = std::chrono::milliseconds(250)
     
    animation::Duration follower_delay = std::chrono::milliseconds(0)
     
    +

    Member Function Documentation

    + +

    ◆ SetAnimation()

    + +
    +
    + + + + + + + + + + + +
    void SetAnimation (animation::Duration d,
    animation::easing::Function f )
    +
    + +

    Set how the underline should animate.

    +
    Parameters
    + + + +
    dThe duration of the animation.
    fThe easing function of the animation.
    +
    +
    + +

    Definition at line 34 of file component_options.cpp.

    + +
    +
    + +

    ◆ SetAnimationDuration()

    + +
    +
    + + + + + + + +
    void SetAnimationDuration (animation::Duration d)
    +
    + +

    Set how the underline should animate.

    +
    Parameters
    + + +
    dThe duration of the animation.
    +
    +
    + +

    Definition at line 42 of file component_options.cpp.

    + +
    +
    + +

    ◆ SetAnimationFunction() [1/2]

    + +
    +
    + + + + + + + +
    void SetAnimationFunction (animation::easing::Function f)
    +
    + +

    Set how the underline should animate.

    +
    Parameters
    + + +
    fThe easing function of the animation.
    +
    +
    + +

    Definition at line 49 of file component_options.cpp.

    + +
    +
    + +

    ◆ SetAnimationFunction() [2/2]

    + +
    +
    + + + + + + + + + + + +
    void SetAnimationFunction (animation::easing::Function f_leader,
    animation::easing::Function f_follower )
    +
    + +

    Set how the underline should animate. This is useful to desynchronize the animation of the leader and the follower.

    +
    Parameters
    + + + +
    f_leaderThe duration of the animation for the leader.
    f_followerThe duration of the animation for the follower.
    +
    +
    + +

    Definition at line 59 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ enabled

    + +
    +
    + + + + +
    bool enabled = false
    +
    + +

    Definition at line 34 of file component_options.hpp.

    + +
    +
    + +

    ◆ color_active

    + +
    +
    + + + + +
    Color color_active = Color::White
    +
    + +

    Definition at line 36 of file component_options.hpp.

    + +
    +
    + +

    ◆ color_inactive

    + +
    +
    + + + + +
    Color color_inactive = Color::GrayDark
    +
    + +

    Definition at line 37 of file component_options.hpp.

    + +
    +
    + +

    ◆ leader_function

    + +
    +
    + + + + +
    animation::easing::Function leader_function
    +
    +Initial value: +

    Definition at line 39 of file component_options.hpp.

    + +
    +
    + +

    ◆ follower_function

    + +
    +
    + + + + +
    animation::easing::Function follower_function
    +
    +Initial value: +

    Definition at line 41 of file component_options.hpp.

    + +
    +
    + +

    ◆ leader_duration

    + +
    +
    + + + + +
    animation::Duration leader_duration = std::chrono::milliseconds(250)
    +
    + +

    Definition at line 44 of file component_options.hpp.

    + +
    +
    + +

    ◆ leader_delay

    + +
    +
    + + + + +
    animation::Duration leader_delay = std::chrono::milliseconds(0)
    +
    + +

    Definition at line 45 of file component_options.hpp.

    + +
    +
    + +

    ◆ follower_duration

    + +
    +
    + + + + +
    animation::Duration follower_duration = std::chrono::milliseconds(250)
    +
    + +

    Definition at line 46 of file component_options.hpp.

    + +
    +
    + +

    ◆ follower_delay

    + +
    +
    + + + + +
    animation::Duration follower_delay = std::chrono::milliseconds(0)
    +
    + +

    Definition at line 47 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::AnimatedColorOption

    + +
    +
    + + + + +
    struct ftxui::AnimatedColorOption
    +
    +

    Option about a potentially animated color.

    + +

    Definition at line 58 of file component_options.hpp.

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

    Public Member Functions

    void Set (Color inactive, Color active, animation::Duration duration=std::chrono::milliseconds(250), animation::easing::Function function=animation::easing::QuadraticInOut)
     A color option that can be animated. @params _inactive The color when the component is inactive. @params _active The color when the component is active. @params _duration The duration of the animation. @params _function The easing function of the animation.
     

    Public Attributes

    bool enabled = false
     
    Color inactive
     
    Color active
     
    animation::Duration duration = std::chrono::milliseconds(250)
     
    animation::easing::Function function = animation::easing::QuadraticInOut
     
    +

    Member Function Documentation

    + +

    ◆ Set()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void Set (Color inactive,
    Color active,
    animation::Duration duration = std::chrono::milliseconds(250),
    animation::easing::Function function = animation::easing::QuadraticInOut )
    +
    + +

    A color option that can be animated. @params _inactive The color when the component is inactive. @params _active The color when the component is active. @params _duration The duration of the animation. @params _function The easing function of the animation.

    + +

    Definition at line 20 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ enabled

    + +
    +
    + + + + +
    bool enabled = false
    +
    + +

    Definition at line 65 of file component_options.hpp.

    + +
    +
    + +

    ◆ inactive

    + +
    +
    + + + + +
    Color inactive
    +
    + +

    Definition at line 66 of file component_options.hpp.

    + +
    +
    + +

    ◆ active

    + +
    +
    + + + + +
    Color active
    +
    + +

    Definition at line 67 of file component_options.hpp.

    + +
    +
    + +

    ◆ duration

    + +
    +
    + + + + +
    animation::Duration duration = std::chrono::milliseconds(250)
    +
    + +

    Definition at line 68 of file component_options.hpp.

    + +
    +
    + +

    ◆ function

    + +
    +
    + + + + +
    animation::easing::Function function = animation::easing::QuadraticInOut
    +
    + +

    Definition at line 69 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::MenuEntryOption

    + +
    +
    + + + + +
    struct ftxui::MenuEntryOption
    +
    +

    Option for the MenuEntry component.

    + +

    Definition at line 79 of file component_options.hpp.

    +
    + + + + + + + +

    Public Attributes

    ConstStringRef label = "MenuEntry"
     
    std::function< Element(const EntryState &state)> transform
     
    AnimatedColorsOption animated_colors
     
    +

    Member Data Documentation

    + +

    ◆ label

    + +
    +
    + + + + +
    ConstStringRef label = "MenuEntry"
    +
    + +

    Definition at line 80 of file component_options.hpp.

    + +
    +
    + +

    ◆ transform

    + +
    +
    + + + + +
    std::function<Element(const EntryState& state)> transform
    +
    + +

    Definition at line 81 of file component_options.hpp.

    + +
    +
    + +

    ◆ animated_colors

    + +
    +
    + + + + +
    AnimatedColorsOption animated_colors
    +
    + +

    Definition at line 82 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::MenuOption

    + +
    +
    + + + + +
    struct ftxui::MenuOption
    +
    +

    Option for the Menu component.

    + +

    Definition at line 87 of file component_options.hpp.

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

    Static Public Member Functions

    static MenuOption Horizontal ()
     Standard options for a horizontal menu. This can be useful to implement a tab bar.
     
    static MenuOption HorizontalAnimated ()
     Standard options for an animated horizontal menu. This can be useful to implement a tab bar.
     
    static MenuOption Vertical ()
     Standard options for a vertical menu. This can be useful to implement a list of selectable items.
     
    static MenuOption VerticalAnimated ()
     Standard options for an animated vertical menu. This can be useful to implement a list of selectable items.
     
    static MenuOption Toggle ()
     Standard options for a horizontal menu with some separator. This can be useful to implement a tab bar.
     

    Public Attributes

    ConstStringListRef entries
     
    Ref< int > selected = 0
     
    UnderlineOption underline
     
    MenuEntryOption entries_option
     
    Direction direction = Direction::Down
     
    std::function< Element()> elements_prefix
     
    std::function< Element()> elements_infix
     
    std::function< Element()> elements_postfix
     
    std::function< void()> on_change
     
    std::function< void()> on_enter
     
    Ref< int > focused_entry = 0
     
    +

    Member Function Documentation

    + +

    ◆ Horizontal()

    + +
    +
    + + + + + +
    + + + + + + + +
    MenuOption Horizontal ()
    +
    +static
    +
    + +

    Standard options for a horizontal menu. This can be useful to implement a tab bar.

    + +

    Definition at line 69 of file component_options.cpp.

    + +
    +
    + +

    ◆ HorizontalAnimated()

    + +
    +
    + + + + + +
    + + + + + + + +
    MenuOption HorizontalAnimated ()
    +
    +static
    +
    + +

    Standard options for an animated horizontal menu. This can be useful to implement a tab bar.

    + +

    Definition at line 93 of file component_options.cpp.

    + +
    +
    + +

    ◆ Vertical()

    + +
    +
    + + + + + +
    + + + + + + + +
    MenuOption Vertical ()
    +
    +static
    +
    + +

    Standard options for a vertical menu. This can be useful to implement a list of selectable items.

    + +

    Definition at line 102 of file component_options.cpp.

    + +
    +
    + +

    ◆ VerticalAnimated()

    + +
    +
    + + + + + +
    + + + + + + + +
    MenuOption VerticalAnimated ()
    +
    +static
    +
    + +

    Standard options for an animated vertical menu. This can be useful to implement a list of selectable items.

    + +

    Definition at line 123 of file component_options.cpp.

    + +
    +
    + +

    ◆ Toggle()

    + +
    +
    + + + + + +
    + + + + + + + +
    MenuOption Toggle ()
    +
    +static
    +
    + +

    Standard options for a horizontal menu with some separator. This can be useful to implement a tab bar.

    + +

    Definition at line 145 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ entries

    + +
    +
    + + + + +
    ConstStringListRef entries
    +
    + +

    Definition at line 95 of file component_options.hpp.

    + +
    +
    + +

    ◆ selected

    + +
    +
    + + + + +
    Ref<int> selected = 0
    +
    +
    +

    ‍The list of entries.

    +
    + +

    Definition at line 96 of file component_options.hpp.

    + +
    +
    + +

    ◆ underline

    + +
    +
    + + + + +
    UnderlineOption underline
    +
    +
    +

    ‍The index of the selected entry.

    +
    + +

    Definition at line 99 of file component_options.hpp.

    + +
    +
    + +

    ◆ entries_option

    + +
    +
    + + + + +
    MenuEntryOption entries_option
    +
    + +

    Definition at line 100 of file component_options.hpp.

    + +
    +
    + +

    ◆ direction

    + +
    +
    + + + + +
    Direction direction = Direction::Down
    +
    + +

    Definition at line 101 of file component_options.hpp.

    + +
    +
    + +

    ◆ elements_prefix

    + +
    +
    + + + + +
    std::function<Element()> elements_prefix
    +
    + +

    Definition at line 102 of file component_options.hpp.

    + +
    +
    + +

    ◆ elements_infix

    + +
    +
    + + + + +
    std::function<Element()> elements_infix
    +
    + +

    Definition at line 103 of file component_options.hpp.

    + +
    +
    + +

    ◆ elements_postfix

    + +
    +
    + + + + +
    std::function<Element()> elements_postfix
    +
    + +

    Definition at line 104 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_change

    + +
    +
    + + + + +
    std::function<void()> on_change
    +
    + +

    Definition at line 107 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_enter

    + +
    +
    + + + + +
    std::function<void()> on_enter
    +
    +
    +

    ‍Called when the selected entry changes.

    +
    + +

    Definition at line 108 of file component_options.hpp.

    + +
    +
    + +

    ◆ focused_entry

    + +
    +
    + + + + +
    Ref<int> focused_entry = 0
    +
    +
    +

    ‍Called when the user presses enter.

    +
    + +

    Definition at line 109 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::ButtonOption

    + +
    +
    + + + + +
    struct ftxui::ButtonOption
    +
    +

    Option for the AnimatedButton component.

    + +

    Definition at line 114 of file component_options.hpp.

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

    Static Public Member Functions

    static ButtonOption Ascii ()
     Create a ButtonOption, highlighted using [] characters.
     
    static ButtonOption Simple ()
     Create a ButtonOption, inverted when focused.
     
    static ButtonOption Border ()
     Create a ButtonOption. The button is shown using a border, inverted when focused. This is the current default.
     
    static ButtonOption Animated ()
     Create a ButtonOption, using animated colors.
     
    static ButtonOption Animated (Color color)
     Create a ButtonOption, using animated colors.
     
    static ButtonOption Animated (Color background, Color foreground)
     Create a ButtonOption, using animated colors.
     
    static ButtonOption Animated (Color background, Color foreground, Color background_active, Color foreground_active)
     Create a ButtonOption, using animated colors.
     

    Public Attributes

    ConstStringRef label = "Button"
     
    std::function< void()> on_click = [] {}
     
    std::function< Element(const EntryState &)> transform
     
    AnimatedColorsOption animated_colors
     
    +

    Member Function Documentation

    + +

    ◆ Ascii()

    + +
    +
    + + + + + +
    + + + + + + + +
    ButtonOption Ascii ()
    +
    +static
    +
    + +

    Create a ButtonOption, highlighted using [] characters.

    + +

    Definition at line 153 of file component_options.cpp.

    + +
    +
    + +

    ◆ Simple()

    + +
    +
    + + + + + +
    + + + + + + + +
    ButtonOption Simple ()
    +
    +static
    +
    + +

    Create a ButtonOption, inverted when focused.

    + +

    Definition at line 165 of file component_options.cpp.

    + +
    +
    + +

    ◆ Border()

    + +
    +
    + + + + + +
    + + + + + + + +
    ButtonOption Border ()
    +
    +static
    +
    + +

    Create a ButtonOption. The button is shown using a border, inverted when focused. This is the current default.

    + +

    Definition at line 179 of file component_options.cpp.

    + +
    +
    + +

    ◆ Animated() [1/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    ButtonOption Animated ()
    +
    +static
    +
    + +

    Create a ButtonOption, using animated colors.

    + +

    Definition at line 196 of file component_options.cpp.

    + +
    +
    + +

    ◆ Animated() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    ButtonOption Animated (Color color)
    +
    +static
    +
    + +

    Create a ButtonOption, using animated colors.

    + +

    Definition at line 203 of file component_options.cpp.

    + +
    +
    + +

    ◆ Animated() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    ButtonOption Animated (Color background,
    Color foreground )
    +
    +static
    +
    + +

    Create a ButtonOption, using animated colors.

    + +

    Definition at line 213 of file component_options.cpp.

    + +
    +
    + +

    ◆ Animated() [4/4]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    ButtonOption Animated (Color background,
    Color foreground,
    Color background_active,
    Color foreground_active )
    +
    +static
    +
    + +

    Create a ButtonOption, using animated colors.

    + +

    Definition at line 225 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ label

    + +
    +
    + + + + +
    ConstStringRef label = "Button"
    +
    + +

    Definition at line 127 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_click

    + +
    +
    + + + + +
    std::function<void()> on_click = [] {}
    +
    + +

    Definition at line 128 of file component_options.hpp.

    + +
    +
    + +

    ◆ transform

    + +
    +
    + + + + +
    std::function<Element(const EntryState&)> transform
    +
    + +

    Definition at line 131 of file component_options.hpp.

    + +
    +
    + +

    ◆ animated_colors

    + +
    +
    + + + + +
    AnimatedColorsOption animated_colors
    +
    + +

    Definition at line 132 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::CheckboxOption

    + +
    +
    + + + + +
    struct ftxui::CheckboxOption
    +
    +

    Option for the Checkbox component.

    + +

    Definition at line 137 of file component_options.hpp.

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

    Static Public Member Functions

    static CheckboxOption Simple ()
     Option for standard Checkbox.
     

    Public Attributes

    ConstStringRef label = "Checkbox"
     
    Ref< bool > checked = false
     
    std::function< Element(const EntryState &)> transform
     
    std::function< void()> on_change = [] {}
     Called when the user change the state.
     
    +

    Member Function Documentation

    + +

    ◆ Simple()

    + +
    +
    + + + + + +
    + + + + + + + +
    CheckboxOption Simple ()
    +
    +static
    +
    + +

    Option for standard Checkbox.

    + +

    Definition at line 244 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ label

    + +
    +
    + + + + +
    ConstStringRef label = "Checkbox"
    +
    + +

    Definition at line 141 of file component_options.hpp.

    + +
    +
    + +

    ◆ checked

    + +
    +
    + + + + +
    Ref<bool> checked = false
    +
    + +

    Definition at line 143 of file component_options.hpp.

    + +
    +
    + +

    ◆ transform

    + +
    +
    + + + + +
    std::function<Element(const EntryState&)> transform
    +
    + +

    Definition at line 146 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_change

    + +
    +
    + + + + +
    std::function<void()> on_change = [] {}
    +
    + +

    Called when the user change the state.

    + +

    Definition at line 150 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::InputOption

    + +
    +
    + + + + +
    struct ftxui::InputOption
    +
    +

    Option for the Input component.

    + +

    Definition at line 164 of file component_options.hpp.

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

    Static Public Member Functions

    static InputOption Default ()
     Create the default input style:
     
    static InputOption Spacious ()
     A white on black style with high margins:
     

    Public Attributes

    StringRef content = ""
     The content of the input.
     
    StringRef placeholder = ""
     The content of the input when it's empty.
     
    std::function< Element(InputState)> transform
     
    Ref< bool > password = false
     Obscure the input content using '*'.
     
    Ref< bool > multiline = true
     Whether the input can be multiline.
     
    Ref< bool > insert = true
     Insert or overtype character mode.
     
    std::function< void()> on_change = [] {}
     Called when the content changes.
     
    std::function< void()> on_enter = [] {}
     Called when the user presses enter.
     
    Ref< int > cursor_position = 0
     
    +

    Member Function Documentation

    + +

    ◆ Default()

    + +
    +
    + + + + + +
    + + + + + + + +
    InputOption Default ()
    +
    +static
    +
    + +

    Create the default input style:

    +

    Standard options for the input component.

    + +

    Definition at line 292 of file component_options.cpp.

    + +
    +
    + +

    ◆ Spacious()

    + +
    +
    + + + + + +
    + + + + + + + +
    InputOption Spacious ()
    +
    +static
    +
    + +

    A white on black style with high margins:

    +

    Standard options for a more beautiful input component.

    + +

    Definition at line 314 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ content

    + +
    +
    + + + + +
    StringRef content = ""
    +
    + +

    The content of the input.

    + +

    Definition at line 173 of file component_options.hpp.

    + +
    +
    + +

    ◆ placeholder

    + +
    +
    + + + + +
    StringRef placeholder = ""
    +
    + +

    The content of the input when it's empty.

    + +

    Definition at line 176 of file component_options.hpp.

    + +
    +
    + +

    ◆ transform

    + +
    +
    + + + + +
    std::function<Element(InputState)> transform
    +
    + +

    Definition at line 179 of file component_options.hpp.

    + +
    +
    + +

    ◆ password

    + +
    +
    + + + + +
    Ref<bool> password = false
    +
    + +

    Obscure the input content using '*'.

    + +

    Definition at line 180 of file component_options.hpp.

    + +
    +
    + +

    ◆ multiline

    + +
    +
    + + + + +
    Ref<bool> multiline = true
    +
    + +

    Whether the input can be multiline.

    + +

    Definition at line 181 of file component_options.hpp.

    + +
    +
    + +

    ◆ insert

    + +
    +
    + + + + +
    Ref<bool> insert = true
    +
    + +

    Insert or overtype character mode.

    + +

    Definition at line 182 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_change

    + +
    +
    + + + + +
    std::function<void()> on_change = [] {}
    +
    + +

    Called when the content changes.

    + +

    Definition at line 185 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_enter

    + +
    +
    + + + + +
    std::function<void()> on_enter = [] {}
    +
    + +

    Called when the user presses enter.

    + +

    Definition at line 187 of file component_options.hpp.

    + +
    +
    + +

    ◆ cursor_position

    + +
    +
    + + + + +
    Ref<int> cursor_position = 0
    +
    + +

    Definition at line 190 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::RadioboxOption

    + +
    +
    + + + + +
    struct ftxui::RadioboxOption
    +
    +

    Option for the Radiobox component.

    + +

    Definition at line 195 of file component_options.hpp.

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

    Static Public Member Functions

    static RadioboxOption Simple ()
     Option for standard Radiobox.
     

    Public Attributes

    ConstStringListRef entries
     
    Ref< int > selected = 0
     
    std::function< Element(const EntryState &)> transform
     
    std::function< void()> on_change = [] {}
     Called when the selected entry changes.
     
    Ref< int > focused_entry = 0
     
    +

    Member Function Documentation

    + +

    ◆ Simple()

    + +
    +
    + + + + + +
    + + + + + + + +
    RadioboxOption Simple ()
    +
    +static
    +
    + +

    Option for standard Radiobox.

    + +

    Definition at line 268 of file component_options.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ entries

    + +
    +
    + + + + +
    ConstStringListRef entries
    +
    + +

    Definition at line 200 of file component_options.hpp.

    + +
    +
    + +

    ◆ selected

    + +
    +
    + + + + +
    Ref<int> selected = 0
    +
    + +

    Definition at line 201 of file component_options.hpp.

    + +
    +
    + +

    ◆ transform

    + +
    +
    + + + + +
    std::function<Element(const EntryState&)> transform
    +
    + +

    Definition at line 204 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_change

    + +
    +
    + + + + +
    std::function<void()> on_change = [] {}
    +
    + +

    Called when the selected entry changes.

    + +

    Definition at line 208 of file component_options.hpp.

    + +
    +
    + +

    ◆ focused_entry

    + +
    +
    + + + + +
    Ref<int> focused_entry = 0
    +
    + +

    Definition at line 209 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::WindowRenderState

    + +
    +
    + + + + +
    struct ftxui::WindowRenderState
    +
    +

    State passed to the Window component's render function.

    + +

    Definition at line 238 of file component_options.hpp.

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

    Public Attributes

    Element inner
     The element wrapped inside this window.
     
    const std::string & title
     The title of the window.
     
    bool active = false
     Whether the window is the active one.
     
    bool drag = false
     Whether the window is being dragged.
     
    bool resize = false
     Whether the window is being resized.
     
    bool hover_left = false
     Whether the resizeable left side is hovered.
     
    bool hover_right = false
     Whether the resizeable right side is hovered.
     
    bool hover_top = false
     Whether the resizeable top side is hovered.
     
    bool hover_down = false
     Whether the resizeable down side is hovered.
     
    +

    Member Data Documentation

    + +

    ◆ inner

    + +
    +
    + + + + +
    Element inner
    +
    + +

    The element wrapped inside this window.

    + +

    Definition at line 239 of file component_options.hpp.

    + +
    +
    + +

    ◆ title

    + +
    +
    + + + + +
    const std::string& title
    +
    + +

    The title of the window.

    + +

    Definition at line 240 of file component_options.hpp.

    + +
    +
    + +

    ◆ active

    + +
    +
    + + + + +
    bool active = false
    +
    + +

    Whether the window is the active one.

    + +

    Definition at line 241 of file component_options.hpp.

    + +
    +
    + +

    ◆ drag

    + +
    +
    + + + + +
    bool drag = false
    +
    + +

    Whether the window is being dragged.

    + +

    Definition at line 242 of file component_options.hpp.

    + +
    +
    + +

    ◆ resize

    + +
    +
    + + + + +
    bool resize = false
    +
    + +

    Whether the window is being resized.

    + +

    Definition at line 243 of file component_options.hpp.

    + +
    +
    + +

    ◆ hover_left

    + +
    +
    + + + + +
    bool hover_left = false
    +
    + +

    Whether the resizeable left side is hovered.

    + +

    Definition at line 244 of file component_options.hpp.

    + +
    +
    + +

    ◆ hover_right

    + +
    +
    + + + + +
    bool hover_right = false
    +
    + +

    Whether the resizeable right side is hovered.

    + +

    Definition at line 245 of file component_options.hpp.

    + +
    +
    + +

    ◆ hover_top

    + +
    +
    + + + + +
    bool hover_top = false
    +
    + +

    Whether the resizeable top side is hovered.

    + +

    Definition at line 246 of file component_options.hpp.

    + +
    +
    + +

    ◆ hover_down

    + +
    +
    + + + + +
    bool hover_down = false
    +
    + +

    Whether the resizeable down side is hovered.

    + +

    Definition at line 247 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::DropdownOption

    + +
    +
    + + + + +
    struct ftxui::DropdownOption
    +
    +

    Option for the Dropdown component.

    +

    A dropdown menu is a checkbox opening/closing a radiobox.

    + +

    Definition at line 273 of file component_options.hpp.

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

    Public Attributes

    Ref< bool > open = false
     Whether the dropdown is open or closed:
     
    CheckboxOption checkbox
     
    RadioboxOption radiobox
     
    std::function< Element(bool open, Element checkbox, Element radiobox)> transform
     
    +

    Member Data Documentation

    + +

    ◆ open

    + +
    +
    + + + + +
    Ref<bool> open = false
    +
    + +

    Whether the dropdown is open or closed:

    + +

    Definition at line 275 of file component_options.hpp.

    + +
    +
    + +

    ◆ checkbox

    + +
    +
    + + + + +
    CheckboxOption checkbox
    +
    + +

    Definition at line 277 of file component_options.hpp.

    + +
    +
    + +

    ◆ radiobox

    + +
    +
    + + + + +
    RadioboxOption radiobox
    +
    + +

    Definition at line 279 of file component_options.hpp.

    + +
    +
    + +

    ◆ transform

    + +
    +
    + + + + +
    std::function<Element(bool open, Element checkbox, Element radiobox)> transform
    +
    + +

    Definition at line 282 of file component_options.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Event

    + +
    +
    + + + + +
    struct ftxui::Event
    +
    +

    Represent an event. It can be key press event, a terminal resize, or more ...

    +

    For example:

      +
    • Printable character can be created using Event::Character('a').
    • +
    • Some special are predefined, like Event::ArrowLeft.
    • +
    • One can find arbitrary code for special Events using: ./example/util/print_key_press For instance, CTLR+A maps to Event::Special({1});
    • +
    +

    Useful documentation about xterm specification: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

    + +

    Definition at line 29 of file event.hpp.

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

    Public Member Functions

    bool operator== (const Event &other) const
     
    bool operator!= (const Event &other) const
     
    bool operator< (const Event &other) const
     
    const std::string & input () const
     
    bool is_character () const
     
    std::string character () const
     
    bool is_mouse () const
     
    struct Mousemouse ()
     
    bool is_cursor_position () const
     
    int cursor_x () const
     
    int cursor_y () const
     
    bool is_cursor_shape () const
     
    int cursor_shape () const
     
    std::string DebugString () const
     Return a string representation of the event.
     

    Static Public Member Functions

    static Event Character (std::string)
     An event corresponding to a given typed character.
     
    static Event Character (char)
     An event corresponding to a given typed character.
     
    static Event Character (wchar_t)
     An event corresponding to a given typed character.
     
    static Event Special (std::string)
     An custom event whose meaning is defined by the user of the library.
     
    static Event Mouse (std::string, Mouse mouse)
     An event corresponding to a given typed character.
     
    static Event CursorPosition (std::string, int x, int y)
     
    static Event CursorShape (std::string, int shape)
     An event corresponding to a terminal DCS (Device Control String).
     

    Public Attributes

    ScreenInteractivescreen_ = nullptr
     

    Static Public Attributes

    static const Event ArrowLeft = Event::Special("\x1B[D")
     
    static const Event ArrowRight = Event::Special("\x1B[C")
     
    static const Event ArrowUp = Event::Special("\x1B[A")
     
    static const Event ArrowDown = Event::Special("\x1B[B")
     
    static const Event ArrowLeftCtrl = Event::Special("\x1B[1;5D")
     
    static const Event ArrowRightCtrl = Event::Special("\x1B[1;5C")
     
    static const Event ArrowUpCtrl = Event::Special("\x1B[1;5A")
     
    static const Event ArrowDownCtrl = Event::Special("\x1B[1;5B")
     
    static const Event Backspace = Event::Special({127})
     
    static const Event Delete = Event::Special("\x1B[3~")
     
    static const Event Return = Event::Special({10})
     
    static const Event Escape = Event::Special("\x1B")
     
    static const Event Tab = Event::Special({9})
     
    static const Event TabReverse = Event::Special({27, 91, 90})
     
    static const Event Insert = Event::Special("\x1B[2~")
     
    static const Event Home = Event::Special({27, 91, 72})
     
    static const Event End = Event::Special({27, 91, 70})
     
    static const Event PageUp = Event::Special({27, 91, 53, 126})
     
    static const Event PageDown = Event::Special({27, 91, 54, 126})
     
    static const Event F1 = Event::Special("\x1BOP")
     
    static const Event F2 = Event::Special("\x1BOQ")
     
    static const Event F3 = Event::Special("\x1BOR")
     
    static const Event F4 = Event::Special("\x1BOS")
     
    static const Event F5 = Event::Special("\x1B[15~")
     
    static const Event F6 = Event::Special("\x1B[17~")
     
    static const Event F7 = Event::Special("\x1B[18~")
     
    static const Event F8 = Event::Special("\x1B[19~")
     
    static const Event F9 = Event::Special("\x1B[20~")
     
    static const Event F10 = Event::Special("\x1B[21~")
     
    static const Event F11 = Event::Special("\x1B[23~")
     
    static const Event F12 = Event::Special("\x1B[24~")
     
    static const Event a = Event::Character("a")
     
    static const Event A = Event::Character("A")
     
    static const Event CtrlA = Event::Special("\x01")
     
    static const Event AltA = Event::Special("\x1b""a")
     
    static const Event CtrlAltA = Event::Special("\x1b\x01")
     
    static const Event b = Event::Character("b")
     
    static const Event B = Event::Character("B")
     
    static const Event CtrlB = Event::Special("\x02")
     
    static const Event AltB = Event::Special("\x1b""b")
     
    static const Event CtrlAltB = Event::Special("\x1b\x02")
     
    static const Event c = Event::Character("c")
     
    static const Event C = Event::Character("C")
     
    static const Event CtrlC = Event::Special("\x03")
     
    static const Event AltC = Event::Special("\x1b""c")
     
    static const Event CtrlAltC = Event::Special("\x1b\x03")
     
    static const Event d = Event::Character("d")
     
    static const Event D = Event::Character("D")
     
    static const Event CtrlD = Event::Special("\x04")
     
    static const Event AltD = Event::Special("\x1b""d")
     
    static const Event CtrlAltD = Event::Special("\x1b\x04")
     
    static const Event e = Event::Character("e")
     
    static const Event E = Event::Character("E")
     
    static const Event CtrlE = Event::Special("\x05")
     
    static const Event AltE = Event::Special("\x1b""e")
     
    static const Event CtrlAltE = Event::Special("\x1b\x05")
     
    static const Event f = Event::Character("f")
     
    static const Event F = Event::Character("F")
     
    static const Event CtrlF = Event::Special("\x06")
     
    static const Event AltF = Event::Special("\x1b""f")
     
    static const Event CtrlAltF = Event::Special("\x1b\x06")
     
    static const Event g = Event::Character("g")
     
    static const Event G = Event::Character("G")
     
    static const Event CtrlG = Event::Special("\x07")
     
    static const Event AltG = Event::Special("\x1b""g")
     
    static const Event CtrlAltG = Event::Special("\x1b\x07")
     
    static const Event h = Event::Character("h")
     
    static const Event H = Event::Character("H")
     
    static const Event CtrlH = Event::Special("\x08")
     
    static const Event AltH = Event::Special("\x1b""h")
     
    static const Event CtrlAltH = Event::Special("\x1b\x08")
     
    static const Event i = Event::Character("i")
     
    static const Event I = Event::Character("I")
     
    static const Event CtrlI = Event::Special("\x09")
     
    static const Event AltI = Event::Special("\x1b""i")
     
    static const Event CtrlAltI = Event::Special("\x1b\x09")
     
    static const Event j = Event::Character("j")
     
    static const Event J = Event::Character("J")
     
    static const Event CtrlJ = Event::Special("\x0a")
     
    static const Event AltJ = Event::Special("\x1b""j")
     
    static const Event CtrlAltJ = Event::Special("\x1b\x0a")
     
    static const Event k = Event::Character("k")
     
    static const Event K = Event::Character("K")
     
    static const Event CtrlK = Event::Special("\x0b")
     
    static const Event AltK = Event::Special("\x1b""k")
     
    static const Event CtrlAltK = Event::Special("\x1b\x0b")
     
    static const Event l = Event::Character("l")
     
    static const Event L = Event::Character("L")
     
    static const Event CtrlL = Event::Special("\x0c")
     
    static const Event AltL = Event::Special("\x1b""l")
     
    static const Event CtrlAltL = Event::Special("\x1b\x0c")
     
    static const Event m = Event::Character("m")
     
    static const Event M = Event::Character("M")
     
    static const Event CtrlM = Event::Special("\x0d")
     
    static const Event AltM = Event::Special("\x1b""m")
     
    static const Event CtrlAltM = Event::Special("\x1b\x0d")
     
    static const Event n = Event::Character("n")
     
    static const Event N = Event::Character("N")
     
    static const Event CtrlN = Event::Special("\x0e")
     
    static const Event AltN = Event::Special("\x1b""n")
     
    static const Event CtrlAltN = Event::Special("\x1b\x0e")
     
    static const Event o = Event::Character("o")
     
    static const Event O = Event::Character("O")
     
    static const Event CtrlO = Event::Special("\x0f")
     
    static const Event AltO = Event::Special("\x1b""o")
     
    static const Event CtrlAltO = Event::Special("\x1b\x0f")
     
    static const Event p = Event::Character("p")
     
    static const Event P = Event::Character("P")
     
    static const Event CtrlP = Event::Special("\x10")
     
    static const Event AltP = Event::Special("\x1b""p")
     
    static const Event CtrlAltP = Event::Special("\x1b\x10")
     
    static const Event q = Event::Character("q")
     
    static const Event Q = Event::Character("Q")
     
    static const Event CtrlQ = Event::Special("\x11")
     
    static const Event AltQ = Event::Special("\x1b""q")
     
    static const Event CtrlAltQ = Event::Special("\x1b\x11")
     
    static const Event r = Event::Character("r")
     
    static const Event R = Event::Character("R")
     
    static const Event CtrlR = Event::Special("\x12")
     
    static const Event AltR = Event::Special("\x1b""r")
     
    static const Event CtrlAltR = Event::Special("\x1b\x12")
     
    static const Event s = Event::Character("s")
     
    static const Event S = Event::Character("S")
     
    static const Event CtrlS = Event::Special("\x13")
     
    static const Event AltS = Event::Special("\x1b""s")
     
    static const Event CtrlAltS = Event::Special("\x1b\x13")
     
    static const Event t = Event::Character("t")
     
    static const Event T = Event::Character("T")
     
    static const Event CtrlT = Event::Special("\x14")
     
    static const Event AltT = Event::Special("\x1b""t")
     
    static const Event CtrlAltT = Event::Special("\x1b\x14")
     
    static const Event u = Event::Character("u")
     
    static const Event U = Event::Character("U")
     
    static const Event CtrlU = Event::Special("\x15")
     
    static const Event AltU = Event::Special("\x1b""u")
     
    static const Event CtrlAltU = Event::Special("\x1b\x15")
     
    static const Event v = Event::Character("v")
     
    static const Event V = Event::Character("V")
     
    static const Event CtrlV = Event::Special("\x16")
     
    static const Event AltV = Event::Special("\x1b""v")
     
    static const Event CtrlAltV = Event::Special("\x1b\x16")
     
    static const Event w = Event::Character("w")
     
    static const Event W = Event::Character("W")
     
    static const Event CtrlW = Event::Special("\x17")
     
    static const Event AltW = Event::Special("\x1b""w")
     
    static const Event CtrlAltW = Event::Special("\x1b\x17")
     
    static const Event x = Event::Character("x")
     
    static const Event X = Event::Character("X")
     
    static const Event CtrlX = Event::Special("\x18")
     
    static const Event AltX = Event::Special("\x1b""x")
     
    static const Event CtrlAltX = Event::Special("\x1b\x18")
     
    static const Event y = Event::Character("y")
     
    static const Event Y = Event::Character("Y")
     
    static const Event CtrlY = Event::Special("\x19")
     
    static const Event AltY = Event::Special("\x1b""y")
     
    static const Event CtrlAltY = Event::Special("\x1b\x19")
     
    static const Event z = Event::Character("z")
     
    static const Event Z = Event::Character("Z")
     
    static const Event CtrlZ = Event::Special("\x1a")
     
    static const Event AltZ = Event::Special("\x1b""z")
     
    static const Event CtrlAltZ = Event::Special("\x1b\x1a")
     
    static const Event Custom = Event::Special({0})
     
    +

    Member Function Documentation

    + +

    ◆ Character() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    Event Character (std::string input)
    +
    +static
    +
    + +

    An event corresponding to a given typed character.

    +
    Parameters
    + + +
    inputThe character typed by the user.
    +
    +
    + +

    Definition at line 28 of file event.cpp.

    + +
    +
    + +

    ◆ Character() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    Event Character (char c)
    +
    +static
    +
    + +

    An event corresponding to a given typed character.

    +
    Parameters
    + + +
    cThe character typed by the user.
    +
    +
    + +

    Definition at line 38 of file event.cpp.

    + +
    +
    + +

    ◆ Character() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    Event Character (wchar_t c)
    +
    +static
    +
    + +

    An event corresponding to a given typed character.

    +
    Parameters
    + + +
    cThe character typed by the user.
    +
    +
    + +

    Definition at line 45 of file event.cpp.

    + +
    +
    + +

    ◆ Special()

    + +
    +
    + + + + + +
    + + + + + + + +
    Event Special (std::string input)
    +
    +static
    +
    + +

    An custom event whose meaning is defined by the user of the library.

    +
    Parameters
    + + +
    inputAn arbitrary sequence of character defined by the developer.
    +
    +
    + +

    Definition at line 74 of file event.cpp.

    + +
    +
    + +

    ◆ Mouse()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Event Mouse (std::string input,
    Mouse mouse )
    +
    +static
    +
    + +

    An event corresponding to a given typed character.

    +
    Parameters
    + + + +
    inputThe sequence of character send by the terminal.
    mouseThe mouse state.
    +
    +
    + +

    Definition at line 53 of file event.cpp.

    + +
    +
    + +

    ◆ CursorPosition()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + +
    Event CursorPosition (std::string input,
    int x,
    int y )
    +
    +static
    +
    + +

    Definition at line 82 of file event.cpp.

    + +
    +
    + +

    ◆ CursorShape()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Event CursorShape (std::string input,
    int shape )
    +
    +static
    +
    + +

    An event corresponding to a terminal DCS (Device Control String).

    + +

    Definition at line 63 of file event.cpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool operator== (const Event & other) const
    +
    +inline
    +
    + +

    Definition at line 100 of file event.hpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool operator!= (const Event & other) const
    +
    +inline
    +
    + +

    Definition at line 101 of file event.hpp.

    + +
    +
    + +

    ◆ operator<()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool operator< (const Event & other) const
    +
    +inline
    +
    + +

    Definition at line 102 of file event.hpp.

    + +
    +
    + +

    ◆ input()

    + +
    +
    + + + + + +
    + + + + + + + +
    const std::string & input () const
    +
    +inline
    +
    + +

    Definition at line 104 of file event.hpp.

    + +
    +
    + +

    ◆ is_character()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool is_character () const
    +
    +inline
    +
    + +

    Definition at line 106 of file event.hpp.

    + +
    +
    + +

    ◆ character()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::string character () const
    +
    +inline
    +
    + +

    Definition at line 107 of file event.hpp.

    + +
    +
    + +

    ◆ is_mouse()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool is_mouse () const
    +
    +inline
    +
    + +

    Definition at line 109 of file event.hpp.

    + +
    +
    + +

    ◆ mouse()

    + +
    +
    + + + + + +
    + + + + + + + +
    struct Mouse & mouse ()
    +
    +inline
    +
    + +

    Definition at line 110 of file event.hpp.

    + +
    +
    + +

    ◆ is_cursor_position()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool is_cursor_position () const
    +
    +inline
    +
    + +

    Definition at line 113 of file event.hpp.

    + +
    +
    + +

    ◆ cursor_x()

    + +
    +
    + + + + + +
    + + + + + + + +
    int cursor_x () const
    +
    +inline
    +
    + +

    Definition at line 114 of file event.hpp.

    + +
    +
    + +

    ◆ cursor_y()

    + +
    +
    + + + + + +
    + + + + + + + +
    int cursor_y () const
    +
    +inline
    +
    + +

    Definition at line 115 of file event.hpp.

    + +
    +
    + +

    ◆ is_cursor_shape()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool is_cursor_shape () const
    +
    +inline
    +
    + +

    Definition at line 117 of file event.hpp.

    + +
    +
    + +

    ◆ cursor_shape()

    + +
    +
    + + + + + +
    + + + + + + + +
    int cursor_shape () const
    +
    +inline
    +
    + +

    Definition at line 118 of file event.hpp.

    + +
    +
    + +

    ◆ DebugString()

    + +
    +
    + + + + + + + +
    std::string DebugString () const
    +
    + +

    Return a string representation of the event.

    + +

    Definition at line 91 of file event.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ArrowLeft

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowLeft = Event::Special("\x1B[D")
    +
    +static
    +
    + +

    Definition at line 40 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowRight

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowRight = Event::Special("\x1B[C")
    +
    +static
    +
    + +

    Definition at line 41 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowUp

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowUp = Event::Special("\x1B[A")
    +
    +static
    +
    + +

    Definition at line 42 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowDown

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowDown = Event::Special("\x1B[B")
    +
    +static
    +
    + +

    Definition at line 43 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowLeftCtrl

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowLeftCtrl = Event::Special("\x1B[1;5D")
    +
    +static
    +
    + +

    Definition at line 45 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowRightCtrl

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowRightCtrl = Event::Special("\x1B[1;5C")
    +
    +static
    +
    + +

    Definition at line 46 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowUpCtrl

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowUpCtrl = Event::Special("\x1B[1;5A")
    +
    +static
    +
    + +

    Definition at line 47 of file event.hpp.

    + +
    +
    + +

    ◆ ArrowDownCtrl

    + +
    +
    + + + + + +
    + + + + +
    const Event ArrowDownCtrl = Event::Special("\x1B[1;5B")
    +
    +static
    +
    + +

    Definition at line 48 of file event.hpp.

    + +
    +
    + +

    ◆ Backspace

    + +
    +
    + + + + + +
    + + + + +
    const Event Backspace = Event::Special({127})
    +
    +static
    +
    + +

    Definition at line 51 of file event.hpp.

    + +
    +
    + +

    ◆ Delete

    + +
    +
    + + + + + +
    + + + + +
    const Event Delete = Event::Special("\x1B[3~")
    +
    +static
    +
    + +

    Definition at line 52 of file event.hpp.

    + +
    +
    + +

    ◆ Return

    + +
    +
    + + + + + +
    + + + + +
    const Event Return = Event::Special({10})
    +
    +static
    +
    + +

    Definition at line 53 of file event.hpp.

    + +
    +
    + +

    ◆ Escape

    + +
    +
    + + + + + +
    + + + + +
    const Event Escape = Event::Special("\x1B")
    +
    +static
    +
    + +

    Definition at line 54 of file event.hpp.

    + +
    +
    + +

    ◆ Tab

    + +
    +
    + + + + + +
    + + + + +
    const Event Tab = Event::Special({9})
    +
    +static
    +
    + +

    Definition at line 55 of file event.hpp.

    + +
    +
    + +

    ◆ TabReverse

    + +
    +
    + + + + + +
    + + + + +
    const Event TabReverse = Event::Special({27, 91, 90})
    +
    +static
    +
    + +

    Definition at line 56 of file event.hpp.

    + +
    +
    + +

    ◆ Insert

    + +
    +
    + + + + + +
    + + + + +
    const Event Insert = Event::Special("\x1B[2~")
    +
    +static
    +
    + +

    Definition at line 59 of file event.hpp.

    + +
    +
    + +

    ◆ Home

    + +
    +
    + + + + + +
    + + + + +
    const Event Home = Event::Special({27, 91, 72})
    +
    +static
    +
    + +

    Definition at line 60 of file event.hpp.

    + +
    +
    + +

    ◆ End

    + +
    +
    + + + + + +
    + + + + +
    const Event End = Event::Special({27, 91, 70})
    +
    +static
    +
    + +

    Definition at line 61 of file event.hpp.

    + +
    +
    + +

    ◆ PageUp

    + +
    +
    + + + + + +
    + + + + +
    const Event PageUp = Event::Special({27, 91, 53, 126})
    +
    +static
    +
    + +

    Definition at line 62 of file event.hpp.

    + +
    +
    + +

    ◆ PageDown

    + +
    +
    + + + + + +
    + + + + +
    const Event PageDown = Event::Special({27, 91, 54, 126})
    +
    +static
    +
    + +

    Definition at line 63 of file event.hpp.

    + +
    +
    + +

    ◆ F1

    + +
    +
    + + + + + +
    + + + + +
    const Event F1 = Event::Special("\x1BOP")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F2

    + +
    +
    + + + + + +
    + + + + +
    const Event F2 = Event::Special("\x1BOQ")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F3

    + +
    +
    + + + + + +
    + + + + +
    const Event F3 = Event::Special("\x1BOR")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F4

    + +
    +
    + + + + + +
    + + + + +
    const Event F4 = Event::Special("\x1BOS")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F5

    + +
    +
    + + + + + +
    + + + + +
    const Event F5 = Event::Special("\x1B[15~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F6

    + +
    +
    + + + + + +
    + + + + +
    const Event F6 = Event::Special("\x1B[17~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F7

    + +
    +
    + + + + + +
    + + + + +
    const Event F7 = Event::Special("\x1B[18~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F8

    + +
    +
    + + + + + +
    + + + + +
    const Event F8 = Event::Special("\x1B[19~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F9

    + +
    +
    + + + + + +
    + + + + +
    const Event F9 = Event::Special("\x1B[20~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F10

    + +
    +
    + + + + + +
    + + + + +
    const Event F10 = Event::Special("\x1B[21~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F11

    + +
    +
    + + + + + +
    + + + + +
    const Event F11 = Event::Special("\x1B[23~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ F12

    + +
    +
    + + + + + +
    + + + + +
    const Event F12 = Event::Special("\x1B[24~")
    +
    +static
    +
    + +

    Definition at line 66 of file event.hpp.

    + +
    +
    + +

    ◆ a

    + +
    +
    + + + + + +
    + + + + +
    const Event a = Event::Character("a")
    +
    +static
    +
    + +

    Definition at line 69 of file event.hpp.

    + +
    +
    + +

    ◆ A

    + +
    +
    + + + + + +
    + + + + +
    const Event A = Event::Character("A")
    +
    +static
    +
    + +

    Definition at line 69 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlA

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlA = Event::Special("\x01")
    +
    +static
    +
    + +

    Definition at line 69 of file event.hpp.

    + +
    +
    + +

    ◆ AltA

    + +
    +
    + + + + + +
    + + + + +
    const Event AltA = Event::Special("\x1b""a")
    +
    +static
    +
    + +

    Definition at line 69 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltA

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltA = Event::Special("\x1b\x01")
    +
    +static
    +
    + +

    Definition at line 69 of file event.hpp.

    + +
    +
    + +

    ◆ b

    + +
    +
    + + + + + +
    + + + + +
    const Event b = Event::Character("b")
    +
    +static
    +
    + +

    Definition at line 70 of file event.hpp.

    + +
    +
    + +

    ◆ B

    + +
    +
    + + + + + +
    + + + + +
    const Event B = Event::Character("B")
    +
    +static
    +
    + +

    Definition at line 70 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlB

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlB = Event::Special("\x02")
    +
    +static
    +
    + +

    Definition at line 70 of file event.hpp.

    + +
    +
    + +

    ◆ AltB

    + +
    +
    + + + + + +
    + + + + +
    const Event AltB = Event::Special("\x1b""b")
    +
    +static
    +
    + +

    Definition at line 70 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltB

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltB = Event::Special("\x1b\x02")
    +
    +static
    +
    + +

    Definition at line 70 of file event.hpp.

    + +
    +
    + +

    ◆ c

    + +
    +
    + + + + + +
    + + + + +
    const Event c = Event::Character("c")
    +
    +static
    +
    + +

    Definition at line 71 of file event.hpp.

    + +
    +
    + +

    ◆ C

    + +
    +
    + + + + + +
    + + + + +
    const Event C = Event::Character("C")
    +
    +static
    +
    + +

    Definition at line 71 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlC

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlC = Event::Special("\x03")
    +
    +static
    +
    + +

    Definition at line 71 of file event.hpp.

    + +
    +
    + +

    ◆ AltC

    + +
    +
    + + + + + +
    + + + + +
    const Event AltC = Event::Special("\x1b""c")
    +
    +static
    +
    + +

    Definition at line 71 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltC

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltC = Event::Special("\x1b\x03")
    +
    +static
    +
    + +

    Definition at line 71 of file event.hpp.

    + +
    +
    + +

    ◆ d

    + +
    +
    + + + + + +
    + + + + +
    const Event d = Event::Character("d")
    +
    +static
    +
    + +

    Definition at line 72 of file event.hpp.

    + +
    +
    + +

    ◆ D

    + +
    +
    + + + + + +
    + + + + +
    const Event D = Event::Character("D")
    +
    +static
    +
    + +

    Definition at line 72 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlD

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlD = Event::Special("\x04")
    +
    +static
    +
    + +

    Definition at line 72 of file event.hpp.

    + +
    +
    + +

    ◆ AltD

    + +
    +
    + + + + + +
    + + + + +
    const Event AltD = Event::Special("\x1b""d")
    +
    +static
    +
    + +

    Definition at line 72 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltD

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltD = Event::Special("\x1b\x04")
    +
    +static
    +
    + +

    Definition at line 72 of file event.hpp.

    + +
    +
    + +

    ◆ e

    + +
    +
    + + + + + +
    + + + + +
    const Event e = Event::Character("e")
    +
    +static
    +
    + +

    Definition at line 73 of file event.hpp.

    + +
    +
    + +

    ◆ E

    + +
    +
    + + + + + +
    + + + + +
    const Event E = Event::Character("E")
    +
    +static
    +
    + +

    Definition at line 73 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlE

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlE = Event::Special("\x05")
    +
    +static
    +
    + +

    Definition at line 73 of file event.hpp.

    + +
    +
    + +

    ◆ AltE

    + +
    +
    + + + + + +
    + + + + +
    const Event AltE = Event::Special("\x1b""e")
    +
    +static
    +
    + +

    Definition at line 73 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltE

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltE = Event::Special("\x1b\x05")
    +
    +static
    +
    + +

    Definition at line 73 of file event.hpp.

    + +
    +
    + +

    ◆ f

    + +
    +
    + + + + + +
    + + + + +
    const Event f = Event::Character("f")
    +
    +static
    +
    + +

    Definition at line 74 of file event.hpp.

    + +
    +
    + +

    ◆ F

    + +
    +
    + + + + + +
    + + + + +
    const Event F = Event::Character("F")
    +
    +static
    +
    + +

    Definition at line 74 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlF

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlF = Event::Special("\x06")
    +
    +static
    +
    + +

    Definition at line 74 of file event.hpp.

    + +
    +
    + +

    ◆ AltF

    + +
    +
    + + + + + +
    + + + + +
    const Event AltF = Event::Special("\x1b""f")
    +
    +static
    +
    + +

    Definition at line 74 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltF

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltF = Event::Special("\x1b\x06")
    +
    +static
    +
    + +

    Definition at line 74 of file event.hpp.

    + +
    +
    + +

    ◆ g

    + +
    +
    + + + + + +
    + + + + +
    const Event g = Event::Character("g")
    +
    +static
    +
    + +

    Definition at line 75 of file event.hpp.

    + +
    +
    + +

    ◆ G

    + +
    +
    + + + + + +
    + + + + +
    const Event G = Event::Character("G")
    +
    +static
    +
    + +

    Definition at line 75 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlG

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlG = Event::Special("\x07")
    +
    +static
    +
    + +

    Definition at line 75 of file event.hpp.

    + +
    +
    + +

    ◆ AltG

    + +
    +
    + + + + + +
    + + + + +
    const Event AltG = Event::Special("\x1b""g")
    +
    +static
    +
    + +

    Definition at line 75 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltG

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltG = Event::Special("\x1b\x07")
    +
    +static
    +
    + +

    Definition at line 75 of file event.hpp.

    + +
    +
    + +

    ◆ h

    + +
    +
    + + + + + +
    + + + + +
    const Event h = Event::Character("h")
    +
    +static
    +
    + +

    Definition at line 76 of file event.hpp.

    + +
    +
    + +

    ◆ H

    + +
    +
    + + + + + +
    + + + + +
    const Event H = Event::Character("H")
    +
    +static
    +
    + +

    Definition at line 76 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlH

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlH = Event::Special("\x08")
    +
    +static
    +
    + +

    Definition at line 76 of file event.hpp.

    + +
    +
    + +

    ◆ AltH

    + +
    +
    + + + + + +
    + + + + +
    const Event AltH = Event::Special("\x1b""h")
    +
    +static
    +
    + +

    Definition at line 76 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltH

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltH = Event::Special("\x1b\x08")
    +
    +static
    +
    + +

    Definition at line 76 of file event.hpp.

    + +
    +
    + +

    ◆ i

    + +
    +
    + + + + + +
    + + + + +
    const Event i = Event::Character("i")
    +
    +static
    +
    + +

    Definition at line 77 of file event.hpp.

    + +
    +
    + +

    ◆ I

    + +
    +
    + + + + + +
    + + + + +
    const Event I = Event::Character("I")
    +
    +static
    +
    + +

    Definition at line 77 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlI

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlI = Event::Special("\x09")
    +
    +static
    +
    + +

    Definition at line 77 of file event.hpp.

    + +
    +
    + +

    ◆ AltI

    + +
    +
    + + + + + +
    + + + + +
    const Event AltI = Event::Special("\x1b""i")
    +
    +static
    +
    + +

    Definition at line 77 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltI

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltI = Event::Special("\x1b\x09")
    +
    +static
    +
    + +

    Definition at line 77 of file event.hpp.

    + +
    +
    + +

    ◆ j

    + +
    +
    + + + + + +
    + + + + +
    const Event j = Event::Character("j")
    +
    +static
    +
    + +

    Definition at line 78 of file event.hpp.

    + +
    +
    + +

    ◆ J

    + +
    +
    + + + + + +
    + + + + +
    const Event J = Event::Character("J")
    +
    +static
    +
    + +

    Definition at line 78 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlJ

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlJ = Event::Special("\x0a")
    +
    +static
    +
    + +

    Definition at line 78 of file event.hpp.

    + +
    +
    + +

    ◆ AltJ

    + +
    +
    + + + + + +
    + + + + +
    const Event AltJ = Event::Special("\x1b""j")
    +
    +static
    +
    + +

    Definition at line 78 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltJ

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltJ = Event::Special("\x1b\x0a")
    +
    +static
    +
    + +

    Definition at line 78 of file event.hpp.

    + +
    +
    + +

    ◆ k

    + +
    +
    + + + + + +
    + + + + +
    const Event k = Event::Character("k")
    +
    +static
    +
    + +

    Definition at line 79 of file event.hpp.

    + +
    +
    + +

    ◆ K

    + +
    +
    + + + + + +
    + + + + +
    const Event K = Event::Character("K")
    +
    +static
    +
    + +

    Definition at line 79 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlK

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlK = Event::Special("\x0b")
    +
    +static
    +
    + +

    Definition at line 79 of file event.hpp.

    + +
    +
    + +

    ◆ AltK

    + +
    +
    + + + + + +
    + + + + +
    const Event AltK = Event::Special("\x1b""k")
    +
    +static
    +
    + +

    Definition at line 79 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltK

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltK = Event::Special("\x1b\x0b")
    +
    +static
    +
    + +

    Definition at line 79 of file event.hpp.

    + +
    +
    + +

    ◆ l

    + +
    +
    + + + + + +
    + + + + +
    const Event l = Event::Character("l")
    +
    +static
    +
    + +

    Definition at line 80 of file event.hpp.

    + +
    +
    + +

    ◆ L

    + +
    +
    + + + + + +
    + + + + +
    const Event L = Event::Character("L")
    +
    +static
    +
    + +

    Definition at line 80 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlL

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlL = Event::Special("\x0c")
    +
    +static
    +
    + +

    Definition at line 80 of file event.hpp.

    + +
    +
    + +

    ◆ AltL

    + +
    +
    + + + + + +
    + + + + +
    const Event AltL = Event::Special("\x1b""l")
    +
    +static
    +
    + +

    Definition at line 80 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltL

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltL = Event::Special("\x1b\x0c")
    +
    +static
    +
    + +

    Definition at line 80 of file event.hpp.

    + +
    +
    + +

    ◆ m

    + +
    +
    + + + + + +
    + + + + +
    const Event m = Event::Character("m")
    +
    +static
    +
    + +

    Definition at line 81 of file event.hpp.

    + +
    +
    + +

    ◆ M

    + +
    +
    + + + + + +
    + + + + +
    const Event M = Event::Character("M")
    +
    +static
    +
    + +

    Definition at line 81 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlM

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlM = Event::Special("\x0d")
    +
    +static
    +
    + +

    Definition at line 81 of file event.hpp.

    + +
    +
    + +

    ◆ AltM

    + +
    +
    + + + + + +
    + + + + +
    const Event AltM = Event::Special("\x1b""m")
    +
    +static
    +
    + +

    Definition at line 81 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltM

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltM = Event::Special("\x1b\x0d")
    +
    +static
    +
    + +

    Definition at line 81 of file event.hpp.

    + +
    +
    + +

    ◆ n

    + +
    +
    + + + + + +
    + + + + +
    const Event n = Event::Character("n")
    +
    +static
    +
    + +

    Definition at line 82 of file event.hpp.

    + +
    +
    + +

    ◆ N

    + +
    +
    + + + + + +
    + + + + +
    const Event N = Event::Character("N")
    +
    +static
    +
    + +

    Definition at line 82 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlN

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlN = Event::Special("\x0e")
    +
    +static
    +
    + +

    Definition at line 82 of file event.hpp.

    + +
    +
    + +

    ◆ AltN

    + +
    +
    + + + + + +
    + + + + +
    const Event AltN = Event::Special("\x1b""n")
    +
    +static
    +
    + +

    Definition at line 82 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltN

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltN = Event::Special("\x1b\x0e")
    +
    +static
    +
    + +

    Definition at line 82 of file event.hpp.

    + +
    +
    + +

    ◆ o

    + +
    +
    + + + + + +
    + + + + +
    const Event o = Event::Character("o")
    +
    +static
    +
    + +

    Definition at line 83 of file event.hpp.

    + +
    +
    + +

    ◆ O

    + +
    +
    + + + + + +
    + + + + +
    const Event O = Event::Character("O")
    +
    +static
    +
    + +

    Definition at line 83 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlO

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlO = Event::Special("\x0f")
    +
    +static
    +
    + +

    Definition at line 83 of file event.hpp.

    + +
    +
    + +

    ◆ AltO

    + +
    +
    + + + + + +
    + + + + +
    const Event AltO = Event::Special("\x1b""o")
    +
    +static
    +
    + +

    Definition at line 83 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltO

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltO = Event::Special("\x1b\x0f")
    +
    +static
    +
    + +

    Definition at line 83 of file event.hpp.

    + +
    +
    + +

    ◆ p

    + +
    +
    + + + + + +
    + + + + +
    const Event p = Event::Character("p")
    +
    +static
    +
    + +

    Definition at line 84 of file event.hpp.

    + +
    +
    + +

    ◆ P

    + +
    +
    + + + + + +
    + + + + +
    const Event P = Event::Character("P")
    +
    +static
    +
    + +

    Definition at line 84 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlP

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlP = Event::Special("\x10")
    +
    +static
    +
    + +

    Definition at line 84 of file event.hpp.

    + +
    +
    + +

    ◆ AltP

    + +
    +
    + + + + + +
    + + + + +
    const Event AltP = Event::Special("\x1b""p")
    +
    +static
    +
    + +

    Definition at line 84 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltP

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltP = Event::Special("\x1b\x10")
    +
    +static
    +
    + +

    Definition at line 84 of file event.hpp.

    + +
    +
    + +

    ◆ q

    + +
    +
    + + + + + +
    + + + + +
    const Event q = Event::Character("q")
    +
    +static
    +
    + +

    Definition at line 85 of file event.hpp.

    + +
    +
    + +

    ◆ Q

    + +
    +
    + + + + + +
    + + + + +
    const Event Q = Event::Character("Q")
    +
    +static
    +
    + +

    Definition at line 85 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlQ

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlQ = Event::Special("\x11")
    +
    +static
    +
    + +

    Definition at line 85 of file event.hpp.

    + +
    +
    + +

    ◆ AltQ

    + +
    +
    + + + + + +
    + + + + +
    const Event AltQ = Event::Special("\x1b""q")
    +
    +static
    +
    + +

    Definition at line 85 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltQ

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltQ = Event::Special("\x1b\x11")
    +
    +static
    +
    + +

    Definition at line 85 of file event.hpp.

    + +
    +
    + +

    ◆ r

    + +
    +
    + + + + + +
    + + + + +
    const Event r = Event::Character("r")
    +
    +static
    +
    + +

    Definition at line 86 of file event.hpp.

    + +
    +
    + +

    ◆ R

    + +
    +
    + + + + + +
    + + + + +
    const Event R = Event::Character("R")
    +
    +static
    +
    + +

    Definition at line 86 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlR

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlR = Event::Special("\x12")
    +
    +static
    +
    + +

    Definition at line 86 of file event.hpp.

    + +
    +
    + +

    ◆ AltR

    + +
    +
    + + + + + +
    + + + + +
    const Event AltR = Event::Special("\x1b""r")
    +
    +static
    +
    + +

    Definition at line 86 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltR

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltR = Event::Special("\x1b\x12")
    +
    +static
    +
    + +

    Definition at line 86 of file event.hpp.

    + +
    +
    + +

    ◆ s

    + +
    +
    + + + + + +
    + + + + +
    const Event s = Event::Character("s")
    +
    +static
    +
    + +

    Definition at line 87 of file event.hpp.

    + +
    +
    + +

    ◆ S

    + +
    +
    + + + + + +
    + + + + +
    const Event S = Event::Character("S")
    +
    +static
    +
    + +

    Definition at line 87 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlS

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlS = Event::Special("\x13")
    +
    +static
    +
    + +

    Definition at line 87 of file event.hpp.

    + +
    +
    + +

    ◆ AltS

    + +
    +
    + + + + + +
    + + + + +
    const Event AltS = Event::Special("\x1b""s")
    +
    +static
    +
    + +

    Definition at line 87 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltS

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltS = Event::Special("\x1b\x13")
    +
    +static
    +
    + +

    Definition at line 87 of file event.hpp.

    + +
    +
    + +

    ◆ t

    + +
    +
    + + + + + +
    + + + + +
    const Event t = Event::Character("t")
    +
    +static
    +
    + +

    Definition at line 88 of file event.hpp.

    + +
    +
    + +

    ◆ T

    + +
    +
    + + + + + +
    + + + + +
    const Event T = Event::Character("T")
    +
    +static
    +
    + +

    Definition at line 88 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlT

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlT = Event::Special("\x14")
    +
    +static
    +
    + +

    Definition at line 88 of file event.hpp.

    + +
    +
    + +

    ◆ AltT

    + +
    +
    + + + + + +
    + + + + +
    const Event AltT = Event::Special("\x1b""t")
    +
    +static
    +
    + +

    Definition at line 88 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltT

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltT = Event::Special("\x1b\x14")
    +
    +static
    +
    + +

    Definition at line 88 of file event.hpp.

    + +
    +
    + +

    ◆ u

    + +
    +
    + + + + + +
    + + + + +
    const Event u = Event::Character("u")
    +
    +static
    +
    + +

    Definition at line 89 of file event.hpp.

    + +
    +
    + +

    ◆ U

    + +
    +
    + + + + + +
    + + + + +
    const Event U = Event::Character("U")
    +
    +static
    +
    + +

    Definition at line 89 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlU

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlU = Event::Special("\x15")
    +
    +static
    +
    + +

    Definition at line 89 of file event.hpp.

    + +
    +
    + +

    ◆ AltU

    + +
    +
    + + + + + +
    + + + + +
    const Event AltU = Event::Special("\x1b""u")
    +
    +static
    +
    + +

    Definition at line 89 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltU

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltU = Event::Special("\x1b\x15")
    +
    +static
    +
    + +

    Definition at line 89 of file event.hpp.

    + +
    +
    + +

    ◆ v

    + +
    +
    + + + + + +
    + + + + +
    const Event v = Event::Character("v")
    +
    +static
    +
    + +

    Definition at line 90 of file event.hpp.

    + +
    +
    + +

    ◆ V

    + +
    +
    + + + + + +
    + + + + +
    const Event V = Event::Character("V")
    +
    +static
    +
    + +

    Definition at line 90 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlV

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlV = Event::Special("\x16")
    +
    +static
    +
    + +

    Definition at line 90 of file event.hpp.

    + +
    +
    + +

    ◆ AltV

    + +
    +
    + + + + + +
    + + + + +
    const Event AltV = Event::Special("\x1b""v")
    +
    +static
    +
    + +

    Definition at line 90 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltV

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltV = Event::Special("\x1b\x16")
    +
    +static
    +
    + +

    Definition at line 90 of file event.hpp.

    + +
    +
    + +

    ◆ w

    + +
    +
    + + + + + +
    + + + + +
    const Event w = Event::Character("w")
    +
    +static
    +
    + +

    Definition at line 91 of file event.hpp.

    + +
    +
    + +

    ◆ W

    + +
    +
    + + + + + +
    + + + + +
    const Event W = Event::Character("W")
    +
    +static
    +
    + +

    Definition at line 91 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlW

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlW = Event::Special("\x17")
    +
    +static
    +
    + +

    Definition at line 91 of file event.hpp.

    + +
    +
    + +

    ◆ AltW

    + +
    +
    + + + + + +
    + + + + +
    const Event AltW = Event::Special("\x1b""w")
    +
    +static
    +
    + +

    Definition at line 91 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltW

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltW = Event::Special("\x1b\x17")
    +
    +static
    +
    + +

    Definition at line 91 of file event.hpp.

    + +
    +
    + +

    ◆ x

    + +
    +
    + + + + + +
    + + + + +
    const Event x = Event::Character("x")
    +
    +static
    +
    + +

    Definition at line 92 of file event.hpp.

    + +
    +
    + +

    ◆ X

    + +
    +
    + + + + + +
    + + + + +
    const Event X = Event::Character("X")
    +
    +static
    +
    + +

    Definition at line 92 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlX

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlX = Event::Special("\x18")
    +
    +static
    +
    + +

    Definition at line 92 of file event.hpp.

    + +
    +
    + +

    ◆ AltX

    + +
    +
    + + + + + +
    + + + + +
    const Event AltX = Event::Special("\x1b""x")
    +
    +static
    +
    + +

    Definition at line 92 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltX

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltX = Event::Special("\x1b\x18")
    +
    +static
    +
    + +

    Definition at line 92 of file event.hpp.

    + +
    +
    + +

    ◆ y

    + +
    +
    + + + + + +
    + + + + +
    const Event y = Event::Character("y")
    +
    +static
    +
    + +

    Definition at line 93 of file event.hpp.

    + +
    +
    + +

    ◆ Y

    + +
    +
    + + + + + +
    + + + + +
    const Event Y = Event::Character("Y")
    +
    +static
    +
    + +

    Definition at line 93 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlY

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlY = Event::Special("\x19")
    +
    +static
    +
    + +

    Definition at line 93 of file event.hpp.

    + +
    +
    + +

    ◆ AltY

    + +
    +
    + + + + + +
    + + + + +
    const Event AltY = Event::Special("\x1b""y")
    +
    +static
    +
    + +

    Definition at line 93 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltY

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltY = Event::Special("\x1b\x19")
    +
    +static
    +
    + +

    Definition at line 93 of file event.hpp.

    + +
    +
    + +

    ◆ z

    + +
    +
    + + + + + +
    + + + + +
    const Event z = Event::Character("z")
    +
    +static
    +
    + +

    Definition at line 94 of file event.hpp.

    + +
    +
    + +

    ◆ Z

    + +
    +
    + + + + + +
    + + + + +
    const Event Z = Event::Character("Z")
    +
    +static
    +
    + +

    Definition at line 94 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlZ

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlZ = Event::Special("\x1a")
    +
    +static
    +
    + +

    Definition at line 94 of file event.hpp.

    + +
    +
    + +

    ◆ AltZ

    + +
    +
    + + + + + +
    + + + + +
    const Event AltZ = Event::Special("\x1b""z")
    +
    +static
    +
    + +

    Definition at line 94 of file event.hpp.

    + +
    +
    + +

    ◆ CtrlAltZ

    + +
    +
    + + + + + +
    + + + + +
    const Event CtrlAltZ = Event::Special("\x1b\x1a")
    +
    +static
    +
    + +

    Definition at line 94 of file event.hpp.

    + +
    +
    + +

    ◆ Custom

    + +
    +
    + + + + + +
    + + + + +
    const Event Custom = Event::Special({0})
    +
    +static
    +
    + +

    Definition at line 97 of file event.hpp.

    + +
    +
    + +

    ◆ screen_

    + +
    +
    + + + + +
    ScreenInteractive* screen_ = nullptr
    +
    + +

    Definition at line 124 of file event.hpp.

    + +
    +
    + +

    ◆ mouse

    + +
    +
    + + + + +
    struct Mouse mouse
    +
    + +

    Definition at line 144 of file event.hpp.

    + +
    +
    + +

    ◆ cursor

    + +
    +
    + + + + +
    struct Cursor cursor
    +
    + +

    Definition at line 145 of file event.hpp.

    + +
    +
    + +

    ◆ cursor_shape

    + +
    +
    + + + + +
    int cursor_shape
    +
    + +

    Definition at line 146 of file event.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Loop

    + +
    +
    + + + + +
    class ftxui::Loop
    +
    +

    Loop is a class that manages the event loop for a component.

    +

    It is responsible for running the component, handling events, and updating the screen.

    +

    The Loop class is designed to be used with a ScreenInteractive object, which represents the terminal screen.

    +

    Example

    + + +
    +
    int main() {
    + +
    auto component = ftxui::Button("Click me", [] { ... });
    +
    +
    ftxui::Loop loop(screen.get(), component);
    +
    +
    // Either
    +
    loop.Run(); // Blocking until the component quits.
    +
    +
    // Or
    +
    loop.RunOnce(); // Non-blocking, returns immediately.
    +
    +
    // Or
    +
    loop.RunOnceBlocking(); // Blocking until handling one event.
    +
    +
    // Or in a loop:
    +
    while (!loop.HasQuitted()) {
    +
    loop.RunOnce();
    +
    +
    // Do something else like running a different library loop function.
    +
    }
    +
    }
    + + +
    static ScreenInteractive TerminalOutput()
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    + + +
    +

    Definition at line 56 of file loop.hpp.

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

    Public Member Functions

     Loop (ScreenInteractive *screen, Component component)
     A Loop is a wrapper around a Component and a ScreenInteractive. It is used to run a Component in a terminal.
     
     ~Loop ()
     
    bool HasQuitted ()
     Whether the loop has quitted.
     
    void RunOnce ()
     Execute the loop. Make the component to process every pending tasks/events. A new frame might be drawn if the previous was invalidated. Return true until the loop hasn't completed.
     
    void RunOnceBlocking ()
     Wait for at least one event to be handled and execute Loop::RunOnce().
     
    void Run ()
     
     Loop (const Loop &)=default
     
     Loop (Loop &&)=delete
     
    Loopoperator= (Loop &&)=delete
     
     Loop (const ScreenInteractive &)=delete
     
    Loopoperator= (const Loop &)=delete
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ Loop() [1/4]

    + +
    +
    + + + + + + + + + + + +
    Loop (ScreenInteractive * screen,
    Component component )
    +
    + +

    A Loop is a wrapper around a Component and a ScreenInteractive. It is used to run a Component in a terminal.

    +
    See also
    Component, ScreenInteractive.
    +
    +ScreenInteractive::Loop().
    +
    +ScreenInteractive::ExitLoop().
    +
    Parameters
    + + + +
    [in]screenThe screen to use.
    [in]componentThe component to run.
    +
    +
    + +

    Definition at line 20 of file loop.cpp.

    + +
    +
    + +

    ◆ ~Loop()

    + +
    +
    + + + + + + + +
    ~Loop ()
    +
    + +

    Definition at line 25 of file loop.cpp.

    + +
    +
    + +

    ◆ Loop() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Loop (const Loop & )
    +
    +default
    +
    + +
    +
    + +

    ◆ Loop() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Loop (Loop && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ Loop() [4/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Loop (const ScreenInteractive & )
    +
    +delete
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ HasQuitted()

    + +
    +
    + + + + + + + +
    bool HasQuitted ()
    +
    + +

    Whether the loop has quitted.

    + +

    Definition at line 30 of file loop.cpp.

    + +
    +
    + +

    ◆ RunOnce()

    + +
    +
    + + + + + + + +
    void RunOnce ()
    +
    + +

    Execute the loop. Make the component to process every pending tasks/events. A new frame might be drawn if the previous was invalidated. Return true until the loop hasn't completed.

    + +

    Definition at line 37 of file loop.cpp.

    + +
    +
    + +

    ◆ RunOnceBlocking()

    + +
    +
    + + + + + + + +
    void RunOnceBlocking ()
    +
    + +

    Wait for at least one event to be handled and execute Loop::RunOnce().

    + +

    Definition at line 43 of file loop.cpp.

    + +
    +
    + +

    ◆ Run()

    + +
    +
    + + + + + + + +
    void Run ()
    +
    +

    Execute the loop, blocking the current thread, up until the loop has quitted.

    + +

    Definition at line 49 of file loop.cpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Loop & operator= (Loop && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Loop & operator= (const Loop & )
    +
    +delete
    +
    + +
    +
    + +
    +
    + +

    ◆ ftxui::Mouse

    + +
    +
    + + + + +
    struct ftxui::Mouse
    +
    +

    A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta).

    + +

    Definition at line 11 of file mouse.hpp.

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

    Public Types

    enum  Button {
    +  Left = 0 +,
    +  Middle = 1 +,
    +  Right = 2 +,
    +  None = 3 +,
    +  WheelUp = 4 +,
    +  WheelDown = 5 +,
    +  WheelLeft = 6 +,
    +  WheelRight = 7 +
    + }
     
    enum  Motion {
    +  Released = 0 +,
    +  Pressed = 1 +,
    +  Moved = 2 +
    + }
     

    Public Attributes

    Button button = Button::None
     
    Motion motion = Motion::Pressed
     
    bool shift = false
     
    bool meta = false
     
    bool control = false
     
    int x = 0
     
    int y = 0
     
    +

    Member Enumeration Documentation

    + +

    ◆ Button

    + +
    +
    + + + + +
    enum Button
    +
    + + + + + + + + + +
    Enumerator
    Left 
    Middle 
    Right 
    None 
    WheelUp 
    WheelDown 
    WheelLeft 
    WheelRight 

    Supported terminal only.

    +
    + +

    Definition at line 12 of file mouse.hpp.

    + +
    +
    + +

    ◆ Motion

    + +
    +
    + + + + +
    enum Motion
    +
    + + + + +
    Enumerator
    Released 
    Pressed 
    Moved 
    + +

    Definition at line 23 of file mouse.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ button

    + +
    +
    + + + + +
    Button button = Button::None
    +
    + +

    Definition at line 30 of file mouse.hpp.

    + +
    +
    + +

    ◆ motion

    + +
    +
    + + + + +
    Motion motion = Motion::Pressed
    +
    + +

    Definition at line 33 of file mouse.hpp.

    + +
    +
    + +

    ◆ shift

    + +
    +
    + + + + +
    bool shift = false
    +
    + +

    Definition at line 36 of file mouse.hpp.

    + +
    +
    + +

    ◆ meta

    + +
    +
    + + + + +
    bool meta = false
    +
    + +

    Definition at line 37 of file mouse.hpp.

    + +
    +
    + +

    ◆ control

    + +
    +
    + + + + +
    bool control = false
    +
    + +

    Definition at line 38 of file mouse.hpp.

    + +
    +
    + +

    ◆ x

    + +
    +
    + + + + +
    int x = 0
    +
    + +

    Definition at line 41 of file mouse.hpp.

    + +
    +
    + +

    ◆ y

    + +
    +
    + + + + +
    int y = 0
    +
    + +

    Definition at line 42 of file mouse.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::ScreenInteractive

    + +
    +
    + + + + +
    class ftxui::ScreenInteractive
    +
    +

    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.

    + +

    Definition at line 35 of file screen_interactive.hpp.

    +
    + + Inheritance diagram for ScreenInteractive:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Types

    using SelectionStyle = std::function<void(Pixel&)>
     

    Public Member Functions

     ~ScreenInteractive ()
     
    void TrackMouse (bool enable=true)
     Set whether mouse is tracked and events reported. called outside of the main loop. E.g ScreenInteractive::Loop(...).
     
    void Loop (Component)
     Execute the main loop.
     
    void Exit ()
     Exit the main loop.
     
    Closure ExitLoopClosure ()
     Return a function to exit the main loop.
     
    void Post (Task task)
     Add a task to the main loop. It will be executed later, after every other scheduled tasks.
     
    void PostEvent (Event event)
     Add an event to the main loop. It will be executed later, after every other scheduled events.
     
    void RequestAnimationFrame ()
     Add a task to draw the screen one more time, until all the animations are done.
     
    CapturedMouse CaptureMouse ()
     Try to get the unique lock about behing able to capture the mouse.
     
    Closure WithRestoredIO (Closure)
     Decorate a function. It executes the same way, but with the currently active screen terminal hooks temporarilly uninstalled during its execution.
     
    void ForceHandleCtrlC (bool force)
     Force FTXUI to handle or not handle Ctrl-C, even if the component catches the Event::CtrlC.
     
    void ForceHandleCtrlZ (bool force)
     Force FTXUI to handle or not handle Ctrl-Z, even if the component catches the Event::CtrlZ.
     
    std::string GetSelection ()
     Returns the content of the current selection.
     
    void SelectionChange (std::function< void()> callback)
     
    std::string ToString () const
     
    void Print () const
     
    void Clear ()
     Clear all the pixel from the screen.
     
    std::string ResetPosition (bool clear=false) const
     Return a string to be printed in order to reset the cursor position to the beginning of the screen.
     
    void ApplyShader ()
     
    Cursor cursor () const
     
    void SetCursor (Cursor cursor)
     
    uint8_t RegisterHyperlink (const std::string &link)
     
    const std::string & Hyperlink (uint8_t id) const
     
    const SelectionStyleGetSelectionStyle () const
     Return the current selection style.
     
    void SetSelectionStyle (SelectionStyle decorator)
     Set the current selection style.
     
    std::string & at (int x, int y)
     Access a character in a cell at a given position.
     
    const std::string & at (int x, int y) const
     Access a character in a cell at a given position.
     
    PixelPixelAt (int x, int y)
     Access a cell (Pixel) at a given position.
     
    const PixelPixelAt (int x, int y) const
     Access a cell (Pixel) at a given position.
     
    int dimx () const
     
    int dimy () const
     

    Static Public Member Functions

    static ScreenInteractive FixedSize (int dimx, int dimy)
     
    static ScreenInteractive Fullscreen ()
     
    static ScreenInteractive FullscreenPrimaryScreen ()
     
    static ScreenInteractive FullscreenAlternateScreen ()
     
    static ScreenInteractive FitComponent ()
     
    static ScreenInteractive TerminalOutput ()
     
    static ScreenInteractiveActive ()
     Return the currently active screen, or null if none.
     
    static Screen Create (Dimensions dimension)
     Create a screen with the given dimension.
     
    static Screen Create (Dimensions width, Dimensions height)
     Create a screen with the given dimension along the x-axis and y-axis.
     

    Public Attributes

    friend Private
     
    Box stencil
     

    Protected Attributes

    Cursor cursor_
     
    std::vector< std::string > hyperlinks_ = {""}
     
    SelectionStyle selection_style_
     
    int dimx_
     
    int dimy_
     
    std::vector< std::vector< Pixel > > pixels_
     
    +

    Member Typedef Documentation

    + +

    ◆ SelectionStyle

    + +
    +
    + + + + + +
    + + + + +
    using SelectionStyle = std::function<void(Pixel&)>
    +
    +inherited
    +
    + +

    Definition at line 74 of file screen.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ ~ScreenInteractive()

    + +
    +
    + + + + + +
    + + + + + + + +
    ~ScreenInteractive ()
    +
    +default
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ FixedSize()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    ScreenInteractive FixedSize (int dimx,
    int dimy )
    +
    +static
    +
    + +

    Definition at line 284 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Fullscreen()

    + +
    +
    + + + + + +
    + + + + + + + +
    ScreenInteractive Fullscreen ()
    +
    +static
    +
    +

    Create a ScreenInteractive taking the full terminal size. This is using the alternate screen buffer to avoid messing with the terminal content.

    Note
    This is the same as ScreenInteractive::FullscreenAlternateScreen()
    + +

    Definition at line 297 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ FullscreenPrimaryScreen()

    + +
    +
    + + + + + +
    + + + + + + + +
    ScreenInteractive FullscreenPrimaryScreen ()
    +
    +static
    +
    +

    Create a ScreenInteractive taking the full terminal size. The primary screen buffer is being used. It means if the terminal is resized, the previous content might mess up with the terminal content.

    + +

    Definition at line 305 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ FullscreenAlternateScreen()

    + +
    +
    + + + + + +
    + + + + + + + +
    ScreenInteractive FullscreenAlternateScreen ()
    +
    +static
    +
    +

    Create a ScreenInteractive taking the full terminal size. This is using the alternate screen buffer to avoid messing with the terminal content.

    + +

    Definition at line 318 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ FitComponent()

    + +
    +
    + + + + + +
    + + + + + + + +
    ScreenInteractive FitComponent ()
    +
    +static
    +
    +

    Create a ScreenInteractive whose width and height match the component being drawn.

    + +

    Definition at line 346 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ TerminalOutput()

    + +
    +
    + + + + + +
    + + + + + + + +
    ScreenInteractive TerminalOutput ()
    +
    +static
    +
    +

    Create a ScreenInteractive whose width match the terminal output width and the height matches the component being drawn.

    + +

    Definition at line 331 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ TrackMouse()

    + +
    +
    + + + + + + + +
    void TrackMouse (bool enable = true)
    +
    + +

    Set whether mouse is tracked and events reported. called outside of the main loop. E.g ScreenInteractive::Loop(...).

    +
    Parameters
    + + +
    enableWhether to enable mouse event tracking.
    +
    +
    +
    Note
    This muse be called outside of the main loop. E.g. before calling ScreenInteractive::Loop.
    +
    +Mouse tracking is enabled by default.
    +
    +Mouse tracking is only supported on terminals that supports it.
    +

    +Example

    +
    +
    screen.TrackMouse(false);
    +
    screen.Loop(component);
    +
    +

    Definition at line 371 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Active()

    + +
    +
    + + + + + +
    + + + + + + + +
    ScreenInteractive * Active ()
    +
    +static
    +
    + +

    Return the currently active screen, or null if none.

    + +

    Definition at line 515 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Loop()

    + +
    +
    + + + + + + + +
    void Loop (Component component)
    +
    + +

    Execute the main loop.

    +
    Parameters
    + + +
    componentThe component to draw.
    +
    +
    + +

    Definition at line 417 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Exit()

    + +
    +
    + + + + + + + +
    void Exit ()
    +
    + +

    Exit the main loop.

    + +

    Definition at line 978 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ ExitLoopClosure()

    + +
    +
    + + + + + + + +
    Closure ExitLoopClosure ()
    +
    + +

    Return a function to exit the main loop.

    + +

    Definition at line 973 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Post()

    + +
    +
    + + + + + + + +
    void Post (Task task)
    +
    + +

    Add a task to the main loop. It will be executed later, after every other scheduled tasks.

    + +

    Definition at line 377 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ PostEvent()

    + +
    +
    + + + + + + + +
    void PostEvent (Event event)
    +
    + +

    Add an event to the main loop. It will be executed later, after every other scheduled events.

    + +

    Definition at line 385 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ RequestAnimationFrame()

    + +
    +
    + + + + + + + +
    void RequestAnimationFrame ()
    +
    + +

    Add a task to draw the screen one more time, until all the animations are done.

    + +

    Definition at line 391 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ CaptureMouse()

    + +
    +
    + + + + + + + +
    CapturedMouse CaptureMouse ()
    +
    + +

    Try to get the unique lock about behing able to capture the mouse.

    +
    Returns
    A unique lock if the mouse is not already captured, otherwise a null.
    + +

    Definition at line 406 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ WithRestoredIO()

    + +
    +
    + + + + + + + +
    Closure WithRestoredIO (Closure fn)
    +
    + +

    Decorate a function. It executes the same way, but with the currently active screen terminal hooks temporarilly uninstalled during its execution.

    +
    Parameters
    + + +
    fnThe function to decorate.
    +
    +
    + +

    Definition at line 481 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ ForceHandleCtrlC()

    + +
    +
    + + + + + + + +
    void ForceHandleCtrlC (bool force)
    +
    + +

    Force FTXUI to handle or not handle Ctrl-C, even if the component catches the Event::CtrlC.

    + +

    Definition at line 491 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ ForceHandleCtrlZ()

    + +
    +
    + + + + + + + +
    void ForceHandleCtrlZ (bool force)
    +
    + +

    Force FTXUI to handle or not handle Ctrl-Z, even if the component catches the Event::CtrlZ.

    + +

    Definition at line 497 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ GetSelection()

    + +
    +
    + + + + + + + +
    std::string GetSelection ()
    +
    + +

    Returns the content of the current selection.

    + +

    Definition at line 502 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ SelectionChange()

    + +
    +
    + + + + + + + +
    void SelectionChange (std::function< void()> callback)
    +
    + +

    Definition at line 509 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Create() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Screen Create (Dimensions dimension)
    +
    +staticinherited
    +
    + +

    Create a screen with the given dimension.

    + +

    Definition at line 395 of file screen.cpp.

    + +
    +
    + +

    ◆ Create() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Screen Create (Dimensions width,
    Dimensions height )
    +
    +staticinherited
    +
    + +

    Create a screen with the given dimension along the x-axis and y-axis.

    + +

    Definition at line 389 of file screen.cpp.

    + +
    +
    + +

    ◆ ToString()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::string ToString () const
    +
    +inherited
    +
    +

    Produce a std::string that can be used to print the Screen on the terminal.

    Note
    Don't forget to flush stdout. Alternatively, you can use Screen::Print();
    + +

    Definition at line 416 of file screen.cpp.

    + +
    +
    + +

    ◆ Print()

    + +
    +
    + + + + + +
    + + + + + + + +
    void Print () const
    +
    +inherited
    +
    + +

    Definition at line 453 of file screen.cpp.

    + +
    +
    + +

    ◆ Clear()

    + +
    +
    + + + + + +
    + + + + + + + +
    void Clear ()
    +
    +inherited
    +
    + +

    Clear all the pixel from the screen.

    + +

    Definition at line 495 of file screen.cpp.

    + +
    +
    + +

    ◆ ResetPosition()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::string ResetPosition (bool clear = false) const
    +
    +inherited
    +
    + +

    Return a string to be printed in order to reset the cursor position to the beginning of the screen.

    +
    std::string reset_position;
    +
    while(true) {
    +
    auto document = render();
    +
    auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    Render(screen, document);
    +
    std::cout << reset_position << screen.ToString() << std::flush;
    +
    reset_position = screen.ResetPosition();
    +
    +
    using namespace std::chrono_literals;
    +
    std::this_thread::sleep_for(0.01s);
    +
    }
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    static Screen Create(Dimensions dimension)
    Create a screen with the given dimension.
    Definition screen.cpp:395
    +
    Returns
    The string to print in order to reset the cursor position to the beginning.
    + +

    Definition at line 476 of file screen.cpp.

    + +
    +
    + +

    ◆ ApplyShader()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ApplyShader ()
    +
    +inherited
    +
    + +

    Definition at line 507 of file screen.cpp.

    + +
    +
    + +

    ◆ cursor()

    + +
    +
    + + + + + +
    + + + + + + + +
    Cursor cursor () const
    +
    +inlineinherited
    +
    + +

    Definition at line 66 of file screen.hpp.

    + +
    +
    + +

    ◆ SetCursor()

    + +
    +
    + + + + + +
    + + + + + + + +
    void SetCursor (Cursor cursor)
    +
    +inlineinherited
    +
    + +

    Definition at line 67 of file screen.hpp.

    + +
    +
    + +

    ◆ RegisterHyperlink()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::uint8_t RegisterHyperlink (const std::string & link)
    +
    +inherited
    +
    + +

    Definition at line 534 of file screen.cpp.

    + +
    +
    + +

    ◆ Hyperlink()

    + +
    +
    + + + + + +
    + + + + + + + +
    const std::string & Hyperlink (uint8_t id) const
    +
    +inherited
    +
    + +

    Definition at line 547 of file screen.cpp.

    + +
    +
    + +

    ◆ GetSelectionStyle()

    + +
    +
    + + + + + +
    + + + + + + + +
    const Screen::SelectionStyle & GetSelectionStyle () const
    +
    +inherited
    +
    + +

    Return the current selection style.

    +
    See also
    SetSelectionStyle
    + +

    Definition at line 556 of file screen.cpp.

    + +
    +
    + +

    ◆ SetSelectionStyle()

    + +
    +
    + + + + + +
    + + + + + + + +
    void SetSelectionStyle (SelectionStyle decorator)
    +
    +inherited
    +
    + +

    Set the current selection style.

    +
    See also
    GetSelectionStyle
    + +

    Definition at line 562 of file screen.cpp.

    + +
    +
    + +

    ◆ at() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    std::string & at (int x,
    int y )
    +
    +inherited
    +
    + +

    Access a character in a cell at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 29 of file image.cpp.

    + +
    +
    + +

    ◆ at() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    const std::string & at (int x,
    int y ) const
    +
    +inherited
    +
    + +

    Access a character in a cell at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 36 of file image.cpp.

    + +
    +
    + +

    ◆ PixelAt() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Pixel & PixelAt (int x,
    int y )
    +
    +inherited
    +
    + +

    Access a cell (Pixel) at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 43 of file image.cpp.

    + +
    +
    + +

    ◆ PixelAt() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    const Pixel & PixelAt (int x,
    int y ) const
    +
    +inherited
    +
    + +

    Access a cell (Pixel) at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 50 of file image.cpp.

    + +
    +
    + +

    ◆ dimx()

    + +
    +
    + + + + + +
    + + + + + + + +
    int dimx () const
    +
    +inlineinherited
    +
    + +

    Definition at line 35 of file image.hpp.

    + +
    +
    + +

    ◆ dimy()

    + +
    +
    + + + + + +
    + + + + + + + +
    int dimy () const
    +
    +inlineinherited
    +
    + +

    Definition at line 36 of file image.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ Private

    + +
    +
    + + + + +
    friend Private
    +
    + +

    Definition at line 176 of file screen_interactive.hpp.

    + +
    +
    + +

    ◆ cursor_

    + +
    +
    + + + + + +
    + + + + +
    Cursor cursor_
    +
    +protectedinherited
    +
    + +

    Definition at line 79 of file screen.hpp.

    + +
    +
    + +

    ◆ hyperlinks_

    + +
    +
    + + + + + +
    + + + + +
    std::vector<std::string> hyperlinks_ = {""}
    +
    +protectedinherited
    +
    + +

    Definition at line 80 of file screen.hpp.

    + +
    +
    + +

    ◆ selection_style_

    + +
    +
    + + + + + +
    + + + + +
    SelectionStyle selection_style_
    +
    +protectedinherited
    +
    +Initial value:
    = [](Pixel& pixel) {
    +
    pixel.inverted ^= true;
    +
    }
    +
    +

    Definition at line 83 of file screen.hpp.

    + +
    +
    + +

    ◆ stencil

    + +
    +
    + + + + + +
    + + + + +
    Box stencil
    +
    +inherited
    +
    + +

    Definition at line 41 of file image.hpp.

    + +
    +
    + +

    ◆ dimx_

    + +
    +
    + + + + + +
    + + + + +
    int dimx_
    +
    +protectedinherited
    +
    + +

    Definition at line 44 of file image.hpp.

    + +
    +
    + +

    ◆ dimy_

    + +
    +
    + + + + + +
    + + + + +
    int dimy_
    +
    +protectedinherited
    +
    + +

    Definition at line 45 of file image.hpp.

    + +
    +
    + +

    ◆ pixels_

    + +
    +
    + + + + + +
    + + + + +
    std::vector<std::vector<Pixel> > pixels_
    +
    +protectedinherited
    +
    + +

    Definition at line 46 of file image.hpp.

    + +
    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ RequestAnimationFrame()

    + +
    +
    + + + + + + + +
    void RequestAnimationFrame ()
    +
    + +

    RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle.

    +
    Note
    This function is typically called by components that need to update their state or appearance over time, such as animations or transitions. This is useful when the change doesn't depend depend on the events seen by the terminal, but rather on the passage of time.
    +

    Components who haven't completed their animation can call this function to request a new frame to be drawn later.

    +

    When there is no new events and no animations to complete, no new frame is drawn.

    + +

    Definition at line 77 of file screen_interactive.cpp.

    + +
    +
    + +

    ◆ Button() [1/2]

    + +
    +
    + + + + + + + +
    Component Button (ButtonOption option)
    +
    + +

    Draw a button. Execute a function when clicked.

    +
    Parameters
    + + +
    optionAdditional optional parameters.
    +
    +
    +
    See also
    ButtonBase
    +

    +Example

    +
    +
    Component button = Button({
    +
    .label = "Click to quit",
    +
    .on_click = screen.ExitLoopClosure(),
    +
    });
    +
    screen.Loop(button)
    +
    static ScreenInteractive FitComponent()
    +
    std::shared_ptr< ComponentBase > Component
    +

    +Output

    +
    ┌─────────────┐
    +
    │Click to quit│
    +
    └─────────────┘
    +
    +

    Definition at line 175 of file src/ftxui/component/button.cpp.

    + +
    +
    + +

    ◆ Button() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Button (ConstStringRef label,
    std::function< void()> on_click,
    ButtonOption option )
    +
    + +

    Draw a button. Execute a function when clicked.

    +
    Parameters
    + + + + +
    labelThe label of the button.
    on_clickThe action to execute when clicked.
    optionAdditional optional parameters.
    +
    +
    +
    See also
    ButtonBase
    +

    +Example

    +
    +
    std::string label = "Click to quit";
    +
    Component button = Button(&label, screen.ExitLoopClosure());
    +
    screen.Loop(button)
    +

    +Output

    +
    ┌─────────────┐
    +
    │Click to quit│
    +
    └─────────────┘
    +
    +

    Definition at line 203 of file src/ftxui/component/button.cpp.

    + +
    +
    + +

    ◆ CatchEvent() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Component CatchEvent (Component child,
    std::function< bool(Event event)> on_event )
    +
    + +

    Return a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.

    +
    Parameters
    + + + +
    childThe wrapped component.
    on_eventThe function drawing the interface.
    +
    +
    +

    +Example

    +
    +
    auto renderer = Renderer([] {
    +
    return text("My interface");
    +
    });
    +
    auto component = CatchEvent(renderer, [&](Event event) {
    +
    if (event == Event::Character('q')) {
    +
    screen.ExitLoopClosure()();
    +
    return true;
    +
    }
    +
    return false;
    +
    });
    +
    screen.Loop(component);
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Component CatchEvent(Component child, std::function< bool(Event)>)
    +
    +

    Definition at line 54 of file catch_event.cpp.

    + +
    +
    + +

    ◆ CatchEvent() [2/2]

    + +
    +
    + + + + + + + +
    ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
    +
    + +

    Decorate a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.

    +
    Parameters
    + + +
    on_eventThe function drawing the interface.
    +
    +
    +

    +Example

    +
    +
    auto renderer = Renderer([] { return text("Hello world"); });
    +
    renderer |= CatchEvent([&](Event event) {
    +
    if (event == Event::Character('q')) {
    +
    screen.ExitLoopClosure()();
    +
    return true;
    +
    }
    +
    return false;
    +
    });
    +
    screen.Loop(renderer);
    +
    +

    Definition at line 80 of file catch_event.cpp.

    + +
    +
    + +

    ◆ Checkbox() [1/2]

    + +
    +
    + + + + + + + +
    Component Checkbox (CheckboxOption option)
    +
    + +

    Draw checkable element.

    +
    Parameters
    + + +
    optionAdditional optional parameters.
    +
    +
    +
    See also
    CheckboxBase
    +

    +Example

    +
    + +
    option.label = "Make a sandwidth";
    +
    option.checked = false;
    +
    Component checkbox = Checkbox(option);
    +
    screen.Loop(checkbox)
    + + +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    Option for the Checkbox component.
    +

    +Output

    +
    ☐ Make a sandwitch
    +
    +

    Definition at line 108 of file src/ftxui/component/checkbox.cpp.

    + +
    +
    + +

    ◆ Checkbox() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Checkbox (ConstStringRef label,
    bool * checked,
    CheckboxOption option )
    +
    + +

    Draw checkable element.

    +
    Parameters
    + + + + +
    labelThe label of the checkbox.
    checkedWhether the checkbox is checked or not.
    optionAdditional optional parameters.
    +
    +
    +
    See also
    CheckboxBase
    +

    +Example

    +
    +
    std::string label = "Make a sandwidth";
    +
    bool checked = false;
    +
    Component checkbox = Checkbox(&label, &checked);
    +
    screen.Loop(checkbox)
    +

    +Output

    +
    ☐ Make a sandwitch
    +
    +

    Definition at line 135 of file src/ftxui/component/checkbox.cpp.

    + +
    +
    + +

    ◆ Vertical() [1/2]

    + +
    +
    + + + + + + + +
    Component Vertical (Components children)
    +
    + +

    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys.

    +
    Parameters
    + + +
    childrenthe list of components.
    +
    +
    +
    See also
    ContainerBase
    +

    +Example

    +
    auto container = Container::Vertical({
    +
    children_1,
    +
    children_2,
    +
    children_3,
    +
    children_4,
    +
    });
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    +

    Definition at line 317 of file container.cpp.

    + +
    +
    + +

    ◆ Vertical() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Component Vertical (Components children,
    int * selector )
    +
    + +

    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys. This is useful for implementing a Menu for instance.

    +
    Parameters
    + + + +
    childrenthe list of components.
    selectorA reference to the index of the selected children.
    +
    +
    +
    See also
    ContainerBase
    +

    +Example

    +
    auto container = Container::Vertical({
    +
    children_1,
    +
    children_2,
    +
    children_3,
    +
    children_4,
    +
    }, &selected_children);
    +
    +

    Definition at line 339 of file container.cpp.

    + +
    +
    + +

    ◆ Horizontal() [1/2]

    + +
    +
    + + + + + + + +
    Component Horizontal (Components children)
    +
    + +

    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.

    +
    Parameters
    + + +
    childrenthe list of components.
    +
    +
    +
    See also
    ContainerBase
    +

    +Example

    +
    int selected_children = 2;
    +
    auto container = Container::Horizontal({
    +
    children_1,
    +
    children_2,
    +
    children_3,
    +
    children_4,
    +
    });
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    +

    Definition at line 360 of file container.cpp.

    + +
    +
    + +

    ◆ Horizontal() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Component Horizontal (Components children,
    int * selector )
    +
    + +

    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.

    +
    Parameters
    + + + +
    childrenthe list of components.
    selectorA reference to the index of the selected children.
    +
    +
    +
    See also
    ContainerBase
    +

    +Example

    +
    int selected_children = 2;
    +
    auto container = Container::Horizontal({
    +
    children_1,
    +
    children_2,
    +
    children_3,
    +
    children_4,
    +
    }, selected_children);
    +
    +

    Definition at line 382 of file container.cpp.

    + +
    +
    + +

    ◆ Tab()

    + +
    +
    + + + + + + + + + + + +
    Component Tab (Components children,
    int * selector )
    +
    + +

    A list of components, where only one is drawn and interacted with at a time. The |selector| gives the index of the selected component. This is useful to implement tabs.

    +
    Parameters
    + + + +
    childrenThe list of components.
    selectorThe index of the drawn children.
    +
    +
    +
    See also
    ContainerBase
    +

    +Example

    +
    int tab_drawn = 0;
    +
    auto container = Container::Tab({
    +
    children_1,
    +
    children_2,
    +
    children_3,
    +
    children_4,
    +
    }, &tab_drawn);
    +
    Component Tab(Components children, int *selector)
    A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
    +
    +

    Definition at line 405 of file container.cpp.

    + +
    +
    + +

    ◆ Stacked()

    + +
    +
    + + + + + + + +
    Component Stacked (Components children)
    +
    + +

    A list of components to be stacked on top of each other. Events are propagated to the first component, then the second if not handled, etc. The components are drawn in the reverse order they are given. When a component take focus, it is put at the front, without changing the relative order of the other elements.

    +

    This should be used with the Window component.

    +
    Parameters
    + + +
    childrenThe list of components.
    +
    +
    +
    See also
    Window
    +

    +Example

    +
    auto container = Container::Stacked({
    +
    children_1,
    +
    children_2,
    +
    children_3,
    +
    children_4,
    +
    });
    +
    Component Stacked(Components children)
    A list of components to be stacked on top of each other. Events are propagated to the first component...
    +
    +

    Definition at line 432 of file container.cpp.

    + +
    +
    + +

    ◆ Dropdown() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Component Dropdown (ConstStringListRef entries,
    int * selected )
    +
    + +

    A dropdown menu.

    +
    Parameters
    + + + +
    entriesThe list of entries to display.
    selectedThe index of the selected entry.
    +
    +
    + +

    Definition at line 22 of file src/ftxui/component/dropdown.cpp.

    + +
    +
    + +

    ◆ Dropdown() [2/2]

    + +
    +
    + + + + + + + +
    Component Dropdown (DropdownOption option)
    +
    + +

    A dropdown menu.

    +
    Parameters
    + + +
    optionThe options for the dropdown.
    +
    +
    + +

    Definition at line 33 of file src/ftxui/component/dropdown.cpp.

    + +
    +
    + +

    ◆ Hoverable() [1/6]

    + +
    +
    + + + + + + + + + + + +
    Component Hoverable (Component component,
    bool * hover )
    +
    + +

    Wrap a component. Gives the ability to know if it is hovered by the mouse.

    +
    Parameters
    + + + +
    componentThe wrapped component.
    hoverThe value to reflect whether the component is hovered or not.
    +
    +
    +

    +Example

    +
    auto button = Button("exit", screen.ExitLoopClosure());
    +
    bool hover = false;
    +
    auto button_hover = Hoverable(button, &hover);
    +
    Component Hoverable(Component component, bool *hover)
    Wrap a component. Gives the ability to know if it is hovered by the mouse.
    Definition hoverable.cpp:43
    +
    +

    Definition at line 43 of file hoverable.cpp.

    + +
    +
    + +

    ◆ Hoverable() [2/6]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Hoverable (Component component,
    std::function< void()> on_enter,
    std::function< void()> on_leave )
    +
    + +

    Wrap a component. Uses callbacks.

    +
    Parameters
    + + + + +
    componentThe wrapped component.
    on_enterCallback OnEnter
    on_leaveCallback OnLeave
    +
    +
    +

    +Example

    +
    auto button = Button("exit", screen.ExitLoopClosure());
    +
    bool hover = false;
    +
    auto button_hover = Hoverable(button, &hover);
    +
    +

    Definition at line 86 of file hoverable.cpp.

    + +
    +
    + +

    ◆ Hoverable() [3/6]

    + +
    +
    + + + + + + + +
    ComponentDecorator Hoverable (bool * hover)
    +
    + +

    Wrap a component. Gives the ability to know if it is hovered by the mouse.

    +
    Parameters
    + + +
    hoverThe value to reflect whether the component is hovered or not.
    +
    +
    +

    +Example

    +
    bool hover = false;
    +
    auto button = Button("exit", screen.ExitLoopClosure());
    +
    button |= Hoverable(&hover);
    +
    +

    Definition at line 141 of file hoverable.cpp.

    + +
    +
    + +

    ◆ Hoverable() [4/6]

    + +
    +
    + + + + + + + + + + + +
    ComponentDecorator Hoverable (std::function< void()> on_enter,
    std::function< void()> on_leave )
    +
    + +

    Wrap a component. Gives the ability to know if it is hovered by the mouse.

    +
    Parameters
    + + + +
    on_enteris called when the mouse hover the component.
    on_leaveis called when the mouse leave the component.
    +
    +
    +

    +Example

    +
    auto button = Button("exit", screen.ExitLoopClosure());
    +
    int on_enter_cnt = 0;
    +
    int on_leave_cnt = 0;
    +
    button |= Hoverable(
    +
    [&]{ on_enter_cnt++; },
    +
    [&]{ on_leave_cnt++; }
    +
    );
    +
    +

    Definition at line 165 of file hoverable.cpp.

    + +
    +
    + +

    ◆ Hoverable() [5/6]

    + +
    +
    + + + + + + + + + + + +
    Component Hoverable (Component component,
    std::function< void(bool)> on_change )
    +
    + +

    Wrap a component. Gives the ability to know if it is hovered by the mouse.

    +
    Parameters
    + + + +
    componentthe wrapped component.
    on_changeis called when the mouse enter or leave the component.
    +
    +
    +

    +Example

    +
    auto button = Button("exit", screen.ExitLoopClosure());
    +
    bool hovered = false;
    +
    auto button_hoverable = Hoverable(button,
    +
    [&](bool hover) { hovered = hover;});
    +
    +

    Definition at line 188 of file hoverable.cpp.

    + +
    +
    + +

    ◆ Hoverable() [6/6]

    + +
    +
    + + + + + + + +
    ComponentDecorator Hoverable (std::function< void(bool)> on_change)
    +
    + +

    Wrap a component. Gives the ability to know if it is hovered by the mouse.

    +
    Parameters
    + + +
    on_changeis called when the mouse enter or leave the component.
    +
    +
    +

    +Example

    +
    auto button = Button("exit", screen.ExitLoopClosure());
    +
    bool hovered = false;
    +
    button |= Hoverable([&](bool hover) { hovered = hover;});
    +
    +

    Definition at line 209 of file hoverable.cpp.

    + +
    +
    + +

    ◆ Input() [1/3]

    + +
    +
    + + + + + + + +
    Component Input (InputOption option)
    +
    + +

    An input box for editing text.

    +
    Parameters
    + + +
    optionAdditional optional parameters.
    +
    +
    +
    See also
    InputBase
    +

    +Example

    +
    +
    std::string content= "";
    +
    std::string placeholder = "placeholder";
    +
    Component input = Input({
    +
    .content = &content,
    +
    .placeholder = &placeholder,
    +
    })
    +
    screen.Loop(input);
    +
    Component Input(InputOption options={})
    An input box for editing text.
    +

    +Output

    +
    placeholder
    +
    +

    Definition at line 571 of file src/ftxui/component/input.cpp.

    + +
    +
    + +

    ◆ Input() [2/3]

    + +
    +
    + + + + + + + + + + + +
    Component Input (StringRef content,
    InputOption option )
    +
    + +

    An input box for editing text.

    +
    Parameters
    + + + +
    contentThe editable content.
    optionAdditional optional parameters.
    +
    +
    +
    See also
    InputBase
    +

    +Example

    +
    +
    std::string content= "";
    +
    std::string placeholder = "placeholder";
    +
    Component input = Input(content, {
    +
    .placeholder = &placeholder,
    +
    .password = true,
    +
    })
    +
    screen.Loop(input);
    +

    +Output

    +
    placeholder
    +
    +

    Definition at line 599 of file src/ftxui/component/input.cpp.

    + +
    +
    + +

    ◆ Input() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Input (StringRef content,
    StringRef placeholder,
    InputOption option )
    +
    + +

    An input box for editing text.

    +
    Parameters
    + + + + +
    contentThe editable content.
    placeholderThe placeholder text.
    optionAdditional optional parameters.
    +
    +
    +
    See also
    InputBase
    +

    +Example

    +
    +
    std::string content= "";
    +
    std::string placeholder = "placeholder";
    +
    Component input = Input(content, placeholder);
    +
    screen.Loop(input);
    +

    +Output

    +
    placeholder
    +
    +

    Definition at line 626 of file src/ftxui/component/input.cpp.

    + +
    +
    + +

    ◆ Maybe() [1/4]

    + +
    +
    + + + + + + + + + + + +
    Component Maybe (Component child,
    std::function< bool()> show )
    +
    + +

    Decorate a component |child|. It is shown only when |show| returns true.

    +
    Parameters
    + + + +
    childthe component to decorate.
    showa function returning whether |child| should shown.
    +
    +
    + +

    Definition at line 21 of file src/ftxui/component/maybe.cpp.

    + +
    +
    + +

    ◆ Maybe() [2/4]

    + +
    +
    + + + + + + + +
    ComponentDecorator Maybe (std::function< bool()> show)
    +
    + +

    Decorate a component. It is shown only when the |show| function returns true.

    +
    Parameters
    + + +
    showa function returning whether the decorated component should be shown.
    +
    +
    +

    +Example

    +
    auto component = Renderer([]{ return text("Hello World!"); });
    +
    auto maybe_component = component | Maybe([&]{ return counter == 42; });
    +
    Component Maybe(Component, const bool *show)
    Decorate a component |child|. It is shown only when |show| is true.
    +
    +

    Definition at line 57 of file src/ftxui/component/maybe.cpp.

    + +
    +
    + +

    ◆ Maybe() [3/4]

    + +
    +
    + + + + + + + + + + + +
    Component Maybe (Component child,
    const bool * show )
    +
    + +

    Decorate a component |child|. It is shown only when |show| is true.

    +
    Parameters
    + + + +
    childthe component to decorate.
    showa boolean. |child| is shown when |show| is true.
    +
    +
    +

    +Example

    +
    auto component = Renderer([]{ return text("Hello World!"); });
    +
    auto maybe_component = Maybe(component, &show);
    +
    +

    Definition at line 74 of file src/ftxui/component/maybe.cpp.

    + +
    +
    + +

    ◆ Maybe() [4/4]

    + +
    +
    + + + + + + + +
    ComponentDecorator Maybe (const bool * show)
    +
    + +

    Decorate a component. It is shown only when |show| is true.

    +
    Parameters
    + + +
    showa boolean. |child| is shown when |show| is true.
    +
    +
    +

    +Example

    +
    auto component = Renderer([]{ return text("Hello World!"); });
    +
    auto maybe_component = component | Maybe(&show);
    +
    +

    Definition at line 88 of file src/ftxui/component/maybe.cpp.

    + +
    +
    + +

    ◆ Menu() [1/2]

    + +
    +
    + + + + + + + +
    Component Menu (MenuOption option)
    +
    + +

    A list of text. The focused element is selected.

    +
    Parameters
    + + +
    optiona structure containing all the paramters.
    +
    +
    +

    +Example

    +
    +
    std::vector<std::string> entries = {
    +
    "entry 1",
    +
    "entry 2",
    +
    "entry 3",
    +
    };
    +
    int selected = 0;
    +
    auto menu = Menu({
    +
    .entries = &entries,
    +
    .selected = &selected,
    +
    });
    +
    screen.Loop(menu);
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +

    +Output

    +
    > entry 1
    +
    entry 2
    +
    entry 3
    +
    +

    Definition at line 512 of file src/ftxui/component/menu.cpp.

    + +
    +
    + +

    ◆ Menu() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Menu (ConstStringListRef entries,
    int * selected,
    MenuOption option )
    +
    + +

    A list of text. The focused element is selected.

    +
    Parameters
    + + + + +
    entriesThe list of entries in the menu.
    selectedThe index of the currently selected element.
    optionAdditional optional parameters.
    +
    +
    +

    +Example

    +
    +
    std::vector<std::string> entries = {
    +
    "entry 1",
    +
    "entry 2",
    +
    "entry 3",
    +
    };
    +
    int selected = 0;
    +
    auto menu = Menu(&entries, &selected);
    +
    screen.Loop(menu);
    +

    +Output

    +
    > entry 1
    +
    entry 2
    +
    entry 3
    +
    +

    Definition at line 543 of file src/ftxui/component/menu.cpp.

    + +
    +
    + +

    ◆ Toggle()

    + +
    +
    + + + + + + + + + + + +
    Component Toggle (ConstStringListRef entries,
    int * selected )
    +
    + +

    An horizontal list of elements. The user can navigate through them.

    +
    Parameters
    + + + +
    entriesThe list of selectable entries to display.
    selectedReference the selected entry. See also |Menu|.
    +
    +
    + +

    Definition at line 554 of file src/ftxui/component/menu.cpp.

    + +
    +
    + +

    ◆ MenuEntry() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Component MenuEntry (ConstStringRef label,
    MenuEntryOption option )
    +
    + +

    A specific menu entry. They can be put into a Container::Vertical to form a menu.

    +
    Parameters
    + + + +
    labelThe text drawn representing this element.
    optionAdditional optional parameters.
    +
    +
    +

    +Example

    +
    +
    int selected = 0;
    +
    auto menu = Container::Vertical({
    +
    MenuEntry("entry 1"),
    +
    MenuEntry("entry 2"),
    +
    MenuEntry("entry 3"),
    +
    }, &selected);
    +
    screen.Loop(menu);
    +
    Component MenuEntry(MenuEntryOption options)
    A specific menu entry. They can be put into a Container::Vertical to form a menu.
    +

    +Output

    +
    > entry 1
    +
    entry 2
    +
    entry 3
    +
    +

    Definition at line 584 of file src/ftxui/component/menu.cpp.

    + +
    +
    + +

    ◆ MenuEntry() [2/2]

    + +
    +
    + + + + + + + +
    Component MenuEntry (MenuEntryOption option)
    +
    + +

    A specific menu entry. They can be put into a Container::Vertical to form a menu.

    +
    Parameters
    + + +
    optionThe parameters.
    +
    +
    +

    +Example

    +
    +
    int selected = 0;
    +
    auto menu = Container::Vertical({
    +
    MenuEntry({.label = "entry 1"}),
    +
    MenuEntry({.label = "entry 2"}),
    +
    MenuEntry({.label = "entry 3"}),
    +
    }, &selected);
    +
    screen.Loop(menu);
    +

    +Output

    +
    > entry 1
    +
    entry 2
    +
    entry 3
    +
    +

    Definition at line 614 of file src/ftxui/component/menu.cpp.

    + +
    +
    + +

    ◆ Modal() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Modal (Component main,
    Component modal,
    const bool * show_modal )
    +
    + +

    Definition at line 18 of file modal.cpp.

    + +
    +
    + +

    ◆ Modal() [2/2]

    + +
    +
    + + + + + + + + + + + +
    ComponentDecorator Modal (Component modal,
    const bool * show_modal )
    +
    + +

    Definition at line 58 of file modal.cpp.

    + +
    +
    + +

    ◆ Radiobox() [1/2]

    + +
    +
    + + + + + + + +
    Component Radiobox (RadioboxOption option)
    +
    + +

    A list of element, where only one can be selected.

    +
    Parameters
    + + +
    optionThe parameters
    +
    +
    +
    See also
    RadioboxBase
    +

    +Example

    +
    +
    std::vector<std::string> entries = {
    +
    "entry 1",
    +
    "entry 2",
    +
    "entry 3",
    +
    };
    +
    int selected = 0;
    +
    auto menu = Radiobox({
    +
    .entries = entries,
    +
    .selected = &selected,
    +
    });
    +
    screen.Loop(menu);
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +

    +Output

    +
    ◉ entry 1
    +
    ○ entry 2
    +
    ○ entry 3
    +

    NOLINTNEXTLINE

    + +

    Definition at line 204 of file src/ftxui/component/radiobox.cpp.

    + +
    +
    + +

    ◆ Radiobox() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Radiobox (ConstStringListRef entries,
    int * selected,
    RadioboxOption option )
    +
    + +

    A list of element, where only one can be selected.

    +
    Parameters
    + + + + +
    entriesThe list of entries in the list.
    selectedThe index of the currently selected element.
    optionAdditional optional parameters.
    +
    +
    +
    See also
    RadioboxBase
    +

    +Example

    +
    +
    std::vector<std::string> entries = {
    +
    "entry 1",
    +
    "entry 2",
    +
    "entry 3",
    +
    };
    +
    int selected = 0;
    +
    auto menu = Radiobox(&entries, &selected);
    +
    screen.Loop(menu);
    +

    +Output

    +
    ◉ entry 1
    +
    ○ entry 2
    +
    ○ entry 3
    +
    +

    Definition at line 236 of file src/ftxui/component/radiobox.cpp.

    + +
    +
    + +

    ◆ Renderer() [1/4]

    + +
    +
    + + + + + + + +
    Component Renderer (std::function< Element()> render)
    +
    + +

    Return a component, using |render| to render its interface.

    +
    Parameters
    + + +
    renderThe function drawing the interface.
    +
    +
    +

    +Example

    +
    +
    auto renderer = Renderer([] {
    +
    return text("My interface");
    +
    });
    +
    screen.Loop(renderer);
    +
    +

    Definition at line 29 of file src/ftxui/component/renderer.cpp.

    + +
    +
    + +

    ◆ Renderer() [2/4]

    + +
    +
    + + + + + + + + + + + +
    Component Renderer (Component child,
    std::function< Element()> render )
    +
    + +

    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.

    +
    Parameters
    + + + +
    childThe component to forward events to.
    renderThe function drawing the interface.
    +
    +
    +

    +Example

    +
    +
    std::string label = "Click to quit";
    +
    auto button = Button(&label, screen.ExitLoopClosure());
    +
    auto renderer = Renderer(button, [&] {
    +
    return hbox({
    +
    text("A button:"),
    +
    button->Render(),
    +
    });
    +
    });
    +
    screen.Loop(renderer);
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    +

    Definition at line 61 of file src/ftxui/component/renderer.cpp.

    + +
    +
    + +

    ◆ Renderer() [3/4]

    + +
    +
    + + + + + + + +
    Component Renderer (std::function< Element(bool)> render)
    +
    + +

    Return a focusable component, using |render| to render its interface.

    +
    Parameters
    + + +
    renderThe function drawing the interface, taking a boolean telling whether the component is focused or not.
    +
    +
    +

    +Example

    +
    +
    auto renderer = Renderer([] (bool focused) {
    +
    if (focused)
    +
    return text("My interface") | inverted;
    +
    else
    +
    return text("My interface");
    +
    });
    +
    screen.Loop(renderer);
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    +

    Definition at line 84 of file src/ftxui/component/renderer.cpp.

    + +
    +
    + +

    ◆ Renderer() [4/4]

    + +
    +
    + + + + + + + +
    ComponentDecorator Renderer (ElementDecorator decorator)
    +
    + +

    Decorate a component, by decorating what it renders.

    +
    Parameters
    + + +
    decoratorthe function modifying the element it renders.
    +
    +
    +

    +Example

    +
    +
    auto renderer = */
    +
    // Renderer([] { return text("Hello");)
    +
    /** | Renderer(bold)
    +
    | Renderer(inverted);
    +
    screen.Loop(renderer);
    +
    +

    Definition at line 125 of file src/ftxui/component/renderer.cpp.

    + +
    +
    + +

    ◆ ResizableSplitLeft()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component ResizableSplitLeft (Component main,
    Component back,
    int * main_size )
    +
    + +

    An horizontal split in between two components, configurable using the mouse.

    +
    Parameters
    + + + + +
    mainThe main component of size |main_size|, on the left.
    backThe back component taking the remaining size, on the right.
    main_sizeThe size of the |main| component.
    +
    +
    +

    +Example

    +
    +
    int left_size = 10;
    +
    auto left = Renderer([] { return text("Left") | center;});
    +
    auto right = Renderer([] { return text("right") | center;});
    +
    auto split = ResizableSplitLeft(left, right, &left_size);
    +
    screen.Loop(split);
    +
    static ScreenInteractive Fullscreen()
    +
    Component ResizableSplitLeft(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t right
    Definition screen.cpp:132
    +

    +Output

    +
    +
    left │ right
    +
    +
    +

    Definition at line 215 of file src/ftxui/component/resizable_split.cpp.

    + +
    +
    + +

    ◆ ResizableSplitRight()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component ResizableSplitRight (Component main,
    Component back,
    int * main_size )
    +
    + +

    An horizontal split in between two components, configurable using the mouse.

    +
    Parameters
    + + + + +
    mainThe main component of size |main_size|, on the right.
    backThe back component taking the remaining size, on the left.
    main_sizeThe size of the |main| component.
    +
    +
    +

    +Example

    +
    +
    int right_size = 10;
    +
    auto left = Renderer([] { return text("Left") | center;});
    +
    auto right = Renderer([] { return text("right") | center;});
    +
    auto split = ResizableSplitRight(right, left, &right_size)
    +
    screen.Loop(split);
    +
    Component ResizableSplitRight(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +

    +Output

    +
    +
    left │ right
    +
    +
    +

    Definition at line 249 of file src/ftxui/component/resizable_split.cpp.

    + +
    +
    + +

    ◆ ResizableSplitTop()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component ResizableSplitTop (Component main,
    Component back,
    int * main_size )
    +
    + +

    An vertical split in between two components, configurable using the mouse.

    +
    Parameters
    + + + + +
    mainThe main component of size |main_size|, on the top.
    backThe back component taking the remaining size, on the bottom.
    main_sizeThe size of the |main| component.
    +
    +
    +

    +Example

    +
    +
    int top_size = 1;
    +
    auto top = Renderer([] { return text("Top") | center;});
    +
    auto bottom = Renderer([] { return text("Bottom") | center;});
    +
    auto split = ResizableSplitTop(top, bottom, &top_size)
    +
    screen.Loop(split);
    +
    Component ResizableSplitTop(Component main, Component back, int *main_size)
    An vertical split in between two components, configurable using the mouse.
    +
    std::uint8_t top
    Definition screen.cpp:131
    +

    +Output

    +
    top
    +
    ────────────
    +
    bottom
    +
    +

    Definition at line 283 of file src/ftxui/component/resizable_split.cpp.

    + +
    +
    + +

    ◆ ResizableSplitBottom()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component ResizableSplitBottom (Component main,
    Component back,
    int * main_size )
    +
    + +

    An vertical split in between two components, configurable using the mouse.

    +
    Parameters
    + + + + +
    mainThe main component of size |main_size|, on the bottom.
    backThe back component taking the remaining size, on the top.
    main_sizeThe size of the |main| component.
    +
    +
    +

    +Example

    +
    +
    int bottom_size = 1;
    +
    auto top = Renderer([] { return text("Top") | center;});
    +
    auto bottom = Renderer([] { return text("Bottom") | center;});
    +
    auto split = ResizableSplit::Bottom(bottom, top, &bottom_size)
    +
    screen.Loop(split);
    +

    +Output

    +
    top
    +
    ────────────
    +
    bottom
    +
    +

    Definition at line 317 of file src/ftxui/component/resizable_split.cpp.

    + +
    +
    + +

    ◆ Slider()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Component Slider (ConstStringRef label,
    Ref< int > value,
    ConstRef< int > min,
    ConstRef< int > max,
    ConstRef< int > increment )
    +
    + +

    An horizontal slider.

    +
    Parameters
    + + + + + + +
    labelThe name of the slider.
    valueThe current value of the slider.
    minThe minimum value.
    maxThe maximum value.
    incrementThe increment when used by the cursor.
    +
    +
    +

    +Example

    +
    +
    int value = 50;
    +
    auto slider = Slider("Value:", &value, 0, 100, 1);
    +
    screen.Loop(slider);
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +

    +Output

    +
    Value:[██████████████████████████ ]
    +
    +

    Definition at line 259 of file src/ftxui/component/slider.cpp.

    + +
    +
    + +

    ◆ Window()

    + +
    +
    + + + + + + + +
    Component Window (WindowOptions option)
    +
    + +

    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stacked({...}) component;.

    +
    Parameters
    + + +
    optionA struct holding every parameters.
    +
    +
    +
    See also
    Window
    +

    +Example

    +
    auto window_1= Window({
    +
    .inner = DummyWindowContent(),
    +
    .title = "First window",
    +
    });
    +
    +
    auto window_2= Window({
    +
    .inner = DummyWindowContent(),
    +
    .title = "Second window",
    +
    });
    +
    +
    auto container = Container::Stacked({
    +
    window_1,
    +
    window_2,
    +
    });
    +
    Component Window(WindowOptions option)
    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
    +
    Component DummyWindowContent()
    Definition scrollbar.cpp:10
    +
    +

    Definition at line 312 of file src/ftxui/component/window.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/group__component.js b/group__component.js new file mode 100644 index 000000000..b061d8862 --- /dev/null +++ b/group__component.js @@ -0,0 +1,268 @@ +var group__component = +[ + [ "ComponentBase", "group__component.html#classftxui_1_1ComponentBase", [ + [ "ComponentBase", "group__component.html#ad2a5b6ce11bc7a8ce1150cf0ba9144c0", null ], + [ "~ComponentBase", "group__component.html#ae490d465a018a9d81bb4e30604708fba", null ], + [ "ComponentBase", "group__component.html#acda4c8b63ffbc2e9e2e28f056edbf01c", null ], + [ "ComponentBase", "group__component.html#abd8cf6a9df5eb4678fb9925b686c7aea", null ], + [ "ComponentBase", "group__component.html#a9b3cf357cf150023641969d5fcb7d08f", null ], + [ "operator=", "group__component.html#ac444ac233dcbd4b2ad7972d2086ecc73", null ], + [ "operator=", "group__component.html#a9e3b99c8fc32f2ce151e2ba737c0d546", null ], + [ "Parent", "group__component.html#aaf284a408631f31558694973a04186c2", null ], + [ "ChildAt", "group__component.html#aceb41a98abe10fb0b521ff8b65529b7f", null ], + [ "ChildCount", "group__component.html#a9ae5f77e923e2f0f8b0e26dcd4affb5b", null ], + [ "Index", "group__component.html#a8ef12397d1682615bc3108c397734179", null ], + [ "Add", "group__component.html#a21f040bec9104e164bfa6c3ad45be3a1", null ], + [ "Detach", "group__component.html#abb7a2b60240651d16e17d02eb6f636cf", null ], + [ "DetachAllChildren", "group__component.html#a84bd6480cf5e8f51cf5965f81b1f2460", null ], + [ "Render", "group__component.html#a28d41d6113c5b29c8dd45846582b3299", null ], + [ "OnRender", "group__component.html#ab79303652dad19eac0540848487cf8c5", null ], + [ "OnEvent", "group__component.html#ab84629a8fecad2e1cdd426b7ddc72277", null ], + [ "OnAnimation", "group__component.html#aebad858485d02f035a8ea34af66a7fa7", null ], + [ "ActiveChild", "group__component.html#a5c421f00a2a7f50c542c5c286d2e696c", null ], + [ "Focusable", "group__component.html#a02ccd3db74312f1c66aa8e7931489318", null ], + [ "Active", "group__component.html#a52beef6d7a687d4d109e6cec1606e32e", null ], + [ "Focused", "group__component.html#a0cc612fa3d753b456e0f480f44654a9f", null ], + [ "SetActiveChild", "group__component.html#a8cbf27680c6154e15c8b32d6601340de", null ], + [ "SetActiveChild", "group__component.html#a50ad32ad14dd7912e681fab0ee294be2", null ], + [ "TakeFocus", "group__component.html#a2cf27e9d7128a6a4b3263ecd34c19105", null ], + [ "CaptureMouse", "group__component.html#a164d10a2cf367bdd4ae14318a6c7d769", null ], + [ "children_", "group__component.html#a22b4fa4d6aa4c9c2eef275cd25aa8ab9", null ] + ] ], + [ "UnderlineOption", "group__component.html#structftxui_1_1UnderlineOption", [ + [ "SetAnimation", "group__component.html#a754d89398aac6051ced26fd452c62589", null ], + [ "SetAnimationDuration", "group__component.html#a798360474be7511364b8171f0c62f6d5", null ], + [ "SetAnimationFunction", "group__component.html#a34e6222dbf10e899074054160870816c", null ], + [ "SetAnimationFunction", "group__component.html#a7d978b34c37e9d08c57a22477016204c", null ], + [ "enabled", "group__component.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ], + [ "color_active", "group__component.html#a593f1ba15add21d1972c01372db369df", null ], + [ "color_inactive", "group__component.html#ad5a77e0bc0ce649271a13949a7a0a635", null ], + [ "leader_function", "group__component.html#a1886d86b757123859c89f3336631b1f8", null ], + [ "follower_function", "group__component.html#a7dca406bc24422caeb8f39705334dbd1", null ], + [ "leader_duration", "group__component.html#a6112ea2b5db5a4c50fe7d5ae70dfd016", null ], + [ "leader_delay", "group__component.html#ae29bb2e2c1e7f6eca70781e6fcd63a64", null ], + [ "follower_duration", "group__component.html#a13a6488c25b667256590c85aacb1f518", null ], + [ "follower_delay", "group__component.html#a2b5d480250b61cd7e62e7c6567345e38", null ] + ] ], + [ "AnimatedColorOption", "group__component.html#structftxui_1_1AnimatedColorOption", [ + [ "Set", "group__component.html#ad186d5a36e45174bbc7c50df85c2e91e", null ], + [ "enabled", "group__component.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ], + [ "inactive", "group__component.html#a898e4eb6c2a93ea3b71fc373f39854eb", null ], + [ "active", "group__component.html#a5c04e41d802330270ae14a9861c1e2df", null ], + [ "duration", "group__component.html#a7449575119a6168a323351fb04a7eb64", null ], + [ "function", "group__component.html#a23a21de13ab9c6644225966245df3fe3", null ] + ] ], + [ "MenuEntryOption", "group__component.html#structftxui_1_1MenuEntryOption", [ + [ "label", "group__component.html#a336758144ce2b1095f2a0ef062551f5b", null ], + [ "transform", "group__component.html#a5641c45021a8cc20bdd21498563825a0", null ], + [ "animated_colors", "group__component.html#ab7131557fbe84a6b4b2f2ffcff7d44f0", null ] + ] ], + [ "MenuOption", "group__component.html#structftxui_1_1MenuOption", [ + [ "entries", "group__component.html#a7b534b117dbbe826d34ba17af85f1e93", null ], + [ "selected", "group__component.html#ac42a32c3439d08be9c5626a5fbc3a0c4", null ], + [ "underline", "group__component.html#a55b558727e02acce3f5259811b2dfe5b", null ], + [ "entries_option", "group__component.html#a2076e7253c5acce2321c067e9b7a1823", null ], + [ "direction", "group__component.html#a53421c695d00016ab925777d423b4eb6", null ], + [ "elements_prefix", "group__component.html#a11476ea3dc58bf17777879693fb2985a", null ], + [ "elements_infix", "group__component.html#a9504d8d3bfa1daaab000e5455536b20d", null ], + [ "elements_postfix", "group__component.html#ab08362a5698543aec0fbb37f99777119", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ], + [ "on_enter", "group__component.html#a4ba9530701be07334a17c0184747c535", null ], + [ "focused_entry", "group__component.html#a93d5d37708b77971a666b73486017835", null ] + ] ], + [ "ButtonOption", "group__component.html#structftxui_1_1ButtonOption", [ + [ "label", "group__component.html#a336758144ce2b1095f2a0ef062551f5b", null ], + [ "on_click", "group__component.html#a0ae001950b0ed23752b298963cecf3d1", null ], + [ "transform", "group__component.html#afe14c161494dad905597e75661c7b6a0", null ], + [ "animated_colors", "group__component.html#ab7131557fbe84a6b4b2f2ffcff7d44f0", null ] + ] ], + [ "CheckboxOption", "group__component.html#structftxui_1_1CheckboxOption", [ + [ "label", "group__component.html#a336758144ce2b1095f2a0ef062551f5b", null ], + [ "checked", "group__component.html#ab7741e52624c0d7906159d77edffe27e", null ], + [ "transform", "group__component.html#afe14c161494dad905597e75661c7b6a0", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ] + ] ], + [ "InputOption", "group__component.html#structftxui_1_1InputOption", [ + [ "content", "group__component.html#ac9f6c2acd72d74eeb3a18baf32b02932", null ], + [ "placeholder", "group__component.html#aaca8e18f9fe70089d8fd4165f4b518e1", null ], + [ "transform", "group__component.html#a93721d00aaf44f42cc0399024514b628", null ], + [ "password", "group__component.html#a927bd46792ffe38c7545a764d847d066", null ], + [ "multiline", "group__component.html#af18b2db29029e23c13a8bfc233c62878", null ], + [ "insert", "group__component.html#a3ae35fa7cff9f950b9c66536523c69c1", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ], + [ "on_enter", "group__component.html#a4ba9530701be07334a17c0184747c535", null ], + [ "cursor_position", "group__component.html#a699547942204afa70864e0e6df94c96c", null ] + ] ], + [ "RadioboxOption", "group__component.html#structftxui_1_1RadioboxOption", [ + [ "entries", "group__component.html#a7b534b117dbbe826d34ba17af85f1e93", null ], + [ "selected", "group__component.html#ac42a32c3439d08be9c5626a5fbc3a0c4", null ], + [ "transform", "group__component.html#afe14c161494dad905597e75661c7b6a0", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ], + [ "focused_entry", "group__component.html#a93d5d37708b77971a666b73486017835", null ] + ] ], + [ "WindowRenderState", "group__component.html#structftxui_1_1WindowRenderState", [ + [ "inner", "group__component.html#a5486612c1fe0c8651fbb399ac512fccf", null ], + [ "title", "group__component.html#a32309346e2ae5546e342e991d0a53b37", null ], + [ "active", "group__component.html#a03c996f9fcf0e10baeb3e700be0c409a", null ], + [ "drag", "group__component.html#a2104e875bdb7c78a8bf7dfd3728459c5", null ], + [ "resize", "group__component.html#a47beb6819c84c39255cb60f5710714ce", null ], + [ "hover_left", "group__component.html#abca2d427dd57d2b5eecb6685ed68e857", null ], + [ "hover_right", "group__component.html#a8e6af441e03d44f593bcb0d17ee809b1", null ], + [ "hover_top", "group__component.html#acb4dc002e621733f1e6c232f369af8ca", null ], + [ "hover_down", "group__component.html#a2fbfe3e43b596c8a47c5548b38e4d721", null ] + ] ], + [ "DropdownOption", "group__component.html#structftxui_1_1DropdownOption", [ + [ "open", "group__component.html#aa9ee4f52203c5dec717cf45077b82776", null ], + [ "checkbox", "group__component.html#a0797deb307cd89059137a4ca6075fcbf", null ], + [ "radiobox", "group__component.html#a83288bb2ebb6ca0eef0651285a71291e", null ], + [ "transform", "group__component.html#ae2d438a2693c6279aba8a2549a161601", null ] + ] ], + [ "Event", "group__component.html#structftxui_1_1Event", [ + [ "operator==", "group__component.html#ad5b326fac977a9c1c832ddb508f713da", null ], + [ "operator!=", "group__component.html#ae4581774f4417f68d335de865fd2e6d3", null ], + [ "operator<", "group__component.html#a7590045e19360277dfc54320b627002c", null ], + [ "input", "group__component.html#a947e2de698c4bef07c78674218330677", null ], + [ "is_character", "group__component.html#ae75703788c6f68b39fc51f8db3ba156d", null ], + [ "character", "group__component.html#a07022c6e92b9144a0e5b337b562f9892", null ], + [ "is_mouse", "group__component.html#a2c835925299d56941ffd2e2421f0fd13", null ], + [ "mouse", "group__component.html#a37daf59df57eb6415eb34c8df11a4892", null ], + [ "is_cursor_position", "group__component.html#a4464a1cace713dc3544922cc6d5acdc1", null ], + [ "cursor_x", "group__component.html#a1ef75084a5f2a9d26df8cafcf048526e", null ], + [ "cursor_y", "group__component.html#a1a24372c00e6485f2648350df4301ae3", null ], + [ "is_cursor_shape", "group__component.html#af795895177b7686bf63ab113e70159c8", null ], + [ "cursor_shape", "group__component.html#a022c841864c305d5e3ef69f6957dc367", null ], + [ "DebugString", "group__component.html#a764be64f3029f8b8e23511061d8de355", null ], + [ "screen_", "group__component.html#a57ae65156ecf0f469cc559a49e6c4f2f", null ], + [ "mouse", "group__component.html#a761c3b7a78d8408dfbe76131209532d7", null ], + [ "cursor", "group__component.html#a9d8d873964fd143f113fce55e15c37fb", null ], + [ "cursor_shape", "group__component.html#a25a0efbff7ae0393c695f6d720cb5542", null ] + ] ], + [ "Loop", "group__component.html#classftxui_1_1Loop", [ + [ "Loop", "group__component.html#aacbc899babaac445c3b9b831322e8c70", null ], + [ "~Loop", "group__component.html#a84c72a09400ffc01ce3257d2109453a2", null ], + [ "Loop", "group__component.html#ad72ac0aa7a08850990b76f15e13dbe79", null ], + [ "Loop", "group__component.html#adfc045f0113bbf7f6dc5895ff7ce3ac5", null ], + [ "Loop", "group__component.html#a734882bfa3e357e4bb57581494e8699b", null ], + [ "HasQuitted", "group__component.html#a0f10869cb1cad212e8885deac6960a41", null ], + [ "RunOnce", "group__component.html#ad638ec512bc0d9876c2bf1c15913e9d3", null ], + [ "RunOnceBlocking", "group__component.html#afe89c4e52cb64cd7271c3fa8a04e7b61", null ], + [ "Run", "group__component.html#aa3eca255b6be227d7d901cc2a72017a5", null ], + [ "operator=", "group__component.html#add07fd33947183c42a79cb4759129ff8", null ], + [ "operator=", "group__component.html#ab35ce310313b96f28233ebc9279b5dd3", null ] + ] ], + [ "Mouse", "group__component.html#structftxui_1_1Mouse", [ + [ "Button", "group__component.html#a03bfec859eac87be20f8952c1eb89de0", [ + [ "Left", "group__component.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb", null ], + [ "Middle", "group__component.html#a03bfec859eac87be20f8952c1eb89de0a673e6efef9aafe98078c5552e99c923c", null ], + [ "Right", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ad48f7af8c070184f3774c8e85854eb66", null ], + [ "None", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af", null ], + [ "WheelUp", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6", null ], + [ "WheelDown", "group__component.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db", null ], + [ "WheelLeft", "group__component.html#a03bfec859eac87be20f8952c1eb89de0a160e671a76bd0d1f424a8b9700275375", null ], + [ "WheelRight", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ae73184b2d38af984b5cda75057471adc", null ] + ] ], + [ "Motion", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6", [ + [ "Released", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6ad9417ac74f0134b9577d1d85cf422c25", null ], + [ "Pressed", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25", null ], + [ "Moved", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6a9bf35ab1cecfbb50d8f1d708a4921fc6", null ] + ] ], + [ "button", "group__component.html#aa56e877ca6a7524cf1e891c7435c3ace", null ], + [ "motion", "group__component.html#af8ec4d0833a67c0bcd400f9e30bd07c7", null ], + [ "shift", "group__component.html#ace78b37abb3d96740735fd8eb41235e6", null ], + [ "meta", "group__component.html#a46e545ef1aafd5ca9f1d6055fcebeeca", null ], + [ "control", "group__component.html#ad155fe5a68eb888a7e0eb897a3dfc015", null ], + [ "x", "group__component.html#a6150e0515f7202e2fb518f7206ed97dc", null ], + [ "y", "group__component.html#a0a2f84ed7838f07779ae24c5a9086d33", null ] + ] ], + [ "ScreenInteractive", "group__component.html#classftxui_1_1ScreenInteractive", [ + [ "Private", "classftxui_1_1ScreenInteractive_1_1Private.html", null ], + [ "SelectionStyle", "group__component.html#a0424ec9a980000671f12bfa39fc32273", null ], + [ "~ScreenInteractive", "group__component.html#a2c4f2d0819fb7afa3ce40cc0e3107053", null ], + [ "TrackMouse", "group__component.html#ad5961c1d4caf0ba9a030e5675162a164", null ], + [ "Loop", "group__component.html#a9bd3dbd471fce0038700caaa47dddc1a", null ], + [ "Exit", "group__component.html#a1a6a7739e9cc01ba888b57d1f9457f4c", null ], + [ "ExitLoopClosure", "group__component.html#ae295157a88e6300609df83769ed885f2", null ], + [ "Post", "group__component.html#a49209b09dcf8bc540f79e2bfd0a7ee88", null ], + [ "PostEvent", "group__component.html#a29e75bdaa1d5465518787ec014b2c3bf", null ], + [ "RequestAnimationFrame", "group__component.html#ad94d3d42aba3359550759aae5bcffbe9", null ], + [ "CaptureMouse", "group__component.html#aad61519d291dcc216d2ac618618a45a2", null ], + [ "WithRestoredIO", "group__component.html#af9df2de690486078fea4a7151b83b089", null ], + [ "ForceHandleCtrlC", "group__component.html#ae48c11a6c9160dc14cd5504ebe69304b", null ], + [ "ForceHandleCtrlZ", "group__component.html#af1c772ab581e587daad086227435f2ec", null ], + [ "GetSelection", "group__component.html#ac25769e248caa01d336f5eaa79cd6160", null ], + [ "SelectionChange", "group__component.html#ad6daabb2df61b6be6f0b2a8950ac3281", null ], + [ "ToString", "group__component.html#a19c380b03cea21d7ac7325136a131ff0", null ], + [ "Print", "group__component.html#ad93edbe885499a712129356f1ffd506b", null ], + [ "Clear", "group__component.html#aa71d36872f416feaa853788a7a7a7ef8", null ], + [ "ResetPosition", "group__component.html#a9677c078c4270afdb7451cdc0b0871d4", null ], + [ "ApplyShader", "group__component.html#a04d18c0cb0df3ed7a01ca5c3b8711ff7", null ], + [ "cursor", "group__component.html#a94febaac347b83267ff6a10b7837d612", null ], + [ "SetCursor", "group__component.html#a1aa24862a3d050b3aea2ade1300d51a7", null ], + [ "RegisterHyperlink", "group__component.html#a38015a8bc3dda474354ec8a374a6e2de", null ], + [ "Hyperlink", "group__component.html#a0b55b16969dfccc79195fe61c5ba6d1a", null ], + [ "GetSelectionStyle", "group__component.html#a056c2ad43affdac744b6907e9ea81463", null ], + [ "SetSelectionStyle", "group__component.html#aba0d30b90db17d6b7561f704ed63b5e6", null ], + [ "at", "group__component.html#a55b0a995463c6936efb33391f29565bc", null ], + [ "at", "group__component.html#a0882d58bb8ca1be9953135338456cf9e", null ], + [ "PixelAt", "group__component.html#a483f8ee1967e200cfc9e277b3ce00174", null ], + [ "PixelAt", "group__component.html#a03b2b39bb8f4d72068744776093125b3", null ], + [ "dimx", "group__component.html#ae7a460c9dacd70ed81b1adfea46b492e", null ], + [ "dimy", "group__component.html#a0d283cfb1ec16b3fc13d344ebfea93d4", null ], + [ "Loop", "group__component.html#a6f7095d721dd1dbd490d97c028eb676f", null ], + [ "Private", "group__component.html#a55bfcd8369da28d548069f2761d2c39f", null ], + [ "cursor_", "group__component.html#a9df9d1ae7ed66857ca987963b2365904", null ], + [ "hyperlinks_", "group__component.html#acff83d382ef60ad2a0fca3ba68e9397f", null ], + [ "selection_style_", "group__component.html#ab9f757d5d67255f61e27950be4131be1", null ], + [ "stencil", "group__component.html#a92cacd07ba30909855f19edc01192ff0", null ], + [ "dimx_", "group__component.html#a1b254c3faacd432c325efff4268ca683", null ], + [ "dimy_", "group__component.html#a9e9d5df4b41aaa5eca27cdcaca6d4574", null ], + [ "pixels_", "group__component.html#aeab8c1788b3f2c7403749c3be95a68ae", null ] + ] ], + [ "RequestAnimationFrame", "group__component.html#gad94d3d42aba3359550759aae5bcffbe9", null ], + [ "Button", "group__component.html#ga4e8295ec77dd31b0acc5063b134473e7", null ], + [ "Button", "group__component.html#ga0488e28ee9388e0ddca26f1d03d827d1", null ], + [ "CatchEvent", "group__component.html#ga0bfd67a2815807dc6fc9bc0f79bce29e", null ], + [ "CatchEvent", "group__component.html#gad2948235799c010c76c6de861c050c59", null ], + [ "Checkbox", "group__component.html#gae0d441d2c83740f187f62db566bbefcd", null ], + [ "Checkbox", "group__component.html#ga5e9dbb03c44d549f10c96f134269366f", null ], + [ "Vertical", "group__component.html#ga6471e39f5664d059144746c5801d37e6", null ], + [ "Vertical", "group__component.html#ga25099e2d2ead8a46c8d9a899982070b7", null ], + [ "Horizontal", "group__component.html#ga01563bae9454fe64c0b29b0eb3755e68", null ], + [ "Horizontal", "group__component.html#ga337564f8a13c98222025d8fe7e47df4c", null ], + [ "Tab", "group__component.html#gaea9fe244eeeb420276bcc5760b46953d", null ], + [ "Stacked", "group__component.html#gaafd394665b0c231380a143b810339d8e", null ], + [ "Dropdown", "group__component.html#gaa22bddff4aeed66e20f30d0715596999", null ], + [ "Dropdown", "group__component.html#gaa4b353566017558bac648ee1409930de", null ], + [ "Hoverable", "group__component.html#ga562d984d3830d63285643565cd55d16f", null ], + [ "Hoverable", "group__component.html#ga92ec2f5ccb509da2e2c24ae6a1f6b12b", null ], + [ "Hoverable", "group__component.html#ga9d94b37352be13d3551a9d5785f75439", null ], + [ "Hoverable", "group__component.html#ga34adfc9c76cf3603156cba32ad5d7142", null ], + [ "Hoverable", "group__component.html#ga91cac81077c483efdb952268aee9a523", null ], + [ "Hoverable", "group__component.html#gafd7cbaef5378a907111a64ee69aed56a", null ], + [ "Input", "group__component.html#ga7f285fcbc4dd0a0767b89a255fd062dc", null ], + [ "Input", "group__component.html#ga9d118d596e33bf5bee9d5eccb6265d15", null ], + [ "Input", "group__component.html#ga82ba18065d2c29514f034c7278dead74", null ], + [ "Maybe", "group__component.html#ga70afe9695167fb736631173201969730", null ], + [ "Maybe", "group__component.html#gae39ad8b223e6bb7704c77a3708571a7d", null ], + [ "Maybe", "group__component.html#ga20b66a70c1cd4ff3f0ff571a4507d2b4", null ], + [ "Maybe", "group__component.html#ga83b6fd5e1524023722a7450f987f15d0", null ], + [ "Menu", "group__component.html#ga27828fc39da10a18478ba84b1b162039", null ], + [ "Menu", "group__component.html#gad793a3a507766ffa711c4332a3815e24", null ], + [ "Toggle", "group__component.html#ga3537fccac66b07cd792874c9a6086811", null ], + [ "MenuEntry", "group__component.html#gafca94c5cdae5fbf3c6aa81fc1cd7b1c0", null ], + [ "MenuEntry", "group__component.html#ga2c0a27959e6a5d90109f6d4506e00f69", null ], + [ "Modal", "group__component.html#ga5185342fbba215496cb8a6805f36089c", null ], + [ "Modal", "group__component.html#ga5babae0bb25f8cada57784cc5d27fb74", null ], + [ "Radiobox", "group__component.html#ga3e7a44f321fa910f07aef5879e67af95", null ], + [ "Radiobox", "group__component.html#gac73eebf15ff6b5386b7ee6c6cb4a4890", null ], + [ "Renderer", "group__component.html#gaf03d3df7243bf71bb1a73686628f7f2b", null ], + [ "Renderer", "group__component.html#ga533e883e2aeea28de2b60564fcaf0361", null ], + [ "Renderer", "group__component.html#ga099cb57274a99396ee10f38acbfe62a7", null ], + [ "Renderer", "group__component.html#ga41d63b7af41dee1570b54915821abd30", null ], + [ "ResizableSplitLeft", "group__component.html#gae2205fc172615b43e1e3307bb614be4c", null ], + [ "ResizableSplitRight", "group__component.html#ga9030d0beb64f653603cab382b02750a8", null ], + [ "ResizableSplitTop", "group__component.html#ga238b4b650aca14716b82b2198695e008", null ], + [ "ResizableSplitBottom", "group__component.html#gacb75e6e61a021829893f7b57aeb7e3a2", null ], + [ "Slider", "group__component.html#gafdce74ff1421c2f1bda336c8dacefcbd", null ], + [ "Window", "group__component.html#ga638693abef9289912f5fa39606390b20", null ] +]; \ No newline at end of file diff --git a/group__component_classftxui_1_1ComponentBase.js b/group__component_classftxui_1_1ComponentBase.js new file mode 100644 index 000000000..dd91881fb --- /dev/null +++ b/group__component_classftxui_1_1ComponentBase.js @@ -0,0 +1,30 @@ +var group__component_classftxui_1_1ComponentBase = +[ + [ "ComponentBase", "group__component.html#ad2a5b6ce11bc7a8ce1150cf0ba9144c0", null ], + [ "~ComponentBase", "group__component.html#ae490d465a018a9d81bb4e30604708fba", null ], + [ "ComponentBase", "group__component.html#acda4c8b63ffbc2e9e2e28f056edbf01c", null ], + [ "ComponentBase", "group__component.html#abd8cf6a9df5eb4678fb9925b686c7aea", null ], + [ "ComponentBase", "group__component.html#a9b3cf357cf150023641969d5fcb7d08f", null ], + [ "operator=", "group__component.html#ac444ac233dcbd4b2ad7972d2086ecc73", null ], + [ "operator=", "group__component.html#a9e3b99c8fc32f2ce151e2ba737c0d546", null ], + [ "Parent", "group__component.html#aaf284a408631f31558694973a04186c2", null ], + [ "ChildAt", "group__component.html#aceb41a98abe10fb0b521ff8b65529b7f", null ], + [ "ChildCount", "group__component.html#a9ae5f77e923e2f0f8b0e26dcd4affb5b", null ], + [ "Index", "group__component.html#a8ef12397d1682615bc3108c397734179", null ], + [ "Add", "group__component.html#a21f040bec9104e164bfa6c3ad45be3a1", null ], + [ "Detach", "group__component.html#abb7a2b60240651d16e17d02eb6f636cf", null ], + [ "DetachAllChildren", "group__component.html#a84bd6480cf5e8f51cf5965f81b1f2460", null ], + [ "Render", "group__component.html#a28d41d6113c5b29c8dd45846582b3299", null ], + [ "OnRender", "group__component.html#ab79303652dad19eac0540848487cf8c5", null ], + [ "OnEvent", "group__component.html#ab84629a8fecad2e1cdd426b7ddc72277", null ], + [ "OnAnimation", "group__component.html#aebad858485d02f035a8ea34af66a7fa7", null ], + [ "ActiveChild", "group__component.html#a5c421f00a2a7f50c542c5c286d2e696c", null ], + [ "Focusable", "group__component.html#a02ccd3db74312f1c66aa8e7931489318", null ], + [ "Active", "group__component.html#a52beef6d7a687d4d109e6cec1606e32e", null ], + [ "Focused", "group__component.html#a0cc612fa3d753b456e0f480f44654a9f", null ], + [ "SetActiveChild", "group__component.html#a8cbf27680c6154e15c8b32d6601340de", null ], + [ "SetActiveChild", "group__component.html#a50ad32ad14dd7912e681fab0ee294be2", null ], + [ "TakeFocus", "group__component.html#a2cf27e9d7128a6a4b3263ecd34c19105", null ], + [ "CaptureMouse", "group__component.html#a164d10a2cf367bdd4ae14318a6c7d769", null ], + [ "children_", "group__component.html#a22b4fa4d6aa4c9c2eef275cd25aa8ab9", null ] +]; \ No newline at end of file diff --git a/group__component_classftxui_1_1Loop.js b/group__component_classftxui_1_1Loop.js new file mode 100644 index 000000000..93fa68f20 --- /dev/null +++ b/group__component_classftxui_1_1Loop.js @@ -0,0 +1,14 @@ +var group__component_classftxui_1_1Loop = +[ + [ "Loop", "group__component.html#aacbc899babaac445c3b9b831322e8c70", null ], + [ "~Loop", "group__component.html#a84c72a09400ffc01ce3257d2109453a2", null ], + [ "Loop", "group__component.html#ad72ac0aa7a08850990b76f15e13dbe79", null ], + [ "Loop", "group__component.html#adfc045f0113bbf7f6dc5895ff7ce3ac5", null ], + [ "Loop", "group__component.html#a734882bfa3e357e4bb57581494e8699b", null ], + [ "HasQuitted", "group__component.html#a0f10869cb1cad212e8885deac6960a41", null ], + [ "RunOnce", "group__component.html#ad638ec512bc0d9876c2bf1c15913e9d3", null ], + [ "RunOnceBlocking", "group__component.html#afe89c4e52cb64cd7271c3fa8a04e7b61", null ], + [ "Run", "group__component.html#aa3eca255b6be227d7d901cc2a72017a5", null ], + [ "operator=", "group__component.html#add07fd33947183c42a79cb4759129ff8", null ], + [ "operator=", "group__component.html#ab35ce310313b96f28233ebc9279b5dd3", null ] +]; \ No newline at end of file diff --git a/group__component_classftxui_1_1ScreenInteractive.js b/group__component_classftxui_1_1ScreenInteractive.js new file mode 100644 index 000000000..23731eba8 --- /dev/null +++ b/group__component_classftxui_1_1ScreenInteractive.js @@ -0,0 +1,45 @@ +var group__component_classftxui_1_1ScreenInteractive = +[ + [ "Private", "classftxui_1_1ScreenInteractive_1_1Private.html", null ], + [ "SelectionStyle", "group__component.html#a0424ec9a980000671f12bfa39fc32273", null ], + [ "~ScreenInteractive", "group__component.html#a2c4f2d0819fb7afa3ce40cc0e3107053", null ], + [ "TrackMouse", "group__component.html#ad5961c1d4caf0ba9a030e5675162a164", null ], + [ "Loop", "group__component.html#a9bd3dbd471fce0038700caaa47dddc1a", null ], + [ "Exit", "group__component.html#a1a6a7739e9cc01ba888b57d1f9457f4c", null ], + [ "ExitLoopClosure", "group__component.html#ae295157a88e6300609df83769ed885f2", null ], + [ "Post", "group__component.html#a49209b09dcf8bc540f79e2bfd0a7ee88", null ], + [ "PostEvent", "group__component.html#a29e75bdaa1d5465518787ec014b2c3bf", null ], + [ "RequestAnimationFrame", "group__component.html#ad94d3d42aba3359550759aae5bcffbe9", null ], + [ "CaptureMouse", "group__component.html#aad61519d291dcc216d2ac618618a45a2", null ], + [ "WithRestoredIO", "group__component.html#af9df2de690486078fea4a7151b83b089", null ], + [ "ForceHandleCtrlC", "group__component.html#ae48c11a6c9160dc14cd5504ebe69304b", null ], + [ "ForceHandleCtrlZ", "group__component.html#af1c772ab581e587daad086227435f2ec", null ], + [ "GetSelection", "group__component.html#ac25769e248caa01d336f5eaa79cd6160", null ], + [ "SelectionChange", "group__component.html#ad6daabb2df61b6be6f0b2a8950ac3281", null ], + [ "ToString", "group__component.html#a19c380b03cea21d7ac7325136a131ff0", null ], + [ "Print", "group__component.html#ad93edbe885499a712129356f1ffd506b", null ], + [ "Clear", "group__component.html#aa71d36872f416feaa853788a7a7a7ef8", null ], + [ "ResetPosition", "group__component.html#a9677c078c4270afdb7451cdc0b0871d4", null ], + [ "ApplyShader", "group__component.html#a04d18c0cb0df3ed7a01ca5c3b8711ff7", null ], + [ "cursor", "group__component.html#a94febaac347b83267ff6a10b7837d612", null ], + [ "SetCursor", "group__component.html#a1aa24862a3d050b3aea2ade1300d51a7", null ], + [ "RegisterHyperlink", "group__component.html#a38015a8bc3dda474354ec8a374a6e2de", null ], + [ "Hyperlink", "group__component.html#a0b55b16969dfccc79195fe61c5ba6d1a", null ], + [ "GetSelectionStyle", "group__component.html#a056c2ad43affdac744b6907e9ea81463", null ], + [ "SetSelectionStyle", "group__component.html#aba0d30b90db17d6b7561f704ed63b5e6", null ], + [ "at", "group__component.html#a55b0a995463c6936efb33391f29565bc", null ], + [ "at", "group__component.html#a0882d58bb8ca1be9953135338456cf9e", null ], + [ "PixelAt", "group__component.html#a483f8ee1967e200cfc9e277b3ce00174", null ], + [ "PixelAt", "group__component.html#a03b2b39bb8f4d72068744776093125b3", null ], + [ "dimx", "group__component.html#ae7a460c9dacd70ed81b1adfea46b492e", null ], + [ "dimy", "group__component.html#a0d283cfb1ec16b3fc13d344ebfea93d4", null ], + [ "Loop", "group__component.html#a6f7095d721dd1dbd490d97c028eb676f", null ], + [ "Private", "group__component.html#a55bfcd8369da28d548069f2761d2c39f", null ], + [ "cursor_", "group__component.html#a9df9d1ae7ed66857ca987963b2365904", null ], + [ "hyperlinks_", "group__component.html#acff83d382ef60ad2a0fca3ba68e9397f", null ], + [ "selection_style_", "group__component.html#ab9f757d5d67255f61e27950be4131be1", null ], + [ "stencil", "group__component.html#a92cacd07ba30909855f19edc01192ff0", null ], + [ "dimx_", "group__component.html#a1b254c3faacd432c325efff4268ca683", null ], + [ "dimy_", "group__component.html#a9e9d5df4b41aaa5eca27cdcaca6d4574", null ], + [ "pixels_", "group__component.html#aeab8c1788b3f2c7403749c3be95a68ae", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1AnimatedColorOption.js b/group__component_structftxui_1_1AnimatedColorOption.js new file mode 100644 index 000000000..a8ffccab5 --- /dev/null +++ b/group__component_structftxui_1_1AnimatedColorOption.js @@ -0,0 +1,9 @@ +var group__component_structftxui_1_1AnimatedColorOption = +[ + [ "Set", "group__component.html#ad186d5a36e45174bbc7c50df85c2e91e", null ], + [ "enabled", "group__component.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ], + [ "inactive", "group__component.html#a898e4eb6c2a93ea3b71fc373f39854eb", null ], + [ "active", "group__component.html#a5c04e41d802330270ae14a9861c1e2df", null ], + [ "duration", "group__component.html#a7449575119a6168a323351fb04a7eb64", null ], + [ "function", "group__component.html#a23a21de13ab9c6644225966245df3fe3", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1ButtonOption.js b/group__component_structftxui_1_1ButtonOption.js new file mode 100644 index 000000000..fd5e66a49 --- /dev/null +++ b/group__component_structftxui_1_1ButtonOption.js @@ -0,0 +1,7 @@ +var group__component_structftxui_1_1ButtonOption = +[ + [ "label", "group__component.html#a336758144ce2b1095f2a0ef062551f5b", null ], + [ "on_click", "group__component.html#a0ae001950b0ed23752b298963cecf3d1", null ], + [ "transform", "group__component.html#afe14c161494dad905597e75661c7b6a0", null ], + [ "animated_colors", "group__component.html#ab7131557fbe84a6b4b2f2ffcff7d44f0", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1CheckboxOption.js b/group__component_structftxui_1_1CheckboxOption.js new file mode 100644 index 000000000..94609673d --- /dev/null +++ b/group__component_structftxui_1_1CheckboxOption.js @@ -0,0 +1,7 @@ +var group__component_structftxui_1_1CheckboxOption = +[ + [ "label", "group__component.html#a336758144ce2b1095f2a0ef062551f5b", null ], + [ "checked", "group__component.html#ab7741e52624c0d7906159d77edffe27e", null ], + [ "transform", "group__component.html#afe14c161494dad905597e75661c7b6a0", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1DropdownOption.js b/group__component_structftxui_1_1DropdownOption.js new file mode 100644 index 000000000..76109116d --- /dev/null +++ b/group__component_structftxui_1_1DropdownOption.js @@ -0,0 +1,7 @@ +var group__component_structftxui_1_1DropdownOption = +[ + [ "open", "group__component.html#aa9ee4f52203c5dec717cf45077b82776", null ], + [ "checkbox", "group__component.html#a0797deb307cd89059137a4ca6075fcbf", null ], + [ "radiobox", "group__component.html#a83288bb2ebb6ca0eef0651285a71291e", null ], + [ "transform", "group__component.html#ae2d438a2693c6279aba8a2549a161601", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1Event.js b/group__component_structftxui_1_1Event.js new file mode 100644 index 000000000..67cb09d47 --- /dev/null +++ b/group__component_structftxui_1_1Event.js @@ -0,0 +1,21 @@ +var group__component_structftxui_1_1Event = +[ + [ "operator==", "group__component.html#ad5b326fac977a9c1c832ddb508f713da", null ], + [ "operator!=", "group__component.html#ae4581774f4417f68d335de865fd2e6d3", null ], + [ "operator<", "group__component.html#a7590045e19360277dfc54320b627002c", null ], + [ "input", "group__component.html#a947e2de698c4bef07c78674218330677", null ], + [ "is_character", "group__component.html#ae75703788c6f68b39fc51f8db3ba156d", null ], + [ "character", "group__component.html#a07022c6e92b9144a0e5b337b562f9892", null ], + [ "is_mouse", "group__component.html#a2c835925299d56941ffd2e2421f0fd13", null ], + [ "mouse", "group__component.html#a37daf59df57eb6415eb34c8df11a4892", null ], + [ "is_cursor_position", "group__component.html#a4464a1cace713dc3544922cc6d5acdc1", null ], + [ "cursor_x", "group__component.html#a1ef75084a5f2a9d26df8cafcf048526e", null ], + [ "cursor_y", "group__component.html#a1a24372c00e6485f2648350df4301ae3", null ], + [ "is_cursor_shape", "group__component.html#af795895177b7686bf63ab113e70159c8", null ], + [ "cursor_shape", "group__component.html#a022c841864c305d5e3ef69f6957dc367", null ], + [ "DebugString", "group__component.html#a764be64f3029f8b8e23511061d8de355", null ], + [ "screen_", "group__component.html#a57ae65156ecf0f469cc559a49e6c4f2f", null ], + [ "mouse", "group__component.html#a761c3b7a78d8408dfbe76131209532d7", null ], + [ "cursor", "group__component.html#a9d8d873964fd143f113fce55e15c37fb", null ], + [ "cursor_shape", "group__component.html#a25a0efbff7ae0393c695f6d720cb5542", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1InputOption.js b/group__component_structftxui_1_1InputOption.js new file mode 100644 index 000000000..04f31c95d --- /dev/null +++ b/group__component_structftxui_1_1InputOption.js @@ -0,0 +1,12 @@ +var group__component_structftxui_1_1InputOption = +[ + [ "content", "group__component.html#ac9f6c2acd72d74eeb3a18baf32b02932", null ], + [ "placeholder", "group__component.html#aaca8e18f9fe70089d8fd4165f4b518e1", null ], + [ "transform", "group__component.html#a93721d00aaf44f42cc0399024514b628", null ], + [ "password", "group__component.html#a927bd46792ffe38c7545a764d847d066", null ], + [ "multiline", "group__component.html#af18b2db29029e23c13a8bfc233c62878", null ], + [ "insert", "group__component.html#a3ae35fa7cff9f950b9c66536523c69c1", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ], + [ "on_enter", "group__component.html#a4ba9530701be07334a17c0184747c535", null ], + [ "cursor_position", "group__component.html#a699547942204afa70864e0e6df94c96c", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1MenuEntryOption.js b/group__component_structftxui_1_1MenuEntryOption.js new file mode 100644 index 000000000..cad9d244e --- /dev/null +++ b/group__component_structftxui_1_1MenuEntryOption.js @@ -0,0 +1,6 @@ +var group__component_structftxui_1_1MenuEntryOption = +[ + [ "label", "group__component.html#a336758144ce2b1095f2a0ef062551f5b", null ], + [ "transform", "group__component.html#a5641c45021a8cc20bdd21498563825a0", null ], + [ "animated_colors", "group__component.html#ab7131557fbe84a6b4b2f2ffcff7d44f0", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1MenuOption.js b/group__component_structftxui_1_1MenuOption.js new file mode 100644 index 000000000..492a5c254 --- /dev/null +++ b/group__component_structftxui_1_1MenuOption.js @@ -0,0 +1,14 @@ +var group__component_structftxui_1_1MenuOption = +[ + [ "entries", "group__component.html#a7b534b117dbbe826d34ba17af85f1e93", null ], + [ "selected", "group__component.html#ac42a32c3439d08be9c5626a5fbc3a0c4", null ], + [ "underline", "group__component.html#a55b558727e02acce3f5259811b2dfe5b", null ], + [ "entries_option", "group__component.html#a2076e7253c5acce2321c067e9b7a1823", null ], + [ "direction", "group__component.html#a53421c695d00016ab925777d423b4eb6", null ], + [ "elements_prefix", "group__component.html#a11476ea3dc58bf17777879693fb2985a", null ], + [ "elements_infix", "group__component.html#a9504d8d3bfa1daaab000e5455536b20d", null ], + [ "elements_postfix", "group__component.html#ab08362a5698543aec0fbb37f99777119", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ], + [ "on_enter", "group__component.html#a4ba9530701be07334a17c0184747c535", null ], + [ "focused_entry", "group__component.html#a93d5d37708b77971a666b73486017835", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1Mouse.js b/group__component_structftxui_1_1Mouse.js new file mode 100644 index 000000000..b143e12ab --- /dev/null +++ b/group__component_structftxui_1_1Mouse.js @@ -0,0 +1,25 @@ +var group__component_structftxui_1_1Mouse = +[ + [ "Button", "group__component.html#a03bfec859eac87be20f8952c1eb89de0", [ + [ "Left", "group__component.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb", null ], + [ "Middle", "group__component.html#a03bfec859eac87be20f8952c1eb89de0a673e6efef9aafe98078c5552e99c923c", null ], + [ "Right", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ad48f7af8c070184f3774c8e85854eb66", null ], + [ "None", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af", null ], + [ "WheelUp", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6", null ], + [ "WheelDown", "group__component.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db", null ], + [ "WheelLeft", "group__component.html#a03bfec859eac87be20f8952c1eb89de0a160e671a76bd0d1f424a8b9700275375", null ], + [ "WheelRight", "group__component.html#a03bfec859eac87be20f8952c1eb89de0ae73184b2d38af984b5cda75057471adc", null ] + ] ], + [ "Motion", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6", [ + [ "Released", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6ad9417ac74f0134b9577d1d85cf422c25", null ], + [ "Pressed", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25", null ], + [ "Moved", "group__component.html#a099c889d2b948b264c7a665b66e3a9b6a9bf35ab1cecfbb50d8f1d708a4921fc6", null ] + ] ], + [ "button", "group__component.html#aa56e877ca6a7524cf1e891c7435c3ace", null ], + [ "motion", "group__component.html#af8ec4d0833a67c0bcd400f9e30bd07c7", null ], + [ "shift", "group__component.html#ace78b37abb3d96740735fd8eb41235e6", null ], + [ "meta", "group__component.html#a46e545ef1aafd5ca9f1d6055fcebeeca", null ], + [ "control", "group__component.html#ad155fe5a68eb888a7e0eb897a3dfc015", null ], + [ "x", "group__component.html#a6150e0515f7202e2fb518f7206ed97dc", null ], + [ "y", "group__component.html#a0a2f84ed7838f07779ae24c5a9086d33", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1RadioboxOption.js b/group__component_structftxui_1_1RadioboxOption.js new file mode 100644 index 000000000..00f5f8831 --- /dev/null +++ b/group__component_structftxui_1_1RadioboxOption.js @@ -0,0 +1,8 @@ +var group__component_structftxui_1_1RadioboxOption = +[ + [ "entries", "group__component.html#a7b534b117dbbe826d34ba17af85f1e93", null ], + [ "selected", "group__component.html#ac42a32c3439d08be9c5626a5fbc3a0c4", null ], + [ "transform", "group__component.html#afe14c161494dad905597e75661c7b6a0", null ], + [ "on_change", "group__component.html#abdfe3c83deeec2323ff90248815b8f0a", null ], + [ "focused_entry", "group__component.html#a93d5d37708b77971a666b73486017835", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1UnderlineOption.js b/group__component_structftxui_1_1UnderlineOption.js new file mode 100644 index 000000000..3e2f2121d --- /dev/null +++ b/group__component_structftxui_1_1UnderlineOption.js @@ -0,0 +1,16 @@ +var group__component_structftxui_1_1UnderlineOption = +[ + [ "SetAnimation", "group__component.html#a754d89398aac6051ced26fd452c62589", null ], + [ "SetAnimationDuration", "group__component.html#a798360474be7511364b8171f0c62f6d5", null ], + [ "SetAnimationFunction", "group__component.html#a34e6222dbf10e899074054160870816c", null ], + [ "SetAnimationFunction", "group__component.html#a7d978b34c37e9d08c57a22477016204c", null ], + [ "enabled", "group__component.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ], + [ "color_active", "group__component.html#a593f1ba15add21d1972c01372db369df", null ], + [ "color_inactive", "group__component.html#ad5a77e0bc0ce649271a13949a7a0a635", null ], + [ "leader_function", "group__component.html#a1886d86b757123859c89f3336631b1f8", null ], + [ "follower_function", "group__component.html#a7dca406bc24422caeb8f39705334dbd1", null ], + [ "leader_duration", "group__component.html#a6112ea2b5db5a4c50fe7d5ae70dfd016", null ], + [ "leader_delay", "group__component.html#ae29bb2e2c1e7f6eca70781e6fcd63a64", null ], + [ "follower_duration", "group__component.html#a13a6488c25b667256590c85aacb1f518", null ], + [ "follower_delay", "group__component.html#a2b5d480250b61cd7e62e7c6567345e38", null ] +]; \ No newline at end of file diff --git a/group__component_structftxui_1_1WindowRenderState.js b/group__component_structftxui_1_1WindowRenderState.js new file mode 100644 index 000000000..03abd2690 --- /dev/null +++ b/group__component_structftxui_1_1WindowRenderState.js @@ -0,0 +1,12 @@ +var group__component_structftxui_1_1WindowRenderState = +[ + [ "inner", "group__component.html#a5486612c1fe0c8651fbb399ac512fccf", null ], + [ "title", "group__component.html#a32309346e2ae5546e342e991d0a53b37", null ], + [ "active", "group__component.html#a03c996f9fcf0e10baeb3e700be0c409a", null ], + [ "drag", "group__component.html#a2104e875bdb7c78a8bf7dfd3728459c5", null ], + [ "resize", "group__component.html#a47beb6819c84c39255cb60f5710714ce", null ], + [ "hover_left", "group__component.html#abca2d427dd57d2b5eecb6685ed68e857", null ], + [ "hover_right", "group__component.html#a8e6af441e03d44f593bcb0d17ee809b1", null ], + [ "hover_top", "group__component.html#acb4dc002e621733f1e6c232f369af8ca", null ], + [ "hover_down", "group__component.html#a2fbfe3e43b596c8a47c5548b38e4d721", null ] +]; \ No newline at end of file diff --git a/group__dom.html b/group__dom.html new file mode 100644 index 000000000..37e915368 --- /dev/null +++ b/group__dom.html @@ -0,0 +1,8299 @@ + + + + + + + + +FTXUI: ftxui/dom + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui/dom
    +
    +
    +

    Detailed Description

    +

    Please check the tutorial of the ftxui/dom module.

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

    +Classes

    struct  Canvas
     Canvas is a drawable buffer associated with drawing operations. More...
     
    struct  FlexboxConfig
     FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container. More...
     
    struct  LinearGradient
     A class representing the settings for linear-gradient color effect. More...
     
    class  Node
     Node is the base class for all elements in the DOM tree. More...
     
    struct  Requirement
     Requirement is a structure that defines the layout requirements for a Node in the terminal user interface. More...
     
    class  Selection
     Represents a selection in a terminal user interface. More...
     
    class  Table
     Table is a utility to draw tables. More...
     
    + + + + + + + +

    +Enumerations

    enum class  Direction {
    +  Up = 0 +,
    +  Down = 1 +,
    +  Left = 2 +,
    +  Right = 3 +
    + }
     Direction is an enumeration that represents the four cardinal directions. More...
     
    enum  BorderStyle {
    +  LIGHT +,
    +  DASHED +,
    +  HEAVY +,
    +  DOUBLE +,
    +  ROUNDED +,
    +  EMPTY +
    + }
     BorderStyle is an enumeration that represents the different styles of borders that can be applied to elements in the terminal UI. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Element automerge (Element child)
     Enable character to be automatically merged with others nearby.
     
    Element blink (Element child)
     The text drawn alternates in between visible and hidden.
     
    Element bold (Element child)
     Use a bold font, for elements with more emphasis.
     
    Element border (Element child)
     Draw a border around the element.
     
    Decorator borderWith (const Pixel &pixel)
     Same as border but with a constant Pixel around the element.
     
    Decorator borderStyled (BorderStyle style)
     Same as border but with different styles.
     
    Decorator borderStyled (Color foreground_color)
     Same as border but with a foreground color.
     
    Decorator borderStyled (BorderStyle style, Color foreground_color)
     Same as border but with a foreground color and a different style.
     
    Element borderDashed (Element child)
     Draw a dashed border around the element.
     
    Element borderLight (Element child)
     Draw a light border around the element.
     
    Element borderHeavy (Element child)
     Draw a heavy border around the element.
     
    Element borderDouble (Element child)
     Draw a double border around the element.
     
    Element borderRounded (Element child)
     Draw a rounded border around the element.
     
    Element borderEmpty (Element child)
     Draw an empty border around the element.
     
    Element window (Element title, Element content, BorderStyle border)
     Draw window with a title and a border around the element.
     
    Element clear_under (Element element)
     Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
     
    Element color (Color color, Element child)
     Set the foreground color of an element.
     
    Element bgcolor (Color color, Element child)
     Set the background color of an element.
     
    Decorator color (Color c)
     Decorate using a foreground color.
     
    Decorator bgcolor (Color color)
     Decorate using a background color.
     
    Element hcenter (Element child)
     Center an element horizontally.
     
    Element vcenter (Element child)
     Center an element vertically.
     
    Element center (Element child)
     Center an element horizontally and vertically.
     
    Element align_right (Element child)
     Align an element on the right side.
     
    Element dbox (Elements children_)
     Stack several element on top of each other.
     
    Element dim (Element child)
     Use a light font, for elements with less emphasis.
     
    Element filler ()
     An element that will take expand proportionally to the space left in a container.
     
    Element flex (Element child)
     Make a child element to expand proportionally to the space left in a container.
     
    Element xflex (Element child)
     Expand/Minimize if possible/needed on the X axis.
     
    Element yflex (Element child)
     Expand/Minimize if possible/needed on the Y axis.
     
    Element flex_grow (Element child)
     Expand if possible.
     
    Element xflex_grow (Element child)
     Expand if possible on the X axis.
     
    Element yflex_grow (Element child)
     Expand if possible on the Y axis.
     
    Element flex_shrink (Element child)
     Minimize if needed.
     
    Element xflex_shrink (Element child)
     Minimize if needed on the X axis.
     
    Element yflex_shrink (Element child)
     Minimize if needed on the Y axis.
     
    Element notflex (Element child)
     Make the element not flexible.
     
    Decorator focusPositionRelative (float x, float y)
     Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in proportion of the requested size.
     
    Decorator focusPosition (int x, int y)
     Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in the numbers of cells.
     
    Element focus (Element child)
     Set the child to be the one focused among its siblings.
     
    Element focusCursorBlock (Element child)
     Same as focus, but set the cursor shape to be a still block.
     
    Element focusCursorBlockBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking block.
     
    Element focusCursorBar (Element child)
     Same as focus, but set the cursor shape to be a still block.
     
    Element focusCursorBarBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking bar.
     
    Element focusCursorUnderline (Element child)
     Same as focus, but set the cursor shape to be a still underline.
     
    Element focusCursorUnderlineBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking underline.
     
    Element gaugeDirection (float progress, Direction direction)
     Draw a high definition progress bar progressing in specified direction.
     
    Element gaugeRight (float progress)
     Draw a high definition progress bar progressing from left to right.
     
    Element gaugeLeft (float progress)
     Draw a high definition progress bar progressing from right to left.
     
    Element gaugeUp (float progress)
     Draw a high definition progress bar progressing from bottom to top.
     
    Element gaugeDown (float progress)
     Draw a high definition progress bar progressing from top to bottom.
     
    Element gauge (float progress)
     Draw a high definition progress bar.
     
    Element hyperlink (std::string link, Element child)
     Make the rendered area clickable using a web browser. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
     
    Decorator hyperlink (std::string link)
     Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
     
    Element inverted (Element child)
     Add a filter that will invert the foreground and the background colors.
     
    Element italic (Element child)
     Apply a underlinedDouble to text.
     
    Element color (const LinearGradient &gradient, Element child)
     Set the foreground color of an element with linear-gradient effect.
     
    Element bgcolor (const LinearGradient &gradient, Element child)
     Set the background color of an element with linear-gradient effect.
     
    Decorator color (const LinearGradient &gradient)
     Decorate using a linear-gradient effect on the foreground color.
     
    Decorator bgcolor (const LinearGradient &gradient)
     Decorate using a linear-gradient effect on the background color.
     
    void Render (Screen &screen, const Element &element)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node)
     Display an element on a ftxui::Screen.
     
    Element paragraph (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines.
     
    Element paragraphAlignLeft (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the left.
     
    Element paragraphAlignRight (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the right.
     
    Element paragraphAlignCenter (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the center.
     
    Element paragraphAlignJustify (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned using a justified alignment. the center.
     
    Element vscroll_indicator (Element child)
     Display a vertical scrollbar on the right. Colors follow the content.
     
    Element hscroll_indicator (Element child)
     Display a horizontal scrollbar at the bottom. Colors follow the content.
     
    Element separator ()
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separatorStyled (BorderStyle style)
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separatorLight ()
     Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
     
    Element separatorDashed ()
     Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
     
    Element separatorHeavy ()
     Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
     
    Element separatorDouble ()
     Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
     
    Element separatorEmpty ()
     Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
     
    Element separatorCharacter (std::string value)
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separator (Pixel pixel)
     Draw a separator in between two element filled with a given pixel.
     
    Decorator size (WidthOrHeight direction, Constraint constraint, int value)
     Apply a constraint on the size of an element.
     
    Element spinner (int charset_index, size_t image_index)
     Useful to represent the effect of time and/or events. This displays an ASCII art "video".
     
    Element strikethrough (Element child)
     Apply a strikethrough to text.
     
    Element text (std::string text)
     Display a piece of UTF8 encoded unicode text.
     
    Element text (std::wstring text)
     Display a piece of unicode text.
     
    Element vtext (std::string text)
     Display a piece of unicode text vertically.
     
    Element vtext (std::wstring text)
     Display a piece unicode text vertically.
     
    Element underlined (Element child)
     Underline the given element.
     
    Element underlinedDouble (Element child)
     Apply a underlinedDouble to text.
     
    Element nothing (Element element)
     A decoration doing absolutely nothing.
     
    Decorator operator| (Decorator a, Decorator b)
     Compose two decorator into one.
     
    Elements operator| (Elements elements, Decorator decorator)
     From a set of element, apply a decorator to every elements.
     
    Element operator| (Element element, Decorator decorator)
     From an element, apply a decorator.
     
    Elementoperator|= (Element &e, Decorator d)
     Apply a decorator to an element.
     
    Element emptyElement ()
     
    Element vbox (Elements children)
     A container displaying elements vertically one by one.
     
    void SetColorSupport (Color color)
     Override terminal color support in case auto-detection fails.
     
    +

    Class Documentation

    + +

    ◆ ftxui::Canvas

    + +
    +
    + + + + +
    struct ftxui::Canvas
    +
    +

    Canvas is a drawable buffer associated with drawing operations.

    +

    Canvas is a drawable area that can be used to create complex graphics. It supports drawing points, lines, circles, ellipses, text, and images using braille, block, or normal characters.

    +

    Note: A terminal contains cells. A cells is a unit of:

      +
    • 2x4 braille characters (1x1 pixel)
    • +
    • 2x2 block characters (2x2 pixels)
    • +
    • 2x4 normal characters (2x4 pixels)
    • +
    +

    You need to multiply the x coordinate by 2 and the y coordinate by 4 to get the correct position in the terminal.

    + +

    Definition at line 38 of file canvas.hpp.

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

    Public Types

    using Stylizer = std::function<void(Pixel&)>
     

    Public Member Functions

     Canvas ()=default
     
     Canvas (int width, int height)
     Constructor.
     
    int width () const
     
    int height () const
     
    Pixel GetPixel (int x, int y) const
     Get the content of a cell.
     
    void DrawPointOn (int x, int y)
     Draw a braille dot.
     
    void DrawPointOff (int x, int y)
     Erase a braille dot.
     
    void DrawPointToggle (int x, int y)
     Toggle a braille dot. A filled one will be erased, and the other will be drawn.
     
    void DrawPoint (int x, int y, bool value)
     Draw a braille dot.
     
    void DrawPoint (int x, int y, bool value, const Stylizer &s)
     Draw a braille dot.
     
    void DrawPoint (int x, int y, bool value, const Color &color)
     Draw a braille dot.
     
    void DrawPointLine (int x1, int y1, int x2, int y2)
     Draw a line made of braille dots.
     
    void DrawPointLine (int x1, int y1, int x2, int y2, const Stylizer &s)
     Draw a line made of braille dots.
     
    void DrawPointLine (int x1, int y1, int x2, int y2, const Color &color)
     Draw a line made of braille dots.
     
    void DrawPointCircle (int x, int y, int radius)
     Draw a circle made of braille dots.
     
    void DrawPointCircle (int x, int y, int radius, const Stylizer &s)
     Draw a circle made of braille dots.
     
    void DrawPointCircle (int x, int y, int radius, const Color &color)
     Draw a circle made of braille dots.
     
    void DrawPointCircleFilled (int x, int y, int radius)
     Draw a filled circle made of braille dots.
     
    void DrawPointCircleFilled (int x, int y, int radius, const Stylizer &s)
     Draw a filled circle made of braille dots.
     
    void DrawPointCircleFilled (int x, int y, int radius, const Color &color)
     Draw a filled circle made of braille dots.
     
    void DrawPointEllipse (int x, int y, int r1, int r2)
     Draw an ellipse made of braille dots.
     
    void DrawPointEllipse (int x, int y, int r1, int r2, const Color &color)
     Draw an ellipse made of braille dots.
     
    void DrawPointEllipse (int x, int y, int r1, int r2, const Stylizer &s)
     Draw an ellipse made of braille dots.
     
    void DrawPointEllipseFilled (int x, int y, int r1, int r2)
     Draw a filled ellipse made of braille dots.
     
    void DrawPointEllipseFilled (int x, int y, int r1, int r2, const Color &color)
     Draw a filled ellipse made of braille dots.
     
    void DrawPointEllipseFilled (int x, int y, int r1, int r2, const Stylizer &s)
     Draw a filled ellipse made of braille dots.
     
    void DrawBlockOn (int x, int y)
     Draw a block.
     
    void DrawBlockOff (int x, int y)
     Erase a block.
     
    void DrawBlockToggle (int x, int y)
     Toggle a block. If it is filled, it will be erased. If it is empty, it will be filled.
     
    void DrawBlock (int x, int y, bool value)
     Draw a block.
     
    void DrawBlock (int x, int y, bool value, const Stylizer &s)
     Draw a block.
     
    void DrawBlock (int x, int y, bool value, const Color &color)
     Draw a block.
     
    void DrawBlockLine (int x1, int y1, int x2, int y2)
     Draw a line made of block characters.
     
    void DrawBlockLine (int x1, int y1, int x2, int y2, const Stylizer &s)
     Draw a line made of block characters.
     
    void DrawBlockLine (int x1, int y1, int x2, int y2, const Color &color)
     Draw a line made of block characters.
     
    void DrawBlockCircle (int x1, int y1, int radius)
     Draw a circle made of block characters.
     
    void DrawBlockCircle (int x1, int y1, int radius, const Stylizer &s)
     Draw a circle made of block characters.
     
    void DrawBlockCircle (int x1, int y1, int radius, const Color &color)
     Draw a circle made of block characters.
     
    void DrawBlockCircleFilled (int x1, int y1, int radius)
     Draw a filled circle made of block characters.
     
    void DrawBlockCircleFilled (int x1, int y1, int radius, const Stylizer &s)
     Draw a filled circle made of block characters.
     
    void DrawBlockCircleFilled (int x1, int y1, int radius, const Color &color)
     Draw a filled circle made of block characters.
     
    void DrawBlockEllipse (int x1, int y1, int r1, int r2)
     Draw an ellipse made of block characters.
     
    void DrawBlockEllipse (int x1, int y1, int r1, int r2, const Stylizer &s)
     Draw an ellipse made of block characters.
     
    void DrawBlockEllipse (int x1, int y1, int r1, int r2, const Color &color)
     Draw an ellipse made of block characters.
     
    void DrawBlockEllipseFilled (int x1, int y1, int r1, int r2)
     Draw a filled ellipse made of block characters.
     
    void DrawBlockEllipseFilled (int x1, int y1, int r1, int r2, const Stylizer &s)
     Draw a filled ellipse made of block characters.
     
    void DrawBlockEllipseFilled (int x1, int y1, int r1, int r2, const Color &color)
     Draw a filled ellipse made of block characters.
     
    void DrawText (int x, int y, const std::string &value)
     Draw a piece of text.
     
    void DrawText (int x, int y, const std::string &value, const Color &color)
     Draw a piece of text.
     
    void DrawText (int x, int y, const std::string &value, const Stylizer &style)
     Draw a piece of text.
     
    void DrawPixel (int x, int y, const Pixel &)
     Directly draw a predefined pixel at the given coordinate.
     
    void DrawImage (int x, int y, const Image &)
     Draw a predefined image, with top-left corner at the given coordinate You can supply negative coordinates to align the image however you like - only the 'visible' portion will be drawn.
     
    void Style (int x, int y, const Stylizer &style)
     Modify a pixel at a given location.
     
    +

    Member Typedef Documentation

    + +

    ◆ Stylizer

    + +
    +
    + + + + +
    using Stylizer = std::function<void(Pixel&)>
    +
    + +

    Definition at line 48 of file canvas.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Canvas() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Canvas ()
    +
    +default
    +
    + +
    +
    + +

    ◆ Canvas() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Canvas (int width,
    int height )
    +
    + +

    Constructor.

    +
    Parameters
    + + + +
    widththe width of the canvas. A cell is a 2x4 braille dot.
    heightthe height of the canvas. A cell is a 2x4 braille dot.
    +
    +
    + +

    Definition at line 90 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ width()

    + +
    +
    + + + + + +
    + + + + + + + +
    int width () const
    +
    +inline
    +
    + +

    Definition at line 44 of file canvas.hpp.

    + +
    +
    + +

    ◆ height()

    + +
    +
    + + + + + +
    + + + + + + + +
    int height () const
    +
    +inline
    +
    + +

    Definition at line 45 of file canvas.hpp.

    + +
    +
    + +

    ◆ GetPixel()

    + +
    +
    + + + + + + + + + + + +
    Pixel GetPixel (int x,
    int y ) const
    +
    + +

    Get the content of a cell.

    +
    Parameters
    + + + +
    xthe x coordinate of the cell.
    ythe y coordinate of the cell.
    +
    +
    + +

    Definition at line 98 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointOn()

    + +
    +
    + + + + + + + + + + + +
    void DrawPointOn (int x,
    int y )
    +
    + +

    Draw a braille dot.

    +
    Parameters
    + + + +
    xthe x coordinate of the dot.
    ythe y coordinate of the dot.
    +
    +
    + +

    Definition at line 137 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointOff()

    + +
    +
    + + + + + + + + + + + +
    void DrawPointOff (int x,
    int y )
    +
    + +

    Erase a braille dot.

    +
    Parameters
    + + + +
    xthe x coordinate of the dot.
    ythe y coordinate of the dot.
    +
    +
    + +

    Definition at line 154 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointToggle()

    + +
    +
    + + + + + + + + + + + +
    void DrawPointToggle (int x,
    int y )
    +
    + +

    Toggle a braille dot. A filled one will be erased, and the other will be drawn.

    +
    Parameters
    + + + +
    xthe x coordinate of the dot.
    ythe y coordinate of the dot.
    +
    +
    + +

    Definition at line 172 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPoint() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawPoint (int x,
    int y,
    bool value )
    +
    + +

    Draw a braille dot.

    +
    Parameters
    + + + + +
    xthe x coordinate of the dot.
    ythe y coordinate of the dot.
    valuewhether the dot is filled or not.
    +
    +
    + +

    Definition at line 107 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPoint() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPoint (int x,
    int y,
    bool value,
    const Stylizer & style )
    +
    + +

    Draw a braille dot.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the dot.
    ythe y coordinate of the dot.
    valuewhether the dot is filled or not.
    stylethe style of the cell.
    +
    +
    + +

    Definition at line 125 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPoint() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPoint (int x,
    int y,
    bool value,
    const Color & color )
    +
    + +

    Draw a braille dot.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the dot.
    ythe y coordinate of the dot.
    valuewhether the dot is filled or not.
    colorthe color of the dot.
    +
    +
    + +

    Definition at line 116 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointLine() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointLine (int x1,
    int y1,
    int x2,
    int y2 )
    +
    + +

    Draw a line made of braille dots.

    +
    Parameters
    + + + + + +
    x1the x coordinate of the first dot.
    y1the y coordinate of the first dot.
    x2the x coordinate of the second dot.
    y2the y coordinate of the second dot.
    +
    +
    + +

    Definition at line 191 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointLine() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointLine (int x1,
    int y1,
    int x2,
    int y2,
    const Stylizer & style )
    +
    + +

    Draw a line made of braille dots.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the first dot.
    y1the y coordinate of the first dot.o
    x2the x coordinate of the second dot.
    y2the y coordinate of the second dot.
    stylethe style of the line.
    +
    +
    + +

    Definition at line 212 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointLine() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointLine (int x1,
    int y1,
    int x2,
    int y2,
    const Color & color )
    +
    + +

    Draw a line made of braille dots.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the first dot.
    y1the y coordinate of the first dot.
    x2the x coordinate of the second dot.
    y2the y coordinate of the second dot.
    colorthe color of the line.
    +
    +
    + +

    Definition at line 201 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointCircle() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawPointCircle (int x,
    int y,
    int radius )
    +
    + +

    Draw a circle made of braille dots.

    +
    Parameters
    + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    +
    +
    + +

    Definition at line 249 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointCircle() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointCircle (int x,
    int y,
    int radius,
    const Stylizer & style )
    +
    + +

    Draw a circle made of braille dots.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    stylethe style of the circle.
    +
    +
    + +

    Definition at line 268 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointCircle() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointCircle (int x,
    int y,
    int radius,
    const Color & color )
    +
    + +

    Draw a circle made of braille dots.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    colorthe color of the circle.
    +
    +
    + +

    Definition at line 258 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointCircleFilled() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawPointCircleFilled (int x,
    int y,
    int radius )
    +
    + +

    Draw a filled circle made of braille dots.

    +
    Parameters
    + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    +
    +
    + +

    Definition at line 276 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointCircleFilled() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointCircleFilled (int x,
    int y,
    int radius,
    const Stylizer & style )
    +
    + +

    Draw a filled circle made of braille dots.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    stylethe style of the circle.
    +
    +
    + +

    Definition at line 298 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointCircleFilled() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointCircleFilled (int x,
    int y,
    int radius,
    const Color & color )
    +
    + +

    Draw a filled circle made of braille dots.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    colorthe color of the circle.
    +
    +
    + +

    Definition at line 285 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointEllipse() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointEllipse (int x,
    int y,
    int r1,
    int r2 )
    +
    + +

    Draw an ellipse made of braille dots.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the ellipse.
    ythe y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    +
    +
    + +

    Definition at line 310 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointEllipse() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointEllipse (int x,
    int y,
    int r1,
    int r2,
    const Color & color )
    +
    + +

    Draw an ellipse made of braille dots.

    +
    Parameters
    + + + + + + +
    xthe x coordinate of the center of the ellipse.
    ythe y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    colorthe color of the ellipse.
    +
    +
    + +

    Definition at line 320 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointEllipse() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointEllipse (int x1,
    int y1,
    int r1,
    int r2,
    const Stylizer & s )
    +
    + +

    Draw an ellipse made of braille dots.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the center of the ellipse.
    y1the y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    sthe style of the ellipse.
    +
    +
    + +

    Definition at line 335 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointEllipseFilled() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointEllipseFilled (int x1,
    int y1,
    int r1,
    int r2 )
    +
    + +

    Draw a filled ellipse made of braille dots.

    +
    Parameters
    + + + + + +
    x1the x coordinate of the center of the ellipse.
    y1the y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    +
    +
    + +

    Definition at line 374 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointEllipseFilled() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointEllipseFilled (int x1,
    int y1,
    int r1,
    int r2,
    const Color & color )
    +
    + +

    Draw a filled ellipse made of braille dots.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the center of the ellipse.
    y1the y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    colorthe color of the ellipse.
    +
    +
    + +

    Definition at line 384 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPointEllipseFilled() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawPointEllipseFilled (int x1,
    int y1,
    int r1,
    int r2,
    const Stylizer & s )
    +
    + +

    Draw a filled ellipse made of braille dots.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the center of the ellipse.
    y1the y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    sthe style of the ellipse.
    +
    +
    + +

    Definition at line 399 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockOn()

    + +
    +
    + + + + + + + + + + + +
    void DrawBlockOn (int x,
    int y )
    +
    + +

    Draw a block.

    +
    Parameters
    + + + +
    xthe x coordinate of the block.
    ythe y coordinate of the block.
    +
    +
    + +

    Definition at line 468 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockOff()

    + +
    +
    + + + + + + + + + + + +
    void DrawBlockOff (int x,
    int y )
    +
    + +

    Erase a block.

    +
    Parameters
    + + + +
    xthe x coordinate of the block.
    ythe y coordinate of the block.
    +
    +
    + +

    Definition at line 488 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockToggle()

    + +
    +
    + + + + + + + + + + + +
    void DrawBlockToggle (int x,
    int y )
    +
    + +

    Toggle a block. If it is filled, it will be erased. If it is empty, it will be filled.

    +
    Parameters
    + + + +
    xthe x coordinate of the block.
    ythe y coordinate of the block.
    +
    +
    + +

    Definition at line 509 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlock() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawBlock (int x,
    int y,
    bool value )
    +
    + +

    Draw a block.

    +
    Parameters
    + + + + +
    xthe x coordinate of the block.
    ythe y coordinate of the block.
    valuewhether the block is filled or not.
    +
    +
    + +

    Definition at line 438 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlock() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlock (int x,
    int y,
    bool value,
    const Stylizer & style )
    +
    + +

    Draw a block.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the block.
    ythe y coordinate of the block.
    valuewhether the block is filled or not.
    stylethe style of the block.
    +
    +
    + +

    Definition at line 456 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlock() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlock (int x,
    int y,
    bool value,
    const Color & color )
    +
    + +

    Draw a block.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the block.
    ythe y coordinate of the block.
    valuewhether the block is filled or not.
    colorthe color of the block.
    +
    +
    + +

    Definition at line 447 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockLine() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockLine (int x1,
    int y1,
    int x2,
    int y2 )
    +
    + +

    Draw a line made of block characters.

    +
    Parameters
    + + + + + +
    x1the x coordinate of the first point of the line.
    y1the y coordinate of the first point of the line.
    x2the x coordinate of the second point of the line.
    y2the y coordinate of the second point of the line.
    +
    +
    + +

    Definition at line 531 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockLine() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockLine (int x1,
    int y1,
    int x2,
    int y2,
    const Stylizer & style )
    +
    + +

    Draw a line made of block characters.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the first point of the line.
    y1the y coordinate of the first point of the line.
    x2the x coordinate of the second point of the line.
    y2the y coordinate of the second point of the line.
    stylethe style of the line.
    +
    +
    + +

    Definition at line 552 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockLine() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockLine (int x1,
    int y1,
    int x2,
    int y2,
    const Color & color )
    +
    + +

    Draw a line made of block characters.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the first point of the line.
    y1the y coordinate of the first point of the line.
    x2the x coordinate of the second point of the line.
    y2the y coordinate of the second point of the line.
    colorthe color of the line.
    +
    +
    + +

    Definition at line 541 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockCircle() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawBlockCircle (int x,
    int y,
    int radius )
    +
    + +

    Draw a circle made of block characters.

    +
    Parameters
    + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    +
    +
    + +

    Definition at line 592 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockCircle() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockCircle (int x,
    int y,
    int radius,
    const Stylizer & style )
    +
    + +

    Draw a circle made of block characters.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    stylethe style of the circle.
    +
    +
    + +

    Definition at line 611 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockCircle() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockCircle (int x,
    int y,
    int radius,
    const Color & color )
    +
    + +

    Draw a circle made of block characters.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    colorthe color of the circle.
    +
    +
    + +

    Definition at line 601 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockCircleFilled() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawBlockCircleFilled (int x,
    int y,
    int radius )
    +
    + +

    Draw a filled circle made of block characters.

    +
    Parameters
    + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    +
    +
    + +

    Definition at line 619 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockCircleFilled() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockCircleFilled (int x,
    int y,
    int radius,
    const Stylizer & s )
    +
    + +

    Draw a filled circle made of block characters.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    sthe style of the circle.
    +
    +
    + +

    Definition at line 641 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockCircleFilled() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockCircleFilled (int x,
    int y,
    int radius,
    const Color & color )
    +
    + +

    Draw a filled circle made of block characters.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the circle.
    ythe y coordinate of the center of the circle.
    radiusthe radius of the circle.
    colorthe color of the circle.
    +
    +
    + +

    Definition at line 628 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockEllipse() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockEllipse (int x,
    int y,
    int r1,
    int r2 )
    +
    + +

    Draw an ellipse made of block characters.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the ellipse.
    ythe y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    +
    +
    + +

    Definition at line 653 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockEllipse() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockEllipse (int x1,
    int y1,
    int r1,
    int r2,
    const Stylizer & s )
    +
    + +

    Draw an ellipse made of block characters.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the center of the ellipse.
    y1the y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    sthe style of the ellipse.
    +
    +
    + +

    Definition at line 678 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockEllipse() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockEllipse (int x,
    int y,
    int r1,
    int r2,
    const Color & color )
    +
    + +

    Draw an ellipse made of block characters.

    +
    Parameters
    + + + + + + +
    xthe x coordinate of the center of the ellipse.
    ythe y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    colorthe color of the ellipse.
    +
    +
    + +

    Definition at line 663 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockEllipseFilled() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockEllipseFilled (int x,
    int y,
    int r1,
    int r2 )
    +
    + +

    Draw a filled ellipse made of block characters.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the center of the ellipse.
    ythe y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    +
    +
    + +

    Definition at line 719 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockEllipseFilled() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockEllipseFilled (int x1,
    int y1,
    int r1,
    int r2,
    const Stylizer & s )
    +
    + +

    Draw a filled ellipse made of block characters.

    +
    Parameters
    + + + + + + +
    x1the x coordinate of the center of the ellipse.
    y1the y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    sthe style of the ellipse.
    +
    +
    + +

    Definition at line 744 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawBlockEllipseFilled() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void DrawBlockEllipseFilled (int x,
    int y,
    int r1,
    int r2,
    const Color & color )
    +
    + +

    Draw a filled ellipse made of block characters.

    +
    Parameters
    + + + + + + +
    xthe x coordinate of the center of the ellipse.
    ythe y coordinate of the center of the ellipse.
    r1the radius of the ellipse along the x axis.
    r2the radius of the ellipse along the y axis.
    colorthe color of the ellipse.
    +
    +
    + +

    Definition at line 729 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawText() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawText (int x,
    int y,
    const std::string & value )
    +
    + +

    Draw a piece of text.

    +
    Parameters
    + + + + +
    xthe x coordinate of the text.
    ythe y coordinate of the text.
    valuethe text to draw.
    +
    +
    + +

    Definition at line 785 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawText() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawText (int x,
    int y,
    const std::string & value,
    const Color & color )
    +
    + +

    Draw a piece of text.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the text.
    ythe y coordinate of the text.
    valuethe text to draw.
    colorthe color of the text.
    +
    +
    + +

    Definition at line 794 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawText() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void DrawText (int x,
    int y,
    const std::string & value,
    const Stylizer & style )
    +
    + +

    Draw a piece of text.

    +
    Parameters
    + + + + + +
    xthe x coordinate of the text.
    ythe y coordinate of the text.
    valuethe text to draw.
    stylethe style of the text.
    +
    +
    + +

    Definition at line 806 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawPixel()

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawPixel (int x,
    int y,
    const Pixel & p )
    +
    + +

    Directly draw a predefined pixel at the given coordinate.

    +
    Parameters
    + + + + +
    xthe x coordinate of the pixel.
    ythe y coordinate of the pixel.
    pthe pixel to draw.
    +
    +
    + +

    Definition at line 827 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ DrawImage()

    + +
    +
    + + + + + + + + + + + + + + + + +
    void DrawImage (int x,
    int y,
    const Image & image )
    +
    + +

    Draw a predefined image, with top-left corner at the given coordinate You can supply negative coordinates to align the image however you like - only the 'visible' portion will be drawn.

    +
    Parameters
    + + + + +
    xthe x coordinate corresponding to the top-left corner of the image.
    ythe y coordinate corresponding to the top-left corner of the image.
    imagethe image to draw.
    +
    +
    + +

    Definition at line 839 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ Style()

    + +
    +
    + + + + + + + + + + + + + + + + +
    void Style (int x,
    int y,
    const Stylizer & style )
    +
    + +

    Modify a pixel at a given location.

    +
    Parameters
    + + +
    stylea function that modifies the pixel.
    +
    +
    + +

    Definition at line 861 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::FlexboxConfig

    + +
    +
    + + + + +
    struct ftxui::FlexboxConfig
    +
    +

    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container.

    +

    It allows you to specify the direction of the flex items, whether they should wrap, how they should be justified along the main axis, and how they should be aligned along the cross axis. It also includes properties for gaps between flex items in both the main and cross axes. This structure is used to configure the layout behavior of flexbox containers in a terminal user interface.

    + +

    Definition at line 27 of file flexbox_config.hpp.

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

    Public Types

    enum class  Direction {
    +  Row +,
    +  RowInversed +,
    +  Column +,
    +  ColumnInversed +
    + }
     
    enum class  Wrap {
    +  NoWrap +,
    +  Wrap +,
    +  WrapInversed +
    + }
     
    enum class  JustifyContent {
    +  FlexStart +,
    +  FlexEnd +,
    +  Center +,
    +  Stretch +,
    +  SpaceBetween +,
    +  SpaceAround +,
    +  SpaceEvenly +
    + }
     
    enum class  AlignItems {
    +  FlexStart +,
    +  FlexEnd +,
    +  Center +,
    +  Stretch +
    + }
     
    enum class  AlignContent {
    +  FlexStart +,
    +  FlexEnd +,
    +  Center +,
    +  Stretch +,
    +  SpaceBetween +,
    +  SpaceAround +,
    +  SpaceEvenly +
    + }
     

    Public Member Functions

    FlexboxConfigSet (FlexboxConfig::Direction)
     Set the flexbox direction.
     
    FlexboxConfigSet (FlexboxConfig::Wrap)
     Set the flexbox wrap.
     
    FlexboxConfigSet (FlexboxConfig::JustifyContent)
     Set the flexbox justify content.
     
    FlexboxConfigSet (FlexboxConfig::AlignItems)
     Set the flexbox align items.
     
    FlexboxConfigSet (FlexboxConfig::AlignContent)
     Set the flexbox align content.
     
    FlexboxConfigSetGap (int gap_x, int gap_y)
     Set the flexbox flex direction.
     

    Public Attributes

    Direction direction = Direction::Row
     
    Wrap wrap = Wrap::Wrap
     
    JustifyContent justify_content = JustifyContent::FlexStart
     
    AlignItems align_items = AlignItems::FlexStart
     
    AlignContent align_content = AlignContent::FlexStart
     
    int gap_x = 0
     
    int gap_y = 0
     
    +

    Member Enumeration Documentation

    + +

    ◆ Direction

    + +
    +
    + + + + + +
    + + + + +
    enum class Direction
    +
    +strong
    +
    +

    This establishes the main-axis, thus defining the direction flex items are placed in the flex container. Flexbox is (aside wrapping) single-direction layout concept. Think of flex items as primarily laying out either in horizontal rows or vertical columns.

    + + + + + +
    Enumerator
    Row 

    Flex items are laid out in a row.

    +
    RowInversed 

    Flex items are laid out in a row, but in reverse order.

    +
    Column 

    Flex items are laid out in a column.

    +
    ColumnInversed 

    Flex items are laid out in a column, but in reverse order.

    +
    + +

    Definition at line 32 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ Wrap

    + +
    +
    + + + + + +
    + + + + +
    enum class Wrap
    +
    +strong
    +
    +

    By default, flex items will all try to fit onto one line. You can change that and allow the items to wrap as needed with this property.

    + + + + +
    Enumerator
    NoWrap 

    Flex items will all try to fit onto one line.

    +
    Wrap 

    Flex items will wrap onto multiple lines.

    +
    WrapInversed 

    Flex items will wrap onto multiple lines, but in reverse order.

    +
    + +

    Definition at line 43 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ JustifyContent

    + +
    +
    + + + + + +
    + + + + +
    enum class JustifyContent
    +
    +strong
    +
    +

    This defines the alignment along the main axis. It helps distribute extra free space leftover when either all the flex items on a line are inflexible, or are flexible but have reached their maximum size. It also exerts some control over the alignment of items when they overflow the line.

    + + + + + + + + +
    Enumerator
    FlexStart 

    Items are aligned to the start of flexbox's direction.

    +
    FlexEnd 

    Items are aligned to the end of flexbox's direction.

    +
    Center 

    Items are centered along the line.

    +
    Stretch 

    Items are stretched to fill the line.

    +
    SpaceBetween 

    Items are evenly distributed in the line; first item is on the start.

    +
    SpaceAround 

    Items are evenly distributed in the line with equal space around them. Note that visually the spaces aren’t equal, since all the items have equal space on both sides. The first item will have one unit of space against the container edge, but two units of space between the next item because that next item has its own spacing that applies.

    +
    SpaceEvenly 

    Items are distributed so that the spacing between any two items (and the space to the edges) is equal.

    +
    + +

    Definition at line 56 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ AlignItems

    + +
    +
    + + + + + +
    + + + + +
    enum class AlignItems
    +
    +strong
    +
    +

    This defines the default behavior for how flex items are laid out along the cross axis on the current line. Think of it as the justify-content version for the cross-axis (perpendicular to the main-axis).

    + + + + + +
    Enumerator
    FlexStart 

    items are placed at the start of the cross axis.

    +
    FlexEnd 

    items are placed at the end of the cross axis.

    +
    Center 

    items are centered along the cross axis.

    +
    Stretch 

    items are stretched to fill the cross axis.

    +
    + +

    Definition at line 83 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ AlignContent

    + +
    +
    + + + + + +
    + + + + +
    enum class AlignContent
    +
    +strong
    +
    + + + + + + + + +
    Enumerator
    FlexStart 

    items are placed at the start of the cross axis.

    +
    FlexEnd 

    items are placed at the end of the cross axis.

    +
    Center 

    items are centered along the cross axis.

    +
    Stretch 

    items are stretched to fill the cross axis.

    +
    SpaceBetween 

    items are evenly distributed in the cross axis.

    +
    SpaceAround 

    tems evenly distributed with equal space around each line.

    +
    SpaceEvenly 

    items are evenly distributed in the cross axis with equal space around them.

    +
    + +

    Definition at line 94 of file flexbox_config.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ Set() [1/5]

    + +
    +
    + + + + + + + +
    FlexboxConfig & Set (FlexboxConfig::Direction d)
    +
    + +

    Set the flexbox direction.

    + +

    Definition at line 9 of file flexbox_config.cpp.

    + +
    +
    + +

    ◆ Set() [2/5]

    + +
    +
    + + + + + + + +
    FlexboxConfig & Set (FlexboxConfig::Wrap w)
    +
    + +

    Set the flexbox wrap.

    + +

    Definition at line 15 of file flexbox_config.cpp.

    + +
    +
    + +

    ◆ Set() [3/5]

    + +
    +
    + + + + + + + +
    FlexboxConfig & Set (FlexboxConfig::JustifyContent j)
    +
    + +

    Set the flexbox justify content.

    + +

    Definition at line 21 of file flexbox_config.cpp.

    + +
    +
    + +

    ◆ Set() [4/5]

    + +
    +
    + + + + + + + +
    FlexboxConfig & Set (FlexboxConfig::AlignItems a)
    +
    + +

    Set the flexbox align items.

    + +

    Definition at line 27 of file flexbox_config.cpp.

    + +
    +
    + +

    ◆ Set() [5/5]

    + +
    +
    + + + + + + + +
    FlexboxConfig & Set (FlexboxConfig::AlignContent a)
    +
    + +

    Set the flexbox align content.

    + +

    Definition at line 33 of file flexbox_config.cpp.

    + +
    +
    + +

    ◆ SetGap()

    + +
    +
    + + + + + + + + + + + +
    FlexboxConfig & SetGap (int gap_x,
    int gap_y )
    +
    + +

    Set the flexbox flex direction.

    + +

    Definition at line 39 of file flexbox_config.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ direction

    + +
    +
    + + + + +
    Direction direction = Direction::Row
    +
    + +

    Definition at line 39 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ wrap

    + +
    +
    + + + + +
    Wrap wrap = Wrap::Wrap
    +
    + +

    Definition at line 49 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ justify_content

    + +
    +
    + + + + +
    JustifyContent justify_content = JustifyContent::FlexStart
    +
    + +

    Definition at line 78 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ align_items

    + +
    +
    + + + + +
    AlignItems align_items = AlignItems::FlexStart
    +
    + +

    Definition at line 89 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ align_content

    + +
    +
    + + + + +
    AlignContent align_content = AlignContent::FlexStart
    +
    + +

    Definition at line 105 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ gap_x

    + +
    +
    + + + + +
    int gap_x = 0
    +
    + +

    Definition at line 107 of file flexbox_config.hpp.

    + +
    +
    + +

    ◆ gap_y

    + +
    +
    + + + + +
    int gap_y = 0
    +
    + +

    Definition at line 108 of file flexbox_config.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::LinearGradient

    + +
    +
    + + + + +
    struct ftxui::LinearGradient
    +
    +

    A class representing the settings for linear-gradient color effect.

    +

    Example:

    +
    .Angle(45)
    +
    .Stop(Color::Red, 0.0)
    +
    .Stop(Color::Green, 0.5)
    +
    .Stop(Color::Blue, 1.0);
    +
    LinearGradient()
    Build the "empty" gradient. This is often followed by calls to LinearGradient::Angle() and LinearGrad...
    + + + +

    There are also shorthand constructors:

    +

    Definition at line 32 of file linear_gradient.hpp.

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

    Public Member Functions

     LinearGradient ()
     Build the "empty" gradient. This is often followed by calls to LinearGradient::Angle() and LinearGradient::Stop(). Example:
     
     LinearGradient (Color begin, Color end)
     Build a gradient with two colors.
     
     LinearGradient (float angle, Color begin, Color end)
     Build a gradient with two colors and an angle.
     
    LinearGradientAngle (float angle)
     Set the angle of the gradient.
     
    LinearGradientStop (Color color, float position)
     Add a color stop to the gradient.
     
    LinearGradientStop (Color color)
     Add a color stop to the gradient.
     

    Public Attributes

    float angle = 0.f
     
    std::vector< Stopstops
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ LinearGradient() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    LinearGradient ()
    +
    +default
    +
    + +

    Build the "empty" gradient. This is often followed by calls to LinearGradient::Angle() and LinearGradient::Stop(). Example:

    +
    auto gradient =
    + +
    .Angle(45)
    +
    .Stop(Color::Red, 0.0)
    +
    .Stop(Color::Green, 0.5)
    +
    .Stop(Color::Blue, 1.0);;
    +
    +
    +
    + +

    ◆ LinearGradient() [2/3]

    + +
    +
    + + + + + + + + + + + +
    LinearGradient (Color begin,
    Color end )
    +
    + +

    Build a gradient with two colors.

    +
    Parameters
    + + + +
    beginThe color at the beginning of the gradient.
    endThe color at the end of the gradient.
    +
    +
    + +

    Definition at line 197 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ LinearGradient() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    LinearGradient (float a,
    Color begin,
    Color end )
    +
    + +

    Build a gradient with two colors and an angle.

    +
    Parameters
    + + + + +
    aThe angle of the gradient.
    beginThe color at the beginning of the gradient.
    endThe color at the end of the gradient.
    +
    +
    + +

    Definition at line 204 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ Angle()

    + +
    +
    + + + + + + + +
    LinearGradient & Angle (float a)
    +
    + +

    Set the angle of the gradient.

    +
    Parameters
    + + +
    aThe angle of the gradient.
    +
    +
    +
    Returns
    The gradient.
    + +

    Definition at line 212 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ Stop() [1/2]

    + +
    +
    + + + + + + + + + + + +
    LinearGradient & Stop (Color c,
    float p )
    +
    + +

    Add a color stop to the gradient.

    +
    Parameters
    + + + +
    cThe color of the stop.
    pThe position of the stop.
    +
    +
    + +

    Definition at line 220 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ Stop() [2/2]

    + +
    +
    + + + + + + + +
    LinearGradient & Stop (Color c)
    +
    + +

    Add a color stop to the gradient.

    +
    Parameters
    + + +
    cThe color of the stop.
    +
    +
    +
    Returns
    The gradient.
    +
    Note
    The position of the stop is interpolated from nearby stops.
    + +

    Definition at line 229 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ angle

    + +
    +
    + + + + +
    float angle = 0.f
    +
    + +

    Definition at line 33 of file linear_gradient.hpp.

    + +
    +
    + +

    ◆ stops

    + +
    +
    + + + + +
    std::vector<Stop> stops
    +
    + +

    Definition at line 43 of file linear_gradient.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Node

    + +
    +
    + + + + +
    class ftxui::Node
    +
    +

    Node is the base class for all elements in the DOM tree.

    +

    It represents a single node in the document object model (DOM) and provides the basic structure for layout and rendering. It contains methods for computing layout requirements, setting the box dimensions, selecting content, rendering to the screen, and checking the layout status. It typically contains child elements, which are also instances of Node.

    +

    Users are expected to derive from this class to create custom elements.

    +

    A list of builtin elements can be found in the elements.hpp file.

    + +

    Definition at line 37 of file node.hpp.

    +
    + + Inheritance diagram for Node:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

     Node ()
     
     Node (Elements children)
     
     Node (const Node &)=delete
     
     Node (const Node &&)=delete
     
    Nodeoperator= (const Node &)=delete
     
    Nodeoperator= (const Node &&)=delete
     
    virtual ~Node ()
     
    virtual void ComputeRequirement ()
     Compute how much space an element needs.
     
    Requirement requirement ()
     
    virtual void SetBox (Box box)
     Assign a position and a dimension to an element for drawing.
     
    virtual void Select (Selection &selection)
     Compute the selection of an element.
     
    virtual void Render (Screen &screen)
     Display an element on a ftxui::Screen.
     
    virtual std::string GetSelectedContent (Selection &selection)
     
    virtual void Check (Status *status)
     

    Protected Attributes

    Elements children_
     
    Requirement requirement_
     
    Box box_
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ Node() [1/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Node ()
    +
    +default
    +
    + +
    +
    + +

    ◆ Node() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Node (Elements children)
    +
    +explicit
    +
    + +

    Definition at line 16 of file node.cpp.

    + +
    +
    + +

    ◆ Node() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Node (const Node & )
    +
    +delete
    +
    + +
    +
    + +

    ◆ Node() [4/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Node (const Node && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ ~Node()

    + +
    +
    + + + + + +
    + + + + + + + +
    ~Node ()
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Node & operator= (const Node & )
    +
    +delete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Node & operator= (const Node && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ ComputeRequirement()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ComputeRequirement ()
    +
    +virtual
    +
    + +

    Compute how much space an element needs.

    + +

    Reimplemented in NodeDecorator.

    + +

    Definition at line 20 of file node.cpp.

    + +
    +
    + +

    ◆ requirement()

    + +
    +
    + + + + + +
    + + + + + + + +
    Requirement requirement ()
    +
    +inline
    +
    + +

    Definition at line 52 of file node.hpp.

    + +
    +
    + +

    ◆ SetBox()

    + +
    +
    + + + + + +
    + + + + + + + +
    void SetBox (Box box)
    +
    +virtual
    +
    + +

    Assign a position and a dimension to an element for drawing.

    + +

    Reimplemented in NodeDecorator.

    + +

    Definition at line 41 of file node.cpp.

    + +
    +
    + +

    ◆ Select()

    + +
    +
    + + + + + +
    + + + + + + + +
    void Select (Selection & selection)
    +
    +virtual
    +
    + +

    Compute the selection of an element.

    + +

    Definition at line 46 of file node.cpp.

    + +
    +
    + +

    ◆ Render()

    + +
    +
    + + + + + +
    + + + + + + + +
    void Render (Screen & screen)
    +
    +virtual
    +
    + +

    Display an element on a ftxui::Screen.

    + +

    Definition at line 59 of file node.cpp.

    + +
    +
    + +

    ◆ GetSelectedContent()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::string GetSelectedContent (Selection & selection)
    +
    +virtual
    +
    + +

    Definition at line 72 of file node.cpp.

    + +
    +
    + +

    ◆ Check()

    + +
    +
    + + + + + +
    + + + + + + + +
    void Check (Status * status)
    +
    +virtual
    +
    + +

    Definition at line 65 of file node.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ children_

    + +
    +
    + + + + + +
    + + + + +
    Elements children_
    +
    +protected
    +
    + +

    Definition at line 79 of file node.hpp.

    + +
    +
    + +

    ◆ requirement_

    + +
    +
    + + + + + +
    + + + + +
    Requirement requirement_
    +
    +protected
    +
    + +

    Definition at line 80 of file node.hpp.

    + +
    +
    + +

    ◆ box_

    + +
    +
    + + + + + +
    + + + + +
    Box box_
    +
    +protected
    +
    + +

    Definition at line 81 of file node.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Requirement

    + +
    +
    + + + + +
    struct ftxui::Requirement
    +
    +

    Requirement is a structure that defines the layout requirements for a Node in the terminal user interface.

    +

    It specifies the minimum size required to fully draw the element,

    + +

    Definition at line 18 of file requirement.hpp.

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

    Public Attributes

    int min_x = 0
     
    int min_y = 0
     
    int flex_grow_x = 0
     
    int flex_grow_y = 0
     
    int flex_shrink_x = 0
     
    int flex_shrink_y = 0
     
    Focused focused
     
    +

    Member Data Documentation

    + +

    ◆ min_x

    + +
    +
    + + + + +
    int min_x = 0
    +
    + +

    Definition at line 20 of file requirement.hpp.

    + +
    +
    + +

    ◆ min_y

    + +
    +
    + + + + +
    int min_y = 0
    +
    + +

    Definition at line 21 of file requirement.hpp.

    + +
    +
    + +

    ◆ flex_grow_x

    + +
    +
    + + + + +
    int flex_grow_x = 0
    +
    + +

    Definition at line 24 of file requirement.hpp.

    + +
    +
    + +

    ◆ flex_grow_y

    + +
    +
    + + + + +
    int flex_grow_y = 0
    +
    + +

    Definition at line 25 of file requirement.hpp.

    + +
    +
    + +

    ◆ flex_shrink_x

    + +
    +
    + + + + +
    int flex_shrink_x = 0
    +
    + +

    Definition at line 26 of file requirement.hpp.

    + +
    +
    + +

    ◆ flex_shrink_y

    + +
    +
    + + + + +
    int flex_shrink_y = 0
    +
    + +

    Definition at line 27 of file requirement.hpp.

    + +
    +
    + +

    ◆ focused

    + +
    +
    + + + + +
    Focused focused
    +
    + +

    Definition at line 51 of file requirement.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Selection

    + +
    +
    + + + + +
    class ftxui::Selection
    +
    +

    Represents a selection in a terminal user interface.

    +

    Selection is a class that represents the two endpoints of a selection in a terminal user interface.

    + +

    Definition at line 22 of file selection.hpp.

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

    Public Member Functions

     Selection ()
     Create an empty selection.
     
     Selection (int start_x, int start_y, int end_x, int end_y)
     Create a selection.
     
    const BoxGetBox () const
     Get the box of the selection.
     
    Selection SaturateHorizontal (Box box)
     Saturate the selection to be inside the box. This is called by hbox to propagate the selection to its children.
     
    Selection SaturateVertical (Box box)
     Saturate the selection to be inside the box. This is called by vbox to propagate the selection to its children.
     
    bool IsEmpty () const
     
    void AddPart (const std::string &part, int y, int left, int right)
     
    std::string GetParts ()
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ Selection() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Selection ()
    +
    +default
    +
    + +

    Create an empty selection.

    + +
    +
    + +

    ◆ Selection() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Selection (int start_x,
    int start_y,
    int end_x,
    int end_y )
    +
    + +

    Create a selection.

    +
    Parameters
    + + + + + +
    start_xThe x coordinate of the start of the selection.
    start_yThe y coordinate of the start of the selection.
    end_xThe x coordinate of the end of the selection.
    end_yThe y coordinate of the end of the selection.
    +
    +
    + +

    Definition at line 34 of file src/ftxui/dom/selection.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ GetBox()

    + +
    +
    + + + + + + + +
    const Box & GetBox () const
    +
    + +

    Get the box of the selection.

    +
    Returns
    The box of the selection.
    + +

    Definition at line 67 of file src/ftxui/dom/selection.cpp.

    + +
    +
    + +

    ◆ SaturateHorizontal()

    + +
    +
    + + + + + + + +
    Selection SaturateHorizontal (Box box)
    +
    + +

    Saturate the selection to be inside the box. This is called by hbox to propagate the selection to its children.

    +
    Parameters
    + + +
    boxThe box to saturate the selection in.
    +
    +
    +
    Returns
    The saturated selection.
    + +

    Definition at line 75 of file src/ftxui/dom/selection.cpp.

    + +
    +
    + +

    ◆ SaturateVertical()

    + +
    +
    + + + + + + + +
    Selection SaturateVertical (Box box)
    +
    + +

    Saturate the selection to be inside the box. This is called by vbox to propagate the selection to its children.

    +
    Parameters
    + + +
    boxThe box to saturate the selection in.
    +
    +
    +
    Returns
    The saturated selection.
    + +

    Definition at line 113 of file src/ftxui/dom/selection.cpp.

    + +
    +
    + +

    ◆ IsEmpty()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool IsEmpty () const
    +
    +inline
    +
    + +

    Definition at line 31 of file selection.hpp.

    + +
    +
    + +

    ◆ AddPart()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void AddPart (const std::string & part,
    int y,
    int left,
    int right )
    +
    + +

    Definition at line 146 of file src/ftxui/dom/selection.cpp.

    + +
    +
    + +

    ◆ GetParts()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::string GetParts ()
    +
    +inline
    +
    + +

    Definition at line 34 of file selection.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Table

    + +
    +
    + + + + +
    class ftxui::Table
    +
    +

    Table is a utility to draw tables.

    +

    example

    auto table = Table({
    +
    {"X", "Y"},
    +
    {"-1", "1"},
    +
    {"+0", "0"},
    +
    {"+1", "1"},
    +
    });
    +
    +
    table.SelectAll().Border(LIGHT);
    +
    table.SelectRow(1).Border(DOUBLE);
    +
    table.SelectRow(1).SeparatorInternal(LIGHT);
    +
    +
    std::move(table).Render();
    +
    Table()
    Create an empty table.
    +
    @ DOUBLE
    Definition elements.hpp:39
    +
    @ LIGHT
    Definition elements.hpp:36
    +
    +

    Definition at line 36 of file table.hpp.

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

    Public Member Functions

     Table ()
     Create an empty table.
     
     Table (std::vector< std::vector< std::string > >)
     Create a table from a vector of vector of string.
     
     Table (std::vector< std::vector< Element > >)
     Create a table from a vector of vector of Element.
     
     Table (std::initializer_list< std::vector< std::string > > init)
     
    TableSelection SelectAll ()
     Select all the table.
     
    TableSelection SelectCell (int column, int row)
     Select a cell of the table.
     
    TableSelection SelectRow (int row_index)
     Select a row of the table.
     
    TableSelection SelectRows (int row_min, int row_max)
     Select a range of rows of the table.
     
    TableSelection SelectColumn (int column_index)
     Select a column of the table.
     
    TableSelection SelectColumns (int column_min, int column_max)
     Select a range of columns of the table.
     
    TableSelection SelectRectangle (int column_min, int column_max, int row_min, int row_max)
     Select a rectangle of the table.
     
    Element Render ()
     Render the table.
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ Table() [1/4]

    + +
    +
    + + + + + + + +
    Table ()
    +
    + +

    Create an empty table.

    + +

    Definition at line 47 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ Table() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Table (std::vector< std::vector< std::string > > input)
    +
    +explicit
    +
    + +

    Create a table from a vector of vector of string.

    +
    Parameters
    + + +
    inputThe input data.
    +
    +
    + +

    Definition at line 53 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ Table() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    Table (std::vector< std::vector< Element > > input)
    +
    +explicit
    +
    + +

    Create a table from a vector of vector of Element.

    +
    Parameters
    + + +
    inputThe input elements.
    +
    +
    + +

    Definition at line 69 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ Table() [4/4]

    + +
    +
    + + + + + + + +
    Table (std::initializer_list< std::vector< std::string > > init)
    +
    + +

    Definition at line 75 of file src/ftxui/dom/table.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ SelectAll()

    + +
    +
    + + + + + + + +
    TableSelection SelectAll ()
    +
    + +

    Select all the table.

    + +

    Definition at line 200 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ SelectCell()

    + +
    +
    + + + + + + + + + + + +
    TableSelection SelectCell (int column,
    int row )
    +
    + +

    Select a cell of the table.

    +
    Parameters
    + + + +
    columnThe column of the cell to select.
    rowThe row of the cell to select.
    +
    +
    +
    Note
    You can use negative index to select from the end.
    + +

    Definition at line 169 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ SelectRow()

    + +
    +
    + + + + + + + +
    TableSelection SelectRow (int index)
    +
    + +

    Select a row of the table.

    +
    Parameters
    + + +
    indexThe index of the row to select.
    +
    +
    +
    Note
    You can use negative index to select from the end.
    + +

    Definition at line 138 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ SelectRows()

    + +
    +
    + + + + + + + + + + + +
    TableSelection SelectRows (int row_min,
    int row_max )
    +
    + +

    Select a range of rows of the table.

    +
    Parameters
    + + + +
    row_minThe first row to select.
    row_maxThe last row to select.
    +
    +
    +
    Note
    You can use negative index to select from the end.
    + +

    Definition at line 146 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ SelectColumn()

    + +
    +
    + + + + + + + +
    TableSelection SelectColumn (int index)
    +
    + +

    Select a column of the table.

    +
    Parameters
    + + +
    indexThe index of the column to select.
    +
    +
    +
    Note
    You can use negative index to select from the end.
    + +

    Definition at line 153 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ SelectColumns()

    + +
    +
    + + + + + + + + + + + +
    TableSelection SelectColumns (int column_min,
    int column_max )
    +
    + +

    Select a range of columns of the table.

    +
    Parameters
    + + + +
    column_minThe first column to select.
    column_maxThe last column to select.
    +
    +
    +
    Note
    You can use negative index to select from the end.
    + +

    Definition at line 161 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ SelectRectangle()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    TableSelection SelectRectangle (int column_min,
    int column_max,
    int row_min,
    int row_max )
    +
    + +

    Select a rectangle of the table.

    +
    Parameters
    + + + + + +
    column_minThe first column to select.
    column_maxThe last column to select.
    row_minThe first row to select.
    row_maxThe last row to select.
    +
    +
    +
    Note
    You can use negative index to select from the end.
    + +

    Definition at line 179 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +

    ◆ Render()

    + +
    +
    + + + + + + + +
    Element Render ()
    +
    + +

    Render the table.

    +
    Returns
    The rendered table. This is an element you can draw.
    + +

    Definition at line 212 of file src/ftxui/dom/table.cpp.

    + +
    +
    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ Direction

    + +
    +
    + + + + + +
    + + + + +
    enum class Direction
    +
    +strong
    +
    + +

    Direction is an enumeration that represents the four cardinal directions.

    + + + + + +
    Enumerator
    Up 
    Down 
    Left 
    Right 
    + +

    Definition at line 13 of file direction.hpp.

    + +
    +
    + +

    ◆ BorderStyle

    + +
    +
    + + + + +
    enum BorderStyle
    +
    + +

    BorderStyle is an enumeration that represents the different styles of borders that can be applied to elements in the terminal UI.

    +

    BorderStyle is an enumeration that represents the different styles of borders that can be applied to elements in the terminal UI. It is used to define the visual appearance of borders around elements, such as windows, frames, or separators.

    + + + + + + + +
    Enumerator
    LIGHT 
    DASHED 
    HEAVY 
    DOUBLE 
    ROUNDED 
    EMPTY 
    + +

    Definition at line 35 of file elements.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ automerge()

    + +
    +
    + + + + + + + +
    Element automerge (Element child)
    +
    + +

    Enable character to be automatically merged with others nearby.

    + +

    Definition at line 17 of file automerge.cpp.

    + +
    +
    + +

    ◆ blink()

    + +
    +
    + + + + + + + +
    Element blink (Element child)
    +
    + +

    The text drawn alternates in between visible and hidden.

    + +

    Definition at line 33 of file blink.cpp.

    + +
    +
    + +

    ◆ bold()

    + +
    +
    + + + + + + + +
    Element bold (Element child)
    +
    + +

    Use a bold font, for elements with more emphasis.

    + +

    Definition at line 33 of file bold.cpp.

    + +
    +
    + +

    ◆ border()

    + +
    +
    + + + + + + + +
    Element border (Element child)
    +
    + +

    Draw a border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderEmpty
    +
    +borderRounded
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = border(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | border;
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element border(Element)
    Draw a border around the element.
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +

    +Output

    +
    ┌───────────┐
    +
    │The element│
    +
    └───────────┘
    +
    +

    Definition at line 227 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderWith()

    + +
    +
    + + + + + + + +
    Decorator borderWith (const Pixel & pixel)
    +
    + +

    Same as border but with a constant Pixel around the element.

    +
    See also
    border
    + +

    Definition at line 234 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderStyled() [1/3]

    + +
    +
    + + + + + + + +
    Decorator borderStyled (BorderStyle style)
    +
    + +

    Same as border but with different styles.

    +
    See also
    border
    + +

    Definition at line 243 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderStyled() [2/3]

    + +
    +
    + + + + + + + +
    Decorator borderStyled (Color foreground_color)
    +
    + +

    Same as border but with a foreground color.

    +
    See also
    border
    + +

    Definition at line 252 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderStyled() [3/3]

    + +
    +
    + + + + + + + + + + + +
    Decorator borderStyled (BorderStyle style,
    Color foreground_color )
    +
    + +

    Same as border but with a foreground color and a different style.

    +
    See also
    border
    + +

    Definition at line 262 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderDashed()

    + +
    +
    + + + + + + + +
    Element borderDashed (Element child)
    +
    + +

    Draw a dashed border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderRounded
    +
    +borderEmpty
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'borderDash' as a function...
    +
    Element document = borderDash(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | borderDAsh;
    +

    +Output

    +
    ┏╍╍╍╍╍╍╍╍╍╍╍╍╍╍┓
    +
    ╏The element ╏
    +
    ┗╍╍╍╍╍╍╍╍╍╍╍╍╍╍┛
    +
    +

    Definition at line 300 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderLight()

    + +
    +
    + + + + + + + +
    Element borderLight (Element child)
    +
    + +

    Draw a light border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderRounded
    +
    +borderEmpty
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'borderLight' as a function...
    +
    Element document = borderLight(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | borderLight;
    +
    Element borderLight(Element)
    Draw a light border around the element.
    +

    +Output

    +
    ┌──────────────┐
    +
    │The element │
    +
    └──────────────┘
    +
    +

    Definition at line 335 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderHeavy()

    + +
    +
    + + + + + + + +
    Element borderHeavy (Element child)
    +
    + +

    Draw a heavy border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderRounded
    +
    +borderEmpty
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'borderHeavy' as a function...
    +
    Element document = borderHeavy(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | borderHeavy;
    +
    Element borderHeavy(Element)
    Draw a heavy border around the element.
    +

    +Output

    +
    ┏━━━━━━━━━━━━━━┓
    +
    ┃The element ┃
    +
    ┗━━━━━━━━━━━━━━┛
    +
    +

    Definition at line 370 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderDouble()

    + +
    +
    + + + + + + + +
    Element borderDouble (Element child)
    +
    + +

    Draw a double border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderRounded
    +
    +borderEmpty
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'borderDouble' as a function...
    +
    Element document = borderDouble(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | borderDouble;
    +
    Element borderDouble(Element)
    Draw a double border around the element.
    +

    +Output

    +
    ╔══════════════╗
    +
    ║The element ║
    +
    ╚══════════════╝
    +
    +

    Definition at line 405 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderRounded()

    + +
    +
    + + + + + + + +
    Element borderRounded (Element child)
    +
    + +

    Draw a rounded border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderRounded
    +
    +borderEmpty
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'borderRounded' as a function...
    +
    Element document = borderRounded(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | borderRounded;
    +
    Element borderRounded(Element)
    Draw a rounded border around the element.
    +

    +Output

    +
    ╭──────────────╮
    +
    │The element │
    +
    ╰──────────────╯
    +
    +

    Definition at line 440 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ borderEmpty()

    + +
    +
    + + + + + + + +
    Element borderEmpty (Element child)
    +
    + +

    Draw an empty border around the element.

    +
    See also
    border
    +
    +borderLight
    +
    +borderDashed
    +
    +borderDouble
    +
    +borderHeavy
    +
    +borderRounded
    +
    +borderEmpty
    +
    +borderStyled
    +
    +borderWith
    +

    Add a border around an element

    +

    +Example

    +
    // Use 'borderRounded' as a function...
    +
    Element document = borderRounded(text("The element"));
    +
    +
    // ...Or as a 'pipe'.
    +
    Element document = text("The element") | borderRounded;
    +

    +Output

    +
    The element
    +
    +

    Definition at line 475 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ window()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Element window (Element title,
    Element content,
    BorderStyle border )
    +
    + +

    Draw window with a title and a border around the element.

    +
    Parameters
    + + + + +
    titleThe title of the window.
    contentThe element to be wrapped.
    borderThe style of the border. Default is ROUNDED.
    +
    +
    +
    See also
    border
    +

    +Example

    +
    Element document = window(text("Title"),
    +
    text("content")
    +
    );
    +
    +
    // With specifying border
    +
    Element document = window(text("Title"),
    +
    text("content"),
    + +
    );
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    @ ROUNDED
    Definition elements.hpp:40
    +

    +Output

    +
    ┌Title──┐
    +
    │content│
    +
    └───────┘
    +
    +

    Definition at line 507 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ clear_under()

    + +
    +
    + + + + + + + +
    Element clear_under (Element element)
    +
    + +

    Before drawing |child|, clear the pixels below. This is useful in combination with dbox.

    +
    See also
    ftxui::dbox
    + +

    Definition at line 38 of file clear_under.cpp.

    + +
    +
    + +

    ◆ color() [1/4]

    + +
    +
    + + + + + + + + + + + +
    Element color (Color color,
    Element child )
    +
    + +

    Set the foreground color of an element.

    +
    Parameters
    + + + +
    colorThe color of the output element.
    childThe input element.
    +
    +
    +
    Returns
    The output element colored.
    +

    +Example

    +
    Element document = color(Color::Green, text("Success")),
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    +

    Definition at line 81 of file dom/color.cpp.

    + +
    +
    + +

    ◆ bgcolor() [1/4]

    + +
    +
    + + + + + + + + + + + +
    Element bgcolor (Color color,
    Element child )
    +
    + +

    Set the background color of an element.

    +
    Parameters
    + + + +
    colorThe color of the output element.
    childThe input element.
    +
    +
    +
    Returns
    The output element colored.
    +

    +Example

    +
    Element document = bgcolor(Color::Green, text("Success")),
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    +

    Definition at line 96 of file dom/color.cpp.

    + +
    +
    + +

    ◆ color() [2/4]

    + +
    +
    + + + + + + + +
    Decorator color (Color c)
    +
    + +

    Decorate using a foreground color.

    +
    Parameters
    + + +
    cThe foreground color to be applied.
    +
    +
    +
    Returns
    The Decorator applying the color.
    +

    +Example

    +
    Element document = text("red") | color(Color::Red);
    +
    +

    Definition at line 110 of file dom/color.cpp.

    + +
    +
    + +

    ◆ bgcolor() [2/4]

    + +
    +
    + + + + + + + +
    Decorator bgcolor (Color color)
    +
    + +

    Decorate using a background color.

    +
    Parameters
    + + +
    colorThe background color to be applied.
    +
    +
    +
    Returns
    The Decorator applying the color.
    +

    +Example

    +
    Element document = text("red") | bgcolor(Color::Red);
    +
    +

    Definition at line 124 of file dom/color.cpp.

    + +
    +
    + +

    ◆ hcenter()

    + +
    +
    + + + + + + + +
    Element hcenter (Element child)
    +
    + +

    Center an element horizontally.

    +
    Parameters
    + + +
    childThe decorated element.
    +
    +
    +
    Returns
    The centered element.
    + +

    Definition at line 15 of file composite_decorator.cpp.

    + +
    +
    + +

    ◆ vcenter()

    + +
    +
    + + + + + + + +
    Element vcenter (Element child)
    +
    + +

    Center an element vertically.

    +
    Parameters
    + + +
    childThe decorated element.
    +
    +
    +
    Returns
    The centered element.
    + +

    Definition at line 23 of file composite_decorator.cpp.

    + +
    +
    + +

    ◆ center()

    + +
    +
    + + + + + + + +
    Element center (Element child)
    +
    + +

    Center an element horizontally and vertically.

    +
    Parameters
    + + +
    childThe decorated element.
    +
    +
    +
    Returns
    The centered element.
    + +

    Definition at line 31 of file composite_decorator.cpp.

    + +
    +
    + +

    ◆ align_right()

    + +
    +
    + + + + + + + +
    Element align_right (Element child)
    +
    + +

    Align an element on the right side.

    +
    Parameters
    + + +
    childThe decorated element.
    +
    +
    +
    Returns
    The right aligned element.
    + +

    Definition at line 39 of file composite_decorator.cpp.

    + +
    +
    + +

    ◆ dbox()

    + +
    +
    + + + + + + + +
    Element dbox (Elements children_)
    +
    + +

    Stack several element on top of each other.

    +
    Parameters
    + + +
    children_The input element.
    +
    +
    +
    Returns
    The right aligned element.
    + +

    Definition at line 55 of file src/ftxui/dom/dbox.cpp.

    + +
    +
    + +

    ◆ dim()

    + +
    +
    + + + + + + + +
    Element dim (Element child)
    +
    + +

    Use a light font, for elements with less emphasis.

    + +

    Definition at line 33 of file dim.cpp.

    + +
    +
    + +

    ◆ filler()

    + +
    +
    + + + + + + + +
    Element filler ()
    +
    + +

    An element that will take expand proportionally to the space left in a container.

    + +

    Definition at line 98 of file flex.cpp.

    + +
    +
    + +

    ◆ flex()

    + +
    +
    + + + + + + + +
    Element flex (Element child)
    +
    + +

    Make a child element to expand proportionally to the space left in a container.

    +

    +Examples:

    +
    +
    text("left") | border ,
    +
    text("middle") | border | flex,
    +
    text("right") | border,
    +
    });
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +

    +Output:

    +
    ┌────┐┌─────────────────────────────────────────────────────────┐┌─────┐
    +
    │left││middle ││right│
    +
    └────┘└─────────────────────────────────────────────────────────┘└─────┘
    +
    +

    Definition at line 123 of file flex.cpp.

    + +
    +
    + +

    ◆ xflex()

    + +
    +
    + + + + + + + +
    Element xflex (Element child)
    +
    + +

    Expand/Minimize if possible/needed on the X axis.

    + +

    Definition at line 129 of file flex.cpp.

    + +
    +
    + +

    ◆ yflex()

    + +
    +
    + + + + + + + +
    Element yflex (Element child)
    +
    + +

    Expand/Minimize if possible/needed on the Y axis.

    + +

    Definition at line 135 of file flex.cpp.

    + +
    +
    + +

    ◆ flex_grow()

    + +
    +
    + + + + + + + +
    Element flex_grow (Element child)
    +
    + +

    Expand if possible.

    + +

    Definition at line 141 of file flex.cpp.

    + +
    +
    + +

    ◆ xflex_grow()

    + +
    +
    + + + + + + + +
    Element xflex_grow (Element child)
    +
    + +

    Expand if possible on the X axis.

    + +

    Definition at line 147 of file flex.cpp.

    + +
    +
    + +

    ◆ yflex_grow()

    + +
    +
    + + + + + + + +
    Element yflex_grow (Element child)
    +
    + +

    Expand if possible on the Y axis.

    + +

    Definition at line 153 of file flex.cpp.

    + +
    +
    + +

    ◆ flex_shrink()

    + +
    +
    + + + + + + + +
    Element flex_shrink (Element child)
    +
    + +

    Minimize if needed.

    + +

    Definition at line 159 of file flex.cpp.

    + +
    +
    + +

    ◆ xflex_shrink()

    + +
    +
    + + + + + + + +
    Element xflex_shrink (Element child)
    +
    + +

    Minimize if needed on the X axis.

    + +

    Definition at line 165 of file flex.cpp.

    + +
    +
    + +

    ◆ yflex_shrink()

    + +
    +
    + + + + + + + +
    Element yflex_shrink (Element child)
    +
    + +

    Minimize if needed on the Y axis.

    + +

    Definition at line 171 of file flex.cpp.

    + +
    +
    + +

    ◆ notflex()

    + +
    +
    + + + + + + + +
    Element notflex (Element child)
    +
    + +

    Make the element not flexible.

    + +

    Definition at line 177 of file flex.cpp.

    + +
    +
    + +

    ◆ focusPositionRelative()

    + +
    +
    + + + + + + + + + + + +
    Decorator focusPositionRelative (float x,
    float y )
    +
    + +

    Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in proportion of the requested size.

    +

    For instance:

      +
    • (0, 0) means that the view is scrolled toward the upper left.
    • +
    • (1, 0) means that the view is scrolled toward the upper right.
    • +
    • (0, 1) means that the view is scrolled toward the bottom left.
    • +
    +

    +Example

    +
    Element document = huge_document()
    + +
    | frame;
    +
    Decorator focusPositionRelative(float x, float y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    Element frame(Element)
    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
    Definition frame.cpp:118
    +
    +

    Definition at line 31 of file src/ftxui/dom/focus.cpp.

    + +
    +
    + +

    ◆ focusPosition()

    + +
    +
    + + + + + + + + + + + +
    Decorator focusPosition (int x,
    int y )
    +
    + +

    Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in the numbers of cells.

    +

    +Example

    +
    Element document = huge_document()
    +
    | focusPosition(10, 10)
    +
    | frame;
    +
    Decorator focusPosition(int x, int y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    +

    Definition at line 69 of file src/ftxui/dom/focus.cpp.

    + +
    +
    + +

    ◆ focus()

    + +
    +
    + + + + + + + +
    Element focus (Element child)
    +
    + +

    Set the child to be the one focused among its siblings.

    +
    Parameters
    + + +
    childThe element to be focused.
    +
    +
    + +

    Definition at line 101 of file frame.cpp.

    + +
    +
    + +

    ◆ focusCursorBlock()

    + +
    +
    + + + + + + + +
    Element focusCursorBlock (Element child)
    +
    + +

    Same as focus, but set the cursor shape to be a still block.

    +
    See also
    focus
    +
    +focusCursorBlock
    +
    +focusCursorBlockBlinking
    +
    +focusCursorBar
    +
    +focusCursorBarBlinking
    +
    +focusCursorUnderline
    +
    +focusCursorUnderlineBlinking
    + +

    Definition at line 147 of file frame.cpp.

    + +
    +
    + +

    ◆ focusCursorBlockBlinking()

    + +
    +
    + + + + + + + +
    Element focusCursorBlockBlinking (Element child)
    +
    + +

    Same as focus, but set the cursor shape to be a blinking block.

    +
    See also
    focus
    +
    +focusCursorBlock
    +
    +focusCursorBlockBlinking
    +
    +focusCursorBar
    +
    +focusCursorBarBlinking
    +
    +focusCursorUnderline
    +
    +focusCursorUnderlineBlinking
    + +

    Definition at line 161 of file frame.cpp.

    + +
    +
    + +

    ◆ focusCursorBar()

    + +
    +
    + + + + + + + +
    Element focusCursorBar (Element child)
    +
    + +

    Same as focus, but set the cursor shape to be a still block.

    +
    See also
    focus
    +
    +focusCursorBlock
    +
    +focusCursorBlockBlinking
    +
    +focusCursorBar
    +
    +focusCursorBarBlinking
    +
    +focusCursorUnderline
    +
    +focusCursorUnderlineBlinking
    + +

    Definition at line 175 of file frame.cpp.

    + +
    +
    + +

    ◆ focusCursorBarBlinking()

    + +
    +
    + + + + + + + +
    Element focusCursorBarBlinking (Element child)
    +
    + +

    Same as focus, but set the cursor shape to be a blinking bar.

    +
    See also
    focus
    +
    +focusCursorBlock
    +
    +focusCursorBlockBlinking
    +
    +focusCursorBar
    +
    +focusCursorBarBlinking
    +
    +focusCursorUnderline
    +
    +focusCursorUnderlineBlinking
    + +

    Definition at line 189 of file frame.cpp.

    + +
    +
    + +

    ◆ focusCursorUnderline()

    + +
    +
    + + + + + + + +
    Element focusCursorUnderline (Element child)
    +
    + +

    Same as focus, but set the cursor shape to be a still underline.

    +
    See also
    focus
    +
    +focusCursorBlock
    +
    +focusCursorBlockBlinking
    +
    +focusCursorBar
    +
    +focusCursorBarBlinking
    +
    +focusCursorUnderline
    +
    +focusCursorUnderlineBlinking
    + +

    Definition at line 203 of file frame.cpp.

    + +
    +
    + +

    ◆ focusCursorUnderlineBlinking()

    + +
    +
    + + + + + + + +
    Element focusCursorUnderlineBlinking (Element child)
    +
    + +

    Same as focus, but set the cursor shape to be a blinking underline.

    +
    See also
    focus
    +
    +focusCursorBlock
    +
    +focusCursorBlockBlinking
    +
    +focusCursorBar
    +
    +focusCursorBarBlinking
    +
    +focusCursorUnderline
    +
    +focusCursorUnderlineBlinking
    + +

    Definition at line 217 of file frame.cpp.

    + +
    +
    + +

    ◆ gaugeDirection()

    + +
    +
    + + + + + + + + + + + +
    Element gaugeDirection (float progress,
    Direction direction )
    +
    + +

    Draw a high definition progress bar progressing in specified direction.

    +
    Parameters
    + + + +
    progressThe proportion of the area to be filled. Belong to [0,1].
    directionDirection of progress bars progression.
    +
    +
    + +

    Definition at line 169 of file src/ftxui/dom/gauge.cpp.

    + +
    +
    + +

    ◆ gaugeRight()

    + +
    +
    + + + + + + + +
    Element gaugeRight (float progress)
    +
    + +

    Draw a high definition progress bar progressing from left to right.

    +
    Parameters
    + + +
    progressThe proportion of the area to be filled. Belong to [0,1].
    +
    +
    +

    +Example

    +

    A gauge. It can be used to represent a progress bar.

    +
    Element gaugeRight(float progress)
    Draw a high definition progress bar progressing from left to right.
    +

    +Output

    +
    ┌──────────────────────────────────────────────────────────────────────────┐
    +
    │█████████████████████████████████████ │
    +
    └──────────────────────────────────────────────────────────────────────────┘
    +
    +

    Definition at line 191 of file src/ftxui/dom/gauge.cpp.

    + +
    +
    + +

    ◆ gaugeLeft()

    + +
    +
    + + + + + + + +
    Element gaugeLeft (float progress)
    +
    + +

    Draw a high definition progress bar progressing from right to left.

    +
    Parameters
    + + +
    progressThe proportion of the area to be filled. Belong to [0,1].
    +
    +
    +

    +Example

    +

    A gauge. It can be used to represent a progress bar.

    +
    Element gaugeLeft(float progress)
    Draw a high definition progress bar progressing from right to left.
    +

    +Output

    +
    ┌──────────────────────────────────────────────────────────────────────────┐
    +
    │ █████████████████████████████████████│
    +
    └──────────────────────────────────────────────────────────────────────────┘
    +
    +

    Definition at line 213 of file src/ftxui/dom/gauge.cpp.

    + +
    +
    + +

    ◆ gaugeUp()

    + +
    +
    + + + + + + + +
    Element gaugeUp (float progress)
    +
    + +

    Draw a high definition progress bar progressing from bottom to top.

    +
    Parameters
    + + +
    progressThe proportion of the area to be filled. Belong to [0,1].
    +
    +
    +

    +Example

    +

    A gauge. It can be used to represent a progress bar.

    +
    Element gaugeUp(float progress)
    Draw a high definition progress bar progressing from bottom to top.
    +

    +Output

    +
    ┌─┐
    +
    │ │
    +
    │ │
    +
    │ │
    +
    │ │
    +
    │█│
    +
    │█│
    +
    │█│
    +
    │█│
    +
    └─┘
    +
    +

    Definition at line 242 of file src/ftxui/dom/gauge.cpp.

    + +
    +
    + +

    ◆ gaugeDown()

    + +
    +
    + + + + + + + +
    Element gaugeDown (float progress)
    +
    + +

    Draw a high definition progress bar progressing from top to bottom.

    +
    Parameters
    + + +
    progressThe proportion of the area to be filled. Belong to [0,1].
    +
    +
    +

    +Example

    +

    A gauge. It can be used to represent a progress bar.

    +
    Element gaugeDown(float progress)
    Draw a high definition progress bar progressing from top to bottom.
    +

    +Output

    +
    ┌─┐
    +
    │█│
    +
    │█│
    +
    │█│
    +
    │█│
    +
    │ │
    +
    │ │
    +
    │ │
    +
    │ │
    +
    └─┘
    +
    +

    Definition at line 271 of file src/ftxui/dom/gauge.cpp.

    + +
    +
    + +

    ◆ gauge()

    + +
    +
    + + + + + + + +
    Element gauge (float progress)
    +
    + +

    Draw a high definition progress bar.

    +
    Parameters
    + + +
    progressThe proportion of the area to be filled. Belong to [0,1].
    +
    +
    +

    +Example

    +

    A gauge. It can be used to represent a progress bar.

    +
    Element gauge(float progress)
    Draw a high definition progress bar.
    +

    +Output

    +
    ┌──────────────────────────────────────────────────────────────────────────┐
    +
    │█████████████████████████████████████ │
    +
    └──────────────────────────────────────────────────────────────────────────┘
    +
    +

    Definition at line 293 of file src/ftxui/dom/gauge.cpp.

    + +
    +
    + +

    ◆ hyperlink() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Element hyperlink (std::string link,
    Element child )
    +
    + +

    Make the rendered area clickable using a web browser. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.

    +
    Parameters
    + + + +
    linkThe link
    childThe input element.
    +
    +
    +
    Returns
    The output element with the link.
    +

    +Example

    +
    Element document =
    +
    hyperlink("https://github.com/ArthurSonzogni/FTXUI", "link");
    +
    Decorator hyperlink(std::string link)
    Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported onl...
    Definition hyperlink.cpp:70
    +
    +

    Definition at line 51 of file hyperlink.cpp.

    + +
    +
    + +

    ◆ hyperlink() [2/2]

    + +
    +
    + + + + + + + +
    Decorator hyperlink (std::string link)
    +
    + +

    Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.

    +
    Parameters
    + + +
    linkThe link to redirect the users to.
    +
    +
    +
    Returns
    The Decorator applying the hyperlink.
    +

    +Example

    +
    Element document =
    +
    text("red") | hyperlink("https://github.com/Arthursonzogni/FTXUI");
    +
    +

    Definition at line 70 of file hyperlink.cpp.

    + +
    +
    + +

    ◆ inverted()

    + +
    +
    + + + + + + + +
    Element inverted (Element child)
    +
    + +

    Add a filter that will invert the foreground and the background colors.

    + +

    Definition at line 34 of file inverted.cpp.

    + +
    +
    + +

    ◆ italic()

    + +
    +
    + + + + + + + +
    Element italic (Element child)
    +
    + +

    Apply a underlinedDouble to text.

    + +

    Definition at line 17 of file italic.cpp.

    + +
    +
    + +

    ◆ color() [3/4]

    + +
    +
    + + + + + + + + + + + +
    Element color (const LinearGradient & gradient,
    Element child )
    +
    + +

    Set the foreground color of an element with linear-gradient effect.

    +
    Parameters
    + + + +
    gradientThe gradient effect to be applied on the output element.
    childThe input element.
    +
    +
    +
    Returns
    The output element colored.
    +

    +Example

    +
    +
    A class representing the settings for linear-gradient color effect.
    +
    +

    Definition at line 245 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ bgcolor() [3/4]

    + +
    +
    + + + + + + + + + + + +
    Element bgcolor (const LinearGradient & gradient,
    Element child )
    +
    + +

    Set the background color of an element with linear-gradient effect.

    +
    Parameters
    + + + +
    gradientThe gradient effect to be applied on the output element.
    childThe input element.
    +
    +
    +
    Returns
    The output element colored.
    +

    +Example

    + +

    Definition at line 261 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ color() [4/4]

    + +
    +
    + + + + + + + +
    Decorator color (const LinearGradient & gradient)
    +
    + +

    Decorate using a linear-gradient effect on the foreground color.

    +
    Parameters
    + + +
    gradientThe gradient effect to be applied on the output element.
    +
    +
    +
    Returns
    The Decorator applying the color.
    +

    +Example

    + +

    Definition at line 276 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ bgcolor() [4/4]

    + +
    +
    + + + + + + + +
    Decorator bgcolor (const LinearGradient & gradient)
    +
    + +

    Decorate using a linear-gradient effect on the background color.

    +
    Parameters
    + + +
    gradientThe gradient effect to be applied on the output element.
    +
    +
    +
    Returns
    The Decorator applying the color.
    +

    +Example

    + +

    Definition at line 291 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ Render() [1/2]

    + +
    +
    + + + + + + + + + + + +
    void Render (Screen & screen,
    const Element & element )
    +
    + +

    Display an element on a ftxui::Screen.

    + +

    Definition at line 84 of file node.cpp.

    + +
    +
    + +

    ◆ Render() [2/2]

    + +
    +
    + + + + + + + + + + + +
    void Render (Screen & screen,
    Node * node )
    +
    + +

    Display an element on a ftxui::Screen.

    + +

    Definition at line 91 of file node.cpp.

    + +
    +
    + +

    ◆ paragraph()

    + +
    +
    + + + + + + + +
    Element paragraph (const std::string & the_text)
    +
    + +

    Return an element drawing the paragraph on multiple lines.

    +
    See also
    flexbox.
    + +

    Definition at line 41 of file src/ftxui/dom/paragraph.cpp.

    + +
    +
    + +

    ◆ paragraphAlignLeft()

    + +
    +
    + + + + + + + +
    Element paragraphAlignLeft (const std::string & the_text)
    +
    + +

    Return an element drawing the paragraph on multiple lines, aligned on the left.

    +
    See also
    flexbox.
    + +

    Definition at line 49 of file src/ftxui/dom/paragraph.cpp.

    + +
    +
    + +

    ◆ paragraphAlignRight()

    + +
    +
    + + + + + + + +
    Element paragraphAlignRight (const std::string & the_text)
    +
    + +

    Return an element drawing the paragraph on multiple lines, aligned on the right.

    +
    See also
    flexbox.
    + +

    Definition at line 60 of file src/ftxui/dom/paragraph.cpp.

    + +
    +
    + +

    ◆ paragraphAlignCenter()

    + +
    +
    + + + + + + + +
    Element paragraphAlignCenter (const std::string & the_text)
    +
    + +

    Return an element drawing the paragraph on multiple lines, aligned on the center.

    +
    See also
    flexbox.
    + +

    Definition at line 72 of file src/ftxui/dom/paragraph.cpp.

    + +
    +
    + +

    ◆ paragraphAlignJustify()

    + +
    +
    + + + + + + + +
    Element paragraphAlignJustify (const std::string & the_text)
    +
    + +

    Return an element drawing the paragraph on multiple lines, aligned using a justified alignment. the center.

    +
    See also
    flexbox.
    + +

    Definition at line 85 of file src/ftxui/dom/paragraph.cpp.

    + +
    +
    + +

    ◆ vscroll_indicator()

    + +
    +
    + + + + + + + +
    Element vscroll_indicator (Element child)
    +
    + +

    Display a vertical scrollbar on the right. Colors follow the content.

    + +

    Definition at line 21 of file scroll_indicator.cpp.

    + +
    +
    + +

    ◆ hscroll_indicator()

    + +
    +
    + + + + + + + +
    Element hscroll_indicator (Element child)
    +
    + +

    Display a horizontal scrollbar at the bottom. Colors follow the content.

    + +

    Definition at line 76 of file scroll_indicator.cpp.

    + +
    +
    + +

    ◆ separator() [1/2]

    + +
    +
    + + + + + + + +
    Element separator ()
    +
    + +

    Draw a vertical or horizontal separation in between two other elements.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +

    +Output

    +
    up
    +
    ────
    +
    down
    +
    +

    Definition at line 134 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorStyled()

    + +
    +
    + + + + + + + +
    Element separatorStyled (BorderStyle style)
    +
    + +

    Draw a vertical or horizontal separation in between two other elements.

    +
    Parameters
    + + +
    stylethe style of the separator.
    +
    +
    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +
    Element separatorStyled(BorderStyle)
    Draw a vertical or horizontal separation in between two other elements.
    +

    +Output

    +
    up
    +
    ════
    +
    down
    +
    +

    Definition at line 172 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorLight()

    + +
    +
    + + + + + + + +
    Element separatorLight ()
    +
    + +

    Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +
    Element separatorLight()
    Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
    +

    +Output

    +
    up
    +
    ────
    +
    down
    +
    +

    Definition at line 209 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorDashed()

    + +
    +
    + + + + + + + +
    Element separatorDashed ()
    +
    + +

    Draw a vertical or horizontal separation in between two other elements, using the DASHED style.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +

    +Output

    +
    up
    +
    ╍╍╍╍
    +
    down
    +
    +

    Definition at line 246 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorHeavy()

    + +
    +
    + + + + + + + +
    Element separatorHeavy ()
    +
    + +

    Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +
    Element separatorHeavy()
    Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
    +

    +Output

    +
    up
    +
    ━━━━
    +
    down
    +
    +

    Definition at line 283 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorDouble()

    + +
    +
    + + + + + + + +
    Element separatorDouble ()
    +
    + +

    Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +
    Element separatorDouble()
    Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
    +

    +Output

    +
    up
    +
    ════
    +
    down
    +
    +

    Definition at line 320 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorEmpty()

    + +
    +
    + + + + + + + +
    Element separatorEmpty ()
    +
    + +

    Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +

    +Output

    +
    up
    +
    +
    down
    +
    +

    Definition at line 357 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorCharacter()

    + +
    +
    + + + + + + + +
    Element separatorCharacter (std::string value)
    +
    + +

    Draw a vertical or horizontal separation in between two other elements.

    +
    Parameters
    + + +
    valuethe character to fill the separator area.
    +
    +
    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorDouble
    +
    +separatorHeavy
    +
    +separatorEmpty
    +
    +separatorRounded
    +
    +separatorStyled
    +
    +separatorCharacter
    +

    Add a visual separation in between two elements.

    +

    +Example

    +
    // Use 'border' as a function...
    +
    Element document = vbox({
    +
    text("up"),
    + +
    text("down"),
    +
    });
    +

    +Output

    +
    up
    +
    ────
    +
    down
    +
    +

    Definition at line 395 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separator() [2/2]

    + +
    +
    + + + + + + + +
    Element separator (Pixel pixel)
    +
    + +

    Draw a separator in between two element filled with a given pixel.

    +
    See also
    separator
    +
    +separatorLight
    +
    +separatorDashed
    +
    +separatorHeavy
    +
    +separatorDouble
    +
    +separatorStyled
    +

    +Example

    +
    Pixel empty;
    +
    Element document = vbox({
    +
    text("Up"),
    +
    separator(empty),
    +
    text("Down"),
    +
    })
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +

    +Output

    +
    Up
    +
    +
    Down
    +
    +

    Definition at line 426 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Decorator size (WidthOrHeight direction,
    Constraint constraint,
    int value )
    +
    + +

    Apply a constraint on the size of an element.

    +
    Parameters
    + + + + +
    directionWhether the WIDTH of the HEIGHT of the element must be constrained.
    constraintThe type of constaint.
    valueThe value.
    +
    +
    + +

    Definition at line 89 of file src/ftxui/dom/size.cpp.

    + +
    +
    + +

    ◆ spinner()

    + +
    +
    + + + + + + + + + + + +
    Element spinner (int charset_index,
    size_t image_index )
    +
    + +

    Useful to represent the effect of time and/or events. This displays an ASCII art "video".

    +
    Parameters
    + + + +
    charset_indexThe type of "video".
    image_indexThe "frame" of the video. You need to increase this for every "step".
    +
    +
    + +

    Definition at line 282 of file src/ftxui/dom/spinner.cpp.

    + +
    +
    + +

    ◆ strikethrough()

    + +
    +
    + + + + + + + +
    Element strikethrough (Element child)
    +
    + +

    Apply a strikethrough to text.

    + +

    Definition at line 17 of file strikethrough.cpp.

    + +
    +
    + +

    ◆ text() [1/2]

    + +
    +
    + + + + + + + +
    Element text (std::string text)
    +
    + +

    Display a piece of UTF8 encoded unicode text.

    +
    See also
    ftxui::to_wstring
    +

    +Example

    +
    Element document = text("Hello world!");
    +

    +Output

    +
    Hello world!
    +
    +

    Definition at line 141 of file text.cpp.

    + +
    +
    + +

    ◆ text() [2/2]

    + +
    +
    + + + + + + + +
    Element text (std::wstring text)
    +
    + +

    Display a piece of unicode text.

    +
    See also
    ftxui::to_wstring
    +

    +Example

    +
    Element document = text(L"Hello world!");
    +

    +Output

    +
    Hello world!
    +
    +

    Definition at line 160 of file text.cpp.

    + +
    +
    + +

    ◆ vtext() [1/2]

    + +
    +
    + + + + + + + +
    Element vtext (std::string text)
    +
    + +

    Display a piece of unicode text vertically.

    +
    See also
    ftxui::to_wstring
    +

    +Example

    +
    Element document = vtext("Hello world!");
    +
    Element vtext(std::wstring text)
    Display a piece unicode text vertically.
    Definition text.cpp:220
    +

    +Output

    +
    H
    +
    e
    +
    l
    +
    l
    +
    o
    +
    +
    w
    +
    o
    +
    r
    +
    l
    +
    d
    +
    !
    +
    +

    Definition at line 190 of file text.cpp.

    + +
    +
    + +

    ◆ vtext() [2/2]

    + +
    +
    + + + + + + + +
    Element vtext (std::wstring text)
    +
    + +

    Display a piece unicode text vertically.

    +
    See also
    ftxui::to_wstring
    +

    +Example

    +
    Element document = vtext(L"Hello world!");
    +

    +Output

    +
    H
    +
    e
    +
    l
    +
    l
    +
    o
    +
    +
    w
    +
    o
    +
    r
    +
    l
    +
    d
    +
    !
    +
    +

    Definition at line 220 of file text.cpp.

    + +
    +
    + +

    ◆ underlined()

    + +
    +
    + + + + + + + +
    Element underlined (Element child)
    +
    + +

    Underline the given element.

    + +

    Definition at line 33 of file underlined.cpp.

    + +
    +
    + +

    ◆ underlinedDouble()

    + +
    +
    + + + + + + + +
    Element underlinedDouble (Element child)
    +
    + +

    Apply a underlinedDouble to text.

    + +

    Definition at line 17 of file underlined_double.cpp.

    + +
    +
    + +

    ◆ nothing()

    + +
    +
    + + + + + + + +
    Element nothing (Element element)
    +
    + +

    A decoration doing absolutely nothing.

    + +

    Definition at line 28 of file dom/util.cpp.

    + +
    +
    + +

    ◆ operator|() [1/3]

    + +
    +
    + + + + + + + + + + + +
    Decorator operator| (Decorator a,
    Decorator b )
    +
    + +

    Compose two decorator into one.

    +

    +Example

    +
    auto decorator = bold | blink;
    +
    Element blink(Element)
    The text drawn alternates in between visible and hidden.
    Definition blink.cpp:33
    +
    +

    Definition at line 40 of file dom/util.cpp.

    + +
    +
    + +

    ◆ operator|() [2/3]

    + +
    +
    + + + + + + + + + + + +
    Elements operator| (Elements elements,
    Decorator decorator )
    +
    + +

    From a set of element, apply a decorator to every elements.

    +
    Returns
    the set of decorated element.
    + +

    Definition at line 48 of file dom/util.cpp.

    + +
    +
    + +

    ◆ operator|() [3/3]

    + +
    +
    + + + + + + + + + + + +
    Element operator| (Element element,
    Decorator decorator )
    +
    + +

    From an element, apply a decorator.

    +
    Returns
    the decorated element.
    +

    +Example

    +

    Both of these are equivalent:

    bold(text("Hello"));
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    text("Hello") | bold;
    +
    +

    Definition at line 70 of file dom/util.cpp.

    + +
    +
    + +

    ◆ operator|=()

    + +
    +
    + + + + + + + + + + + +
    Element & operator|= (Element & e,
    Decorator d )
    +
    + +

    Apply a decorator to an element.

    +
    Returns
    the decorated element.
    +

    +Example

    +

    Both of these are equivalent:

    auto element = text("Hello");
    +
    element |= bold;
    +
    +

    Definition at line 85 of file dom/util.cpp.

    + +
    +
    + +

    ◆ emptyElement()

    + +
    +
    + + + + + + + +
    Element emptyElement ()
    +
    +

    An element of size 0x0 drawing nothing.

    + +

    Definition at line 140 of file dom/util.cpp.

    + +
    +
    + +

    ◆ vbox()

    + +
    +
    + + + + + + + +
    Element vbox (Elements children)
    +
    + +

    A container displaying elements vertically one by one.

    +
    Parameters
    + + +
    childrenThe elements in the container
    +
    +
    +
    Returns
    The container.
    +

    +Example

    +
    +
    text("Up"),
    +
    text("Down"),
    +
    });
    +
    +

    Definition at line 96 of file vbox.cpp.

    + +
    +
    + +

    ◆ SetColorSupport()

    + +
    +
    + + + + + + + +
    void SetColorSupport (Color color)
    +
    + +

    Override terminal color support in case auto-detection fails.

    + +

    Definition at line 140 of file terminal.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/group__dom.js b/group__dom.js new file mode 100644 index 000000000..201109535 --- /dev/null +++ b/group__dom.js @@ -0,0 +1,297 @@ +var group__dom = +[ + [ "Canvas", "group__dom.html#structftxui_1_1Canvas", [ + [ "Stylizer", "group__dom.html#a407f299e079846ce6169f2a709ad4aae", null ], + [ "Canvas", "group__dom.html#a3cbcd839ac8597df2e0f351850ec4735", null ], + [ "Canvas", "group__dom.html#a6a78dda2095054ffa03f215f0153bdbb", null ], + [ "width", "group__dom.html#ad72663daf610f2a0833a2fc3d78e4fdf", null ], + [ "height", "group__dom.html#ad3774f6419003470f54fd495124ef51f", null ], + [ "GetPixel", "group__dom.html#a656c4e679bf9254e4688f2049989a9bd", null ], + [ "DrawPointOn", "group__dom.html#a5f488ea43e72f25cc25d055bf18dac5b", null ], + [ "DrawPointOff", "group__dom.html#a64ad8a12830a3341d4a5afb380913474", null ], + [ "DrawPointToggle", "group__dom.html#afd64176f05f91df2d96e8f3bb0631c51", null ], + [ "DrawPoint", "group__dom.html#a8707f2585ed8b787b6b14032a5c761a1", null ], + [ "DrawPoint", "group__dom.html#a356677acf431f88673b59526f290eb0c", null ], + [ "DrawPoint", "group__dom.html#ab89d4e0bd8bf78ba40dde08cd5779fa7", null ], + [ "DrawPointLine", "group__dom.html#a2b6800c9a6a93457a921d9b570fb2f30", null ], + [ "DrawPointLine", "group__dom.html#a4eb34a7688220b3b8ad274ff9d0f3649", null ], + [ "DrawPointLine", "group__dom.html#a6a3d2396239afce89f1cda3c69665095", null ], + [ "DrawPointCircle", "group__dom.html#ad21641f8f1fd60aa5f1d149379eba3eb", null ], + [ "DrawPointCircle", "group__dom.html#a644133eccde18caeaf06e5b7fdb5ef51", null ], + [ "DrawPointCircle", "group__dom.html#adcc98793cdb931c3438b5ec35ed7a0dd", null ], + [ "DrawPointCircleFilled", "group__dom.html#a5b6388d2515edcfb6c88a39ea56805b2", null ], + [ "DrawPointCircleFilled", "group__dom.html#af7a213e8dbed8debae0155f1b707fd74", null ], + [ "DrawPointCircleFilled", "group__dom.html#adace7c348090660c1a6a5fffce18b7d2", null ], + [ "DrawPointEllipse", "group__dom.html#a79ee88b3cfe258309041469f707dcf68", null ], + [ "DrawPointEllipse", "group__dom.html#a6926683a29ff97d77e40ae533bb51eed", null ], + [ "DrawPointEllipse", "group__dom.html#acdafc386934cf7e11b529c0c38b788a3", null ], + [ "DrawPointEllipseFilled", "group__dom.html#a2633b8a556a82c74438fe41b253b39ee", null ], + [ "DrawPointEllipseFilled", "group__dom.html#a395ec10a91d15be650afddcb85757945", null ], + [ "DrawPointEllipseFilled", "group__dom.html#a22ec58bdf5a3578ce68c52ace9324fb6", null ], + [ "DrawBlockOn", "group__dom.html#a43cd60e79e418d3173e757a1809fde09", null ], + [ "DrawBlockOff", "group__dom.html#ad626747e5e54412d0376ba870565dce6", null ], + [ "DrawBlockToggle", "group__dom.html#ab4154641384d18497de60c2626b71a94", null ], + [ "DrawBlock", "group__dom.html#ae38b2e4f5bcda94c060bb77779d1e339", null ], + [ "DrawBlock", "group__dom.html#a0a51b12eb4089c9a3afb8d3052599b98", null ], + [ "DrawBlock", "group__dom.html#ab5717755b773771ef642e9e774dbb1a0", null ], + [ "DrawBlockLine", "group__dom.html#a182a915a7e3fc863f5c222253de01ff1", null ], + [ "DrawBlockLine", "group__dom.html#a2911f015b5085dd2f74a4f88910eabe3", null ], + [ "DrawBlockLine", "group__dom.html#a8543417c0289090a5eefb2d6fcd521fc", null ], + [ "DrawBlockCircle", "group__dom.html#ac3977d4b06ca96ff799a3b72437c8a0b", null ], + [ "DrawBlockCircle", "group__dom.html#a685bec108334c6a43ceb5ca8a0666cd7", null ], + [ "DrawBlockCircle", "group__dom.html#ab2bf509dc9519bd9f76a7721b5b152bf", null ], + [ "DrawBlockCircleFilled", "group__dom.html#acffdcd5bae224992e155facb0baf4119", null ], + [ "DrawBlockCircleFilled", "group__dom.html#a60a31c3685d296333e594feb8ec04c48", null ], + [ "DrawBlockCircleFilled", "group__dom.html#a70cd877698afe354ca070c6b93ef3847", null ], + [ "DrawBlockEllipse", "group__dom.html#a8dd75f2dfc5bef37aa2c8bc8cfaf0579", null ], + [ "DrawBlockEllipse", "group__dom.html#ac53509c067c979cc6ec766b4db8e6e2c", null ], + [ "DrawBlockEllipse", "group__dom.html#a0916ab1d55ac16c158571d135893e88a", null ], + [ "DrawBlockEllipseFilled", "group__dom.html#a78dc3c908f7ce1c30837bd3043f19526", null ], + [ "DrawBlockEllipseFilled", "group__dom.html#aa3f717282aab0cee9835503ef1eb6f1b", null ], + [ "DrawBlockEllipseFilled", "group__dom.html#a616781dd82158e306ebf71d87283e6f8", null ], + [ "DrawText", "group__dom.html#a3791777bd6d3c6f8ff6281efd19a5161", null ], + [ "DrawText", "group__dom.html#a389991302f9a1d5554eff24b48d6b6ec", null ], + [ "DrawText", "group__dom.html#a648ed3b48973ac1dc58ca22d54ecf6af", null ], + [ "DrawPixel", "group__dom.html#afde1b1962124ef417569bef59c6dcdcc", null ], + [ "DrawImage", "group__dom.html#a02b6e8bab532a2c43d3102674e1e1647", null ], + [ "Style", "group__dom.html#ae9e7d3f5b753cf2650057623960d4cb4", null ] + ] ], + [ "FlexboxConfig", "group__dom.html#structftxui_1_1FlexboxConfig", [ + [ "Direction", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aa", [ + [ "Row", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaaa70367aa7cb74e510f4f9413ccf059d3", null ], + [ "RowInversed", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaabba4d6f3a9cec9c96600e3e0d17b9f6a", null ], + [ "Column", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa1976d7f704de389d9fe064e08ea35b2d", null ], + [ "ColumnInversed", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa338df815740895b690c7b07716acda20", null ] + ] ], + [ "Wrap", "group__dom.html#a6c844a611650cf7e956dbe269a0e72ab", [ + [ "NoWrap", "group__dom.html#a6c844a611650cf7e956dbe269a0e72aba93ac740a98eb4cc45b853c780ed16c44", null ], + [ "Wrap", "group__dom.html#a6c844a611650cf7e956dbe269a0e72abaa212b19ef5f2fb30acf92e6cbccc1f2d", null ], + [ "WrapInversed", "group__dom.html#a6c844a611650cf7e956dbe269a0e72abad639e613e3589af04e39135707dbc642", null ] + ] ], + [ "JustifyContent", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2", [ + [ "FlexStart", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a8d5898e4f1bd5527306b1f62fa4fd952", null ], + [ "FlexEnd", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a923a60a08f41dc3052190403fc2a6b25", null ], + [ "Center", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a4f1f6016fc9f3f2353c0cc7c67b292bd", null ], + [ "Stretch", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afbb09a82eafab60150d0996e8fe46560", null ], + [ "SpaceBetween", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afa2f3f8f296dcb6e5c287d69eae1c119", null ], + [ "SpaceAround", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2aa711fff5f720542ab104aab0805e2565", null ], + [ "SpaceEvenly", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a34ad3eaf7ee60a45210ad60bd731e235", null ] + ] ], + [ "AlignItems", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7", [ + [ "FlexStart", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a8d5898e4f1bd5527306b1f62fa4fd952", null ], + [ "FlexEnd", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a923a60a08f41dc3052190403fc2a6b25", null ], + [ "Center", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a4f1f6016fc9f3f2353c0cc7c67b292bd", null ], + [ "Stretch", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7afbb09a82eafab60150d0996e8fe46560", null ] + ] ], + [ "AlignContent", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420", [ + [ "FlexStart", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a8d5898e4f1bd5527306b1f62fa4fd952", null ], + [ "FlexEnd", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a923a60a08f41dc3052190403fc2a6b25", null ], + [ "Center", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a4f1f6016fc9f3f2353c0cc7c67b292bd", null ], + [ "Stretch", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afbb09a82eafab60150d0996e8fe46560", null ], + [ "SpaceBetween", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afa2f3f8f296dcb6e5c287d69eae1c119", null ], + [ "SpaceAround", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420aa711fff5f720542ab104aab0805e2565", null ], + [ "SpaceEvenly", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a34ad3eaf7ee60a45210ad60bd731e235", null ] + ] ], + [ "Set", "group__dom.html#ae47b5b0d793d0c2312e4805a1f40012a", null ], + [ "Set", "group__dom.html#a5afe52066ea76ddc7948b77ac155a011", null ], + [ "Set", "group__dom.html#a3de11197951ee3c9037ba7f2a2586a06", null ], + [ "Set", "group__dom.html#a07ef12f61272636369543b34932614f3", null ], + [ "Set", "group__dom.html#a6df4ec3da7d3d2cd0b216f5d2c72cbd6", null ], + [ "SetGap", "group__dom.html#a98d9a43033c09c7f967cdec791408bad", null ], + [ "direction", "group__dom.html#a53421c695d00016ab925777d423b4eb6", null ], + [ "wrap", "group__dom.html#a68b5470ece4f0a492cc1d2057c9bd5e0", null ], + [ "justify_content", "group__dom.html#ab3173252829e796ee1c100b447243748", null ], + [ "align_items", "group__dom.html#a1514fd3d64965c521555fdc2cf2002ce", null ], + [ "align_content", "group__dom.html#a103275cb09167852e469450cf8471256", null ], + [ "gap_x", "group__dom.html#a109ea05d5d6e08d052672465ff8dac61", null ], + [ "gap_y", "group__dom.html#ab01b75a8a9419ec5c47650772f342ba3", null ] + ] ], + [ "LinearGradient", "group__dom.html#structftxui_1_1LinearGradient", [ + [ "Stop", "structftxui_1_1LinearGradient_1_1Stop.html", [ + [ "color", "structftxui_1_1LinearGradient_1_1Stop.html#aa5f4d1eda21c196bd8401ff73f105073", null ], + [ "position", "structftxui_1_1LinearGradient_1_1Stop.html#a2f3c9e83b473a71f2882ee1ec4fb88de", null ] + ] ], + [ "LinearGradient", "group__dom.html#a5e989e4841fbba91e1714f977c5c58b9", null ], + [ "LinearGradient", "group__dom.html#ac57e39e64c79b5389f234eeaebfbb2fd", null ], + [ "LinearGradient", "group__dom.html#adbf0567cfc8e05051a4236d6541f63b8", null ], + [ "Angle", "group__dom.html#a251d447c54f49914a2cbf5dc16fc8b5b", null ], + [ "Stop", "group__dom.html#a03b10012f78e1c731616ce760d28df40", null ], + [ "Stop", "group__dom.html#ab85b009cd214d3bd1b3bb7f704af0da6", null ], + [ "angle", "group__dom.html#ab8ef1bf8a70cc07c6d55823c390a7e76", null ], + [ "stops", "group__dom.html#a9c56e5fb8075d8a48b1b0c3b4ea31831", null ] + ] ], + [ "Node", "group__dom.html#classftxui_1_1Node", [ + [ "Status", "structftxui_1_1Node_1_1Status.html", [ + [ "iteration", "structftxui_1_1Node_1_1Status.html#aa6371382c6b4224e577e14ea610ab9a9", null ], + [ "need_iteration", "structftxui_1_1Node_1_1Status.html#a0fffbfa5479a3b6d3ddf5ff13504a51c", null ] + ] ], + [ "Node", "group__dom.html#a0d313fac56abd7ebe58a17f1530b879e", null ], + [ "Node", "group__dom.html#a19fa1eae4c02e514c62a95e395b383a1", null ], + [ "Node", "group__dom.html#a7eb6a9efa23e5f6f7fc53b5aa3759dff", null ], + [ "Node", "group__dom.html#ac6365e35a2029b3e58eca97905f8124d", null ], + [ "~Node", "group__dom.html#a6fa6bf60f34f1e3efb0e59333428c9c8", null ], + [ "operator=", "group__dom.html#a7e12a390c13d283fc06cafbbfef7eba7", null ], + [ "operator=", "group__dom.html#abe938f0d7bfdca112e345590d4887de6", null ], + [ "ComputeRequirement", "group__dom.html#a40bd818c5de23bb2d208360d275ae59d", null ], + [ "requirement", "group__dom.html#a39a263e8c8786dc62fcb4d734aad7fe6", null ], + [ "SetBox", "group__dom.html#a2ed318aaadb07efc50e76fce1ccf9637", null ], + [ "Select", "group__dom.html#a05352f5a353f1e86630a978060e77305", null ], + [ "Render", "group__dom.html#a7e286fe14880614686ceeec84a9a9702", null ], + [ "GetSelectedContent", "group__dom.html#a2c5cebe05557529299e649867b499680", null ], + [ "Check", "group__dom.html#a5b71d891a102197f2856f53702425581", null ], + [ "Render", "group__dom.html#ab35030b64136afa183d474d11bd1f6dd", null ], + [ "children_", "group__dom.html#a2aeb117dade3254694355ab90e9fc566", null ], + [ "requirement_", "group__dom.html#a3530d99687053ce0d0006b9dee9a1ca7", null ], + [ "box_", "group__dom.html#aa7e7d30102945911407723a5cbcdfabc", null ] + ] ], + [ "Requirement", "group__dom.html#structftxui_1_1Requirement", [ + [ "Focused", "structftxui_1_1Requirement_1_1Focused.html", [ + [ "Prefer", "structftxui_1_1Requirement_1_1Focused.html#a8a204963959c73e971c7d030cbc34134", null ], + [ "enabled", "structftxui_1_1Requirement_1_1Focused.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ], + [ "box", "structftxui_1_1Requirement_1_1Focused.html#ab19e728e80bc2fc43d8e82c3602f8333", null ], + [ "node", "structftxui_1_1Requirement_1_1Focused.html#ab88cd70dad2e152cea983610f2a16e68", null ], + [ "cursor_shape", "structftxui_1_1Requirement_1_1Focused.html#a21f4c5c8f6862a204f795d4f0cb6d479", null ], + [ "component_active", "structftxui_1_1Requirement_1_1Focused.html#ac3226c18ed017dd81566f593d1257ce1", null ] + ] ], + [ "min_x", "group__dom.html#a9c8ab844b7e5b610b7a4ac433ea148a1", null ], + [ "min_y", "group__dom.html#a5fb18fec2bc2c10f230d683506bb5a8f", null ], + [ "flex_grow_x", "group__dom.html#a874ced28be7064feaaf97c70c2097bd6", null ], + [ "flex_grow_y", "group__dom.html#a13f6aa7165c63a4494fc2f1ed4428880", null ], + [ "flex_shrink_x", "group__dom.html#ad293f2488e260e36e72fd3da9c16df9a", null ], + [ "flex_shrink_y", "group__dom.html#ab4e07297a2a55de7158ef0115b6b46a9", null ], + [ "focused", "group__dom.html#aa4da656616dd87d4e82a4ee718db6b3c", null ] + ] ], + [ "Selection", "group__dom.html#classftxui_1_1Selection", [ + [ "Selection", "group__dom.html#ade00d4039f147221b9fd6b6b402b43b1", null ], + [ "Selection", "group__dom.html#a76eafd8bc098ec9f0405e3b1f6fb42c4", null ], + [ "GetBox", "group__dom.html#a03f5cc5dcad10fecb7a0b8203c86a13e", null ], + [ "SaturateHorizontal", "group__dom.html#af3f2674604d907fbce26d4217cfa9324", null ], + [ "SaturateVertical", "group__dom.html#ace69e1e7c6e64b7ae0c4402e0e1e3336", null ], + [ "IsEmpty", "group__dom.html#a8e12342fc420701fbffd97025421575a", null ], + [ "AddPart", "group__dom.html#a9887e25feddebbf840876824cb3cbf61", null ], + [ "GetParts", "group__dom.html#a4d4387d24d418b865c77ed592602d08d", null ] + ] ], + [ "Table", "group__dom.html#classftxui_1_1Table", [ + [ "Table", "group__dom.html#a2a7f82c625b00a53f710b2ed305248d2", null ], + [ "Table", "group__dom.html#a2055337c538a82ae13d92db1838fc454", null ], + [ "Table", "group__dom.html#acbd904dfec77b46b257e33f9c7d1e71d", null ], + [ "Table", "group__dom.html#a22a1b5a5b90feb5ebbfe20d7dec5c650", null ], + [ "SelectAll", "group__dom.html#ad5f50927f54334b84514bc4b11a14d71", null ], + [ "SelectCell", "group__dom.html#a3c2f178ef9f94da293a53b467ef8643b", null ], + [ "SelectRow", "group__dom.html#a64435bbfbdefd7408241c69b6b8283e7", null ], + [ "SelectRows", "group__dom.html#ab36d32e3675a9353ee79e84405cd7a44", null ], + [ "SelectColumn", "group__dom.html#a4ee8ddbab36f592fba81c6430d26545e", null ], + [ "SelectColumns", "group__dom.html#a79109565fe65710f725eb474778cae36", null ], + [ "SelectRectangle", "group__dom.html#af0021915d0cbda394077929601b8ab8f", null ], + [ "Render", "group__dom.html#a28d41d6113c5b29c8dd45846582b3299", null ] + ] ], + [ "Direction", "group__dom.html#ga224b9163917ac32fc95a60d8c1eec3aa", [ + [ "Up", "group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa", null ], + [ "Down", "group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53", null ], + [ "Left", "group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff", null ], + [ "Right", "group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c", null ] + ] ], + [ "BorderStyle", "group__dom.html#gafe3103dd0b8240c5443892484ef5af9c", [ + [ "LIGHT", "group__dom.html#ggafe3103dd0b8240c5443892484ef5af9caf917d6c11c85b4ac32e30d1cc9da25eb", null ], + [ "DASHED", "group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca830310bdfd296d7cd00c59773579b892", null ], + [ "HEAVY", "group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca34cd68a92c52759ed9b545969a11c2da", null ], + [ "DOUBLE", "group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca33465d1d419b1074fb259ef444609e92", null ], + [ "ROUNDED", "group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca655074b92b285adff7d18a45748bf493", null ], + [ "EMPTY", "group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca2f0d18fc0d0fa4a6cd92dc328501874d", null ] + ] ], + [ "automerge", "group__dom.html#gaca42bd6c44d8d366d5c1014330402086", null ], + [ "blink", "group__dom.html#gad57613de5895e774218d91dea48d074b", null ], + [ "bold", "group__dom.html#ga353c769068e25303eb41fa2da565c604", null ], + [ "border", "group__dom.html#gae8537acd423d47cf07e61bd774fb1098", null ], + [ "borderWith", "group__dom.html#gaa97cfcfbe6df92dac085454395ec7b2f", null ], + [ "borderStyled", "group__dom.html#gabc9db79957d4dd36deb8ca79938e4c41", null ], + [ "borderStyled", "group__dom.html#gad1dbf36194dcb77674085df9e11c1e22", null ], + [ "borderStyled", "group__dom.html#ga5aab98b289d2e7b2ce8ca0eeee51ce78", null ], + [ "borderDashed", "group__dom.html#ga181c80f8ada12d1356f6bfa0ebb7219f", null ], + [ "borderLight", "group__dom.html#gaa074cdab57eeb47b99f1699bcc8addd8", null ], + [ "borderHeavy", "group__dom.html#ga666c31419cc31cdadc9f8178ed63529e", null ], + [ "borderDouble", "group__dom.html#ga052b504344f3bc1ff86b3493cd934215", null ], + [ "borderRounded", "group__dom.html#ga3cf2db223a5efaa370f0ca6bb405b80e", null ], + [ "borderEmpty", "group__dom.html#gaf20f7d6fb275d109f0bdc01a2e4d3f3e", null ], + [ "window", "group__dom.html#ga03049def08fa7a5eaa4d5e897152bc1a", null ], + [ "clear_under", "group__dom.html#ga17a89519e6b87e12b1e5811a702f7847", null ], + [ "color", "group__dom.html#gadef6e6e66199153de6d3b21b14dcf868", null ], + [ "bgcolor", "group__dom.html#gaae86eacae0a0626b41e9964ac7f4f532", null ], + [ "color", "group__dom.html#gaf61b489da39ca5e24b68e6e1a2b09c0d", null ], + [ "bgcolor", "group__dom.html#ga01d4c5aaf0447e862246849111782245", null ], + [ "hcenter", "group__dom.html#gaf7d0d1e44c1a5424e42a5cddceacf7f7", null ], + [ "vcenter", "group__dom.html#gad907a8a48bb9f9dfdb06402e9fc12316", null ], + [ "center", "group__dom.html#ga5b11656305fce8427b81daf1c35883f1", null ], + [ "align_right", "group__dom.html#ga778e52afe28f1978f1f7ef065ed92d6d", null ], + [ "dbox", "group__dom.html#ga901ab1b6b2e0e8c295552168ab206441", null ], + [ "dim", "group__dom.html#gac6a3b77604739516e809369810896646", null ], + [ "filler", "group__dom.html#gac2a9ed2d22ec3c8811b61f4a901ed367", null ], + [ "flex", "group__dom.html#ga257acd2bd47bab7db879cca2c0e67e23", null ], + [ "xflex", "group__dom.html#ga0dbba98e14f63f1dd5163cbdc4f42da8", null ], + [ "yflex", "group__dom.html#ga42c7a33df6d890de30fc1ebb2d1b3ca6", null ], + [ "flex_grow", "group__dom.html#ga81ed6b31f512e849247f13d249f6f20e", null ], + [ "xflex_grow", "group__dom.html#ga1618cb15307f29eb3d531e7b44c280d3", null ], + [ "yflex_grow", "group__dom.html#ga7eac3f709e905af8f583aed52093b7ce", null ], + [ "flex_shrink", "group__dom.html#ga4629196b5ffc280054d35f2a9977e829", null ], + [ "xflex_shrink", "group__dom.html#ga95275a9271934cf76e970c6650cc224d", null ], + [ "yflex_shrink", "group__dom.html#gaf7d0757f5965aa579bccc125ff909256", null ], + [ "notflex", "group__dom.html#ga845b0ea50d51024aa4e050447b46e1dd", null ], + [ "focusPositionRelative", "group__dom.html#ga13befad33cb4125e2143f2af3eddcc71", null ], + [ "focusPosition", "group__dom.html#ga78447ba1ccb792963ad6d306f4ed1256", null ], + [ "focus", "group__dom.html#gaa2d7d671f184f85e0f396f2610fa6c2e", null ], + [ "focusCursorBlock", "group__dom.html#ga509ef7e7f8913ea3de7efd45e3301ea1", null ], + [ "focusCursorBlockBlinking", "group__dom.html#gadda589914ba8fe863c905b6566557768", null ], + [ "focusCursorBar", "group__dom.html#ga4f89e72e7001064e3eb8189c8317e95b", null ], + [ "focusCursorBarBlinking", "group__dom.html#ga085a7c997e7364c5a54e73c7b84145db", null ], + [ "focusCursorUnderline", "group__dom.html#ga61e1fe02a18c2b18e31ccc9cd3943823", null ], + [ "focusCursorUnderlineBlinking", "group__dom.html#ga33637d59d1e52aa06dd2a94162adbfe9", null ], + [ "gaugeDirection", "group__dom.html#ga1265cc8a52448e1b98d7abe84a04681e", null ], + [ "gaugeRight", "group__dom.html#ga333d781a44885ed4b5ea8444015b86f7", null ], + [ "gaugeLeft", "group__dom.html#ga97898b9f77b3edd330eaef22fce7cf2b", null ], + [ "gaugeUp", "group__dom.html#ga6e9a97b66c14404a2b3f95f4dae414c2", null ], + [ "gaugeDown", "group__dom.html#gafe537f915cac5613261580bae3a8fe33", null ], + [ "gauge", "group__dom.html#gae0b8041a60629fd790716038738c93ce", null ], + [ "hyperlink", "group__dom.html#ga8bacc04e0cbde663ccc4a4891e8b50d5", null ], + [ "hyperlink", "group__dom.html#gad0eac58eac9e6cd9a04879b20f8e123b", null ], + [ "inverted", "group__dom.html#ga672456b8f2091b615a30ff755418b37b", null ], + [ "italic", "group__dom.html#ga8a8d190765de7bbd9e78f9e639c2a96d", null ], + [ "color", "group__dom.html#ga050df9c8ed04eec13309d6c0542c636d", null ], + [ "bgcolor", "group__dom.html#gaaac1622d43662a6a02113d9230a4fdd4", null ], + [ "color", "group__dom.html#ga8af6b5a06b03fd53bf30a6b050b96968", null ], + [ "bgcolor", "group__dom.html#gaee41f3eaff28a123214e81231f8f4593", null ], + [ "Render", "group__dom.html#gad4b8aa9392f56ba41e2b421e046a7d83", null ], + [ "Render", "group__dom.html#ga32a24db985fa1b37bf686b00f7e1b4ff", null ], + [ "paragraph", "group__dom.html#ga3f9093ae1a2790d396fc2cff9990fbbd", null ], + [ "paragraphAlignLeft", "group__dom.html#gaa334a836eccc573e1137a1ba29d07d8a", null ], + [ "paragraphAlignRight", "group__dom.html#ga28a69f06a88c89fe7a507e33ab486411", null ], + [ "paragraphAlignCenter", "group__dom.html#ga6a105f6b0d07d7933379ff1ae9282fb8", null ], + [ "paragraphAlignJustify", "group__dom.html#gae4de548aa67ab77cb345e4ddec6b248b", null ], + [ "vscroll_indicator", "group__dom.html#ga1974176e676afdb96d203e8e0f579219", null ], + [ "hscroll_indicator", "group__dom.html#ga7f48136f949ccbde722dd93a6de4d0de", null ], + [ "separator", "group__dom.html#gac1ef1cf6bf7cd0759ffa195071edb2a0", null ], + [ "separatorStyled", "group__dom.html#ga13cb559cfc7e409b3f211f0bb35ea7fa", null ], + [ "separatorLight", "group__dom.html#ga37c2b93daf557f68064bc9fbf93ebde0", null ], + [ "separatorDashed", "group__dom.html#ga81f2d3256c0cfbc70f820129286f08c6", null ], + [ "separatorHeavy", "group__dom.html#gaf0649e89a9960f1c2703e48c1817645b", null ], + [ "separatorDouble", "group__dom.html#gadd376830fdb51b0bf52672ef17515989", null ], + [ "separatorEmpty", "group__dom.html#ga1934703e56ab66f6f259b9f8da331f1b", null ], + [ "separatorCharacter", "group__dom.html#ga97a10482d591aade2958da0f2f19b371", null ], + [ "separator", "group__dom.html#ga71d9a6a32f65b6d172f9696b3b9579b4", null ], + [ "size", "group__dom.html#ga201220986fbdc539e42efe067985cbdb", null ], + [ "spinner", "group__dom.html#ga3b08e0030a0831d3ec3e2a505908273b", null ], + [ "strikethrough", "group__dom.html#ga8594d70f0491def903370e86132fbf01", null ], + [ "text", "group__dom.html#ga366051704fd333c23460f7932598a5e3", null ], + [ "text", "group__dom.html#ga75baaa2734ed76a9f478beaafa87ae57", null ], + [ "vtext", "group__dom.html#ga64172a43b4b526afeb6313e6e1a6d5a1", null ], + [ "vtext", "group__dom.html#ga9f9f7485a45aa9d432726ca9845d1eac", null ], + [ "underlined", "group__dom.html#ga5ad450c97c4d084b64ffb5b5ca942664", null ], + [ "underlinedDouble", "group__dom.html#ga16d1b74107610750276499ddb3dde8da", null ], + [ "nothing", "group__dom.html#ga1bfd3885ac8b40dc82a1103725003c07", null ], + [ "operator|", "group__dom.html#ga027fbc9cf6fef9e86ae6a2a79e8bf23a", null ], + [ "operator|", "group__dom.html#ga6cbc84eb24a655ae084b3c7d26f9abfc", null ], + [ "operator|", "group__dom.html#ga7e9a69f0592b4013bd725d662f4a76e7", null ], + [ "operator|=", "group__dom.html#ga0be26ac5dcbe6c707857c791d8eec720", null ], + [ "emptyElement", "group__dom.html#ga40451515a5b3049e7a1276cad8b9356c", null ], + [ "vbox", "group__dom.html#gafd28058f0ccbbdf34691a85a7cc9b2e3", null ], + [ "SetColorSupport", "group__dom.html#ga65945a706131f407a47a1b9960dc1a4a", null ] +]; \ No newline at end of file diff --git a/group__dom_classftxui_1_1Node.js b/group__dom_classftxui_1_1Node.js new file mode 100644 index 000000000..0c3c75b68 --- /dev/null +++ b/group__dom_classftxui_1_1Node.js @@ -0,0 +1,22 @@ +var group__dom_classftxui_1_1Node = +[ + [ "Status", "structftxui_1_1Node_1_1Status.html", "structftxui_1_1Node_1_1Status" ], + [ "Node", "group__dom.html#a0d313fac56abd7ebe58a17f1530b879e", null ], + [ "Node", "group__dom.html#a19fa1eae4c02e514c62a95e395b383a1", null ], + [ "Node", "group__dom.html#a7eb6a9efa23e5f6f7fc53b5aa3759dff", null ], + [ "Node", "group__dom.html#ac6365e35a2029b3e58eca97905f8124d", null ], + [ "~Node", "group__dom.html#a6fa6bf60f34f1e3efb0e59333428c9c8", null ], + [ "operator=", "group__dom.html#a7e12a390c13d283fc06cafbbfef7eba7", null ], + [ "operator=", "group__dom.html#abe938f0d7bfdca112e345590d4887de6", null ], + [ "ComputeRequirement", "group__dom.html#a40bd818c5de23bb2d208360d275ae59d", null ], + [ "requirement", "group__dom.html#a39a263e8c8786dc62fcb4d734aad7fe6", null ], + [ "SetBox", "group__dom.html#a2ed318aaadb07efc50e76fce1ccf9637", null ], + [ "Select", "group__dom.html#a05352f5a353f1e86630a978060e77305", null ], + [ "Render", "group__dom.html#a7e286fe14880614686ceeec84a9a9702", null ], + [ "GetSelectedContent", "group__dom.html#a2c5cebe05557529299e649867b499680", null ], + [ "Check", "group__dom.html#a5b71d891a102197f2856f53702425581", null ], + [ "Render", "group__dom.html#ab35030b64136afa183d474d11bd1f6dd", null ], + [ "children_", "group__dom.html#a2aeb117dade3254694355ab90e9fc566", null ], + [ "requirement_", "group__dom.html#a3530d99687053ce0d0006b9dee9a1ca7", null ], + [ "box_", "group__dom.html#aa7e7d30102945911407723a5cbcdfabc", null ] +]; \ No newline at end of file diff --git a/group__dom_classftxui_1_1Selection.js b/group__dom_classftxui_1_1Selection.js new file mode 100644 index 000000000..1e432caba --- /dev/null +++ b/group__dom_classftxui_1_1Selection.js @@ -0,0 +1,11 @@ +var group__dom_classftxui_1_1Selection = +[ + [ "Selection", "group__dom.html#ade00d4039f147221b9fd6b6b402b43b1", null ], + [ "Selection", "group__dom.html#a76eafd8bc098ec9f0405e3b1f6fb42c4", null ], + [ "GetBox", "group__dom.html#a03f5cc5dcad10fecb7a0b8203c86a13e", null ], + [ "SaturateHorizontal", "group__dom.html#af3f2674604d907fbce26d4217cfa9324", null ], + [ "SaturateVertical", "group__dom.html#ace69e1e7c6e64b7ae0c4402e0e1e3336", null ], + [ "IsEmpty", "group__dom.html#a8e12342fc420701fbffd97025421575a", null ], + [ "AddPart", "group__dom.html#a9887e25feddebbf840876824cb3cbf61", null ], + [ "GetParts", "group__dom.html#a4d4387d24d418b865c77ed592602d08d", null ] +]; \ No newline at end of file diff --git a/group__dom_classftxui_1_1Table.js b/group__dom_classftxui_1_1Table.js new file mode 100644 index 000000000..c6e56d59c --- /dev/null +++ b/group__dom_classftxui_1_1Table.js @@ -0,0 +1,15 @@ +var group__dom_classftxui_1_1Table = +[ + [ "Table", "group__dom.html#a2a7f82c625b00a53f710b2ed305248d2", null ], + [ "Table", "group__dom.html#a2055337c538a82ae13d92db1838fc454", null ], + [ "Table", "group__dom.html#acbd904dfec77b46b257e33f9c7d1e71d", null ], + [ "Table", "group__dom.html#a22a1b5a5b90feb5ebbfe20d7dec5c650", null ], + [ "SelectAll", "group__dom.html#ad5f50927f54334b84514bc4b11a14d71", null ], + [ "SelectCell", "group__dom.html#a3c2f178ef9f94da293a53b467ef8643b", null ], + [ "SelectRow", "group__dom.html#a64435bbfbdefd7408241c69b6b8283e7", null ], + [ "SelectRows", "group__dom.html#ab36d32e3675a9353ee79e84405cd7a44", null ], + [ "SelectColumn", "group__dom.html#a4ee8ddbab36f592fba81c6430d26545e", null ], + [ "SelectColumns", "group__dom.html#a79109565fe65710f725eb474778cae36", null ], + [ "SelectRectangle", "group__dom.html#af0021915d0cbda394077929601b8ab8f", null ], + [ "Render", "group__dom.html#a28d41d6113c5b29c8dd45846582b3299", null ] +]; \ No newline at end of file diff --git a/group__dom_structftxui_1_1Canvas.js b/group__dom_structftxui_1_1Canvas.js new file mode 100644 index 000000000..1667ede94 --- /dev/null +++ b/group__dom_structftxui_1_1Canvas.js @@ -0,0 +1,57 @@ +var group__dom_structftxui_1_1Canvas = +[ + [ "Stylizer", "group__dom.html#a407f299e079846ce6169f2a709ad4aae", null ], + [ "Canvas", "group__dom.html#a3cbcd839ac8597df2e0f351850ec4735", null ], + [ "Canvas", "group__dom.html#a6a78dda2095054ffa03f215f0153bdbb", null ], + [ "width", "group__dom.html#ad72663daf610f2a0833a2fc3d78e4fdf", null ], + [ "height", "group__dom.html#ad3774f6419003470f54fd495124ef51f", null ], + [ "GetPixel", "group__dom.html#a656c4e679bf9254e4688f2049989a9bd", null ], + [ "DrawPointOn", "group__dom.html#a5f488ea43e72f25cc25d055bf18dac5b", null ], + [ "DrawPointOff", "group__dom.html#a64ad8a12830a3341d4a5afb380913474", null ], + [ "DrawPointToggle", "group__dom.html#afd64176f05f91df2d96e8f3bb0631c51", null ], + [ "DrawPoint", "group__dom.html#a8707f2585ed8b787b6b14032a5c761a1", null ], + [ "DrawPoint", "group__dom.html#a356677acf431f88673b59526f290eb0c", null ], + [ "DrawPoint", "group__dom.html#ab89d4e0bd8bf78ba40dde08cd5779fa7", null ], + [ "DrawPointLine", "group__dom.html#a2b6800c9a6a93457a921d9b570fb2f30", null ], + [ "DrawPointLine", "group__dom.html#a4eb34a7688220b3b8ad274ff9d0f3649", null ], + [ "DrawPointLine", "group__dom.html#a6a3d2396239afce89f1cda3c69665095", null ], + [ "DrawPointCircle", "group__dom.html#ad21641f8f1fd60aa5f1d149379eba3eb", null ], + [ "DrawPointCircle", "group__dom.html#a644133eccde18caeaf06e5b7fdb5ef51", null ], + [ "DrawPointCircle", "group__dom.html#adcc98793cdb931c3438b5ec35ed7a0dd", null ], + [ "DrawPointCircleFilled", "group__dom.html#a5b6388d2515edcfb6c88a39ea56805b2", null ], + [ "DrawPointCircleFilled", "group__dom.html#af7a213e8dbed8debae0155f1b707fd74", null ], + [ "DrawPointCircleFilled", "group__dom.html#adace7c348090660c1a6a5fffce18b7d2", null ], + [ "DrawPointEllipse", "group__dom.html#a79ee88b3cfe258309041469f707dcf68", null ], + [ "DrawPointEllipse", "group__dom.html#a6926683a29ff97d77e40ae533bb51eed", null ], + [ "DrawPointEllipse", "group__dom.html#acdafc386934cf7e11b529c0c38b788a3", null ], + [ "DrawPointEllipseFilled", "group__dom.html#a2633b8a556a82c74438fe41b253b39ee", null ], + [ "DrawPointEllipseFilled", "group__dom.html#a395ec10a91d15be650afddcb85757945", null ], + [ "DrawPointEllipseFilled", "group__dom.html#a22ec58bdf5a3578ce68c52ace9324fb6", null ], + [ "DrawBlockOn", "group__dom.html#a43cd60e79e418d3173e757a1809fde09", null ], + [ "DrawBlockOff", "group__dom.html#ad626747e5e54412d0376ba870565dce6", null ], + [ "DrawBlockToggle", "group__dom.html#ab4154641384d18497de60c2626b71a94", null ], + [ "DrawBlock", "group__dom.html#ae38b2e4f5bcda94c060bb77779d1e339", null ], + [ "DrawBlock", "group__dom.html#a0a51b12eb4089c9a3afb8d3052599b98", null ], + [ "DrawBlock", "group__dom.html#ab5717755b773771ef642e9e774dbb1a0", null ], + [ "DrawBlockLine", "group__dom.html#a182a915a7e3fc863f5c222253de01ff1", null ], + [ "DrawBlockLine", "group__dom.html#a2911f015b5085dd2f74a4f88910eabe3", null ], + [ "DrawBlockLine", "group__dom.html#a8543417c0289090a5eefb2d6fcd521fc", null ], + [ "DrawBlockCircle", "group__dom.html#ac3977d4b06ca96ff799a3b72437c8a0b", null ], + [ "DrawBlockCircle", "group__dom.html#a685bec108334c6a43ceb5ca8a0666cd7", null ], + [ "DrawBlockCircle", "group__dom.html#ab2bf509dc9519bd9f76a7721b5b152bf", null ], + [ "DrawBlockCircleFilled", "group__dom.html#acffdcd5bae224992e155facb0baf4119", null ], + [ "DrawBlockCircleFilled", "group__dom.html#a60a31c3685d296333e594feb8ec04c48", null ], + [ "DrawBlockCircleFilled", "group__dom.html#a70cd877698afe354ca070c6b93ef3847", null ], + [ "DrawBlockEllipse", "group__dom.html#a8dd75f2dfc5bef37aa2c8bc8cfaf0579", null ], + [ "DrawBlockEllipse", "group__dom.html#ac53509c067c979cc6ec766b4db8e6e2c", null ], + [ "DrawBlockEllipse", "group__dom.html#a0916ab1d55ac16c158571d135893e88a", null ], + [ "DrawBlockEllipseFilled", "group__dom.html#a78dc3c908f7ce1c30837bd3043f19526", null ], + [ "DrawBlockEllipseFilled", "group__dom.html#aa3f717282aab0cee9835503ef1eb6f1b", null ], + [ "DrawBlockEllipseFilled", "group__dom.html#a616781dd82158e306ebf71d87283e6f8", null ], + [ "DrawText", "group__dom.html#a3791777bd6d3c6f8ff6281efd19a5161", null ], + [ "DrawText", "group__dom.html#a389991302f9a1d5554eff24b48d6b6ec", null ], + [ "DrawText", "group__dom.html#a648ed3b48973ac1dc58ca22d54ecf6af", null ], + [ "DrawPixel", "group__dom.html#afde1b1962124ef417569bef59c6dcdcc", null ], + [ "DrawImage", "group__dom.html#a02b6e8bab532a2c43d3102674e1e1647", null ], + [ "Style", "group__dom.html#ae9e7d3f5b753cf2650057623960d4cb4", null ] +]; \ No newline at end of file diff --git a/group__dom_structftxui_1_1FlexboxConfig.js b/group__dom_structftxui_1_1FlexboxConfig.js new file mode 100644 index 000000000..b164b381a --- /dev/null +++ b/group__dom_structftxui_1_1FlexboxConfig.js @@ -0,0 +1,51 @@ +var group__dom_structftxui_1_1FlexboxConfig = +[ + [ "Direction", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aa", [ + [ "Row", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaaa70367aa7cb74e510f4f9413ccf059d3", null ], + [ "RowInversed", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaabba4d6f3a9cec9c96600e3e0d17b9f6a", null ], + [ "Column", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa1976d7f704de389d9fe064e08ea35b2d", null ], + [ "ColumnInversed", "group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa338df815740895b690c7b07716acda20", null ] + ] ], + [ "Wrap", "group__dom.html#a6c844a611650cf7e956dbe269a0e72ab", [ + [ "NoWrap", "group__dom.html#a6c844a611650cf7e956dbe269a0e72aba93ac740a98eb4cc45b853c780ed16c44", null ], + [ "Wrap", "group__dom.html#a6c844a611650cf7e956dbe269a0e72abaa212b19ef5f2fb30acf92e6cbccc1f2d", null ], + [ "WrapInversed", "group__dom.html#a6c844a611650cf7e956dbe269a0e72abad639e613e3589af04e39135707dbc642", null ] + ] ], + [ "JustifyContent", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2", [ + [ "FlexStart", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a8d5898e4f1bd5527306b1f62fa4fd952", null ], + [ "FlexEnd", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a923a60a08f41dc3052190403fc2a6b25", null ], + [ "Center", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a4f1f6016fc9f3f2353c0cc7c67b292bd", null ], + [ "Stretch", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afbb09a82eafab60150d0996e8fe46560", null ], + [ "SpaceBetween", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afa2f3f8f296dcb6e5c287d69eae1c119", null ], + [ "SpaceAround", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2aa711fff5f720542ab104aab0805e2565", null ], + [ "SpaceEvenly", "group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a34ad3eaf7ee60a45210ad60bd731e235", null ] + ] ], + [ "AlignItems", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7", [ + [ "FlexStart", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a8d5898e4f1bd5527306b1f62fa4fd952", null ], + [ "FlexEnd", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a923a60a08f41dc3052190403fc2a6b25", null ], + [ "Center", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a4f1f6016fc9f3f2353c0cc7c67b292bd", null ], + [ "Stretch", "group__dom.html#a821af961ece5fe13540ad48b54c7a9e7afbb09a82eafab60150d0996e8fe46560", null ] + ] ], + [ "AlignContent", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420", [ + [ "FlexStart", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a8d5898e4f1bd5527306b1f62fa4fd952", null ], + [ "FlexEnd", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a923a60a08f41dc3052190403fc2a6b25", null ], + [ "Center", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a4f1f6016fc9f3f2353c0cc7c67b292bd", null ], + [ "Stretch", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afbb09a82eafab60150d0996e8fe46560", null ], + [ "SpaceBetween", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afa2f3f8f296dcb6e5c287d69eae1c119", null ], + [ "SpaceAround", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420aa711fff5f720542ab104aab0805e2565", null ], + [ "SpaceEvenly", "group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a34ad3eaf7ee60a45210ad60bd731e235", null ] + ] ], + [ "Set", "group__dom.html#ae47b5b0d793d0c2312e4805a1f40012a", null ], + [ "Set", "group__dom.html#a5afe52066ea76ddc7948b77ac155a011", null ], + [ "Set", "group__dom.html#a3de11197951ee3c9037ba7f2a2586a06", null ], + [ "Set", "group__dom.html#a07ef12f61272636369543b34932614f3", null ], + [ "Set", "group__dom.html#a6df4ec3da7d3d2cd0b216f5d2c72cbd6", null ], + [ "SetGap", "group__dom.html#a98d9a43033c09c7f967cdec791408bad", null ], + [ "direction", "group__dom.html#a53421c695d00016ab925777d423b4eb6", null ], + [ "wrap", "group__dom.html#a68b5470ece4f0a492cc1d2057c9bd5e0", null ], + [ "justify_content", "group__dom.html#ab3173252829e796ee1c100b447243748", null ], + [ "align_items", "group__dom.html#a1514fd3d64965c521555fdc2cf2002ce", null ], + [ "align_content", "group__dom.html#a103275cb09167852e469450cf8471256", null ], + [ "gap_x", "group__dom.html#a109ea05d5d6e08d052672465ff8dac61", null ], + [ "gap_y", "group__dom.html#ab01b75a8a9419ec5c47650772f342ba3", null ] +]; \ No newline at end of file diff --git a/group__dom_structftxui_1_1LinearGradient.js b/group__dom_structftxui_1_1LinearGradient.js new file mode 100644 index 000000000..49f75adfe --- /dev/null +++ b/group__dom_structftxui_1_1LinearGradient.js @@ -0,0 +1,12 @@ +var group__dom_structftxui_1_1LinearGradient = +[ + [ "Stop", "structftxui_1_1LinearGradient_1_1Stop.html", "structftxui_1_1LinearGradient_1_1Stop" ], + [ "LinearGradient", "group__dom.html#a5e989e4841fbba91e1714f977c5c58b9", null ], + [ "LinearGradient", "group__dom.html#ac57e39e64c79b5389f234eeaebfbb2fd", null ], + [ "LinearGradient", "group__dom.html#adbf0567cfc8e05051a4236d6541f63b8", null ], + [ "Angle", "group__dom.html#a251d447c54f49914a2cbf5dc16fc8b5b", null ], + [ "Stop", "group__dom.html#a03b10012f78e1c731616ce760d28df40", null ], + [ "Stop", "group__dom.html#ab85b009cd214d3bd1b3bb7f704af0da6", null ], + [ "angle", "group__dom.html#ab8ef1bf8a70cc07c6d55823c390a7e76", null ], + [ "stops", "group__dom.html#a9c56e5fb8075d8a48b1b0c3b4ea31831", null ] +]; \ No newline at end of file diff --git a/group__dom_structftxui_1_1Requirement.js b/group__dom_structftxui_1_1Requirement.js new file mode 100644 index 000000000..b7bf5e3f4 --- /dev/null +++ b/group__dom_structftxui_1_1Requirement.js @@ -0,0 +1,11 @@ +var group__dom_structftxui_1_1Requirement = +[ + [ "Focused", "structftxui_1_1Requirement_1_1Focused.html", "structftxui_1_1Requirement_1_1Focused" ], + [ "min_x", "group__dom.html#a9c8ab844b7e5b610b7a4ac433ea148a1", null ], + [ "min_y", "group__dom.html#a5fb18fec2bc2c10f230d683506bb5a8f", null ], + [ "flex_grow_x", "group__dom.html#a874ced28be7064feaaf97c70c2097bd6", null ], + [ "flex_grow_y", "group__dom.html#a13f6aa7165c63a4494fc2f1ed4428880", null ], + [ "flex_shrink_x", "group__dom.html#ad293f2488e260e36e72fd3da9c16df9a", null ], + [ "flex_shrink_y", "group__dom.html#ab4e07297a2a55de7158ef0115b6b46a9", null ], + [ "focused", "group__dom.html#aa4da656616dd87d4e82a4ee718db6b3c", null ] +]; \ No newline at end of file diff --git a/group__screen.html b/group__screen.html new file mode 100644 index 000000000..85b25080f --- /dev/null +++ b/group__screen.html @@ -0,0 +1,3843 @@ + + + + + + + + +FTXUI: ftxui/screen + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui/screen
    +
    +
    +

    Detailed Description

    +

    Please check the tutorial of the ftxui/screen module.

    + + + + + +

    +Namespaces

    namespace  ftxui::Dimension
     Define how the Screen's dimensions should look like.
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  Box
     Box is a structure that represents a rectangular area in a 2D space. More...
     
    class  Color
     Color is a class that represents a color in the terminal user interface. More...
     
    struct  ColorInfo
     ColorInfo is a structure that contains information about the terminal color palette. More...
     
    class  Image
     A rectangular grid of Pixel. More...
     
    struct  Pixel
     A Unicode character and its associated style. More...
     
    class  Screen
     A rectangular grid of Pixel. More...
     
    struct  Dimensions
     Dimensions is a structure that represents the size of the terminal. More...
     
    + + + + +

    +Enumerations

    enum  Color {
    +  Palette1 +,
    +  Palette16 +,
    +  Palette256 +,
    +  TrueColor +
    + }
     Color is an enumeration that represents the color support of the terminal. More...
     
    + + + + + + + +

    +Functions

    Dimensions Size ()
     Get the terminal size.
     
    Color ColorSupport ()
     Get the color support of the terminal.
     
    +

    Class Documentation

    + +

    ◆ ftxui::Box

    + +
    +
    + + + + +
    struct ftxui::Box
    +
    +

    Box is a structure that represents a rectangular area in a 2D space.

    +

    It is defined by its minimum and maximum coordinates along the x and y axes. Note that the coordinates are inclusive, meaning that the box includes both the minimum and maximum values.

    + +

    Definition at line 16 of file box.hpp.

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

    Public Member Functions

    void Shift (int x, int y)
     
    bool Contain (int x, int y) const
     
    bool IsEmpty () const
     
    bool operator== (const Box &other) const
     
    bool operator!= (const Box &other) const
     

    Static Public Member Functions

    static auto Intersection (Box a, Box b) -> Box
     
    static auto Union (Box a, Box b) -> Box
     

    Public Attributes

    int x_min = 0
     
    int x_max = 0
     
    int y_min = 0
     
    int y_max = 0
     
    +

    Member Function Documentation

    + +

    ◆ Intersection()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Box Intersection (Box a,
    Box b ) -> Box
    +
    +static
    +
    +
    Returns
    the biggest Box contained in both |a| and |b|.
    + +

    Definition at line 11 of file box.cpp.

    + +
    +
    + +

    ◆ Union()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Box Union (Box a,
    Box b ) -> Box
    +
    +static
    +
    +
    Returns
    the smallest Box containing both |a| and |b|.
    + +

    Definition at line 22 of file box.cpp.

    + +
    +
    + +

    ◆ Shift()

    + +
    +
    + + + + + + + + + + + +
    void Shift (int x,
    int y )
    +
    +

    Shift the box by (x,y).

    Parameters
    + + + +
    xhorizontal shift.
    yvertical shift.
    +
    +
    + +

    Definition at line 34 of file box.cpp.

    + +
    +
    + +

    ◆ Contain()

    + +
    +
    + + + + + + + + + + + +
    bool Contain (int x,
    int y ) const
    +
    +
    Returns
    whether (x,y) is contained inside the box.
    + +

    Definition at line 42 of file box.cpp.

    + +
    +
    + +

    ◆ IsEmpty()

    + +
    +
    + + + + + + + +
    bool IsEmpty () const
    +
    +
    Returns
    whether the box is empty.
    + +

    Definition at line 50 of file box.cpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    + + + + + + + +
    bool operator== (const Box & other) const
    +
    +
    Returns
    whether |other| is the same as |this|
    + +

    Definition at line 55 of file box.cpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    + + + + + + + +
    bool operator!= (const Box & other) const
    +
    +
    Returns
    whether |other| and |this| are different.
    + +

    Definition at line 61 of file box.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ x_min

    + +
    +
    + + + + +
    int x_min = 0
    +
    + +

    Definition at line 17 of file box.hpp.

    + +
    +
    + +

    ◆ x_max

    + +
    +
    + + + + +
    int x_max = 0
    +
    + +

    Definition at line 18 of file box.hpp.

    + +
    +
    + +

    ◆ y_min

    + +
    +
    + + + + +
    int y_min = 0
    +
    + +

    Definition at line 19 of file box.hpp.

    + +
    +
    + +

    ◆ y_max

    + +
    +
    + + + + +
    int y_max = 0
    +
    + +

    Definition at line 20 of file box.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Color

    + +
    +
    + + + + +
    class ftxui::Color
    +
    +

    Color is a class that represents a color in the terminal user interface.

    + +

    Definition at line 22 of file color.hpp.

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

    Public Types

    enum  Palette1 : uint8_t { Default + }
     
    enum  Palette16 : uint8_t {
    +  Black = 0 +,
    +  Red = 1 +,
    +  Green = 2 +,
    +  Yellow = 3 +,
    +  Blue = 4 +,
    +  Magenta = 5 +,
    +  Cyan = 6 +,
    +  GrayLight = 7 +,
    +  GrayDark = 8 +,
    +  RedLight = 9 +,
    +  GreenLight = 10 +,
    +  YellowLight = 11 +,
    +  BlueLight = 12 +,
    +  MagentaLight = 13 +,
    +  CyanLight = 14 +,
    +  White = 15 +
    + }
     
    enum  Palette256 : uint8_t {
    +  Aquamarine1 = 122 +,
    +  Aquamarine1Bis = 86 +,
    +  Aquamarine3 = 79 +,
    +  Blue1 = 21 +,
    +  Blue3 = 19 +,
    +  Blue3Bis = 20 +,
    +  BlueViolet = 57 +,
    +  CadetBlue = 72 +,
    +  CadetBlueBis = 73 +,
    +  Chartreuse1 = 118 +,
    +  Chartreuse2 = 112 +,
    +  Chartreuse2Bis = 82 +,
    +  Chartreuse3 = 70 +,
    +  Chartreuse3Bis = 76 +,
    +  Chartreuse4 = 64 +,
    +  CornflowerBlue = 69 +,
    +  Cornsilk1 = 230 +,
    +  Cyan1 = 51 +,
    +  Cyan2 = 50 +,
    +  Cyan3 = 43 +,
    +  DarkBlue = 18 +,
    +  DarkCyan = 36 +,
    +  DarkGoldenrod = 136 +,
    +  DarkGreen = 22 +,
    +  DarkKhaki = 143 +,
    +  DarkMagenta = 90 +,
    +  DarkMagentaBis = 91 +,
    +  DarkOliveGreen1 = 191 +,
    +  DarkOliveGreen1Bis = 192 +,
    +  DarkOliveGreen2 = 155 +,
    +  DarkOliveGreen3 = 107 +,
    +  DarkOliveGreen3Bis = 113 +,
    +  DarkOliveGreen3Ter = 149 +,
    +  DarkOrange = 208 +,
    +  DarkOrange3 = 130 +,
    +  DarkOrange3Bis = 166 +,
    +  DarkRed = 52 +,
    +  DarkRedBis = 88 +,
    +  DarkSeaGreen = 108 +,
    +  DarkSeaGreen1 = 158 +,
    +  DarkSeaGreen1Bis = 193 +,
    +  DarkSeaGreen2 = 151 +,
    +  DarkSeaGreen2Bis = 157 +,
    +  DarkSeaGreen3 = 115 +,
    +  DarkSeaGreen3Bis = 150 +,
    +  DarkSeaGreen4 = 65 +,
    +  DarkSeaGreen4Bis = 71 +,
    +  DarkSlateGray1 = 123 +,
    +  DarkSlateGray2 = 87 +,
    +  DarkSlateGray3 = 116 +,
    +  DarkTurquoise = 44 +,
    +  DarkViolet = 128 +,
    +  DarkVioletBis = 92 +,
    +  DeepPink1 = 198 +,
    +  DeepPink1Bis = 199 +,
    +  DeepPink2 = 197 +,
    +  DeepPink3 = 161 +,
    +  DeepPink3Bis = 162 +,
    +  DeepPink4 = 125 +,
    +  DeepPink4Bis = 89 +,
    +  DeepPink4Ter = 53 +,
    +  DeepSkyBlue1 = 39 +,
    +  DeepSkyBlue2 = 38 +,
    +  DeepSkyBlue3 = 31 +,
    +  DeepSkyBlue3Bis = 32 +,
    +  DeepSkyBlue4 = 23 +,
    +  DeepSkyBlue4Bis = 24 +,
    +  DeepSkyBlue4Ter = 25 +,
    +  DodgerBlue1 = 33 +,
    +  DodgerBlue2 = 27 +,
    +  DodgerBlue3 = 26 +,
    +  Gold1 = 220 +,
    +  Gold3 = 142 +,
    +  Gold3Bis = 178 +,
    +  Green1 = 46 +,
    +  Green3 = 34 +,
    +  Green3Bis = 40 +,
    +  Green4 = 28 +,
    +  GreenYellow = 154 +,
    +  Grey0 = 16 +,
    +  Grey100 = 231 +,
    +  Grey11 = 234 +,
    +  Grey15 = 235 +,
    +  Grey19 = 236 +,
    +  Grey23 = 237 +,
    +  Grey27 = 238 +,
    +  Grey3 = 232 +,
    +  Grey30 = 239 +,
    +  Grey35 = 240 +,
    +  Grey37 = 59 +,
    +  Grey39 = 241 +,
    +  Grey42 = 242 +,
    +  Grey46 = 243 +,
    +  Grey50 = 244 +,
    +  Grey53 = 102 +,
    +  Grey54 = 245 +,
    +  Grey58 = 246 +,
    +  Grey62 = 247 +,
    +  Grey63 = 139 +,
    +  Grey66 = 248 +,
    +  Grey69 = 145 +,
    +  Grey7 = 233 +,
    +  Grey70 = 249 +,
    +  Grey74 = 250 +,
    +  Grey78 = 251 +,
    +  Grey82 = 252 +,
    +  Grey84 = 188 +,
    +  Grey85 = 253 +,
    +  Grey89 = 254 +,
    +  Grey93 = 255 +,
    +  Honeydew2 = 194 +,
    +  HotPink = 205 +,
    +  HotPink2 = 169 +,
    +  HotPink3 = 132 +,
    +  HotPink3Bis = 168 +,
    +  HotPinkBis = 206 +,
    +  IndianRed = 131 +,
    +  IndianRed1 = 203 +,
    +  IndianRed1Bis = 204 +,
    +  IndianRedBis = 167 +,
    +  Khaki1 = 228 +,
    +  Khaki3 = 185 +,
    +  LightCoral = 210 +,
    +  LightCyan1Bis = 195 +,
    +  LightCyan3 = 152 +,
    +  LightGoldenrod1 = 227 +,
    +  LightGoldenrod2 = 186 +,
    +  LightGoldenrod2Bis = 221 +,
    +  LightGoldenrod2Ter = 222 +,
    +  LightGoldenrod3 = 179 +,
    +  LightGreen = 119 +,
    +  LightGreenBis = 120 +,
    +  LightPink1 = 217 +,
    +  LightPink3 = 174 +,
    +  LightPink4 = 95 +,
    +  LightSalmon1 = 216 +,
    +  LightSalmon3 = 137 +,
    +  LightSalmon3Bis = 173 +,
    +  LightSeaGreen = 37 +,
    +  LightSkyBlue1 = 153 +,
    +  LightSkyBlue3 = 109 +,
    +  LightSkyBlue3Bis = 110 +,
    +  LightSlateBlue = 105 +,
    +  LightSlateGrey = 103 +,
    +  LightSteelBlue = 147 +,
    +  LightSteelBlue1 = 189 +,
    +  LightSteelBlue3 = 146 +,
    +  LightYellow3 = 187 +,
    +  Magenta1 = 201 +,
    +  Magenta2 = 165 +,
    +  Magenta2Bis = 200 +,
    +  Magenta3 = 127 +,
    +  Magenta3Bis = 163 +,
    +  Magenta3Ter = 164 +,
    +  MediumOrchid = 134 +,
    +  MediumOrchid1 = 171 +,
    +  MediumOrchid1Bis = 207 +,
    +  MediumOrchid3 = 133 +,
    +  MediumPurple = 104 +,
    +  MediumPurple1 = 141 +,
    +  MediumPurple2 = 135 +,
    +  MediumPurple2Bis = 140 +,
    +  MediumPurple3 = 97 +,
    +  MediumPurple3Bis = 98 +,
    +  MediumPurple4 = 60 +,
    +  MediumSpringGreen = 49 +,
    +  MediumTurquoise = 80 +,
    +  MediumVioletRed = 126 +,
    +  MistyRose1 = 224 +,
    +  MistyRose3 = 181 +,
    +  NavajoWhite1 = 223 +,
    +  NavajoWhite3 = 144 +,
    +  NavyBlue = 17 +,
    +  Orange1 = 214 +,
    +  Orange3 = 172 +,
    +  Orange4 = 58 +,
    +  Orange4Bis = 94 +,
    +  OrangeRed1 = 202 +,
    +  Orchid = 170 +,
    +  Orchid1 = 213 +,
    +  Orchid2 = 212 +,
    +  PaleGreen1 = 121 +,
    +  PaleGreen1Bis = 156 +,
    +  PaleGreen3 = 114 +,
    +  PaleGreen3Bis = 77 +,
    +  PaleTurquoise1 = 159 +,
    +  PaleTurquoise4 = 66 +,
    +  PaleVioletRed1 = 211 +,
    +  Pink1 = 218 +,
    +  Pink3 = 175 +,
    +  Plum1 = 219 +,
    +  Plum2 = 183 +,
    +  Plum3 = 176 +,
    +  Plum4 = 96 +,
    +  Purple = 129 +,
    +  Purple3 = 56 +,
    +  Purple4 = 54 +,
    +  Purple4Bis = 55 +,
    +  PurpleBis = 93 +,
    +  Red1 = 196 +,
    +  Red3 = 124 +,
    +  Red3Bis = 160 +,
    +  RosyBrown = 138 +,
    +  RoyalBlue1 = 63 +,
    +  Salmon1 = 209 +,
    +  SandyBrown = 215 +,
    +  SeaGreen1 = 84 +,
    +  SeaGreen1Bis = 85 +,
    +  SeaGreen2 = 83 +,
    +  SeaGreen3 = 78 +,
    +  SkyBlue1 = 117 +,
    +  SkyBlue2 = 111 +,
    +  SkyBlue3 = 74 +,
    +  SlateBlue1 = 99 +,
    +  SlateBlue3 = 61 +,
    +  SlateBlue3Bis = 62 +,
    +  SpringGreen1 = 48 +,
    +  SpringGreen2 = 42 +,
    +  SpringGreen2Bis = 47 +,
    +  SpringGreen3 = 35 +,
    +  SpringGreen3Bis = 41 +,
    +  SpringGreen4 = 29 +,
    +  SteelBlue = 67 +,
    +  SteelBlue1 = 75 +,
    +  SteelBlue1Bis = 81 +,
    +  SteelBlue3 = 68 +,
    +  Tan = 180 +,
    +  Thistle1 = 225 +,
    +  Thistle3 = 182 +,
    +  Turquoise2 = 45 +,
    +  Turquoise4 = 30 +,
    +  Violet = 177 +,
    +  Wheat1 = 229 +,
    +  Wheat4 = 101 +,
    +  Yellow1 = 226 +,
    +  Yellow2 = 190 +,
    +  Yellow3 = 148 +,
    +  Yellow3Bis = 184 +,
    +  Yellow4 = 100 +,
    +  Yellow4Bis = 106 +
    + }
     

    Public Member Functions

     Color ()
     Build a transparent color.
     
     Color (Palette1 index)
     Build a transparent color.
     
     Color (Palette16 index)
     Build a color using the Palette16 colors.
     
     Color (Palette256 index)
     Build a color using Palette256 colors.
     
     Color (uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=255)
     Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
     
    bool operator== (const Color &rhs) const
     
    bool operator!= (const Color &rhs) const
     
    std::string Print (bool is_background_color) const
     
    bool IsOpaque () const
     

    Static Public Member Functions

    static Color RGB (uint8_t red, uint8_t green, uint8_t blue)
     Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
     
    static Color HSV (uint8_t hue, uint8_t saturation, uint8_t value)
     Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
     
    static Color RGBA (uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
     Build a Color from its RGBA representation. https://en.wikipedia.org/wiki/RGB_color_model.
     
    static Color HSVA (uint8_t hue, uint8_t saturation, uint8_t value, uint8_t alpha)
     Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
     
    static Color Interpolate (float t, const Color &a, const Color &b)
     
    static Color Blend (const Color &lhs, const Color &rhs)
     Blend two colors together using the alpha channel.
     
    +

    Member Enumeration Documentation

    + +

    ◆ Palette1

    + +
    +
    + + + + +
    enum Palette1 : uint8_t
    +
    + + +
    Enumerator
    Default 
    + +

    Definition at line 49 of file color.hpp.

    + +
    +
    + +

    ◆ Palette16

    + +
    +
    + + + + +
    enum Palette16 : uint8_t
    +
    + + + + + + + + + + + + + + + + + +
    Enumerator
    Black 
    Red 
    Green 
    Yellow 
    Blue 
    Magenta 
    Cyan 
    GrayLight 
    GrayDark 
    RedLight 
    GreenLight 
    YellowLight 
    BlueLight 
    MagentaLight 
    CyanLight 
    White 
    + +

    Definition at line 53 of file color.hpp.

    + +
    +
    + +

    ◆ Palette256

    + +
    +
    + + + + +
    enum Palette256 : uint8_t
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    Aquamarine1 
    Aquamarine1Bis 
    Aquamarine3 
    Blue1 
    Blue3 
    Blue3Bis 
    BlueViolet 
    CadetBlue 
    CadetBlueBis 
    Chartreuse1 
    Chartreuse2 
    Chartreuse2Bis 
    Chartreuse3 
    Chartreuse3Bis 
    Chartreuse4 
    CornflowerBlue 
    Cornsilk1 
    Cyan1 
    Cyan2 
    Cyan3 
    DarkBlue 
    DarkCyan 
    DarkGoldenrod 
    DarkGreen 
    DarkKhaki 
    DarkMagenta 
    DarkMagentaBis 
    DarkOliveGreen1 
    DarkOliveGreen1Bis 
    DarkOliveGreen2 
    DarkOliveGreen3 
    DarkOliveGreen3Bis 
    DarkOliveGreen3Ter 
    DarkOrange 
    DarkOrange3 
    DarkOrange3Bis 
    DarkRed 
    DarkRedBis 
    DarkSeaGreen 
    DarkSeaGreen1 
    DarkSeaGreen1Bis 
    DarkSeaGreen2 
    DarkSeaGreen2Bis 
    DarkSeaGreen3 
    DarkSeaGreen3Bis 
    DarkSeaGreen4 
    DarkSeaGreen4Bis 
    DarkSlateGray1 
    DarkSlateGray2 
    DarkSlateGray3 
    DarkTurquoise 
    DarkViolet 
    DarkVioletBis 
    DeepPink1 
    DeepPink1Bis 
    DeepPink2 
    DeepPink3 
    DeepPink3Bis 
    DeepPink4 
    DeepPink4Bis 
    DeepPink4Ter 
    DeepSkyBlue1 
    DeepSkyBlue2 
    DeepSkyBlue3 
    DeepSkyBlue3Bis 
    DeepSkyBlue4 
    DeepSkyBlue4Bis 
    DeepSkyBlue4Ter 
    DodgerBlue1 
    DodgerBlue2 
    DodgerBlue3 
    Gold1 
    Gold3 
    Gold3Bis 
    Green1 
    Green3 
    Green3Bis 
    Green4 
    GreenYellow 
    Grey0 
    Grey100 
    Grey11 
    Grey15 
    Grey19 
    Grey23 
    Grey27 
    Grey3 
    Grey30 
    Grey35 
    Grey37 
    Grey39 
    Grey42 
    Grey46 
    Grey50 
    Grey53 
    Grey54 
    Grey58 
    Grey62 
    Grey63 
    Grey66 
    Grey69 
    Grey7 
    Grey70 
    Grey74 
    Grey78 
    Grey82 
    Grey84 
    Grey85 
    Grey89 
    Grey93 
    Honeydew2 
    HotPink 
    HotPink2 
    HotPink3 
    HotPink3Bis 
    HotPinkBis 
    IndianRed 
    IndianRed1 
    IndianRed1Bis 
    IndianRedBis 
    Khaki1 
    Khaki3 
    LightCoral 
    LightCyan1Bis 
    LightCyan3 
    LightGoldenrod1 
    LightGoldenrod2 
    LightGoldenrod2Bis 
    LightGoldenrod2Ter 
    LightGoldenrod3 
    LightGreen 
    LightGreenBis 
    LightPink1 
    LightPink3 
    LightPink4 
    LightSalmon1 
    LightSalmon3 
    LightSalmon3Bis 
    LightSeaGreen 
    LightSkyBlue1 
    LightSkyBlue3 
    LightSkyBlue3Bis 
    LightSlateBlue 
    LightSlateGrey 
    LightSteelBlue 
    LightSteelBlue1 
    LightSteelBlue3 
    LightYellow3 
    Magenta1 
    Magenta2 
    Magenta2Bis 
    Magenta3 
    Magenta3Bis 
    Magenta3Ter 
    MediumOrchid 
    MediumOrchid1 
    MediumOrchid1Bis 
    MediumOrchid3 
    MediumPurple 
    MediumPurple1 
    MediumPurple2 
    MediumPurple2Bis 
    MediumPurple3 
    MediumPurple3Bis 
    MediumPurple4 
    MediumSpringGreen 
    MediumTurquoise 
    MediumVioletRed 
    MistyRose1 
    MistyRose3 
    NavajoWhite1 
    NavajoWhite3 
    NavyBlue 
    Orange1 
    Orange3 
    Orange4 
    Orange4Bis 
    OrangeRed1 
    Orchid 
    Orchid1 
    Orchid2 
    PaleGreen1 
    PaleGreen1Bis 
    PaleGreen3 
    PaleGreen3Bis 
    PaleTurquoise1 
    PaleTurquoise4 
    PaleVioletRed1 
    Pink1 
    Pink3 
    Plum1 
    Plum2 
    Plum3 
    Plum4 
    Purple 
    Purple3 
    Purple4 
    Purple4Bis 
    PurpleBis 
    Red1 
    Red3 
    Red3Bis 
    RosyBrown 
    RoyalBlue1 
    Salmon1 
    SandyBrown 
    SeaGreen1 
    SeaGreen1Bis 
    SeaGreen2 
    SeaGreen3 
    SkyBlue1 
    SkyBlue2 
    SkyBlue3 
    SlateBlue1 
    SlateBlue3 
    SlateBlue3Bis 
    SpringGreen1 
    SpringGreen2 
    SpringGreen2Bis 
    SpringGreen3 
    SpringGreen3Bis 
    SpringGreen4 
    SteelBlue 
    SteelBlue1 
    SteelBlue1Bis 
    SteelBlue3 
    Tan 
    Thistle1 
    Thistle3 
    Turquoise2 
    Turquoise4 
    Violet 
    Wheat1 
    Wheat4 
    Yellow1 
    Yellow2 
    Yellow3 
    Yellow3Bis 
    Yellow4 
    Yellow4Bis 
    + +

    Definition at line 72 of file color.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Color() [1/5]

    + +
    +
    + + + + + +
    + + + + + + + +
    Color ()
    +
    +default
    +
    + +

    Build a transparent color.

    + +
    +
    + +

    ◆ Color() [2/5]

    + +
    +
    + + + + + + + +
    Color (Palette1 index)
    +
    + +

    Build a transparent color.

    + +

    Definition at line 80 of file screen/color.cpp.

    + +
    +
    + +

    ◆ Color() [3/5]

    + +
    +
    + + + + + + + +
    Color (Palette16 index)
    +
    + +

    Build a color using the Palette16 colors.

    + +

    Definition at line 83 of file screen/color.cpp.

    + +
    +
    + +

    ◆ Color() [4/5]

    + +
    +
    + + + + + + + +
    Color (Palette256 index)
    +
    + +

    Build a color using Palette256 colors.

    + +

    Definition at line 87 of file screen/color.cpp.

    + +
    +
    + +

    ◆ Color() [5/5]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Color (uint8_t red,
    uint8_t green,
    uint8_t blue,
    uint8_t alpha = 255 )
    +
    + +

    Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.

    +
    Parameters
    + + + + + +
    redThe quantity of red [0,255]
    greenThe quantity of green [0,255]
    blueThe quantity of blue [0,255]
    alphaThe quantity of alpha [0,255]
    +
    +
    + +

    Definition at line 103 of file screen/color.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ RGB()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + +
    Color RGB (uint8_t red,
    uint8_t green,
    uint8_t blue )
    +
    +static
    +
    + +

    Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.

    +
    Parameters
    + + + + +
    redThe quantity of red [0,255]
    greenThe quantity of green [0,255]
    blueThe quantity of blue [0,255]
    +
    +
    + +

    Definition at line 147 of file screen/color.cpp.

    + +
    +
    + +

    ◆ HSV()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + +
    Color HSV (uint8_t h,
    uint8_t s,
    uint8_t v )
    +
    +static
    +
    + +

    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.

    +
    Parameters
    + + + + +
    hThe hue of the color [0,255]
    sThe "colorfulness" [0,255].
    vThe "Lightness" [0,255]
    +
    +
    + +

    Definition at line 198 of file screen/color.cpp.

    + +
    +
    + +

    ◆ RGBA()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    Color RGBA (uint8_t red,
    uint8_t green,
    uint8_t blue,
    uint8_t alpha )
    +
    +static
    +
    + +

    Build a Color from its RGBA representation. https://en.wikipedia.org/wiki/RGB_color_model.

    +
    Parameters
    + + + + + +
    redThe quantity of red [0,255]
    greenThe quantity of green [0,255]
    blueThe quantity of blue [0,255]
    alphaThe quantity of alpha [0,255]
    +
    +
    +
    See also
    Color::RGB
    + +

    Definition at line 159 of file screen/color.cpp.

    + +
    +
    + +

    ◆ HSVA()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    Color HSVA (uint8_t h,
    uint8_t s,
    uint8_t v,
    uint8_t alpha )
    +
    +static
    +
    + +

    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.

    +
    Parameters
    + + + + + +
    hThe hue of the color [0,255]
    sThe "colorfulness" [0,255].
    vThe "Lightness" [0,255]
    alphaThe quantity of alpha [0,255]
    +
    +
    + +

    Definition at line 171 of file screen/color.cpp.

    + +
    +
    + +

    ◆ Interpolate()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + +
    Color Interpolate (float t,
    const Color & a,
    const Color & b )
    +
    +static
    +
    + +

    Definition at line 203 of file screen/color.cpp.

    + +
    +
    + +

    ◆ Blend()

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Color Blend (const Color & lhs,
    const Color & rhs )
    +
    +static
    +
    + +

    Blend two colors together using the alpha channel.

    + +

    Definition at line 272 of file screen/color.cpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    + + + + + + + +
    bool operator== (const Color & rhs) const
    +
    + +

    Definition at line 37 of file screen/color.cpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    + + + + + + + +
    bool operator!= (const Color & rhs) const
    +
    + +

    Definition at line 42 of file screen/color.cpp.

    + +
    +
    + +

    ◆ Print()

    + +
    +
    + + + + + + + +
    std::string Print (bool is_background_color) const
    +
    + +

    Definition at line 46 of file screen/color.cpp.

    + +
    +
    + +

    ◆ IsOpaque()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool IsOpaque () const
    +
    +inline
    +
    + +

    Definition at line 321 of file color.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::ColorInfo

    + +
    +
    + + + + +
    struct ftxui::ColorInfo
    +
    +

    ColorInfo is a structure that contains information about the terminal color palette.

    + +

    Definition at line 16 of file color_info.hpp.

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

    Public Attributes

    const char * name
     
    uint8_t index_256
     
    uint8_t index_16
     
    uint8_t red
     
    uint8_t green
     
    uint8_t blue
     
    uint8_t hue
     
    uint8_t saturation
     
    uint8_t value
     
    +

    Member Data Documentation

    + +

    ◆ name

    + +
    +
    + + + + +
    const char* name
    +
    + +

    Definition at line 17 of file color_info.hpp.

    + +
    +
    + +

    ◆ index_256

    + +
    +
    + + + + +
    uint8_t index_256
    +
    + +

    Definition at line 18 of file color_info.hpp.

    + +
    +
    + +

    ◆ index_16

    + +
    +
    + + + + +
    uint8_t index_16
    +
    + +

    Definition at line 19 of file color_info.hpp.

    + +
    +
    + +

    ◆ red

    + +
    +
    + + + + +
    uint8_t red
    +
    + +

    Definition at line 20 of file color_info.hpp.

    + +
    +
    + +

    ◆ green

    + +
    +
    + + + + +
    uint8_t green
    +
    + +

    Definition at line 21 of file color_info.hpp.

    + +
    +
    + +

    ◆ blue

    + +
    +
    + + + + +
    uint8_t blue
    +
    + +

    Definition at line 22 of file color_info.hpp.

    + +
    +
    + +

    ◆ hue

    + +
    +
    + + + + +
    uint8_t hue
    +
    + +

    Definition at line 23 of file color_info.hpp.

    + +
    +
    + +

    ◆ saturation

    + +
    +
    + + + + +
    uint8_t saturation
    +
    + +

    Definition at line 24 of file color_info.hpp.

    + +
    +
    + +

    ◆ value

    + +
    +
    + + + + +
    uint8_t value
    +
    + +

    Definition at line 25 of file color_info.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Image

    + +
    +
    + + + + +
    class ftxui::Image
    +
    +

    A rectangular grid of Pixel.

    + +

    Definition at line 17 of file image.hpp.

    +
    + + Inheritance diagram for Image:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

     Image ()=delete
     
     Image (int dimx, int dimy)
     
    virtual ~Image ()=default
     
    std::string & at (int x, int y)
     Access a character in a cell at a given position.
     
    const std::string & at (int x, int y) const
     Access a character in a cell at a given position.
     
    PixelPixelAt (int x, int y)
     Access a cell (Pixel) at a given position.
     
    const PixelPixelAt (int x, int y) const
     Access a cell (Pixel) at a given position.
     
    int dimx () const
     
    int dimy () const
     
    void Clear ()
     Clear all the pixel from the screen.
     

    Public Attributes

    Box stencil
     

    Protected Attributes

    int dimx_
     
    int dimy_
     
    std::vector< std::vector< Pixel > > pixels_
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ Image() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Image ()
    +
    +delete
    +
    + +
    +
    + +

    ◆ Image() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Image (int dimx,
    int dimy )
    +
    + +

    Definition at line 20 of file image.cpp.

    + +
    +
    + +

    ◆ ~Image()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual ~Image ()
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ at() [1/2]

    + +
    +
    + + + + + + + + + + + +
    std::string & at (int x,
    int y )
    +
    + +

    Access a character in a cell at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 29 of file image.cpp.

    + +
    +
    + +

    ◆ at() [2/2]

    + +
    +
    + + + + + + + + + + + +
    const std::string & at (int x,
    int y ) const
    +
    + +

    Access a character in a cell at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 36 of file image.cpp.

    + +
    +
    + +

    ◆ PixelAt() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Pixel & PixelAt (int x,
    int y )
    +
    + +

    Access a cell (Pixel) at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 43 of file image.cpp.

    + +
    +
    + +

    ◆ PixelAt() [2/2]

    + +
    +
    + + + + + + + + + + + +
    const Pixel & PixelAt (int x,
    int y ) const
    +
    + +

    Access a cell (Pixel) at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 50 of file image.cpp.

    + +
    +
    + +

    ◆ dimx()

    + +
    +
    + + + + + +
    + + + + + + + +
    int dimx () const
    +
    +inline
    +
    + +

    Definition at line 35 of file image.hpp.

    + +
    +
    + +

    ◆ dimy()

    + +
    +
    + + + + + +
    + + + + + + + +
    int dimy () const
    +
    +inline
    +
    + +

    Definition at line 36 of file image.hpp.

    + +
    +
    + +

    ◆ Clear()

    + +
    +
    + + + + + + + +
    void Clear ()
    +
    + +

    Clear all the pixel from the screen.

    + +

    Definition at line 55 of file image.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ stencil

    + +
    +
    + + + + +
    Box stencil
    +
    + +

    Definition at line 41 of file image.hpp.

    + +
    +
    + +

    ◆ dimx_

    + +
    +
    + + + + + +
    + + + + +
    int dimx_
    +
    +protected
    +
    + +

    Definition at line 44 of file image.hpp.

    + +
    +
    + +

    ◆ dimy_

    + +
    +
    + + + + + +
    + + + + +
    int dimy_
    +
    +protected
    +
    + +

    Definition at line 45 of file image.hpp.

    + +
    +
    + +

    ◆ pixels_

    + +
    +
    + + + + + +
    + + + + +
    std::vector<std::vector<Pixel> > pixels_
    +
    +protected
    +
    + +

    Definition at line 46 of file image.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Pixel

    + +
    +
    + + + + +
    struct ftxui::Pixel
    +
    +

    A Unicode character and its associated style.

    + +

    Definition at line 15 of file pixel.hpp.

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

    Public Member Functions

     Pixel ()
     

    Public Attributes

    bool blink: 1
     
    bool bold: 1
     
    bool dim: 1
     
    bool italic: 1
     
    bool inverted: 1
     
    bool underlined: 1
     
    bool underlined_double: 1
     
    bool strikethrough: 1
     
    bool automerge: 1
     
    uint8_t hyperlink = 0
     
    std::string character = ""
     
    Color background_color = Color::Default
     
    Color foreground_color = Color::Default
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ Pixel()

    + +
    +
    + + + + + +
    + + + + + + + +
    Pixel ()
    +
    +inline
    +
    + +

    Definition at line 16 of file pixel.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ blink

    + +
    +
    + + + + +
    bool blink
    +
    + +

    Definition at line 28 of file pixel.hpp.

    + +
    +
    + +

    ◆ bold

    + +
    +
    + + + + +
    bool bold
    +
    + +

    Definition at line 29 of file pixel.hpp.

    + +
    +
    + +

    ◆ dim

    + +
    +
    + + + + +
    bool dim
    +
    + +

    Definition at line 30 of file pixel.hpp.

    + +
    +
    + +

    ◆ italic

    + +
    +
    + + + + +
    bool italic
    +
    + +

    Definition at line 31 of file pixel.hpp.

    + +
    +
    + +

    ◆ inverted

    + +
    +
    + + + + +
    bool inverted
    +
    + +

    Definition at line 32 of file pixel.hpp.

    + +
    +
    + +

    ◆ underlined

    + +
    +
    + + + + +
    bool underlined
    +
    + +

    Definition at line 33 of file pixel.hpp.

    + +
    +
    + +

    ◆ underlined_double

    + +
    +
    + + + + +
    bool underlined_double
    +
    + +

    Definition at line 34 of file pixel.hpp.

    + +
    +
    + +

    ◆ strikethrough

    + +
    +
    + + + + +
    bool strikethrough
    +
    + +

    Definition at line 35 of file pixel.hpp.

    + +
    +
    + +

    ◆ automerge

    + +
    +
    + + + + +
    bool automerge
    +
    + +

    Definition at line 36 of file pixel.hpp.

    + +
    +
    + +

    ◆ hyperlink

    + +
    +
    + + + + +
    uint8_t hyperlink = 0
    +
    + +

    Definition at line 41 of file pixel.hpp.

    + +
    +
    + +

    ◆ character

    + +
    +
    + + + + +
    std::string character = ""
    +
    + +

    Definition at line 45 of file pixel.hpp.

    + +
    +
    + +

    ◆ background_color

    + +
    +
    + + + + +
    Color background_color = Color::Default
    +
    + +

    Definition at line 48 of file pixel.hpp.

    + +
    +
    + +

    ◆ foreground_color

    + +
    +
    + + + + +
    Color foreground_color = Color::Default
    +
    + +

    Definition at line 49 of file pixel.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Screen

    + +
    +
    + + + + +
    class ftxui::Screen
    +
    +

    A rectangular grid of Pixel.

    + +

    Definition at line 26 of file screen.hpp.

    +
    + + Inheritance diagram for Screen:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Types

    using SelectionStyle = std::function<void(Pixel&)>
     

    Public Member Functions

     Screen (int dimx, int dimy)
     
     ~Screen () override=default
     
    std::string ToString () const
     
    void Print () const
     
    void Clear ()
     Clear all the pixel from the screen.
     
    std::string ResetPosition (bool clear=false) const
     Return a string to be printed in order to reset the cursor position to the beginning of the screen.
     
    void ApplyShader ()
     
    Cursor cursor () const
     
    void SetCursor (Cursor cursor)
     
    uint8_t RegisterHyperlink (const std::string &link)
     
    const std::string & Hyperlink (uint8_t id) const
     
    const SelectionStyleGetSelectionStyle () const
     Return the current selection style.
     
    void SetSelectionStyle (SelectionStyle decorator)
     Set the current selection style.
     
    std::string & at (int x, int y)
     Access a character in a cell at a given position.
     
    const std::string & at (int x, int y) const
     Access a character in a cell at a given position.
     
    PixelPixelAt (int x, int y)
     Access a cell (Pixel) at a given position.
     
    const PixelPixelAt (int x, int y) const
     Access a cell (Pixel) at a given position.
     
    int dimx () const
     
    int dimy () const
     

    Static Public Member Functions

    static Screen Create (Dimensions dimension)
     Create a screen with the given dimension.
     
    static Screen Create (Dimensions width, Dimensions height)
     Create a screen with the given dimension along the x-axis and y-axis.
     

    Public Attributes

    Box stencil
     

    Protected Attributes

    Cursor cursor_
     
    std::vector< std::string > hyperlinks_ = {""}
     
    SelectionStyle selection_style_
     
    int dimx_
     
    int dimy_
     
    std::vector< std::vector< Pixel > > pixels_
     
    +

    Member Typedef Documentation

    + +

    ◆ SelectionStyle

    + +
    +
    + + + + +
    using SelectionStyle = std::function<void(Pixel&)>
    +
    + +

    Definition at line 74 of file screen.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Screen()

    + +
    +
    + + + + + + + + + + + +
    Screen (int dimx,
    int dimy )
    +
    + +

    Definition at line 399 of file screen.cpp.

    + +
    +
    + +

    ◆ ~Screen()

    + +
    +
    + + + + + +
    + + + + + + + +
    ~Screen ()
    +
    +overridedefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ Create() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    Screen Create (Dimensions dimension)
    +
    +static
    +
    + +

    Create a screen with the given dimension.

    + +

    Definition at line 395 of file screen.cpp.

    + +
    +
    + +

    ◆ Create() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Screen Create (Dimensions width,
    Dimensions height )
    +
    +static
    +
    + +

    Create a screen with the given dimension along the x-axis and y-axis.

    + +

    Definition at line 389 of file screen.cpp.

    + +
    +
    + +

    ◆ ToString()

    + +
    +
    + + + + + + + +
    std::string ToString () const
    +
    +

    Produce a std::string that can be used to print the Screen on the terminal.

    Note
    Don't forget to flush stdout. Alternatively, you can use Screen::Print();
    + +

    Definition at line 416 of file screen.cpp.

    + +
    +
    + +

    ◆ Print()

    + +
    +
    + + + + + + + +
    void Print () const
    +
    + +

    Definition at line 453 of file screen.cpp.

    + +
    +
    + +

    ◆ Clear()

    + +
    +
    + + + + + + + +
    void Clear ()
    +
    + +

    Clear all the pixel from the screen.

    + +

    Definition at line 495 of file screen.cpp.

    + +
    +
    + +

    ◆ ResetPosition()

    + +
    +
    + + + + + + + +
    std::string ResetPosition (bool clear = false) const
    +
    + +

    Return a string to be printed in order to reset the cursor position to the beginning of the screen.

    +
    std::string reset_position;
    +
    while(true) {
    +
    auto document = render();
    +
    auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    Render(screen, document);
    +
    std::cout << reset_position << screen.ToString() << std::flush;
    +
    reset_position = screen.ResetPosition();
    +
    +
    using namespace std::chrono_literals;
    +
    std::this_thread::sleep_for(0.01s);
    +
    }
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    static Screen Create(Dimensions dimension)
    Create a screen with the given dimension.
    Definition screen.cpp:395
    +
    Returns
    The string to print in order to reset the cursor position to the beginning.
    + +

    Definition at line 476 of file screen.cpp.

    + +
    +
    + +

    ◆ ApplyShader()

    + +
    +
    + + + + + + + +
    void ApplyShader ()
    +
    + +

    Definition at line 507 of file screen.cpp.

    + +
    +
    + +

    ◆ cursor()

    + +
    +
    + + + + + +
    + + + + + + + +
    Cursor cursor () const
    +
    +inline
    +
    + +

    Definition at line 66 of file screen.hpp.

    + +
    +
    + +

    ◆ SetCursor()

    + +
    +
    + + + + + +
    + + + + + + + +
    void SetCursor (Cursor cursor)
    +
    +inline
    +
    + +

    Definition at line 67 of file screen.hpp.

    + +
    +
    + +

    ◆ RegisterHyperlink()

    + +
    +
    + + + + + + + +
    std::uint8_t RegisterHyperlink (const std::string & link)
    +
    + +

    Definition at line 534 of file screen.cpp.

    + +
    +
    + +

    ◆ Hyperlink()

    + +
    +
    + + + + + + + +
    const std::string & Hyperlink (uint8_t id) const
    +
    + +

    Definition at line 547 of file screen.cpp.

    + +
    +
    + +

    ◆ GetSelectionStyle()

    + +
    +
    + + + + + + + +
    const Screen::SelectionStyle & GetSelectionStyle () const
    +
    + +

    Return the current selection style.

    +
    See also
    SetSelectionStyle
    + +

    Definition at line 556 of file screen.cpp.

    + +
    +
    + +

    ◆ SetSelectionStyle()

    + +
    +
    + + + + + + + +
    void SetSelectionStyle (SelectionStyle decorator)
    +
    + +

    Set the current selection style.

    +
    See also
    GetSelectionStyle
    + +

    Definition at line 562 of file screen.cpp.

    + +
    +
    + +

    ◆ at() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    std::string & at (int x,
    int y )
    +
    +inherited
    +
    + +

    Access a character in a cell at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 29 of file image.cpp.

    + +
    +
    + +

    ◆ at() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    const std::string & at (int x,
    int y ) const
    +
    +inherited
    +
    + +

    Access a character in a cell at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 36 of file image.cpp.

    + +
    +
    + +

    ◆ PixelAt() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    Pixel & PixelAt (int x,
    int y )
    +
    +inherited
    +
    + +

    Access a cell (Pixel) at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 43 of file image.cpp.

    + +
    +
    + +

    ◆ PixelAt() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    const Pixel & PixelAt (int x,
    int y ) const
    +
    +inherited
    +
    + +

    Access a cell (Pixel) at a given position.

    +
    Parameters
    + + + +
    xThe cell position along the x-axis.
    yThe cell position along the y-axis.
    +
    +
    + +

    Definition at line 50 of file image.cpp.

    + +
    +
    + +

    ◆ dimx()

    + +
    +
    + + + + + +
    + + + + + + + +
    int dimx () const
    +
    +inlineinherited
    +
    + +

    Definition at line 35 of file image.hpp.

    + +
    +
    + +

    ◆ dimy()

    + +
    +
    + + + + + +
    + + + + + + + +
    int dimy () const
    +
    +inlineinherited
    +
    + +

    Definition at line 36 of file image.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ cursor_

    + +
    +
    + + + + + +
    + + + + +
    Cursor cursor_
    +
    +protected
    +
    + +

    Definition at line 79 of file screen.hpp.

    + +
    +
    + +

    ◆ hyperlinks_

    + +
    +
    + + + + + +
    + + + + +
    std::vector<std::string> hyperlinks_ = {""}
    +
    +protected
    +
    + +

    Definition at line 80 of file screen.hpp.

    + +
    +
    + +

    ◆ selection_style_

    + +
    +
    + + + + + +
    + + + + +
    SelectionStyle selection_style_
    +
    +protected
    +
    +Initial value:
    = [](Pixel& pixel) {
    +
    pixel.inverted ^= true;
    +
    }
    +
    +

    Definition at line 83 of file screen.hpp.

    + +
    +
    + +

    ◆ stencil

    + +
    +
    + + + + + +
    + + + + +
    Box stencil
    +
    +inherited
    +
    + +

    Definition at line 41 of file image.hpp.

    + +
    +
    + +

    ◆ dimx_

    + +
    +
    + + + + + +
    + + + + +
    int dimx_
    +
    +protectedinherited
    +
    + +

    Definition at line 44 of file image.hpp.

    + +
    +
    + +

    ◆ dimy_

    + +
    +
    + + + + + +
    + + + + +
    int dimy_
    +
    +protectedinherited
    +
    + +

    Definition at line 45 of file image.hpp.

    + +
    +
    + +

    ◆ pixels_

    + +
    +
    + + + + + +
    + + + + +
    std::vector<std::vector<Pixel> > pixels_
    +
    +protectedinherited
    +
    + +

    Definition at line 46 of file image.hpp.

    + +
    +
    + +
    +
    + +

    ◆ ftxui::Dimensions

    + +
    +
    + + + + +
    struct ftxui::Dimensions
    +
    +

    Dimensions is a structure that represents the size of the terminal.

    + +

    Definition at line 11 of file terminal.hpp.

    +
    + + + + + +

    Public Attributes

    int dimx
     
    int dimy
     
    +

    Member Data Documentation

    + +

    ◆ dimx

    + +
    +
    + + + + +
    int dimx
    +
    + +

    Definition at line 12 of file terminal.hpp.

    + +
    +
    + +

    ◆ dimy

    + +
    +
    + + + + +
    int dimy
    +
    + +

    Definition at line 13 of file terminal.hpp.

    + +
    +
    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ Color

    + +
    +
    + + + + +
    enum Color
    +
    + +

    Color is an enumeration that represents the color support of the terminal.

    + + + + + +
    Enumerator
    Palette1 
    Palette16 
    Palette256 
    TrueColor 
    + +

    Definition at line 23 of file terminal.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ Size()

    + +
    +
    + + + + + + + +
    Dimensions Size ()
    +
    + +

    Get the terminal size.

    +
    Returns
    The terminal size.
    + +

    Definition at line 94 of file terminal.cpp.

    + +
    +
    + +

    ◆ ColorSupport()

    + +
    +
    + + + + + + + +
    Color ColorSupport ()
    +
    + +

    Get the color support of the terminal.

    + +

    Definition at line 130 of file terminal.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/group__screen.js b/group__screen.js new file mode 100644 index 000000000..8e4c0b22f --- /dev/null +++ b/group__screen.js @@ -0,0 +1,386 @@ +var group__screen = +[ + [ "Box", "group__screen.html#structftxui_1_1Box", [ + [ "Shift", "group__screen.html#a507dad970b4732caab79e5922bdc5fb5", null ], + [ "Contain", "group__screen.html#a2f31c89738607b84e65992a7005d35a9", null ], + [ "IsEmpty", "group__screen.html#a8e12342fc420701fbffd97025421575a", null ], + [ "operator==", "group__screen.html#ad75c695cfa18e51d88a0984af5df2f69", null ], + [ "operator!=", "group__screen.html#a1ff481fa3b55fcc402c98c7564990c17", null ], + [ "x_min", "group__screen.html#ae0951dcafafdc96ac1d8361c672d47e2", null ], + [ "x_max", "group__screen.html#a5f0bb6d8a3e66525c3e6264cb8288e43", null ], + [ "y_min", "group__screen.html#a7941ddc7e35fffb8864af1e922814401", null ], + [ "y_max", "group__screen.html#ad033aea530fbbcf5bcd6cd98d882e3a5", null ] + ] ], + [ "Color", "group__screen.html#classftxui_1_1Color", [ + [ "Palette1", "group__screen.html#aa4be56f94fc180d7b070df23c235b0c7", [ + [ "Default", "group__screen.html#aa4be56f94fc180d7b070df23c235b0c7a79935518a3889663d8688b6b01fff051", null ] + ] ], + [ "Palette16", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802f", [ + [ "Black", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fac1e9bce8242f443c54c7405223d616cd", null ], + [ "Red", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad3163c1fcda01965b692ec2c3122b743", null ], + [ "Green", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad0784a3f969fe736e8b271a5a161d106", null ], + [ "Yellow", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fabf28513245738599d13e3ce36bd16c82", null ], + [ "Blue", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf5e09dd1da4088464f264b7a3118bff8", null ], + [ "Magenta", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab5059a620e2c7dc57556b1e275c2f9bc", null ], + [ "Cyan", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab0d4738f9c7f12049e52aa4e868bdc8b", null ], + [ "GrayLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fadebf1805c024a5504872f795f83a6835", null ], + [ "GrayDark", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fade3b52f7f38e412815092547cd6e8be7", null ], + [ "RedLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa0a04dda6f997cd48c0ca74203c501d27", null ], + [ "GreenLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9827485e548095e18c65045bc8058ce7", null ], + [ "YellowLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa7948fe5f055329af04798409b7ac37b5", null ], + [ "BlueLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf7cc79a56a740e9c59a156b0b3b93cbd", null ], + [ "MagentaLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9663f993a3affdf3526fa032cfe5b9f4", null ], + [ "CyanLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa61bd7f1290cc0a24e565539a61ba5839", null ], + [ "White", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab548046646b36c12aa6ba841de500094", null ] + ] ], + [ "Palette256", "group__screen.html#abd07c48f62cc507fafa2486a43130fcf", [ + [ "Aquamarine1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf54d1112226e67ee67339a050ae1b352", null ], + [ "Aquamarine1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4db1324d99372274e2414031d1773151", null ], + [ "Aquamarine3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfadc172e17e6f05d6e2b0e48c85803a85a", null ], + [ "Blue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9eafa8db807f9452108cd02b80cd4adc", null ], + [ "Blue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa910d98e6c6282c1c8133f53438beb7ca", null ], + [ "Blue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabb8f8ef3f352a8a9c884fadff1576b13", null ], + [ "BlueViolet", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd3fa02524f2597996333516267c773", null ], + [ "CadetBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa76906c6e4ac2ee22b81bda5a59e335f1", null ], + [ "CadetBlueBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb5d4e2aebcd3abba4c91d055f07513b", null ], + [ "Chartreuse1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7d2d4cc3af6756a4eac7d12fbe4775d4", null ], + [ "Chartreuse2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa353575e36d1260652eb3d18e73f04cfe", null ], + [ "Chartreuse2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6338086ae05e58041188d89165d87c1a", null ], + [ "Chartreuse3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2f3df27b5ed05a3e040deec31c684003", null ], + [ "Chartreuse3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2087d90de0840d3f15fad878ba4b4fc4", null ], + [ "Chartreuse4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa734cd2fab3e94385552fc745665bcc98", null ], + [ "CornflowerBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab4dcc712554f602559b3f9b7662ea4dd", null ], + [ "Cornsilk1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9d7dd269922a0e2fac6366c623ed3d45", null ], + [ "Cyan1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa35e9559f51c82a7adda45276bbedb0f4", null ], + [ "Cyan2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacc49853d1836ecf3b66c4b8c568aba3f", null ], + [ "Cyan3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a36fc7d64942362d706fad5544517d1", null ], + [ "DarkBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa4d5c4dd6c3cf0fe617dec801025bd76", null ], + [ "DarkCyan", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa180097c82c1863b9c2f94b41d341c529", null ], + [ "DarkGoldenrod", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab5d8a9760923e3357c167fc19de8a914", null ], + [ "DarkGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6c1a381d726d9c383c05b9ca12682e4f", null ], + [ "DarkKhaki", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa480194578592f6fc90b8b6a1a1f66e8b", null ], + [ "DarkMagenta", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ba5febce0999080bcfe1ef92192fe12", null ], + [ "DarkMagentaBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0e32b2f735ea792ab1d5253d3e631241", null ], + [ "DarkOliveGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a1641f09fbb37751ade39859adbcfaa", null ], + [ "DarkOliveGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4e0500dd80f0e6f0a2a1a93de953cf86", null ], + [ "DarkOliveGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaad55a68e83744f717a7f83f7a8fd265f", null ], + [ "DarkOliveGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeca91c2f996796b37a2123515356ded3", null ], + [ "DarkOliveGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad6dc23b32b2396e59cfc48238fd05bd8", null ], + [ "DarkOliveGreen3Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a607c03adbcbd4b210fc095272a76a0", null ], + [ "DarkOrange", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2458c6f4cddf4f28bf1285975975b987", null ], + [ "DarkOrange3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa08efc0d59d20277a3c2f01473250108c", null ], + [ "DarkOrange3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3def467cbbb99502637734c3bd2ce456", null ], + [ "DarkRed", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa556650aa9f007ea0239e66d3ddf26759", null ], + [ "DarkRedBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3bcdc58abc2165b0032a207e9d6883d", null ], + [ "DarkSeaGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa380e1f43f086bd475d720c459fcff2a8", null ], + [ "DarkSeaGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaded95d3c0d616d9658b034e9ae705bf5", null ], + [ "DarkSeaGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa691f28c053f9d2a12db86b8aa396374b", null ], + [ "DarkSeaGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad5089e0939bbe16ed485053e771e8a68", null ], + [ "DarkSeaGreen2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac388011f4493d875983a3c7264e7ded5", null ], + [ "DarkSeaGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa02af538b8573bc9c037822273620864f", null ], + [ "DarkSeaGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b2765271febec45b933598f18a7ca98", null ], + [ "DarkSeaGreen4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabda195126fea1b4f0aa6d25513820ca0", null ], + [ "DarkSeaGreen4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa393410b62bd90565aa0c25e61c92d999", null ], + [ "DarkSlateGray1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfafb40765294d1d25a5ec1ec17d3ee4ae8", null ], + [ "DarkSlateGray2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa29221856aecf72cfe57d5ca2e6d41b42", null ], + [ "DarkSlateGray3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0621f3f774389bc57973bbed3c78b9f7", null ], + [ "DarkTurquoise", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6a5df4f33663381387285b54ee22ab78", null ], + [ "DarkViolet", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0c92c7e17edeca09b7c63c8a783a562f", null ], + [ "DarkVioletBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9870a3dcf46498ca4a10be946521097d", null ], + [ "DeepPink1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad05d6a1937a822876238056c449d358a", null ], + [ "DeepPink1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa65e73df447238ae75a0d07efb65dbe9e", null ], + [ "DeepPink2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeef51aafc2cd821d225e0da0c53f8e20", null ], + [ "DeepPink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfafe2c78801538b191a773d879ce8ef205", null ], + [ "DeepPink3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabff5bbcace3282974cfa06467832cb79", null ], + [ "DeepPink4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf13fb129c07396292da1f7530914f07d", null ], + [ "DeepPink4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa26e5234f400791a8e9e7850ba7cf6df8", null ], + [ "DeepPink4Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac8deabe72bda5e1baf1db1ffc1edf966", null ], + [ "DeepSkyBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa601eba969cf1007265ed79e626d49be7", null ], + [ "DeepSkyBlue2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa932fa24051e9217b181a71e7491bb214", null ], + [ "DeepSkyBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99066355a2c8a3d09741cc7318a41dbc", null ], + [ "DeepSkyBlue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8986a4db4b9a9e78822a35345484d23a", null ], + [ "DeepSkyBlue4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0bedec2878fd084bb46dcd7f7dd3b9aa", null ], + [ "DeepSkyBlue4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad0cc3282e3ba7e9d833052832a54fdc3", null ], + [ "DeepSkyBlue4Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa98b88c697db6fc8899bee87fa24e86dd", null ], + [ "DodgerBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6902167c73e03c1214dae9265c9a9523", null ], + [ "DodgerBlue2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4bfe8de454eabc37639b32813912000e", null ], + [ "DodgerBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf82b272abcc583f2c0ac11d6b22c45ca", null ], + [ "Gold1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf02f1d575ceca96dc56df1295a73c007", null ], + [ "Gold3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96bebc8d90d9444dd8fe563037cc2be2", null ], + [ "Gold3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa7e5b2921c53d39581597da20ce2f338", null ], + [ "Green1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8db72e307df54b6fd021fd0eff7d5a5f", null ], + [ "Green3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa061b2388532ed2cf150f5ef83646ae2", null ], + [ "Green3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b41b1aeadc19f83c8292978c1e40af1", null ], + [ "Green4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa36b7f9cbbb6e3d6d5e9df9abcbf348c3", null ], + [ "GreenYellow", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacd28fdc2094a8c7b0d90e51b38b85533", null ], + [ "Grey0", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c49667d6b3e650b346c88d7e3fd5590", null ], + [ "Grey100", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa6cbc92ab0733f3e33cf31563dc865c4", null ], + [ "Grey11", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac449ae3543129be859f6e1f2ea29c8be", null ], + [ "Grey15", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa461a25896feac74f19be7117ae19fefe", null ], + [ "Grey19", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0250546ff32c86258542b95876090e28", null ], + [ "Grey23", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad715d2046e5e2d3b6bb6e2127834c485", null ], + [ "Grey27", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9306e0c6a01240c9fdfab25f3eaa0634", null ], + [ "Grey3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa81c7178d2e73d4fd43861817b9b32c9d", null ], + [ "Grey30", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2991b68c782e1ce0b7e701e2a8a8298", null ], + [ "Grey35", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa94bb0f2f713f3ab31a7bfd224fe33e7", null ], + [ "Grey37", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67645d98e45108256aac9234935510e3", null ], + [ "Grey39", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae50ed802592da7fedcbd76ca96341d89", null ], + [ "Grey42", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cb673228bc4530517e8813bec443e7d", null ], + [ "Grey46", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7310f159106d0f63cca0ddf0c1962ff7", null ], + [ "Grey50", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1228fc714bdb452c1efc4b9754751de7", null ], + [ "Grey53", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a56c10be7ecd80795860dcdc6eff354", null ], + [ "Grey54", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa660a7e64726c75510f4e1cd1f63ccb09", null ], + [ "Grey58", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3aaa86564267b4c90a2d6bb966c35f90", null ], + [ "Grey62", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64ccec5866654552e080a406314c2b0c", null ], + [ "Grey63", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa084969e9df558ecd204bcec54bc9b03", null ], + [ "Grey66", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cccb7d918d79a0240c135479d58b2ec", null ], + [ "Grey69", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ddd20c7af3e7519c138e5dfd06f188c", null ], + [ "Grey7", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9918508956b5ace54699264567757916", null ], + [ "Grey70", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae828b663bd8be2f7efd8b2f343a06444", null ], + [ "Grey74", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a54ca8cbf5ee4d7af93f4d08d12c9e3", null ], + [ "Grey78", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa310ea068000acabef43ec4a4b65c3121", null ], + [ "Grey82", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab890ade13f8f5bff23c313dd9035f7f6", null ], + [ "Grey84", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6539b5d08bbd9bd011bd67aea17cd04f", null ], + [ "Grey85", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa812849e32b590f8a114804f6b8dde0e8", null ], + [ "Grey89", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3b4692eb62f7c5065c28134769615e0", null ], + [ "Grey93", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa14181b363496871a7c2f91555a6d8a68", null ], + [ "Honeydew2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacfd861941ef13f197407b7d02deaf617", null ], + [ "HotPink", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad886c67902578a7336b821b1cb279c4e", null ], + [ "HotPink2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b701a7828d1930b59b76d091913e7d1", null ], + [ "HotPink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b9fcd5ea12531a4fb1273743063f49f", null ], + [ "HotPink3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa073af5071fd22b51b77f43766b86d6a5", null ], + [ "HotPinkBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac178a78c367fd250556adaa1b9ad4730", null ], + [ "IndianRed", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaddee00c86a353e58b10fb84a0b52481c", null ], + [ "IndianRed1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa46aed3d2538a5e3a7d6ae0f6b116a61a", null ], + [ "IndianRed1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a04ff1096e80fe3d85a78e2ab155873", null ], + [ "IndianRedBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8bc829f77e4ff418dcf2efa85a87e329", null ], + [ "Khaki1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1ee17e1e2f41c0175bd6202e1c345a82", null ], + [ "Khaki3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3d0d766baf12a67f81a152cabf151f6a", null ], + [ "LightCoral", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1b3ec93b81f5cfafd6fd2328904ced8", null ], + [ "LightCyan1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac98b5a34ad5c17b3544e5c29521adb6a", null ], + [ "LightCyan3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d6da936c52e5dadcd790ecb07dcbb1a", null ], + [ "LightGoldenrod1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa25d536c972c837da1a4698982d12df00", null ], + [ "LightGoldenrod2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa03fd8d3402a3b6314c737b8d00f65f4b", null ], + [ "LightGoldenrod2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd883ae7f03e4115b274fba499ce91a", null ], + [ "LightGoldenrod2Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96e9b3fdf30a2f143cb4bfd844742d71", null ], + [ "LightGoldenrod3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa32e50d1fe92fabe310b25b9400c25cd7", null ], + [ "LightGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6f3bae902f4a1a3b69152ad13382ab18", null ], + [ "LightGreenBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa33510b83ef8df69f709f38f77e375193", null ], + [ "LightPink1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa07f3153f6b04f8aeb0925d789d79660c", null ], + [ "LightPink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa253e182f6f26ad7cfae773feb6493c57", null ], + [ "LightPink4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0956f6a62142bbfdf7915d1d9abacb81", null ], + [ "LightSalmon1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa523f5d7969774dd37e38382a9d05e3a4", null ], + [ "LightSalmon3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b742f7ba68078b409a6fc2bf76de5c4", null ], + [ "LightSalmon3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb0ea3d16e515f91b1071099413a36c7", null ], + [ "LightSeaGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6ff417c700a8e53aeb7fe424e89a1cbd", null ], + [ "LightSkyBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2290ccd3da3d1ea3e508923148ae824", null ], + [ "LightSkyBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa267e864d226cfe79c1a1d3e78fdd7eb5", null ], + [ "LightSkyBlue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3a8990dd2aee1e219cc7222528ee8e0c", null ], + [ "LightSlateBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7c34cf2bc4382faf2477db06ce68875", null ], + [ "LightSlateGrey", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0789c7e5fa07674a45db810280aac1bb", null ], + [ "LightSteelBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfadf56a107dda30539c38643b744c312bb", null ], + [ "LightSteelBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7daff90c932ad36e146923fced98cb4d", null ], + [ "LightSteelBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf66424457d48a1e9f30467a6b4d9f735", null ], + [ "LightYellow3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa602cbd76a18ddce2b63afa9dcbba0f8e", null ], + [ "Magenta1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa314daa7c2027494055655d34677458b1", null ], + [ "Magenta2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa0270d909214e1a221e1937b3cf406ba", null ], + [ "Magenta2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabe530bee1037e2b3a133e8dbc5ffa585", null ], + [ "Magenta3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad8a4fa649974fb5c836a14496827fdd5", null ], + [ "Magenta3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaef7480a93b72c17e8023e9f7c7944b38", null ], + [ "Magenta3Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac6ab7a76048a843b6eb86c062c216cab", null ], + [ "MediumOrchid", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9c685ae3aad1eaad70ff070436be85b3", null ], + [ "MediumOrchid1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa13a18f95c27e724ea9a1e7286f42c473", null ], + [ "MediumOrchid1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa049a7bc19d9cacd4e00232d01f9680e6", null ], + [ "MediumOrchid3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5d8f598938ed69b4f04b843abfadc88b", null ], + [ "MediumPurple", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99b482dd24e473ef7ddcbddece67e041", null ], + [ "MediumPurple1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf5552cc28a449506e131c050fef88e89", null ], + [ "MediumPurple2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac3210de935f096669b79a8575e9c4578", null ], + [ "MediumPurple2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa50222fd671c2f6a5f81108f8e4b05aa9", null ], + [ "MediumPurple3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d22ae8ac2c4e98b291f40225a8874e8", null ], + [ "MediumPurple3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2d0fa96a55bf3d9763b465ecbd72566d", null ], + [ "MediumPurple4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae90010fe78fb7605fc25e5e08f07e596", null ], + [ "MediumSpringGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae4e73e4c0464a9ded093be857551d290", null ], + [ "MediumTurquoise", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7875d2ea24878490b89176952e9db784", null ], + [ "MediumVioletRed", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8ca5789305e4c75d51a3acc1f1b8c0a9", null ], + [ "MistyRose1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa11d00787c0df60110d76fc3d098b2c1b", null ], + [ "MistyRose3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7afa85f412a5bcede9674099b956a78", null ], + [ "NavajoWhite1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa78e7bd911b2b1619237ec497cd3727a7", null ], + [ "NavajoWhite3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa345621aa87c50e806627e1f4a1e50a2", null ], + [ "NavyBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0358bb70d298b289263c397f49820844", null ], + [ "Orange1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa204b0d328d6009cf3947fee021fd8f9e", null ], + [ "Orange3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa00cd573911b5b30d18a11a33c6fc522b", null ], + [ "Orange4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa89cffa8b9f4fee6609397ae4070f9d6d", null ], + [ "Orange4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad2e88ff3a0d3feeec0b894602de2bdf8", null ], + [ "OrangeRed1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa38540818f938e6576a3444b70118dbae", null ], + [ "Orchid", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2a4b392d52ff5f8074a7ddded3984e75", null ], + [ "Orchid1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8c9438fb930107e9c02fc9418fe1d24a", null ], + [ "Orchid2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfadbf13507a7e98310795b8c59c3ec2f92", null ], + [ "PaleGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa37e5d9f46ab5a7952f9cdf0a3cc8925", null ], + [ "PaleGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa115628c4a676f43dc9a5791c927e7048", null ], + [ "PaleGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa73f2e82908260a1c80e9cdffd7c80b05", null ], + [ "PaleGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa05657d514246de9444d35bfd78da177d", null ], + [ "PaleTurquoise1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c1b8b84117604af63923758665c0762", null ], + [ "PaleTurquoise4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfafebf48dd9c5efb72a880db1800b70cb4", null ], + [ "PaleVioletRed1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b52566a531a122cc807cd5698659f6f", null ], + [ "Pink1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab1b14b4665532f810353fbd89ba7bf69", null ], + [ "Pink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18d97cfab35116e2049378e4410b0563", null ], + [ "Plum1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3c254e3ced4cbe2836a246270317ac1", null ], + [ "Plum2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa383cc742bb6efae64c17af4b0159f2f1", null ], + [ "Plum3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab2b302d3a548112c82dbe295f1cace40", null ], + [ "Plum4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa69b6a24bf00f2a9278f12241e176106c", null ], + [ "Purple", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0102772e56e7f068bdb57bf2905f7c09", null ], + [ "Purple3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3ba6254f6df4ad7c05ee0be4ccd4bce0", null ], + [ "Purple4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb508ce5a099dbfa4e04cd59530f7f0c", null ], + [ "Purple4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1dfe93e583d4f1a3538c40ce29208e64", null ], + [ "PurpleBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae855e26440338753abef27e7b999ce5b", null ], + [ "Red1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa62acd44726f02a17ba2a17c1cf253639", null ], + [ "Red3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa37bd25cf1e1fe1eeb8e4840dbc863dac", null ], + [ "Red3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2925c3081d309e0d11612a0dcd564379", null ], + [ "RosyBrown", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa5104c5c0a54bc5ac1dc83e20c75dbea", null ], + [ "RoyalBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0dbe4adc6031521d77fc91e09f8d3fbf", null ], + [ "Salmon1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa664067df16558f65cc3d46609a03dfab", null ], + [ "SandyBrown", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64269c060a2fc56cb77c12360cd3a28e", null ], + [ "SeaGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e2c9e620d6245638b27d9c1fa2d0545", null ], + [ "SeaGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7819209c8bfe13fbfcb2cde9a296f7b6", null ], + [ "SeaGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b69dc4c281a32346b8d2bab20dd1aef", null ], + [ "SeaGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b862c5164d4597b28fba03335a834cf", null ], + [ "SkyBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac47bacbed84298fdf72215fe2312ce64", null ], + [ "SkyBlue2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1172e54ed7e62aa4ebcea4b453f5dcc", null ], + [ "SkyBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2dfa52861bc8b2a870e5166e969db2c7", null ], + [ "SlateBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa97807edc577e1d5d3bc271c3a4ced7f4", null ], + [ "SlateBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae53ce2149f6b9e7da24472b5112f7963", null ], + [ "SlateBlue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad477f91096f698a2b266a1bf26cd456b", null ], + [ "SpringGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e70ae2a69a90e87e679685d6461b6e8", null ], + [ "SpringGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac85363887f660b5879e353bac03dab49", null ], + [ "SpringGreen2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad038ac30c015021853f183054c51c0c5", null ], + [ "SpringGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5a87a3e9a8af9561a373ff63e740223e", null ], + [ "SpringGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf19e26246ad6f4e4de44efb6d2b4e1c6", null ], + [ "SpringGreen4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf3817720cb5b18b16b8d6c520a61748e", null ], + [ "SteelBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9224e340e6d918555c68ac2f1dc80b04", null ], + [ "SteelBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa050bb4a5d79a1dac6aae25ce8734c973", null ], + [ "SteelBlue1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf400af64197a052be4d59c521104cb2a", null ], + [ "SteelBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0a49900e5a03f7545262d90592bfba92", null ], + [ "Tan", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab492a96cd2b9bb37c81b8451a42889d9", null ], + [ "Thistle1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaa1937f76b1f6c26f042a5cea129d661", null ], + [ "Thistle3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7e48d71618f8e50aed23876c3103859b", null ], + [ "Turquoise2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0514acacf99b53570d7a2ee25dde1f5a", null ], + [ "Turquoise4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac0d913fe38afad9dad5a51083ebc1e86", null ], + [ "Violet", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa94a3ee3884eb2af70a2d764a4f06e79d", null ], + [ "Wheat1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2919dbb2ef2f19e560ee2a4f21874373", null ], + [ "Wheat4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3fee165b16150ce4df5f4fcecca7407", null ], + [ "Yellow1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18f6dad40423c7708a467fb630f59048", null ], + [ "Yellow2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac571c9dd674c4e7301b11cee12715bdf", null ], + [ "Yellow3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64545058cba31bf28f7cc75072664ec2", null ], + [ "Yellow3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67ae91aade6999e17c552ebe197c3a7f", null ], + [ "Yellow4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab60ac0c6b49456d0de7ca3388f19862a", null ], + [ "Yellow4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaf28e9bd6542c570b963f36620b181f7", null ] + ] ], + [ "Color", "group__screen.html#a1589b83974b42a2f3315624f14c3c92c", null ], + [ "Color", "group__screen.html#a3c93cb793b88256235f17235c9359b35", null ], + [ "Color", "group__screen.html#a55decaa0b2ab846729582f5f7b6acb49", null ], + [ "Color", "group__screen.html#a4f2602aacaf27a6482580fea0f7de0d2", null ], + [ "Color", "group__screen.html#a92d70d7572b7a07d2af4ff650e272e08", null ], + [ "operator==", "group__screen.html#a66275ebe4681464e082660fa6be9ba28", null ], + [ "operator!=", "group__screen.html#a5db052159bd2c738ea453d9b9600513a", null ], + [ "Print", "group__screen.html#acfe358aa128835387b6c2b7ffe22bab5", null ], + [ "IsOpaque", "group__screen.html#a74deffc6b6c7e07b3ec67766ff35abba", null ] + ] ], + [ "ColorInfo", "group__screen.html#structftxui_1_1ColorInfo", [ + [ "name", "group__screen.html#a8f8f80d37794cde9472343e4487ba3eb", null ], + [ "index_256", "group__screen.html#aacf9c9496e5d01c2fe30337791f33840", null ], + [ "index_16", "group__screen.html#a6259df4cdd9a7cae286f46a471e9afa5", null ], + [ "red", "group__screen.html#ad47d918910aaa51c73160ac85999d09c", null ], + [ "green", "group__screen.html#a90d21fa503b626c00cdc8d94863d5877", null ], + [ "blue", "group__screen.html#a287b397e90d7b995c81ff54e741f96b2", null ], + [ "hue", "group__screen.html#ad7b7eb0b3e04af91bdd64715226c3c68", null ], + [ "saturation", "group__screen.html#a4769b22557e2bcd3edbc69f2caaf691f", null ], + [ "value", "group__screen.html#a638e4503e0ae6ce655b7ad2e17e8f0ad", null ] + ] ], + [ "Image", "group__screen.html#classftxui_1_1Image", [ + [ "Image", "group__screen.html#a7c483c751b9c859ef08cecb32f1d1994", null ], + [ "Image", "group__screen.html#aecbd97261c37fa89ea6df7ccaba216c3", null ], + [ "~Image", "group__screen.html#af7348fef7a61244855ed83dfb1fcbfa1", null ], + [ "at", "group__screen.html#a55b0a995463c6936efb33391f29565bc", null ], + [ "at", "group__screen.html#a0882d58bb8ca1be9953135338456cf9e", null ], + [ "PixelAt", "group__screen.html#a483f8ee1967e200cfc9e277b3ce00174", null ], + [ "PixelAt", "group__screen.html#a03b2b39bb8f4d72068744776093125b3", null ], + [ "dimx", "group__screen.html#ae7a460c9dacd70ed81b1adfea46b492e", null ], + [ "dimy", "group__screen.html#a0d283cfb1ec16b3fc13d344ebfea93d4", null ], + [ "Clear", "group__screen.html#aa71d36872f416feaa853788a7a7a7ef8", null ], + [ "stencil", "group__screen.html#a92cacd07ba30909855f19edc01192ff0", null ], + [ "dimx_", "group__screen.html#a1b254c3faacd432c325efff4268ca683", null ], + [ "dimy_", "group__screen.html#a9e9d5df4b41aaa5eca27cdcaca6d4574", null ], + [ "pixels_", "group__screen.html#aeab8c1788b3f2c7403749c3be95a68ae", null ] + ] ], + [ "Pixel", "group__screen.html#structftxui_1_1Pixel", [ + [ "Pixel", "group__screen.html#a3d22dc2630f1c1c69ec973cd4648b5d5", null ], + [ "blink", "group__screen.html#a399ff0c757d88aeaa2439212f073f380", null ], + [ "bold", "group__screen.html#a7a210a24d67146bd143c013d1da0f2dd", null ], + [ "dim", "group__screen.html#a3cecb006e0ca185024cd89f9ea2ea69a", null ], + [ "italic", "group__screen.html#ad3c22ba2f55e1f2b3087e9ad2d1ea36e", null ], + [ "inverted", "group__screen.html#a19bbb3c355941d56eccf70be7f7ed9e1", null ], + [ "underlined", "group__screen.html#a7c8849e8321ea248cd4991ea8ef198eb", null ], + [ "underlined_double", "group__screen.html#afe0ea73f380e746092213b879003afd6", null ], + [ "strikethrough", "group__screen.html#a21fbeba389ccf8f76447c7a73ead8db2", null ], + [ "automerge", "group__screen.html#ada8b6dbd466ba5b6c4b240f229bd627f", null ], + [ "hyperlink", "group__screen.html#a071ab11cf7706c7800281716177c88e3", null ], + [ "character", "group__screen.html#a3bbcd6a381555ea201dbe4251a9aafb3", null ], + [ "background_color", "group__screen.html#a3af4612678da78558adccf47e17164bb", null ], + [ "foreground_color", "group__screen.html#a2ce82adc1d02baf22df658b903dcb351", null ] + ] ], + [ "Screen", "group__screen.html#classftxui_1_1Screen", [ + [ "Cursor", "structftxui_1_1Screen_1_1Cursor.html", [ + [ "Shape", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37c", [ + [ "Hidden", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cacf46e529658ebc6532c204f3246929f4", null ], + [ "BlockBlinking", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca2f4a0b3cacb4468d8467dc0746ea23aa", null ], + [ "Block", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa00f801460e81f86eab56d86fe627551", null ], + [ "UnderlineBlinking", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cad7df11ee39d53d4ee2da1b22b2238abc", null ], + [ "Underline", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa909c5f2b588ba35fcc40b3b504ad2ed", null ], + [ "BarBlinking", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cae7dfc08d4e90b88e0cb1cea7a54796c1", null ], + [ "Bar", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca6424dbda22da2f105580d1c8095600d3", null ] + ] ], + [ "x", "structftxui_1_1Screen_1_1Cursor.html#a6150e0515f7202e2fb518f7206ed97dc", null ], + [ "y", "structftxui_1_1Screen_1_1Cursor.html#a0a2f84ed7838f07779ae24c5a9086d33", null ], + [ "shape", "structftxui_1_1Screen_1_1Cursor.html#a8b9f7758a8bd2bef680aeecc40bcfe04", null ] + ] ], + [ "SelectionStyle", "group__screen.html#a0424ec9a980000671f12bfa39fc32273", null ], + [ "Screen", "group__screen.html#a7ecf7c5fb3d90a1620098a60cfafc215", null ], + [ "~Screen", "group__screen.html#a20d80448fe5bd4ce01dcd821d4d67a5b", null ], + [ "ToString", "group__screen.html#a19c380b03cea21d7ac7325136a131ff0", null ], + [ "Print", "group__screen.html#ad93edbe885499a712129356f1ffd506b", null ], + [ "Clear", "group__screen.html#aa71d36872f416feaa853788a7a7a7ef8", null ], + [ "ResetPosition", "group__screen.html#a9677c078c4270afdb7451cdc0b0871d4", null ], + [ "ApplyShader", "group__screen.html#a04d18c0cb0df3ed7a01ca5c3b8711ff7", null ], + [ "cursor", "group__screen.html#a94febaac347b83267ff6a10b7837d612", null ], + [ "SetCursor", "group__screen.html#a1aa24862a3d050b3aea2ade1300d51a7", null ], + [ "RegisterHyperlink", "group__screen.html#a38015a8bc3dda474354ec8a374a6e2de", null ], + [ "Hyperlink", "group__screen.html#a0b55b16969dfccc79195fe61c5ba6d1a", null ], + [ "GetSelectionStyle", "group__screen.html#a056c2ad43affdac744b6907e9ea81463", null ], + [ "SetSelectionStyle", "group__screen.html#aba0d30b90db17d6b7561f704ed63b5e6", null ], + [ "at", "group__screen.html#a55b0a995463c6936efb33391f29565bc", null ], + [ "at", "group__screen.html#a0882d58bb8ca1be9953135338456cf9e", null ], + [ "PixelAt", "group__screen.html#a483f8ee1967e200cfc9e277b3ce00174", null ], + [ "PixelAt", "group__screen.html#a03b2b39bb8f4d72068744776093125b3", null ], + [ "dimx", "group__screen.html#ae7a460c9dacd70ed81b1adfea46b492e", null ], + [ "dimy", "group__screen.html#a0d283cfb1ec16b3fc13d344ebfea93d4", null ], + [ "cursor_", "group__screen.html#a9df9d1ae7ed66857ca987963b2365904", null ], + [ "hyperlinks_", "group__screen.html#acff83d382ef60ad2a0fca3ba68e9397f", null ], + [ "selection_style_", "group__screen.html#ab9f757d5d67255f61e27950be4131be1", null ], + [ "stencil", "group__screen.html#a92cacd07ba30909855f19edc01192ff0", null ], + [ "dimx_", "group__screen.html#a1b254c3faacd432c325efff4268ca683", null ], + [ "dimy_", "group__screen.html#a9e9d5df4b41aaa5eca27cdcaca6d4574", null ], + [ "pixels_", "group__screen.html#aeab8c1788b3f2c7403749c3be95a68ae", null ] + ] ], + [ "Dimensions", "group__screen.html#structftxui_1_1Dimensions", [ + [ "dimx", "group__screen.html#a8b0f6ae031a507c3ffb7bf0eec290d46", null ], + [ "dimy", "group__screen.html#a3a072d6ef9c51d085b44eac70f2edff6", null ] + ] ], + [ "Color", "group__screen.html#gab87bacfdad76e61b9412d7124be44c1c", [ + [ "Palette1", "group__screen.html#ggab87bacfdad76e61b9412d7124be44c1caf8fee1420fe204b3dafbacf27a545c41", null ], + [ "Palette16", "group__screen.html#ggab87bacfdad76e61b9412d7124be44c1cae5a76102d821ec8233fee04273c60349", null ], + [ "Palette256", "group__screen.html#ggab87bacfdad76e61b9412d7124be44c1ca7b88ab2a5c8fe8866c96ea4acb623876", null ], + [ "TrueColor", "group__screen.html#ggab87bacfdad76e61b9412d7124be44c1ca7afd9568e82d523c91b2bfe0cc47be29", null ] + ] ], + [ "Size", "group__screen.html#gad890c37601448c82ed0d5051c29e2f0c", null ], + [ "ColorSupport", "group__screen.html#gae6e034f37aa66cfe4458a8cb6e8fc526", null ] +]; \ No newline at end of file diff --git a/group__screen_classftxui_1_1Color.js b/group__screen_classftxui_1_1Color.js new file mode 100644 index 000000000..b4c2271e0 --- /dev/null +++ b/group__screen_classftxui_1_1Color.js @@ -0,0 +1,275 @@ +var group__screen_classftxui_1_1Color = +[ + [ "Palette1", "group__screen.html#aa4be56f94fc180d7b070df23c235b0c7", [ + [ "Default", "group__screen.html#aa4be56f94fc180d7b070df23c235b0c7a79935518a3889663d8688b6b01fff051", null ] + ] ], + [ "Palette16", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802f", [ + [ "Black", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fac1e9bce8242f443c54c7405223d616cd", null ], + [ "Red", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad3163c1fcda01965b692ec2c3122b743", null ], + [ "Green", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad0784a3f969fe736e8b271a5a161d106", null ], + [ "Yellow", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fabf28513245738599d13e3ce36bd16c82", null ], + [ "Blue", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf5e09dd1da4088464f264b7a3118bff8", null ], + [ "Magenta", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab5059a620e2c7dc57556b1e275c2f9bc", null ], + [ "Cyan", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab0d4738f9c7f12049e52aa4e868bdc8b", null ], + [ "GrayLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fadebf1805c024a5504872f795f83a6835", null ], + [ "GrayDark", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fade3b52f7f38e412815092547cd6e8be7", null ], + [ "RedLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa0a04dda6f997cd48c0ca74203c501d27", null ], + [ "GreenLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9827485e548095e18c65045bc8058ce7", null ], + [ "YellowLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa7948fe5f055329af04798409b7ac37b5", null ], + [ "BlueLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf7cc79a56a740e9c59a156b0b3b93cbd", null ], + [ "MagentaLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9663f993a3affdf3526fa032cfe5b9f4", null ], + [ "CyanLight", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa61bd7f1290cc0a24e565539a61ba5839", null ], + [ "White", "group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab548046646b36c12aa6ba841de500094", null ] + ] ], + [ "Palette256", "group__screen.html#abd07c48f62cc507fafa2486a43130fcf", [ + [ "Aquamarine1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf54d1112226e67ee67339a050ae1b352", null ], + [ "Aquamarine1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4db1324d99372274e2414031d1773151", null ], + [ "Aquamarine3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfadc172e17e6f05d6e2b0e48c85803a85a", null ], + [ "Blue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9eafa8db807f9452108cd02b80cd4adc", null ], + [ "Blue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa910d98e6c6282c1c8133f53438beb7ca", null ], + [ "Blue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabb8f8ef3f352a8a9c884fadff1576b13", null ], + [ "BlueViolet", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd3fa02524f2597996333516267c773", null ], + [ "CadetBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa76906c6e4ac2ee22b81bda5a59e335f1", null ], + [ "CadetBlueBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb5d4e2aebcd3abba4c91d055f07513b", null ], + [ "Chartreuse1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7d2d4cc3af6756a4eac7d12fbe4775d4", null ], + [ "Chartreuse2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa353575e36d1260652eb3d18e73f04cfe", null ], + [ "Chartreuse2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6338086ae05e58041188d89165d87c1a", null ], + [ "Chartreuse3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2f3df27b5ed05a3e040deec31c684003", null ], + [ "Chartreuse3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2087d90de0840d3f15fad878ba4b4fc4", null ], + [ "Chartreuse4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa734cd2fab3e94385552fc745665bcc98", null ], + [ "CornflowerBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab4dcc712554f602559b3f9b7662ea4dd", null ], + [ "Cornsilk1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9d7dd269922a0e2fac6366c623ed3d45", null ], + [ "Cyan1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa35e9559f51c82a7adda45276bbedb0f4", null ], + [ "Cyan2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacc49853d1836ecf3b66c4b8c568aba3f", null ], + [ "Cyan3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a36fc7d64942362d706fad5544517d1", null ], + [ "DarkBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa4d5c4dd6c3cf0fe617dec801025bd76", null ], + [ "DarkCyan", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa180097c82c1863b9c2f94b41d341c529", null ], + [ "DarkGoldenrod", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab5d8a9760923e3357c167fc19de8a914", null ], + [ "DarkGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6c1a381d726d9c383c05b9ca12682e4f", null ], + [ "DarkKhaki", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa480194578592f6fc90b8b6a1a1f66e8b", null ], + [ "DarkMagenta", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ba5febce0999080bcfe1ef92192fe12", null ], + [ "DarkMagentaBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0e32b2f735ea792ab1d5253d3e631241", null ], + [ "DarkOliveGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a1641f09fbb37751ade39859adbcfaa", null ], + [ "DarkOliveGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4e0500dd80f0e6f0a2a1a93de953cf86", null ], + [ "DarkOliveGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaad55a68e83744f717a7f83f7a8fd265f", null ], + [ "DarkOliveGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeca91c2f996796b37a2123515356ded3", null ], + [ "DarkOliveGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad6dc23b32b2396e59cfc48238fd05bd8", null ], + [ "DarkOliveGreen3Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a607c03adbcbd4b210fc095272a76a0", null ], + [ "DarkOrange", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2458c6f4cddf4f28bf1285975975b987", null ], + [ "DarkOrange3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa08efc0d59d20277a3c2f01473250108c", null ], + [ "DarkOrange3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3def467cbbb99502637734c3bd2ce456", null ], + [ "DarkRed", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa556650aa9f007ea0239e66d3ddf26759", null ], + [ "DarkRedBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3bcdc58abc2165b0032a207e9d6883d", null ], + [ "DarkSeaGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa380e1f43f086bd475d720c459fcff2a8", null ], + [ "DarkSeaGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaded95d3c0d616d9658b034e9ae705bf5", null ], + [ "DarkSeaGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa691f28c053f9d2a12db86b8aa396374b", null ], + [ "DarkSeaGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad5089e0939bbe16ed485053e771e8a68", null ], + [ "DarkSeaGreen2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac388011f4493d875983a3c7264e7ded5", null ], + [ "DarkSeaGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa02af538b8573bc9c037822273620864f", null ], + [ "DarkSeaGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b2765271febec45b933598f18a7ca98", null ], + [ "DarkSeaGreen4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabda195126fea1b4f0aa6d25513820ca0", null ], + [ "DarkSeaGreen4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa393410b62bd90565aa0c25e61c92d999", null ], + [ "DarkSlateGray1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfafb40765294d1d25a5ec1ec17d3ee4ae8", null ], + [ "DarkSlateGray2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa29221856aecf72cfe57d5ca2e6d41b42", null ], + [ "DarkSlateGray3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0621f3f774389bc57973bbed3c78b9f7", null ], + [ "DarkTurquoise", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6a5df4f33663381387285b54ee22ab78", null ], + [ "DarkViolet", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0c92c7e17edeca09b7c63c8a783a562f", null ], + [ "DarkVioletBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9870a3dcf46498ca4a10be946521097d", null ], + [ "DeepPink1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad05d6a1937a822876238056c449d358a", null ], + [ "DeepPink1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa65e73df447238ae75a0d07efb65dbe9e", null ], + [ "DeepPink2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeef51aafc2cd821d225e0da0c53f8e20", null ], + [ "DeepPink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfafe2c78801538b191a773d879ce8ef205", null ], + [ "DeepPink3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabff5bbcace3282974cfa06467832cb79", null ], + [ "DeepPink4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf13fb129c07396292da1f7530914f07d", null ], + [ "DeepPink4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa26e5234f400791a8e9e7850ba7cf6df8", null ], + [ "DeepPink4Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac8deabe72bda5e1baf1db1ffc1edf966", null ], + [ "DeepSkyBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa601eba969cf1007265ed79e626d49be7", null ], + [ "DeepSkyBlue2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa932fa24051e9217b181a71e7491bb214", null ], + [ "DeepSkyBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99066355a2c8a3d09741cc7318a41dbc", null ], + [ "DeepSkyBlue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8986a4db4b9a9e78822a35345484d23a", null ], + [ "DeepSkyBlue4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0bedec2878fd084bb46dcd7f7dd3b9aa", null ], + [ "DeepSkyBlue4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad0cc3282e3ba7e9d833052832a54fdc3", null ], + [ "DeepSkyBlue4Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa98b88c697db6fc8899bee87fa24e86dd", null ], + [ "DodgerBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6902167c73e03c1214dae9265c9a9523", null ], + [ "DodgerBlue2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4bfe8de454eabc37639b32813912000e", null ], + [ "DodgerBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf82b272abcc583f2c0ac11d6b22c45ca", null ], + [ "Gold1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf02f1d575ceca96dc56df1295a73c007", null ], + [ "Gold3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96bebc8d90d9444dd8fe563037cc2be2", null ], + [ "Gold3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa7e5b2921c53d39581597da20ce2f338", null ], + [ "Green1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8db72e307df54b6fd021fd0eff7d5a5f", null ], + [ "Green3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa061b2388532ed2cf150f5ef83646ae2", null ], + [ "Green3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b41b1aeadc19f83c8292978c1e40af1", null ], + [ "Green4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa36b7f9cbbb6e3d6d5e9df9abcbf348c3", null ], + [ "GreenYellow", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacd28fdc2094a8c7b0d90e51b38b85533", null ], + [ "Grey0", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c49667d6b3e650b346c88d7e3fd5590", null ], + [ "Grey100", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa6cbc92ab0733f3e33cf31563dc865c4", null ], + [ "Grey11", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac449ae3543129be859f6e1f2ea29c8be", null ], + [ "Grey15", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa461a25896feac74f19be7117ae19fefe", null ], + [ "Grey19", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0250546ff32c86258542b95876090e28", null ], + [ "Grey23", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad715d2046e5e2d3b6bb6e2127834c485", null ], + [ "Grey27", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9306e0c6a01240c9fdfab25f3eaa0634", null ], + [ "Grey3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa81c7178d2e73d4fd43861817b9b32c9d", null ], + [ "Grey30", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2991b68c782e1ce0b7e701e2a8a8298", null ], + [ "Grey35", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa94bb0f2f713f3ab31a7bfd224fe33e7", null ], + [ "Grey37", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67645d98e45108256aac9234935510e3", null ], + [ "Grey39", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae50ed802592da7fedcbd76ca96341d89", null ], + [ "Grey42", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cb673228bc4530517e8813bec443e7d", null ], + [ "Grey46", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7310f159106d0f63cca0ddf0c1962ff7", null ], + [ "Grey50", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1228fc714bdb452c1efc4b9754751de7", null ], + [ "Grey53", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a56c10be7ecd80795860dcdc6eff354", null ], + [ "Grey54", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa660a7e64726c75510f4e1cd1f63ccb09", null ], + [ "Grey58", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3aaa86564267b4c90a2d6bb966c35f90", null ], + [ "Grey62", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64ccec5866654552e080a406314c2b0c", null ], + [ "Grey63", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa084969e9df558ecd204bcec54bc9b03", null ], + [ "Grey66", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cccb7d918d79a0240c135479d58b2ec", null ], + [ "Grey69", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ddd20c7af3e7519c138e5dfd06f188c", null ], + [ "Grey7", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9918508956b5ace54699264567757916", null ], + [ "Grey70", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae828b663bd8be2f7efd8b2f343a06444", null ], + [ "Grey74", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a54ca8cbf5ee4d7af93f4d08d12c9e3", null ], + [ "Grey78", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa310ea068000acabef43ec4a4b65c3121", null ], + [ "Grey82", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab890ade13f8f5bff23c313dd9035f7f6", null ], + [ "Grey84", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6539b5d08bbd9bd011bd67aea17cd04f", null ], + [ "Grey85", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa812849e32b590f8a114804f6b8dde0e8", null ], + [ "Grey89", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3b4692eb62f7c5065c28134769615e0", null ], + [ "Grey93", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa14181b363496871a7c2f91555a6d8a68", null ], + [ "Honeydew2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacfd861941ef13f197407b7d02deaf617", null ], + [ "HotPink", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad886c67902578a7336b821b1cb279c4e", null ], + [ "HotPink2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b701a7828d1930b59b76d091913e7d1", null ], + [ "HotPink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b9fcd5ea12531a4fb1273743063f49f", null ], + [ "HotPink3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa073af5071fd22b51b77f43766b86d6a5", null ], + [ "HotPinkBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac178a78c367fd250556adaa1b9ad4730", null ], + [ "IndianRed", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaddee00c86a353e58b10fb84a0b52481c", null ], + [ "IndianRed1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa46aed3d2538a5e3a7d6ae0f6b116a61a", null ], + [ "IndianRed1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a04ff1096e80fe3d85a78e2ab155873", null ], + [ "IndianRedBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8bc829f77e4ff418dcf2efa85a87e329", null ], + [ "Khaki1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1ee17e1e2f41c0175bd6202e1c345a82", null ], + [ "Khaki3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3d0d766baf12a67f81a152cabf151f6a", null ], + [ "LightCoral", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1b3ec93b81f5cfafd6fd2328904ced8", null ], + [ "LightCyan1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac98b5a34ad5c17b3544e5c29521adb6a", null ], + [ "LightCyan3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d6da936c52e5dadcd790ecb07dcbb1a", null ], + [ "LightGoldenrod1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa25d536c972c837da1a4698982d12df00", null ], + [ "LightGoldenrod2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa03fd8d3402a3b6314c737b8d00f65f4b", null ], + [ "LightGoldenrod2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd883ae7f03e4115b274fba499ce91a", null ], + [ "LightGoldenrod2Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96e9b3fdf30a2f143cb4bfd844742d71", null ], + [ "LightGoldenrod3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa32e50d1fe92fabe310b25b9400c25cd7", null ], + [ "LightGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6f3bae902f4a1a3b69152ad13382ab18", null ], + [ "LightGreenBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa33510b83ef8df69f709f38f77e375193", null ], + [ "LightPink1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa07f3153f6b04f8aeb0925d789d79660c", null ], + [ "LightPink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa253e182f6f26ad7cfae773feb6493c57", null ], + [ "LightPink4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0956f6a62142bbfdf7915d1d9abacb81", null ], + [ "LightSalmon1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa523f5d7969774dd37e38382a9d05e3a4", null ], + [ "LightSalmon3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b742f7ba68078b409a6fc2bf76de5c4", null ], + [ "LightSalmon3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb0ea3d16e515f91b1071099413a36c7", null ], + [ "LightSeaGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6ff417c700a8e53aeb7fe424e89a1cbd", null ], + [ "LightSkyBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2290ccd3da3d1ea3e508923148ae824", null ], + [ "LightSkyBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa267e864d226cfe79c1a1d3e78fdd7eb5", null ], + [ "LightSkyBlue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3a8990dd2aee1e219cc7222528ee8e0c", null ], + [ "LightSlateBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7c34cf2bc4382faf2477db06ce68875", null ], + [ "LightSlateGrey", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0789c7e5fa07674a45db810280aac1bb", null ], + [ "LightSteelBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfadf56a107dda30539c38643b744c312bb", null ], + [ "LightSteelBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7daff90c932ad36e146923fced98cb4d", null ], + [ "LightSteelBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf66424457d48a1e9f30467a6b4d9f735", null ], + [ "LightYellow3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa602cbd76a18ddce2b63afa9dcbba0f8e", null ], + [ "Magenta1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa314daa7c2027494055655d34677458b1", null ], + [ "Magenta2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa0270d909214e1a221e1937b3cf406ba", null ], + [ "Magenta2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfabe530bee1037e2b3a133e8dbc5ffa585", null ], + [ "Magenta3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad8a4fa649974fb5c836a14496827fdd5", null ], + [ "Magenta3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaef7480a93b72c17e8023e9f7c7944b38", null ], + [ "Magenta3Ter", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac6ab7a76048a843b6eb86c062c216cab", null ], + [ "MediumOrchid", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9c685ae3aad1eaad70ff070436be85b3", null ], + [ "MediumOrchid1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa13a18f95c27e724ea9a1e7286f42c473", null ], + [ "MediumOrchid1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa049a7bc19d9cacd4e00232d01f9680e6", null ], + [ "MediumOrchid3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5d8f598938ed69b4f04b843abfadc88b", null ], + [ "MediumPurple", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99b482dd24e473ef7ddcbddece67e041", null ], + [ "MediumPurple1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf5552cc28a449506e131c050fef88e89", null ], + [ "MediumPurple2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac3210de935f096669b79a8575e9c4578", null ], + [ "MediumPurple2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa50222fd671c2f6a5f81108f8e4b05aa9", null ], + [ "MediumPurple3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d22ae8ac2c4e98b291f40225a8874e8", null ], + [ "MediumPurple3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2d0fa96a55bf3d9763b465ecbd72566d", null ], + [ "MediumPurple4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae90010fe78fb7605fc25e5e08f07e596", null ], + [ "MediumSpringGreen", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae4e73e4c0464a9ded093be857551d290", null ], + [ "MediumTurquoise", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7875d2ea24878490b89176952e9db784", null ], + [ "MediumVioletRed", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8ca5789305e4c75d51a3acc1f1b8c0a9", null ], + [ "MistyRose1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa11d00787c0df60110d76fc3d098b2c1b", null ], + [ "MistyRose3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7afa85f412a5bcede9674099b956a78", null ], + [ "NavajoWhite1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa78e7bd911b2b1619237ec497cd3727a7", null ], + [ "NavajoWhite3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa345621aa87c50e806627e1f4a1e50a2", null ], + [ "NavyBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0358bb70d298b289263c397f49820844", null ], + [ "Orange1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa204b0d328d6009cf3947fee021fd8f9e", null ], + [ "Orange3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa00cd573911b5b30d18a11a33c6fc522b", null ], + [ "Orange4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa89cffa8b9f4fee6609397ae4070f9d6d", null ], + [ "Orange4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad2e88ff3a0d3feeec0b894602de2bdf8", null ], + [ "OrangeRed1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa38540818f938e6576a3444b70118dbae", null ], + [ "Orchid", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2a4b392d52ff5f8074a7ddded3984e75", null ], + [ "Orchid1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8c9438fb930107e9c02fc9418fe1d24a", null ], + [ "Orchid2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfadbf13507a7e98310795b8c59c3ec2f92", null ], + [ "PaleGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa37e5d9f46ab5a7952f9cdf0a3cc8925", null ], + [ "PaleGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa115628c4a676f43dc9a5791c927e7048", null ], + [ "PaleGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa73f2e82908260a1c80e9cdffd7c80b05", null ], + [ "PaleGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa05657d514246de9444d35bfd78da177d", null ], + [ "PaleTurquoise1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c1b8b84117604af63923758665c0762", null ], + [ "PaleTurquoise4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfafebf48dd9c5efb72a880db1800b70cb4", null ], + [ "PaleVioletRed1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b52566a531a122cc807cd5698659f6f", null ], + [ "Pink1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab1b14b4665532f810353fbd89ba7bf69", null ], + [ "Pink3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18d97cfab35116e2049378e4410b0563", null ], + [ "Plum1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3c254e3ced4cbe2836a246270317ac1", null ], + [ "Plum2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa383cc742bb6efae64c17af4b0159f2f1", null ], + [ "Plum3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab2b302d3a548112c82dbe295f1cace40", null ], + [ "Plum4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa69b6a24bf00f2a9278f12241e176106c", null ], + [ "Purple", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0102772e56e7f068bdb57bf2905f7c09", null ], + [ "Purple3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3ba6254f6df4ad7c05ee0be4ccd4bce0", null ], + [ "Purple4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb508ce5a099dbfa4e04cd59530f7f0c", null ], + [ "Purple4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1dfe93e583d4f1a3538c40ce29208e64", null ], + [ "PurpleBis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae855e26440338753abef27e7b999ce5b", null ], + [ "Red1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa62acd44726f02a17ba2a17c1cf253639", null ], + [ "Red3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa37bd25cf1e1fe1eeb8e4840dbc863dac", null ], + [ "Red3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2925c3081d309e0d11612a0dcd564379", null ], + [ "RosyBrown", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa5104c5c0a54bc5ac1dc83e20c75dbea", null ], + [ "RoyalBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0dbe4adc6031521d77fc91e09f8d3fbf", null ], + [ "Salmon1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa664067df16558f65cc3d46609a03dfab", null ], + [ "SandyBrown", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64269c060a2fc56cb77c12360cd3a28e", null ], + [ "SeaGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e2c9e620d6245638b27d9c1fa2d0545", null ], + [ "SeaGreen1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7819209c8bfe13fbfcb2cde9a296f7b6", null ], + [ "SeaGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b69dc4c281a32346b8d2bab20dd1aef", null ], + [ "SeaGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b862c5164d4597b28fba03335a834cf", null ], + [ "SkyBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac47bacbed84298fdf72215fe2312ce64", null ], + [ "SkyBlue2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1172e54ed7e62aa4ebcea4b453f5dcc", null ], + [ "SkyBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2dfa52861bc8b2a870e5166e969db2c7", null ], + [ "SlateBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa97807edc577e1d5d3bc271c3a4ced7f4", null ], + [ "SlateBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfae53ce2149f6b9e7da24472b5112f7963", null ], + [ "SlateBlue3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad477f91096f698a2b266a1bf26cd456b", null ], + [ "SpringGreen1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e70ae2a69a90e87e679685d6461b6e8", null ], + [ "SpringGreen2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac85363887f660b5879e353bac03dab49", null ], + [ "SpringGreen2Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfad038ac30c015021853f183054c51c0c5", null ], + [ "SpringGreen3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5a87a3e9a8af9561a373ff63e740223e", null ], + [ "SpringGreen3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf19e26246ad6f4e4de44efb6d2b4e1c6", null ], + [ "SpringGreen4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf3817720cb5b18b16b8d6c520a61748e", null ], + [ "SteelBlue", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9224e340e6d918555c68ac2f1dc80b04", null ], + [ "SteelBlue1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa050bb4a5d79a1dac6aae25ce8734c973", null ], + [ "SteelBlue1Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf400af64197a052be4d59c521104cb2a", null ], + [ "SteelBlue3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0a49900e5a03f7545262d90592bfba92", null ], + [ "Tan", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab492a96cd2b9bb37c81b8451a42889d9", null ], + [ "Thistle1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaa1937f76b1f6c26f042a5cea129d661", null ], + [ "Thistle3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7e48d71618f8e50aed23876c3103859b", null ], + [ "Turquoise2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0514acacf99b53570d7a2ee25dde1f5a", null ], + [ "Turquoise4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac0d913fe38afad9dad5a51083ebc1e86", null ], + [ "Violet", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa94a3ee3884eb2af70a2d764a4f06e79d", null ], + [ "Wheat1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2919dbb2ef2f19e560ee2a4f21874373", null ], + [ "Wheat4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3fee165b16150ce4df5f4fcecca7407", null ], + [ "Yellow1", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18f6dad40423c7708a467fb630f59048", null ], + [ "Yellow2", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfac571c9dd674c4e7301b11cee12715bdf", null ], + [ "Yellow3", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64545058cba31bf28f7cc75072664ec2", null ], + [ "Yellow3Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67ae91aade6999e17c552ebe197c3a7f", null ], + [ "Yellow4", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfab60ac0c6b49456d0de7ca3388f19862a", null ], + [ "Yellow4Bis", "group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaf28e9bd6542c570b963f36620b181f7", null ] + ] ], + [ "Color", "group__screen.html#a1589b83974b42a2f3315624f14c3c92c", null ], + [ "Color", "group__screen.html#a3c93cb793b88256235f17235c9359b35", null ], + [ "Color", "group__screen.html#a55decaa0b2ab846729582f5f7b6acb49", null ], + [ "Color", "group__screen.html#a4f2602aacaf27a6482580fea0f7de0d2", null ], + [ "Color", "group__screen.html#a92d70d7572b7a07d2af4ff650e272e08", null ], + [ "operator==", "group__screen.html#a66275ebe4681464e082660fa6be9ba28", null ], + [ "operator!=", "group__screen.html#a5db052159bd2c738ea453d9b9600513a", null ], + [ "Print", "group__screen.html#acfe358aa128835387b6c2b7ffe22bab5", null ], + [ "IsOpaque", "group__screen.html#a74deffc6b6c7e07b3ec67766ff35abba", null ] +]; \ No newline at end of file diff --git a/group__screen_classftxui_1_1Image.js b/group__screen_classftxui_1_1Image.js new file mode 100644 index 000000000..7b4e1cc6d --- /dev/null +++ b/group__screen_classftxui_1_1Image.js @@ -0,0 +1,17 @@ +var group__screen_classftxui_1_1Image = +[ + [ "Image", "group__screen.html#a7c483c751b9c859ef08cecb32f1d1994", null ], + [ "Image", "group__screen.html#aecbd97261c37fa89ea6df7ccaba216c3", null ], + [ "~Image", "group__screen.html#af7348fef7a61244855ed83dfb1fcbfa1", null ], + [ "at", "group__screen.html#a55b0a995463c6936efb33391f29565bc", null ], + [ "at", "group__screen.html#a0882d58bb8ca1be9953135338456cf9e", null ], + [ "PixelAt", "group__screen.html#a483f8ee1967e200cfc9e277b3ce00174", null ], + [ "PixelAt", "group__screen.html#a03b2b39bb8f4d72068744776093125b3", null ], + [ "dimx", "group__screen.html#ae7a460c9dacd70ed81b1adfea46b492e", null ], + [ "dimy", "group__screen.html#a0d283cfb1ec16b3fc13d344ebfea93d4", null ], + [ "Clear", "group__screen.html#aa71d36872f416feaa853788a7a7a7ef8", null ], + [ "stencil", "group__screen.html#a92cacd07ba30909855f19edc01192ff0", null ], + [ "dimx_", "group__screen.html#a1b254c3faacd432c325efff4268ca683", null ], + [ "dimy_", "group__screen.html#a9e9d5df4b41aaa5eca27cdcaca6d4574", null ], + [ "pixels_", "group__screen.html#aeab8c1788b3f2c7403749c3be95a68ae", null ] +]; \ No newline at end of file diff --git a/group__screen_classftxui_1_1Screen.js b/group__screen_classftxui_1_1Screen.js new file mode 100644 index 000000000..c3e0d5d75 --- /dev/null +++ b/group__screen_classftxui_1_1Screen.js @@ -0,0 +1,31 @@ +var group__screen_classftxui_1_1Screen = +[ + [ "Cursor", "structftxui_1_1Screen_1_1Cursor.html", "structftxui_1_1Screen_1_1Cursor" ], + [ "SelectionStyle", "group__screen.html#a0424ec9a980000671f12bfa39fc32273", null ], + [ "Screen", "group__screen.html#a7ecf7c5fb3d90a1620098a60cfafc215", null ], + [ "~Screen", "group__screen.html#a20d80448fe5bd4ce01dcd821d4d67a5b", null ], + [ "ToString", "group__screen.html#a19c380b03cea21d7ac7325136a131ff0", null ], + [ "Print", "group__screen.html#ad93edbe885499a712129356f1ffd506b", null ], + [ "Clear", "group__screen.html#aa71d36872f416feaa853788a7a7a7ef8", null ], + [ "ResetPosition", "group__screen.html#a9677c078c4270afdb7451cdc0b0871d4", null ], + [ "ApplyShader", "group__screen.html#a04d18c0cb0df3ed7a01ca5c3b8711ff7", null ], + [ "cursor", "group__screen.html#a94febaac347b83267ff6a10b7837d612", null ], + [ "SetCursor", "group__screen.html#a1aa24862a3d050b3aea2ade1300d51a7", null ], + [ "RegisterHyperlink", "group__screen.html#a38015a8bc3dda474354ec8a374a6e2de", null ], + [ "Hyperlink", "group__screen.html#a0b55b16969dfccc79195fe61c5ba6d1a", null ], + [ "GetSelectionStyle", "group__screen.html#a056c2ad43affdac744b6907e9ea81463", null ], + [ "SetSelectionStyle", "group__screen.html#aba0d30b90db17d6b7561f704ed63b5e6", null ], + [ "at", "group__screen.html#a55b0a995463c6936efb33391f29565bc", null ], + [ "at", "group__screen.html#a0882d58bb8ca1be9953135338456cf9e", null ], + [ "PixelAt", "group__screen.html#a483f8ee1967e200cfc9e277b3ce00174", null ], + [ "PixelAt", "group__screen.html#a03b2b39bb8f4d72068744776093125b3", null ], + [ "dimx", "group__screen.html#ae7a460c9dacd70ed81b1adfea46b492e", null ], + [ "dimy", "group__screen.html#a0d283cfb1ec16b3fc13d344ebfea93d4", null ], + [ "cursor_", "group__screen.html#a9df9d1ae7ed66857ca987963b2365904", null ], + [ "hyperlinks_", "group__screen.html#acff83d382ef60ad2a0fca3ba68e9397f", null ], + [ "selection_style_", "group__screen.html#ab9f757d5d67255f61e27950be4131be1", null ], + [ "stencil", "group__screen.html#a92cacd07ba30909855f19edc01192ff0", null ], + [ "dimx_", "group__screen.html#a1b254c3faacd432c325efff4268ca683", null ], + [ "dimy_", "group__screen.html#a9e9d5df4b41aaa5eca27cdcaca6d4574", null ], + [ "pixels_", "group__screen.html#aeab8c1788b3f2c7403749c3be95a68ae", null ] +]; \ No newline at end of file diff --git a/group__screen_structftxui_1_1Box.js b/group__screen_structftxui_1_1Box.js new file mode 100644 index 000000000..2c152aa85 --- /dev/null +++ b/group__screen_structftxui_1_1Box.js @@ -0,0 +1,12 @@ +var group__screen_structftxui_1_1Box = +[ + [ "Shift", "group__screen.html#a507dad970b4732caab79e5922bdc5fb5", null ], + [ "Contain", "group__screen.html#a2f31c89738607b84e65992a7005d35a9", null ], + [ "IsEmpty", "group__screen.html#a8e12342fc420701fbffd97025421575a", null ], + [ "operator==", "group__screen.html#ad75c695cfa18e51d88a0984af5df2f69", null ], + [ "operator!=", "group__screen.html#a1ff481fa3b55fcc402c98c7564990c17", null ], + [ "x_min", "group__screen.html#ae0951dcafafdc96ac1d8361c672d47e2", null ], + [ "x_max", "group__screen.html#a5f0bb6d8a3e66525c3e6264cb8288e43", null ], + [ "y_min", "group__screen.html#a7941ddc7e35fffb8864af1e922814401", null ], + [ "y_max", "group__screen.html#ad033aea530fbbcf5bcd6cd98d882e3a5", null ] +]; \ No newline at end of file diff --git a/group__screen_structftxui_1_1ColorInfo.js b/group__screen_structftxui_1_1ColorInfo.js new file mode 100644 index 000000000..9f7d2d883 --- /dev/null +++ b/group__screen_structftxui_1_1ColorInfo.js @@ -0,0 +1,12 @@ +var group__screen_structftxui_1_1ColorInfo = +[ + [ "name", "group__screen.html#a8f8f80d37794cde9472343e4487ba3eb", null ], + [ "index_256", "group__screen.html#aacf9c9496e5d01c2fe30337791f33840", null ], + [ "index_16", "group__screen.html#a6259df4cdd9a7cae286f46a471e9afa5", null ], + [ "red", "group__screen.html#ad47d918910aaa51c73160ac85999d09c", null ], + [ "green", "group__screen.html#a90d21fa503b626c00cdc8d94863d5877", null ], + [ "blue", "group__screen.html#a287b397e90d7b995c81ff54e741f96b2", null ], + [ "hue", "group__screen.html#ad7b7eb0b3e04af91bdd64715226c3c68", null ], + [ "saturation", "group__screen.html#a4769b22557e2bcd3edbc69f2caaf691f", null ], + [ "value", "group__screen.html#a638e4503e0ae6ce655b7ad2e17e8f0ad", null ] +]; \ No newline at end of file diff --git a/group__screen_structftxui_1_1Dimensions.js b/group__screen_structftxui_1_1Dimensions.js new file mode 100644 index 000000000..a4d8545be --- /dev/null +++ b/group__screen_structftxui_1_1Dimensions.js @@ -0,0 +1,5 @@ +var group__screen_structftxui_1_1Dimensions = +[ + [ "dimx", "group__screen.html#a8b0f6ae031a507c3ffb7bf0eec290d46", null ], + [ "dimy", "group__screen.html#a3a072d6ef9c51d085b44eac70f2edff6", null ] +]; \ No newline at end of file diff --git a/group__screen_structftxui_1_1Pixel.js b/group__screen_structftxui_1_1Pixel.js new file mode 100644 index 000000000..071564bd9 --- /dev/null +++ b/group__screen_structftxui_1_1Pixel.js @@ -0,0 +1,17 @@ +var group__screen_structftxui_1_1Pixel = +[ + [ "Pixel", "group__screen.html#a3d22dc2630f1c1c69ec973cd4648b5d5", null ], + [ "blink", "group__screen.html#a399ff0c757d88aeaa2439212f073f380", null ], + [ "bold", "group__screen.html#a7a210a24d67146bd143c013d1da0f2dd", null ], + [ "dim", "group__screen.html#a3cecb006e0ca185024cd89f9ea2ea69a", null ], + [ "italic", "group__screen.html#ad3c22ba2f55e1f2b3087e9ad2d1ea36e", null ], + [ "inverted", "group__screen.html#a19bbb3c355941d56eccf70be7f7ed9e1", null ], + [ "underlined", "group__screen.html#a7c8849e8321ea248cd4991ea8ef198eb", null ], + [ "underlined_double", "group__screen.html#afe0ea73f380e746092213b879003afd6", null ], + [ "strikethrough", "group__screen.html#a21fbeba389ccf8f76447c7a73ead8db2", null ], + [ "automerge", "group__screen.html#ada8b6dbd466ba5b6c4b240f229bd627f", null ], + [ "hyperlink", "group__screen.html#a071ab11cf7706c7800281716177c88e3", null ], + [ "character", "group__screen.html#a3bbcd6a381555ea201dbe4251a9aafb3", null ], + [ "background_color", "group__screen.html#a3af4612678da78558adccf47e17164bb", null ], + [ "foreground_color", "group__screen.html#a2ce82adc1d02baf22df658b903dcb351", null ] +]; \ No newline at end of file diff --git a/hbox_8cpp.html b/hbox_8cpp.html new file mode 100644 index 000000000..a39976ddb --- /dev/null +++ b/hbox_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: hbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    hbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element hbox (Elements children)
     A container displaying elements horizontally one by one.
     
    +
    +
    + + + + + diff --git a/hbox_8cpp.js b/hbox_8cpp.js new file mode 100644 index 000000000..2d278bbf0 --- /dev/null +++ b/hbox_8cpp.js @@ -0,0 +1,4 @@ +var hbox_8cpp = +[ + [ "hbox", "hbox_8cpp.html#a552ba6d33b3c9bec586b99fba4c243ac", null ] +]; \ No newline at end of file diff --git a/hbox_8cpp_source.html b/hbox_8cpp_source.html new file mode 100644 index 000000000..fb349b5b9 --- /dev/null +++ b/hbox_8cpp_source.html @@ -0,0 +1,322 @@ + + + + + + + + +FTXUI: hbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    hbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max
    +
    5#include <cstddef> // for size_t
    +
    6#include <memory> // for __shared_ptr_access, shared_ptr, make_shared, allocator_traits<>::value_type
    +
    7#include <utility> // for move
    +
    8#include <vector> // for vector, __alloc_traits<>::value_type
    +
    9
    +
    10#include "ftxui/dom/box_helper.hpp" // for Element, Compute
    +
    11#include "ftxui/dom/elements.hpp" // for Element, Elements, hbox
    +
    12#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    13#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    14#include "ftxui/dom/selection.hpp" // for Selection
    +
    15#include "ftxui/screen/box.hpp" // for Box
    +
    16namespace ftxui {
    +
    17
    +
    18namespace {
    +
    19class HBox : public Node {
    +
    20 public:
    +
    21 explicit HBox(Elements children) : Node(std::move(children)) {}
    +
    22
    +
    23 private:
    +
    24 void ComputeRequirement() override {
    +
    25 requirement_ = Requirement{};
    +
    26
    +
    27 for (auto& child : children_) {
    +
    28 child->ComputeRequirement();
    +
    29
    +
    30 // Propagate the focused requirement.
    +
    31 if (requirement_.focused.Prefer(child->requirement().focused)) {
    +
    32 requirement_.focused = child->requirement().focused;
    +
    33 requirement_.focused.box.Shift(requirement_.min_x, 0);
    +
    34 }
    +
    35
    +
    36 // Extend the min_x and min_y to contain all the children
    +
    37 requirement_.min_x += child->requirement().min_x;
    +
    38 requirement_.min_y =
    +
    39 std::max(requirement_.min_y, child->requirement().min_y);
    +
    40 }
    +
    41 }
    +
    42
    +
    43 void SetBox(Box box) override {
    +
    44 Node::SetBox(box);
    +
    45
    +
    46 std::vector<box_helper::Element> elements(children_.size());
    +
    47 for (size_t i = 0; i < children_.size(); ++i) {
    +
    48 auto& element = elements[i];
    +
    49 const auto& requirement = children_[i]->requirement();
    +
    50 element.min_size = requirement.min_x;
    +
    51 element.flex_grow = requirement.flex_grow_x;
    +
    52 element.flex_shrink = requirement.flex_shrink_x;
    +
    53 }
    +
    54 const int target_size = box.x_max - box.x_min + 1;
    +
    55 box_helper::Compute(&elements, target_size);
    +
    56
    +
    57 int x = box.x_min;
    +
    58 for (size_t i = 0; i < children_.size(); ++i) {
    +
    59 box.x_min = x;
    +
    60 box.x_max = x + elements[i].size - 1;
    +
    61 children_[i]->SetBox(box);
    +
    62 x = box.x_max + 1;
    +
    63 }
    +
    64 }
    +
    65
    +
    66 void Select(Selection& selection) override {
    +
    67 // If this Node box_ doesn't intersect with the selection, then no
    +
    68 // selection.
    +
    69 if (Box::Intersection(selection.GetBox(), box_).IsEmpty()) {
    +
    70 return;
    +
    71 }
    +
    72
    +
    73 Selection selection_saturated = selection.SaturateHorizontal(box_);
    +
    74 for (auto& child : children_) {
    +
    75 child->Select(selection_saturated);
    +
    76 }
    +
    77 }
    +
    78};
    +
    79
    +
    80} // namespace
    +
    81
    +
    82/// @brief A container displaying elements horizontally one by one.
    +
    83/// @param children The elements in the container
    +
    84/// @return The container.
    +
    85///
    +
    86/// #### Example
    +
    87///
    +
    88/// ```cpp
    +
    89/// hbox({
    +
    90/// text("Left"),
    +
    91/// text("Right"),
    +
    92/// });
    +
    93/// ```
    +
    + +
    95 return std::make_shared<HBox>(std::move(children));
    +
    96}
    +
    +
    97
    +
    98} // namespace ftxui
    + + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    void Compute(std::vector< Element > *elements, int target_size)
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + + +
    +
    + + + + + diff --git a/hflow_8cpp.html b/hflow_8cpp.html new file mode 100644 index 000000000..5c187c70c --- /dev/null +++ b/hflow_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: hflow.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    hflow.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file hflow.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/hflow_8cpp.js b/hflow_8cpp.js new file mode 100644 index 000000000..3886a02db --- /dev/null +++ b/hflow_8cpp.js @@ -0,0 +1,4 @@ +var hflow_8cpp = +[ + [ "main", "hflow_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/hflow_8cpp_source.html b/hflow_8cpp_source.html new file mode 100644 index 000000000..ac913a032 --- /dev/null +++ b/hflow_8cpp_source.html @@ -0,0 +1,270 @@ + + + + + + + + +FTXUI: hflow.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    hflow.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdio.h> // for getchar
    +
    5#include <ftxui/dom/elements.hpp> // for operator|, size, Element, text, hcenter, Decorator, Fit, WIDTH, hflow, window, EQUAL, GREATER_THAN, HEIGHT, bold, border, dim, LESS_THAN
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <string> // for allocator, char_traits, operator+, to_string, string
    +
    8
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto make_box = [](int dimx, int dimy) {
    +
    15 std::string title = std::to_string(dimx) + "x" + std::to_string(dimy);
    +
    16 return window(text(title) | hcenter | bold,
    +
    17 text("content") | hcenter | dim) |
    +
    18 size(WIDTH, EQUAL, dimx) | size(HEIGHT, EQUAL, dimy);
    +
    19 };
    +
    20
    +
    21 auto style = size(WIDTH, GREATER_THAN, 20) | border |
    +
    22 size(HEIGHT, GREATER_THAN, 30) | size(WIDTH, LESS_THAN, 50);
    +
    23
    +
    24 auto document = hflow({
    +
    25 make_box(7, 7),
    +
    26 make_box(7, 5),
    +
    27 make_box(5, 7),
    +
    28 make_box(10, 4),
    +
    29 make_box(10, 4),
    +
    30 make_box(10, 4),
    +
    31 make_box(10, 4),
    +
    32 make_box(11, 4),
    +
    33 make_box(11, 4),
    +
    34 make_box(11, 4),
    +
    35 make_box(11, 4),
    +
    36 make_box(12, 4),
    +
    37 make_box(12, 5),
    +
    38 make_box(12, 4),
    +
    39 make_box(13, 4),
    +
    40 make_box(13, 3),
    +
    41 make_box(13, 3),
    +
    42 make_box(10, 3),
    +
    43 }) |
    +
    44 style;
    +
    45
    +
    46 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    47 Render(screen, document);
    +
    48 screen.Print();
    +
    49 getchar();
    +
    50
    +
    51 return 0;
    +
    52}
    +
    + + +
    Element make_box(int x, int y)
    +
    int main()
    Definition hflow.cpp:12
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 000000000..96b1bd990 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,282 @@ + + + + + + + + +FTXUI: Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class Hierarchy
    +
    +
    +
    +

    Go to the graphical class hierarchy

    +This inheritance list is sorted roughly, but not completely, alphabetically:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     CConstStringListRef::Adapter
     CAnimatedColorOptionOption about a potentially animated color
     CAnimatedColorsOption
     CAnimationTask
     CAnimator
     CAutoReset< T >Assign a value to a variable, reset its old value when going out of scope
     CBlock
     CBoxBox is a structure that represents a rectangular area in a 2D space
     CButtonOptionOption for the AnimatedButton component
     CCanvasCanvas is a drawable buffer associated with drawing operations
     CCapturedMouseInterface
     CCheckboxOptionOption for the Checkbox component
     CColorColor is a class that represents a color in the terminal user interface
     CColorInfoColorInfo is a structure that contains information about the terminal color palette
     CComponentBaseIt implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event
     CConstRef< T >An adapter. Own or reference an immutable object
     CConstRef< std::string >
     CConstStringRefAn adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation
     CConstStringListRefAn adapter. Reference a list of strings
     CScreen::Cursor
     CDimensionsDimensions is a structure that represents the size of the terminal
     CDropdownOptionOption for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox
     CElement
     CEntryStateArguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|
     CEventRepresent an event. It can be key press event, a terminal resize, or more ..
     CFlexboxConfigFlexboxConfig is a configuration structure that defines the layout properties for a flexbox container
     CRequirement::Focused
     CGlobal
     CImageA rectangular grid of Pixel
     CScreenA rectangular grid of Pixel
     CScreenInteractiveScreenInteractive is a Screen that can handle events, run a main loop, and manage components
     CInputOptionOption for the Input component
     CInputStateUsed to define style for the Input component
     CLine
     CLinearGradientA class representing the settings for linear-gradient color effect
     CLoopLoop is a class that manages the event loop for a component
     CMenuEntryOptionOption for the MenuEntry component
     CMenuOptionOption for the Menu component
     CMouseA mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta)
     CNodeNode is the base class for all elements in the DOM tree
     CNodeDecorator
     CParams
     CPendingTask
     CPixelA Unicode character and its associated style
     CScreenInteractive::Private
     CRadioboxOptionOption for the Radiobox component
     CReceiverImpl< T >
     CRef< T >An adapter. Own or reference an mutable object
     CRef< bool >
     CRef< Direction >
     CRef< int >
     CRef< std::string >
     CStringRefAn adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation
     CRequirementRequirement is a structure that defines the layout requirements for a Node in the terminal user interface
     CResizableSplitOption
     CSelectionRepresents a selection in a terminal user interface
     CSenderImpl< T >
     CSliderOption< T >
     CNode::Status
     CLinearGradient::Stop
     CTableTable is a utility to draw tables
     CTableSelection
     CTaskQueue
     CTaskRunner
     CTerminalInputParser
     CUnderlineOptionOption for the underline effect
     CWindowOptions
     CWindowRenderStateState passed to the Window component's render function
    +
    +
    +
    + + + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 000000000..c4a28023a --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,76 @@ +var hierarchy = +[ + [ "Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html", null ], + [ "AnimatedColorOption", "group__component.html#structftxui_1_1AnimatedColorOption", null ], + [ "AnimatedColorsOption", "structftxui_1_1AnimatedColorsOption.html", null ], + [ "AnimationTask", "classftxui_1_1AnimationTask.html", null ], + [ "Animator", "classftxui_1_1animation_1_1Animator.html", null ], + [ "AutoReset< T >", "classftxui_1_1AutoReset.html", null ], + [ "Block", "structftxui_1_1flexbox__helper_1_1Block.html", null ], + [ "Box", "group__screen.html#structftxui_1_1Box", null ], + [ "ButtonOption", "group__component.html#structftxui_1_1ButtonOption", null ], + [ "Canvas", "group__dom.html#structftxui_1_1Canvas", null ], + [ "CapturedMouseInterface", "classftxui_1_1CapturedMouseInterface.html", null ], + [ "CheckboxOption", "group__component.html#structftxui_1_1CheckboxOption", null ], + [ "Color", "group__screen.html#classftxui_1_1Color", null ], + [ "ColorInfo", "group__screen.html#structftxui_1_1ColorInfo", null ], + [ "ComponentBase", "group__component.html#classftxui_1_1ComponentBase", null ], + [ "ConstRef< T >", "classftxui_1_1ConstRef.html", null ], + [ "ConstRef< std::string >", "classftxui_1_1ConstRef.html", [ + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html", null ] + ] ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html", null ], + [ "Cursor", "structftxui_1_1Screen_1_1Cursor.html", null ], + [ "Dimensions", "group__screen.html#structftxui_1_1Dimensions", null ], + [ "DropdownOption", "group__component.html#structftxui_1_1DropdownOption", null ], + [ "Element", "structftxui_1_1box__helper_1_1Element.html", null ], + [ "EntryState", "structftxui_1_1EntryState.html", null ], + [ "Event", "group__component.html#structftxui_1_1Event", null ], + [ "FlexboxConfig", "group__dom.html#structftxui_1_1FlexboxConfig", null ], + [ "Focused", "structftxui_1_1Requirement_1_1Focused.html", null ], + [ "Global", "structftxui_1_1flexbox__helper_1_1Global.html", null ], + [ "Image", "group__screen.html#classftxui_1_1Image", [ + [ "Screen", "group__screen.html#classftxui_1_1Screen", [ + [ "ScreenInteractive", "group__component.html#classftxui_1_1ScreenInteractive", null ] + ] ] + ] ], + [ "InputOption", "group__component.html#structftxui_1_1InputOption", null ], + [ "InputState", "structftxui_1_1InputState.html", null ], + [ "Line", "structftxui_1_1flexbox__helper_1_1Line.html", null ], + [ "LinearGradient", "group__dom.html#structftxui_1_1LinearGradient", null ], + [ "Loop", "group__component.html#classftxui_1_1Loop", null ], + [ "MenuEntryOption", "group__component.html#structftxui_1_1MenuEntryOption", null ], + [ "MenuOption", "group__component.html#structftxui_1_1MenuOption", null ], + [ "Mouse", "group__component.html#structftxui_1_1Mouse", null ], + [ "Node", "group__dom.html#classftxui_1_1Node", [ + [ "NodeDecorator", "classftxui_1_1NodeDecorator.html", null ] + ] ], + [ "Params", "classftxui_1_1animation_1_1Params.html", null ], + [ "PendingTask", "structftxui_1_1task_1_1PendingTask.html", null ], + [ "Pixel", "group__screen.html#structftxui_1_1Pixel", null ], + [ "Private", "classftxui_1_1ScreenInteractive_1_1Private.html", null ], + [ "RadioboxOption", "group__component.html#structftxui_1_1RadioboxOption", null ], + [ "ReceiverImpl< T >", "classftxui_1_1ReceiverImpl.html", null ], + [ "Ref< T >", "classftxui_1_1Ref.html", null ], + [ "Ref< bool >", "classftxui_1_1Ref.html", null ], + [ "Ref< Direction >", "classftxui_1_1Ref.html", null ], + [ "Ref< int >", "classftxui_1_1Ref.html", null ], + [ "Ref< std::string >", "classftxui_1_1Ref.html", [ + [ "StringRef", "classftxui_1_1StringRef.html", null ] + ] ], + [ "Requirement", "group__dom.html#structftxui_1_1Requirement", null ], + [ "ResizableSplitOption", "structftxui_1_1ResizableSplitOption.html", null ], + [ "Selection", "group__dom.html#classftxui_1_1Selection", null ], + [ "SenderImpl< T >", "classftxui_1_1SenderImpl.html", null ], + [ "SliderOption< T >", "structftxui_1_1SliderOption.html", null ], + [ "Status", "structftxui_1_1Node_1_1Status.html", null ], + [ "Stop", "structftxui_1_1LinearGradient_1_1Stop.html", null ], + [ "Table", "group__dom.html#classftxui_1_1Table", null ], + [ "TableSelection", "classftxui_1_1TableSelection.html", null ], + [ "TaskQueue", "structftxui_1_1task_1_1TaskQueue.html", null ], + [ "TaskRunner", "classftxui_1_1task_1_1TaskRunner.html", null ], + [ "TerminalInputParser", "classftxui_1_1TerminalInputParser.html", null ], + [ "UnderlineOption", "group__component.html#structftxui_1_1UnderlineOption", null ], + [ "WindowOptions", "structftxui_1_1WindowOptions.html", null ], + [ "WindowRenderState", "group__component.html#structftxui_1_1WindowRenderState", null ] +]; \ No newline at end of file diff --git a/homescreen_8cpp.html b/homescreen_8cpp.html new file mode 100644 index 000000000..bb644ec85 --- /dev/null +++ b/homescreen_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: homescreen.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    homescreen.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 31 of file homescreen.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/homescreen_8cpp.js b/homescreen_8cpp.js new file mode 100644 index 000000000..701858efe --- /dev/null +++ b/homescreen_8cpp.js @@ -0,0 +1,4 @@ +var homescreen_8cpp = +[ + [ "main", "homescreen_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/homescreen_8cpp_source.html b/homescreen_8cpp_source.html new file mode 100644 index 000000000..7c10368a1 --- /dev/null +++ b/homescreen_8cpp_source.html @@ -0,0 +1,830 @@ + + + + + + + + +FTXUI: homescreen.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    homescreen.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stddef.h> // for size_t
    +
    5#include <array> // for array
    +
    6#include <atomic> // for atomic
    +
    7#include <chrono> // for operator""s, chrono_literals
    +
    8#include <cmath> // for sin
    + +
    10#include <functional> // for ref, reference_wrapper, function
    +
    11#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    12#include <string> // for string, basic_string, char_traits, operator+, to_string
    +
    13#include <thread> // for sleep_for, thread
    +
    14#include <utility> // for move
    +
    15#include <vector> // for vector
    +
    16
    +
    17#include "../dom/color_info_sorted_2d.ipp" // for ColorInfoSorted2D
    +
    18#include "ftxui/component/component.hpp" // for Checkbox, Renderer, Horizontal, Vertical, Input, Menu, Radiobox, ResizableSplitLeft, Tab
    +
    19#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
    +
    20#include "ftxui/component/component_options.hpp" // for MenuOption, InputOption
    +
    21#include "ftxui/component/event.hpp" // for Event, Event::Custom
    +
    22#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    23#include "ftxui/dom/elements.hpp" // for text, color, operator|, bgcolor, filler, Element, vbox, size, hbox, separator, flex, window, graph, EQUAL, paragraph, WIDTH, hcenter, Elements, bold, vscroll_indicator, HEIGHT, flexbox, hflow, border, frame, flex_grow, gauge, paragraphAlignCenter, paragraphAlignJustify, paragraphAlignLeft, paragraphAlignRight, dim, spinner, LESS_THAN, center, yframe, GREATER_THAN
    +
    24#include "ftxui/dom/flexbox_config.hpp" // for FlexboxConfig
    +
    25#include "ftxui/screen/color.hpp" // for Color, Color::BlueLight, Color::RedLight, Color::Black, Color::Blue, Color::Cyan, Color::CyanLight, Color::GrayDark, Color::GrayLight, Color::Green, Color::GreenLight, Color::Magenta, Color::MagentaLight, Color::Red, Color::White, Color::Yellow, Color::YellowLight, Color::Default, Color::Palette256, ftxui
    +
    26#include "ftxui/screen/color_info.hpp" // for ColorInfo
    +
    27#include "ftxui/screen/terminal.hpp" // for Size, Dimensions
    +
    28
    +
    29using namespace ftxui;
    +
    30
    +
    +
    31int main() {
    +
    32 auto screen = ScreenInteractive::Fullscreen();
    +
    33
    +
    34 // ---------------------------------------------------------------------------
    +
    35 // HTOP
    +
    36 // ---------------------------------------------------------------------------
    +
    37 int shift = 0;
    +
    38
    +
    39 auto my_graph = [&shift](int width, int height) {
    +
    40 std::vector<int> output(width);
    +
    41 for (int i = 0; i < width; ++i) {
    +
    42 float v = 0.5f;
    +
    43 v += 0.1f * sin((i + shift) * 0.1f);
    +
    44 v += 0.2f * sin((i + shift + 10) * 0.15f);
    +
    45 v += 0.1f * sin((i + shift) * 0.03f);
    +
    46 v *= height;
    +
    47 output[i] = (int)v;
    +
    48 }
    +
    49 return output;
    +
    50 };
    +
    51
    +
    52 auto htop = Renderer([&] {
    +
    53 auto frequency = vbox({
    +
    54 text("Frequency [Mhz]") | hcenter,
    +
    55 hbox({
    +
    56 vbox({
    +
    57 text("2400 "),
    +
    58 filler(),
    +
    59 text("1200 "),
    +
    60 filler(),
    +
    61 text("0 "),
    +
    62 }),
    +
    63 graph(std::ref(my_graph)) | flex,
    +
    64 }) | flex,
    +
    65 });
    +
    66
    +
    67 auto utilization = vbox({
    +
    68 text("Utilization [%]") | hcenter,
    +
    69 hbox({
    +
    70 vbox({
    +
    71 text("100 "),
    +
    72 filler(),
    +
    73 text("50 "),
    +
    74 filler(),
    +
    75 text("0 "),
    +
    76 }),
    +
    77 graph(std::ref(my_graph)) | color(Color::RedLight),
    +
    78 }) | flex,
    +
    79 });
    +
    80
    +
    81 auto ram = vbox({
    +
    82 text("Ram [Mo]") | hcenter,
    +
    83 hbox({
    +
    84 vbox({
    +
    85 text("8192"),
    +
    86 filler(),
    +
    87 text("4096 "),
    +
    88 filler(),
    +
    89 text("0 "),
    +
    90 }),
    +
    91 graph(std::ref(my_graph)) | color(Color::BlueLight),
    +
    92 }) | flex,
    +
    93 });
    +
    94
    +
    95 return hbox({
    +
    96 vbox({
    +
    97 frequency | flex,
    +
    98 separator(),
    +
    99 utilization | flex,
    +
    100 }) | flex,
    +
    101 separator(),
    +
    102 ram | flex,
    +
    103 }) |
    +
    104 flex;
    +
    105 });
    +
    106
    +
    107 // ---------------------------------------------------------------------------
    +
    108 // Compiler
    +
    109 // ---------------------------------------------------------------------------
    +
    110
    +
    111 const std::vector<std::string> compiler_entries = {
    +
    112 "gcc",
    +
    113 "clang",
    +
    114 "emcc",
    +
    115 "game_maker",
    +
    116 "Ada compilers",
    +
    117 "ALGOL 60 compilers",
    +
    118 "ALGOL 68 compilers",
    +
    119 "Assemblers (Intel *86)",
    +
    120 "Assemblers (Motorola 68*)",
    +
    121 "Assemblers (Zilog Z80)",
    +
    122 "Assemblers (other)",
    +
    123 "BASIC Compilers",
    +
    124 "BASIC interpreters",
    +
    125 "Batch compilers",
    +
    126 "C compilers",
    +
    127 "Source-to-source compilers",
    +
    128 "C++ compilers",
    +
    129 "C# compilers",
    +
    130 "COBOL compilers",
    +
    131 "Common Lisp compilers",
    +
    132 "D compilers",
    +
    133 "DIBOL/DBL compilers",
    +
    134 "ECMAScript interpreters",
    +
    135 "Eiffel compilers",
    +
    136 "Fortran compilers",
    +
    137 "Go compilers",
    +
    138 "Haskell compilers",
    +
    139 "Java compilers",
    +
    140 "Pascal compilers",
    +
    141 "Perl Interpreters",
    +
    142 "PHP compilers",
    +
    143 "PL/I compilers",
    +
    144 "Python compilers",
    +
    145 "Scheme compilers and interpreters",
    +
    146 "Smalltalk compilers",
    +
    147 "Tcl Interpreters",
    +
    148 "VMS Interpreters",
    +
    149 "Rexx Interpreters",
    +
    150 "CLI compilers",
    +
    151 };
    +
    152
    +
    153 int compiler_selected = 0;
    +
    154 Component compiler = Radiobox(&compiler_entries, &compiler_selected);
    +
    155
    +
    156 std::array<std::string, 8> options_label = {
    +
    157 "-Wall",
    +
    158 "-Werror",
    +
    159 "-lpthread",
    +
    160 "-O3",
    +
    161 "-Wabi-tag",
    +
    162 "-Wno-class-conversion",
    +
    163 "-Wcomma-subscript",
    +
    164 "-Wno-conversion-null",
    +
    165 };
    +
    166 std::array<bool, 8> options_state = {
    +
    167 false, false, false, false, false, false, false, false,
    +
    168 };
    +
    169
    +
    170 std::vector<std::string> input_entries;
    +
    171 int input_selected = 0;
    +
    172 Component input = Menu(&input_entries, &input_selected);
    +
    173
    +
    174 auto input_option = InputOption();
    +
    175 std::string input_add_content;
    +
    176 input_option.on_enter = [&] {
    +
    177 input_entries.push_back(input_add_content);
    +
    178 input_add_content = "";
    +
    179 };
    +
    180 Component input_add = Input(&input_add_content, "input files", input_option);
    +
    181
    +
    182 std::string executable_content_ = "";
    +
    183 Component executable_ = Input(&executable_content_, "executable");
    +
    184
    + +
    186 Checkbox(&options_label[0], &options_state[0]),
    +
    187 Checkbox(&options_label[1], &options_state[1]),
    +
    188 Checkbox(&options_label[2], &options_state[2]),
    +
    189 Checkbox(&options_label[3], &options_state[3]),
    +
    190 Checkbox(&options_label[4], &options_state[4]),
    +
    191 Checkbox(&options_label[5], &options_state[5]),
    +
    192 Checkbox(&options_label[6], &options_state[6]),
    +
    193 Checkbox(&options_label[7], &options_state[7]),
    +
    194 });
    +
    195
    +
    196 auto compiler_component = Container::Horizontal({
    +
    197 compiler,
    +
    198 flags,
    + +
    200 executable_,
    + +
    202 input_add,
    +
    203 input,
    +
    204 }),
    +
    205 }),
    +
    206 });
    +
    207
    +
    208 auto render_command = [&] {
    +
    209 Elements line;
    +
    210 // Compiler
    +
    211 line.push_back(text(compiler_entries[compiler_selected]) | bold);
    +
    212 // flags
    +
    213 for (int i = 0; i < 8; ++i) {
    +
    214 if (options_state[i]) {
    +
    215 line.push_back(text(" "));
    +
    216 line.push_back(text(options_label[i]) | dim);
    +
    217 }
    +
    218 }
    +
    219 // Executable
    +
    220 if (!executable_content_.empty()) {
    +
    221 line.push_back(text(" -o ") | bold);
    +
    222 line.push_back(text(executable_content_) | color(Color::BlueLight) |
    +
    223 bold);
    +
    224 }
    +
    225 // Input
    +
    226 for (auto& it : input_entries) {
    +
    227 line.push_back(text(" " + it) | color(Color::RedLight));
    +
    228 }
    +
    229 return line;
    +
    230 };
    +
    231
    +
    232 auto compiler_renderer = Renderer(compiler_component, [&] {
    +
    233 auto compiler_win = window(text("Compiler"),
    +
    234 compiler->Render() | vscroll_indicator | frame);
    +
    235 auto flags_win =
    +
    236 window(text("Flags"), flags->Render() | vscroll_indicator | frame);
    +
    237 auto executable_win = window(text("Executable:"), executable_->Render());
    +
    238 auto input_win =
    +
    239 window(text("Input"), hbox({
    +
    240 vbox({
    +
    241 hbox({
    +
    242 text("Add: "),
    +
    243 input_add->Render(),
    +
    244 }) | size(WIDTH, EQUAL, 20) |
    +
    245 size(HEIGHT, EQUAL, 1),
    +
    246 filler(),
    +
    247 }),
    +
    248 separator(),
    +
    249 input->Render() | vscroll_indicator | frame |
    +
    250 size(HEIGHT, EQUAL, 3) | flex,
    +
    251 }));
    +
    252 return vbox({
    +
    253 hbox({
    +
    254 compiler_win,
    +
    255 flags_win,
    +
    256 vbox({
    +
    257 executable_win | size(WIDTH, EQUAL, 20),
    +
    258 input_win | size(WIDTH, EQUAL, 60),
    +
    259 }),
    +
    260 filler(),
    +
    261 }) | size(HEIGHT, LESS_THAN, 8),
    +
    262 hflow(render_command()) | flex_grow,
    +
    263 }) |
    +
    264 flex_grow;
    +
    265 });
    +
    266
    +
    267 // ---------------------------------------------------------------------------
    +
    268 // Spinner
    +
    269 // ---------------------------------------------------------------------------
    +
    270 auto spinner_tab_renderer = Renderer([&] {
    +
    271 Elements entries;
    +
    272 for (int i = 0; i < 22; ++i) {
    +
    273 entries.push_back(spinner(i, shift / 5) | bold |
    +
    274 size(WIDTH, GREATER_THAN, 2) | border);
    +
    275 }
    +
    276 return hflow(std::move(entries));
    +
    277 });
    +
    278
    +
    279 // ---------------------------------------------------------------------------
    +
    280 // Colors
    +
    281 // ---------------------------------------------------------------------------
    +
    282 auto color_tab_renderer = Renderer([] {
    +
    283 auto basic_color_display =
    +
    284 vbox({
    +
    285 text("16 color palette:"),
    +
    286 separator(),
    +
    287 hbox({
    +
    288 vbox({
    +
    289 color(Color::Default, text("Default")),
    +
    290 color(Color::Black, text("Black")),
    +
    291 color(Color::GrayDark, text("GrayDark")),
    +
    292 color(Color::GrayLight, text("GrayLight")),
    +
    293 color(Color::White, text("White")),
    +
    294 color(Color::Blue, text("Blue")),
    +
    295 color(Color::BlueLight, text("BlueLight")),
    +
    296 color(Color::Cyan, text("Cyan")),
    +
    297 color(Color::CyanLight, text("CyanLight")),
    +
    298 color(Color::Green, text("Green")),
    +
    299 color(Color::GreenLight, text("GreenLight")),
    +
    300 color(Color::Magenta, text("Magenta")),
    +
    301 color(Color::MagentaLight, text("MagentaLight")),
    +
    302 color(Color::Red, text("Red")),
    +
    303 color(Color::RedLight, text("RedLight")),
    +
    304 color(Color::Yellow, text("Yellow")),
    +
    305 color(Color::YellowLight, text("YellowLight")),
    +
    306 }),
    +
    307 vbox({
    +
    308 bgcolor(Color::Default, text("Default")),
    +
    309 bgcolor(Color::Black, text("Black")),
    +
    310 bgcolor(Color::GrayDark, text("GrayDark")),
    +
    311 bgcolor(Color::GrayLight, text("GrayLight")),
    +
    312 bgcolor(Color::White, text("White")),
    +
    313 bgcolor(Color::Blue, text("Blue")),
    +
    314 bgcolor(Color::BlueLight, text("BlueLight")),
    +
    315 bgcolor(Color::Cyan, text("Cyan")),
    +
    316 bgcolor(Color::CyanLight, text("CyanLight")),
    +
    317 bgcolor(Color::Green, text("Green")),
    +
    318 bgcolor(Color::GreenLight, text("GreenLight")),
    +
    319 bgcolor(Color::Magenta, text("Magenta")),
    +
    320 bgcolor(Color::MagentaLight, text("MagentaLight")),
    +
    321 bgcolor(Color::Red, text("Red")),
    +
    322 bgcolor(Color::RedLight, text("RedLight")),
    +
    323 bgcolor(Color::Yellow, text("Yellow")),
    +
    324 bgcolor(Color::YellowLight, text("YellowLight")),
    +
    325 }),
    +
    326 }),
    +
    327 }) |
    +
    328 border;
    +
    329
    +
    330 auto palette_256_color_display = text("256 colors palette:");
    +
    331 {
    +
    332 std::vector<std::vector<ColorInfo>> info_columns = ColorInfoSorted2D();
    +
    333 Elements columns;
    +
    334 for (auto& column : info_columns) {
    +
    335 Elements column_elements;
    +
    336 for (auto& it : column) {
    +
    337 column_elements.push_back(
    +
    338 text(" ") | bgcolor(Color(Color::Palette256(it.index_256))));
    +
    339 }
    +
    340 columns.push_back(hbox(std::move(column_elements)));
    +
    341 }
    +
    342 palette_256_color_display = vbox({
    +
    343 palette_256_color_display,
    +
    344 separator(),
    +
    345 vbox(columns),
    +
    346 }) |
    +
    347 border;
    +
    348 }
    +
    349
    +
    350 // True color display.
    +
    351 auto true_color_display = text("TrueColors: 24bits:");
    +
    352 {
    +
    353 int saturation = 255;
    +
    354 Elements array;
    +
    355 for (int value = 0; value < 255; value += 16) {
    +
    356 Elements line;
    +
    357 for (int hue = 0; hue < 255; hue += 6) {
    +
    358 line.push_back(text("▀") //
    +
    359 | color(Color::HSV(hue, saturation, value)) //
    +
    360 | bgcolor(Color::HSV(hue, saturation, value + 8)));
    +
    361 }
    +
    362 array.push_back(hbox(std::move(line)));
    +
    363 }
    +
    364 true_color_display = vbox({
    +
    365 true_color_display,
    +
    366 separator(),
    +
    367 vbox(std::move(array)),
    +
    368 }) |
    +
    369 border;
    +
    370 }
    +
    371
    +
    372 return flexbox(
    +
    373 {
    +
    374 basic_color_display,
    +
    375 palette_256_color_display,
    +
    376 true_color_display,
    +
    377 },
    +
    378 FlexboxConfig().SetGap(1, 1));
    +
    379 });
    +
    380
    +
    381 // ---------------------------------------------------------------------------
    +
    382 // Gauges
    +
    383 // ---------------------------------------------------------------------------
    +
    384 auto render_gauge = [&shift](int delta) {
    +
    385 float progress = (shift + delta) % 500 / 500.f;
    +
    386 return hbox({
    +
    387 text(std::to_string(int(progress * 100)) + "% ") |
    +
    388 size(WIDTH, EQUAL, 5),
    +
    389 gauge(progress),
    +
    390 });
    +
    391 };
    +
    392
    +
    393 auto gauge_component = Renderer([render_gauge] {
    +
    394 return vbox({
    +
    395 render_gauge(0) | color(Color::Black),
    +
    396 render_gauge(100) | color(Color::GrayDark),
    +
    397 render_gauge(50) | color(Color::GrayLight),
    +
    398 render_gauge(6894) | color(Color::White),
    +
    399 separator(),
    +
    400 render_gauge(6841) | color(Color::Blue),
    +
    401 render_gauge(9813) | color(Color::BlueLight),
    +
    402 render_gauge(98765) | color(Color::Cyan),
    +
    403 render_gauge(98) | color(Color::CyanLight),
    +
    404 render_gauge(9846) | color(Color::Green),
    +
    405 render_gauge(1122) | color(Color::GreenLight),
    +
    406 render_gauge(84) | color(Color::Magenta),
    +
    407 render_gauge(645) | color(Color::MagentaLight),
    +
    408 render_gauge(568) | color(Color::Red),
    +
    409 render_gauge(2222) | color(Color::RedLight),
    +
    410 render_gauge(220) | color(Color::Yellow),
    +
    411 render_gauge(348) | color(Color::YellowLight),
    +
    412 });
    +
    413 });
    +
    414
    +
    415 // ---------------------------------------------------------------------------
    +
    416 // Paragraph
    +
    417 // ---------------------------------------------------------------------------
    +
    418 auto make_box = [](size_t dimx, size_t dimy) {
    +
    419 std::string title = std::to_string(dimx) + "x" + std::to_string(dimy);
    +
    420 return window(text(title) | hcenter | bold,
    +
    421 text("content") | hcenter | dim) |
    +
    422 size(WIDTH, EQUAL, dimx) | size(HEIGHT, EQUAL, dimy);
    +
    423 };
    +
    424
    +
    425 auto paragraph_renderer_left = Renderer([&] {
    +
    426 std::string str =
    +
    427 "Lorem Ipsum is simply dummy text of the printing and typesetting "
    +
    428 "industry.\nLorem Ipsum has been the industry's standard dummy text "
    +
    429 "ever since the 1500s, when an unknown printer took a galley of type "
    +
    430 "and scrambled it to make a type specimen book.";
    +
    431 return vbox({
    +
    432 window(text("Align left:"), paragraphAlignLeft(str)),
    +
    433 window(text("Align center:"), paragraphAlignCenter(str)),
    +
    434 window(text("Align right:"), paragraphAlignRight(str)),
    +
    435 window(text("Align justify:"), paragraphAlignJustify(str)),
    +
    436 window(text("Side by side"), hbox({
    +
    437 paragraph(str),
    +
    438 separator(),
    +
    439 paragraph(str),
    +
    440 })),
    +
    441 window(text("Elements with different size:"),
    +
    442 flexbox({
    +
    443 make_box(10, 5),
    +
    444 make_box(9, 4),
    +
    445 make_box(8, 4),
    +
    446 make_box(6, 3),
    +
    447 make_box(10, 5),
    +
    448 make_box(9, 4),
    +
    449 make_box(8, 4),
    +
    450 make_box(6, 3),
    +
    451 make_box(10, 5),
    +
    452 make_box(9, 4),
    +
    453 make_box(8, 4),
    +
    454 make_box(6, 3),
    +
    455 })),
    +
    456 }) |
    +
    457 vscroll_indicator | yframe | flex;
    +
    458 });
    +
    459
    +
    460 auto paragraph_renderer_right = Renderer([] {
    +
    461 return paragraph("<--- This vertical bar is resizable using the mouse") |
    +
    462 center;
    +
    463 });
    +
    464
    +
    465 int paragraph_renderer_split_position = Terminal::Size().dimx / 2;
    +
    466 auto paragraph_renderer_group =
    +
    467 ResizableSplitLeft(paragraph_renderer_left, paragraph_renderer_right,
    +
    468 &paragraph_renderer_split_position);
    +
    469 auto paragraph_renderer_group_renderer =
    +
    470 Renderer(paragraph_renderer_group,
    +
    471 [&] { return paragraph_renderer_group->Render(); });
    +
    472
    +
    473 // ---------------------------------------------------------------------------
    +
    474 // Tabs
    +
    475 // ---------------------------------------------------------------------------
    +
    476
    +
    477 int tab_index = 0;
    +
    478 std::vector<std::string> tab_entries = {
    +
    479 "htop", "color", "spinner", "gauge", "compiler", "paragraph",
    +
    480 };
    +
    481 auto tab_selection =
    +
    482 Menu(&tab_entries, &tab_index, MenuOption::HorizontalAnimated());
    +
    483 auto tab_content = Container::Tab(
    +
    484 {
    +
    485 htop,
    +
    486 color_tab_renderer,
    +
    487 spinner_tab_renderer,
    +
    488 gauge_component,
    +
    489 compiler_renderer,
    +
    490 paragraph_renderer_group_renderer,
    +
    491 },
    +
    492 &tab_index);
    +
    493
    +
    494 auto exit_button =
    +
    495 Button("Exit", [&] { screen.Exit(); }, ButtonOption::Animated());
    +
    496
    +
    497 auto main_container = Container::Vertical({
    + +
    499 tab_selection,
    +
    500 exit_button,
    +
    501 }),
    +
    502 tab_content,
    +
    503 });
    +
    504
    +
    505 auto main_renderer = Renderer(main_container, [&] {
    +
    506 return vbox({
    +
    507 text("FTXUI Demo") | bold | hcenter,
    +
    508 hbox({
    +
    509 tab_selection->Render() | flex,
    +
    510 exit_button->Render(),
    +
    511 }),
    +
    512 tab_content->Render() | flex,
    +
    513 });
    +
    514 });
    +
    515
    +
    516 Loop loop(&screen, main_renderer);
    +
    517 while (!loop.HasQuitted()) {
    +
    518 // Update the state of the application.
    +
    519 shift++;
    +
    520
    +
    521 // Request a new frame to be drawn.
    +
    522 screen.RequestAnimationFrame();
    +
    523
    +
    524 // Execute events, and draw the next frame.
    +
    525 loop.RunOnce();
    +
    526
    +
    527 // Sleep for a short duration to control the frame rate (60 FPS).
    +
    528 std::this_thread::sleep_for(std::chrono::milliseconds(1000 / 60));
    +
    529 }
    +
    530
    +
    531 return 0;
    +
    532}
    +
    + + + +
    std::vector< std::vector< ftxui::ColorInfo > > ColorInfoSorted2D()
    + + + + + +
    Element make_box(int x, int y)
    + +
    static ButtonOption Animated()
    Create a ButtonOption, using animated colors.
    +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    static ScreenInteractive Fullscreen()
    +
    static MenuOption HorizontalAnimated()
    Standard options for an animated horizontal menu. This can be useful to implement a tab bar.
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Input(InputOption options={})
    An input box for editing text.
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    Component ResizableSplitLeft(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Component Tab(Components children, int *selector)
    A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
    +
    Option for the Input component.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    FlexboxConfig & SetGap(int gap_x, int gap_y)
    Set the flexbox flex direction.
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element paragraphAlignRight(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the right.
    +
    Element spinner(int charset_index, size_t image_index)
    Useful to represent the effect of time and/or events. This displays an ASCII art "video".
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    Element paragraphAlignCenter(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the center.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element flex_grow(Element)
    Expand if possible.
    Definition flex.cpp:141
    +
    Element paragraphAlignLeft(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the left.
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element filler()
    An element that will take expand proportionally to the space left in a container.
    Definition flex.cpp:98
    +
    Element gauge(float progress)
    Draw a high definition progress bar.
    +
    Element paragraphAlignJustify(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned using a justified alignment....
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Element hcenter(Element)
    Center an element horizontally.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
    + + + + + + + + + + + + + + + + + + + +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    Dimensions Size()
    Get the terminal size.
    Definition terminal.cpp:94
    +
    int main()
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
    A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
    Definition flexbox.cpp:251
    +
    Element hflow(Elements)
    A container displaying elements in rows from left to right. When filled, it starts on a new row below...
    Definition flexbox.cpp:269
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Elements paragraph(std::wstring text)
    +
    @ LESS_THAN
    Definition elements.hpp:162
    + +
    @ GREATER_THAN
    Definition elements.hpp:162
    +
    Element graph(GraphFunction)
    Draw a graph using a GraphFunction.
    +
    std::shared_ptr< ComponentBase > Component
    + + +
    +
    + + + + + diff --git a/hoverable_8cpp.html b/hoverable_8cpp.html new file mode 100644 index 000000000..1a062da15 --- /dev/null +++ b/hoverable_8cpp.html @@ -0,0 +1,242 @@ + + + + + + + + +FTXUI: hoverable.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    hoverable.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    Component Hoverable (Component component, bool *hover)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Hoverable (Component component, std::function< void()> on_enter, std::function< void()> on_leave)
     Wrap a component. Uses callbacks.
     
    ComponentDecorator Hoverable (bool *hover)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (std::function< void()> on_enter, std::function< void()> on_leave)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Hoverable (Component component, std::function< void(bool)> on_change)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (std::function< void(bool)> on_change)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    +
    +
    + + + + + diff --git a/hoverable_8cpp.js b/hoverable_8cpp.js new file mode 100644 index 000000000..e779023d0 --- /dev/null +++ b/hoverable_8cpp.js @@ -0,0 +1,9 @@ +var hoverable_8cpp = +[ + [ "Hoverable", "hoverable_8cpp.html#ga562d984d3830d63285643565cd55d16f", null ], + [ "Hoverable", "hoverable_8cpp.html#ga92ec2f5ccb509da2e2c24ae6a1f6b12b", null ], + [ "Hoverable", "hoverable_8cpp.html#ga9d94b37352be13d3551a9d5785f75439", null ], + [ "Hoverable", "hoverable_8cpp.html#ga34adfc9c76cf3603156cba32ad5d7142", null ], + [ "Hoverable", "hoverable_8cpp.html#ga91cac81077c483efdb952268aee9a523", null ], + [ "Hoverable", "hoverable_8cpp.html#gafd7cbaef5378a907111a64ee69aed56a", null ] +]; \ No newline at end of file diff --git a/hoverable_8cpp_source.html b/hoverable_8cpp_source.html new file mode 100644 index 000000000..c1e3c00da --- /dev/null +++ b/hoverable_8cpp_source.html @@ -0,0 +1,457 @@ + + + + + + + + +FTXUI: hoverable.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    hoverable.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/component/component.hpp" // for ComponentDecorator, Hoverable, Make
    +
    8#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    9#include "ftxui/component/event.hpp" // for Event
    +
    10#include "ftxui/component/mouse.hpp" // for Mouse
    +
    11#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, reflect, Element
    +
    13#include "ftxui/screen/box.hpp" // for Box
    +
    14
    +
    15namespace ftxui {
    +
    16
    +
    17namespace {
    +
    18
    +
    19void Post(std::function<void()> f) {
    +
    20 if (auto* screen = ScreenInteractive::Active()) {
    +
    21 screen->Post(std::move(f));
    +
    22 return;
    +
    23 }
    +
    24 f();
    +
    25}
    +
    26
    +
    27} // namespace
    +
    28
    +
    29/// @brief Wrap a component. Gives the ability to know if it is hovered by the
    +
    30/// mouse.
    +
    31/// @param component The wrapped component.
    +
    32/// @param hover The value to reflect whether the component is hovered or not.
    +
    33/// @ingroup component
    +
    34///
    +
    35/// ### Example
    +
    36///
    +
    37/// ```cpp
    +
    38/// auto button = Button("exit", screen.ExitLoopClosure());
    +
    39/// bool hover = false;
    +
    40/// auto button_hover = Hoverable(button, &hover);
    +
    41/// ```
    +
    42// NOLINTNEXTLINE
    +
    +
    43Component Hoverable(Component component, bool* hover) {
    +
    44 class Impl : public ComponentBase {
    +
    45 public:
    +
    46 Impl(Component component, bool* hover)
    +
    47 : component_(std::move(component)), hover_(hover) {
    +
    48 Add(component_);
    +
    49 }
    +
    50
    +
    51 private:
    +
    52 Element OnRender() override {
    +
    53 return ComponentBase::OnRender() | reflect(box_);
    +
    54 }
    +
    55
    +
    56 bool OnEvent(Event event) override {
    +
    57 if (event.is_mouse()) {
    +
    58 *hover_ = box_.Contain(event.mouse().x, event.mouse().y) &&
    +
    59 CaptureMouse(event);
    +
    60 }
    +
    61
    +
    62 return ComponentBase::OnEvent(event);
    +
    63 }
    +
    64
    +
    65 Component component_;
    +
    66 bool* hover_;
    +
    67 Box box_;
    +
    68 };
    +
    69
    +
    70 return Make<Impl>(component, hover);
    +
    71}
    +
    +
    72
    +
    73/// @brief Wrap a component. Uses callbacks.
    +
    74/// @param component The wrapped component.
    +
    75/// @param on_enter Callback OnEnter
    +
    76/// @param on_leave Callback OnLeave
    +
    77/// @ingroup component
    +
    78///
    +
    79/// ### Example
    +
    80///
    +
    81/// ```cpp
    +
    82/// auto button = Button("exit", screen.ExitLoopClosure());
    +
    83/// bool hover = false;
    +
    84/// auto button_hover = Hoverable(button, &hover);
    +
    85/// ```
    +
    + +
    87 std::function<void()> on_enter,
    +
    88 std::function<void()> on_leave) {
    +
    89 class Impl : public ComponentBase {
    +
    90 public:
    +
    91 Impl(Component component,
    +
    92 std::function<void()> on_enter,
    +
    93 std::function<void()> on_leave)
    +
    94 : component_(std::move(component)),
    +
    95 on_enter_(std::move(on_enter)),
    +
    96 on_leave_(std::move(on_leave)) {
    +
    97 Add(component_);
    +
    98 }
    +
    99
    +
    100 private:
    +
    101 Element OnRender() override {
    +
    102 return ComponentBase::OnRender() | reflect(box_);
    +
    103 }
    +
    104
    +
    105 bool OnEvent(Event event) override {
    +
    106 if (event.is_mouse()) {
    +
    107 const bool hover = box_.Contain(event.mouse().x, event.mouse().y) &&
    +
    108 CaptureMouse(event);
    +
    109 if (hover != hover_) {
    +
    110 Post(hover ? on_enter_ : on_leave_);
    +
    111 }
    +
    112 hover_ = hover;
    +
    113 }
    +
    114
    +
    115 return ComponentBase::OnEvent(event);
    +
    116 }
    +
    117
    +
    118 Component component_;
    +
    119 Box box_;
    +
    120 bool hover_ = false;
    +
    121 std::function<void()> on_enter_;
    +
    122 std::function<void()> on_leave_;
    +
    123 };
    +
    124
    +
    125 return Make<Impl>(std::move(component), std::move(on_enter),
    +
    126 std::move(on_leave));
    +
    127}
    +
    +
    128
    +
    129/// @brief Wrap a component. Gives the ability to know if it is hovered by the
    +
    130/// mouse.
    +
    131/// @param hover The value to reflect whether the component is hovered or not.
    +
    132/// @ingroup component
    +
    133///
    +
    134/// ### Example
    +
    135///
    +
    136/// ```cpp
    +
    137/// bool hover = false;
    +
    138/// auto button = Button("exit", screen.ExitLoopClosure());
    +
    139/// button |= Hoverable(&hover);
    +
    140/// ```
    +
    + +
    142 return [hover](Component component) {
    +
    143 return Hoverable(std::move(component), hover);
    +
    144 };
    +
    145}
    +
    +
    146
    +
    147/// @brief Wrap a component. Gives the ability to know if it is hovered by the
    +
    148/// mouse.
    +
    149/// @param on_enter is called when the mouse hover the component.
    +
    150/// @param on_leave is called when the mouse leave the component.
    +
    151/// @ingroup component
    +
    152///
    +
    153/// ### Example
    +
    154///
    +
    155/// ```cpp
    +
    156/// auto button = Button("exit", screen.ExitLoopClosure());
    +
    157/// int on_enter_cnt = 0;
    +
    158/// int on_leave_cnt = 0;
    +
    159/// button |= Hoverable(
    +
    160/// [&]{ on_enter_cnt++; },
    +
    161/// [&]{ on_leave_cnt++; }
    +
    162/// );
    +
    163/// ```
    +
    164// NOLINTNEXTLINE
    +
    +
    165ComponentDecorator Hoverable(std::function<void()> on_enter,
    +
    166 // NOLINTNEXTLINE
    +
    167 std::function<void()> on_leave) {
    +
    168 return [on_enter, on_leave](Component component) {
    +
    169 return Hoverable(std::move(component), on_enter, on_leave);
    +
    170 };
    +
    171}
    +
    +
    172
    +
    173/// @brief Wrap a component. Gives the ability to know if it is hovered by the
    +
    174/// mouse.
    +
    175/// @param component the wrapped component.
    +
    176/// @param on_change is called when the mouse enter or leave the component.
    +
    177/// @ingroup component
    +
    178///
    +
    179/// ### Example
    +
    180///
    +
    181/// ```cpp
    +
    182/// auto button = Button("exit", screen.ExitLoopClosure());
    +
    183/// bool hovered = false;
    +
    184/// auto button_hoverable = Hoverable(button,
    +
    185/// [&](bool hover) { hovered = hover;});
    +
    186/// ```
    +
    187// NOLINTNEXTLINE
    +
    +
    188Component Hoverable(Component component, std::function<void(bool)> on_change) {
    +
    189 return Hoverable(
    +
    190 std::move(component), //
    +
    191 [on_change] { on_change(true); }, //
    +
    192 [on_change] { on_change(false); } //
    +
    193 );
    +
    194}
    +
    +
    195
    +
    196/// @brief Wrap a component. Gives the ability to know if it is hovered by the
    +
    197/// mouse.
    +
    198/// @param on_change is called when the mouse enter or leave the component.
    +
    199/// @ingroup component
    +
    200///
    +
    201/// ### Example
    +
    202///
    +
    203/// ```cpp
    +
    204/// auto button = Button("exit", screen.ExitLoopClosure());
    +
    205/// bool hovered = false;
    +
    206/// button |= Hoverable([&](bool hover) { hovered = hover;});
    +
    207/// ```
    +
    208// NOLINTNEXTLINE
    +
    +
    209ComponentDecorator Hoverable(std::function<void(bool)> on_change) {
    +
    210 return [on_change](Component component) {
    +
    211 return Hoverable(std::move(component), on_change);
    +
    212 };
    +
    213}
    +
    +
    214
    +
    215} // namespace ftxui
    + + + + + + +
    bool is_mouse() const
    Definition event.hpp:109
    + +
    struct Mouse mouse
    Definition event.hpp:144
    +
    static ScreenInteractive * Active()
    Return the currently active screen, or null if none.
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Hoverable(Component component, bool *hover)
    Wrap a component. Gives the ability to know if it is hovered by the mouse.
    Definition hoverable.cpp:43
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::function< Component(Component)> ComponentDecorator
    Definition component.hpp:32
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/html__like_8cpp.html b/html__like_8cpp.html new file mode 100644 index 000000000..f00453198 --- /dev/null +++ b/html__like_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: html_like.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    html_like.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 15 of file html_like.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/html__like_8cpp.js b/html__like_8cpp.js new file mode 100644 index 000000000..0b2b1cefc --- /dev/null +++ b/html__like_8cpp.js @@ -0,0 +1,4 @@ +var html__like_8cpp = +[ + [ "main", "html__like_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/html__like_8cpp_source.html b/html__like_8cpp_source.html new file mode 100644 index 000000000..b70a90b1f --- /dev/null +++ b/html__like_8cpp_source.html @@ -0,0 +1,277 @@ + + + + + + + + +FTXUI: html_like.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    html_like.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <ftxui/screen/screen.hpp> // for Screen
    +
    6#include <iostream> // for cout, ostream
    +
    7#include <string> // for allocator, operator<<, string
    +
    8#include <thread> // for sleep_for
    +
    9
    +
    10#include "ftxui/dom/elements.hpp" // for paragraph, text, operator|, Element, border, Fit, color, hflow, spinner, vbox, bold, dim, underlined
    +
    11#include "ftxui/dom/node.hpp" // for Render
    +
    12#include "ftxui/screen/box.hpp" // for ftxui
    +
    13#include "ftxui/screen/color.hpp" // for Color, Color::Red
    +
    14
    +
    +
    15int main() {
    +
    16 using namespace ftxui;
    +
    17 using namespace std::chrono_literals;
    +
    18
    +
    19 auto img1 = []() { return text("img") | border; };
    +
    20 auto img2 = []() { return vbox({text("big"), text("image")}) | border; };
    +
    21
    +
    22 std::string reset_position;
    +
    23 for (int i = 0;; ++i) {
    +
    24 auto document = //
    +
    25 hflow(
    +
    26 paragraph("Hello world! Here is an image:"), img1(),
    +
    27 paragraph(" Here is a text "), text("underlined ") | underlined,
    +
    28 paragraph(" Here is a text "), text("bold ") | bold,
    +
    29 paragraph("Hello world! Here is an image:"), img2(),
    +
    30 paragraph(
    +
    31 "Le Lorem Ipsum est simplement du faux texte employé dans la "
    +
    32 "composition et la mise en page avant impression. Le Lorem "
    +
    33 "Ipsum est le faux texte standard de l'imprimerie depuis les "
    +
    34 "années 1500, quand un imprimeur anonyme assembla ensemble "
    +
    35 "des morceaux de texte pour réaliser un livre spécimen de "
    +
    36 "polices de texte. Il n'a pas fait que survivre cinq siècles, "
    +
    37 "mais s'est aussi adapté à la bureautique informatique, sans "
    +
    38 "que son contenu n'en soit modifié. Il a été popularisé dans "
    +
    39 "les années 1960 grâce à la vente de feuilles Letraset "
    +
    40 "contenant des passages du Lorem Ipsum, et, plus récemment, "
    +
    41 "par son inclusion dans des applications de mise en page de "
    +
    42 "texte, comme Aldus PageMaker."),
    +
    43 paragraph(" Here is a text "), text("dim ") | dim,
    +
    44 paragraph("Hello world! Here is an image:"), img1(),
    +
    45 paragraph(" Here is a text "), text("red ") | color(Color::Red),
    +
    46 paragraph(" A spinner "), spinner(6, i / 10)) |
    +
    47 border;
    +
    48
    +
    49 auto screen = Screen::Create(Dimension::Fit(document));
    +
    50 Render(screen, document);
    +
    51 std::cout << reset_position;
    +
    52 screen.Print();
    +
    53 reset_position = screen.ResetPosition();
    +
    54
    +
    55 std::this_thread::sleep_for(0.01s);
    +
    56 }
    +
    57
    +
    58 return 0;
    +
    59}
    +
    + + + +
    int main()
    Definition html_like.cpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/hyperlink_8cpp.html b/hyperlink_8cpp.html new file mode 100644 index 000000000..95c7048ef --- /dev/null +++ b/hyperlink_8cpp.html @@ -0,0 +1,247 @@ + + + + + + + + +FTXUI: hyperlink.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    hyperlink.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Element hyperlink (std::string link, Element child)
     Make the rendered area clickable using a web browser. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
     
    Decorator hyperlink (std::string link)
     Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
     
    +

    Variable Documentation

    + +

    ◆ link_

    + +
    +
    + + + + +
    std::string link_
    +
    + +

    Definition at line 32 of file hyperlink.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/hyperlink_8cpp.js b/hyperlink_8cpp.js new file mode 100644 index 000000000..a0af4e9fc --- /dev/null +++ b/hyperlink_8cpp.js @@ -0,0 +1,6 @@ +var hyperlink_8cpp = +[ + [ "hyperlink", "hyperlink_8cpp.html#ga8bacc04e0cbde663ccc4a4891e8b50d5", null ], + [ "hyperlink", "hyperlink_8cpp.html#gad0eac58eac9e6cd9a04879b20f8e123b", null ], + [ "link_", "hyperlink_8cpp.html#a42544edd174cb953c823c19cdec44b86", null ] +]; \ No newline at end of file diff --git a/hyperlink_8cpp_source.html b/hyperlink_8cpp_source.html new file mode 100644 index 000000000..08c3a635f --- /dev/null +++ b/hyperlink_8cpp_source.html @@ -0,0 +1,298 @@ + + + + + + + + +FTXUI: hyperlink.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    hyperlink.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <cstdint> // for uint8_t
    +
    5#include <memory> // for make_shared
    +
    6#include <string> // for string
    +
    7#include <utility> // for move
    +
    8
    +
    9#include "ftxui/dom/elements.hpp" // for Element, Decorator, hyperlink
    +
    10#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    11#include "ftxui/screen/box.hpp" // for Box
    +
    12#include "ftxui/screen/screen.hpp" // for Screen, Pixel
    +
    13
    +
    14namespace ftxui {
    +
    15
    +
    16namespace {
    +
    17class Hyperlink : public NodeDecorator {
    +
    18 public:
    +
    19 Hyperlink(Element child, std::string link)
    +
    20 : NodeDecorator(std::move(child)), link_(std::move(link)) {}
    +
    21
    +
    22 void Render(Screen& screen) override {
    +
    23 const uint8_t hyperlink_id = screen.RegisterHyperlink(link_);
    +
    24 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    25 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    26 screen.PixelAt(x, y).hyperlink = hyperlink_id;
    +
    27 }
    +
    28 }
    + +
    30 }
    +
    31
    +
    32 std::string link_;
    +
    33};
    +
    34} // namespace
    +
    35
    +
    36/// @brief Make the rendered area clickable using a web browser.
    +
    37/// The link will be opened when the user clicks on it.
    +
    38/// This is supported only on a limited set of terminal emulators.
    +
    39/// List: https://github.com/Alhadis/OSC8-Adoption/
    +
    40/// @param link The link
    +
    41/// @param child The input element.
    +
    42/// @return The output element with the link.
    +
    43/// @ingroup dom
    +
    44///
    +
    45/// ### Example
    +
    46///
    +
    47/// ```cpp
    +
    48/// Element document =
    +
    49/// hyperlink("https://github.com/ArthurSonzogni/FTXUI", "link");
    +
    50/// ```
    +
    +
    51Element hyperlink(std::string link, Element child) {
    +
    52 return std::make_shared<Hyperlink>(std::move(child), std::move(link));
    +
    53}
    +
    +
    54
    +
    55/// @brief Decorate using a hyperlink.
    +
    56/// The link will be opened when the user clicks on it.
    +
    57/// This is supported only on a limited set of terminal emulators.
    +
    58/// List: https://github.com/Alhadis/OSC8-Adoption/
    +
    59/// @param link The link to redirect the users to.
    +
    60/// @return The Decorator applying the hyperlink.
    +
    61/// @ingroup dom
    +
    62///
    +
    63/// ### Example
    +
    64///
    +
    65/// ```cpp
    +
    66/// Element document =
    +
    67/// text("red") | hyperlink("https://github.com/Arthursonzogni/FTXUI");
    +
    68/// ```
    +
    69// NOLINTNEXTLINE
    +
    +
    70Decorator hyperlink(std::string link) {
    +
    71 return [link](Element child) { return hyperlink(link, std::move(child)); };
    +
    72}
    +
    +
    73
    +
    74} // namespace ftxui
    + + +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    Decorator hyperlink(std::string link)
    Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported onl...
    Definition hyperlink.cpp:70
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + +
    +
    + + + + + diff --git a/image_8cpp.html b/image_8cpp.html new file mode 100644 index 000000000..4fa40f94a --- /dev/null +++ b/image_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: image.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    image.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/image_8cpp_source.html b/image_8cpp_source.html new file mode 100644 index 000000000..fb968b4ef --- /dev/null +++ b/image_8cpp_source.html @@ -0,0 +1,296 @@ + + + + + + + + +FTXUI: image.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    image.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <sstream> // IWYU pragma: keep
    +
    5#include <string>
    +
    6#include <vector>
    +
    7
    + + +
    10
    +
    11namespace ftxui {
    +
    12
    +
    13namespace {
    +
    14Pixel& dev_null_pixel() {
    +
    15 static Pixel pixel;
    +
    16 return pixel;
    +
    17}
    +
    18} // namespace
    +
    19
    +
    +
    20Image::Image(int dimx, int dimy)
    +
    21 : stencil{0, dimx - 1, 0, dimy - 1},
    +
    22 dimx_(dimx),
    +
    23 dimy_(dimy),
    +
    24 pixels_(dimy, std::vector<Pixel>(dimx)) {}
    +
    +
    25
    +
    26/// @brief Access a character in a cell at a given position.
    +
    27/// @param x The cell position along the x-axis.
    +
    28/// @param y The cell position along the y-axis.
    +
    +
    29std::string& Image::at(int x, int y) {
    +
    30 return PixelAt(x, y).character;
    +
    31}
    +
    +
    32
    +
    33/// @brief Access a character in a cell at a given position.
    +
    34/// @param x The cell position along the x-axis.
    +
    35/// @param y The cell position along the y-axis.
    +
    +
    36const std::string& Image::at(int x, int y) const {
    +
    37 return PixelAt(x, y).character;
    +
    38}
    +
    +
    39
    +
    40/// @brief Access a cell (Pixel) at a given position.
    +
    41/// @param x The cell position along the x-axis.
    +
    42/// @param y The cell position along the y-axis.
    +
    +
    43Pixel& Image::PixelAt(int x, int y) {
    +
    44 return stencil.Contain(x, y) ? pixels_[y][x] : dev_null_pixel();
    +
    45}
    +
    +
    46
    +
    47/// @brief Access a cell (Pixel) at a given position.
    +
    48/// @param x The cell position along the x-axis.
    +
    49/// @param y The cell position along the y-axis.
    +
    +
    50const Pixel& Image::PixelAt(int x, int y) const {
    +
    51 return stencil.Contain(x, y) ? pixels_[y][x] : dev_null_pixel();
    +
    52}
    +
    +
    53
    +
    54/// @brief Clear all the pixel from the screen.
    +
    + +
    56 for (auto& line : pixels_) {
    +
    57 for (auto& cell : line) {
    +
    58 cell = Pixel();
    +
    59 }
    +
    60 }
    +
    61}
    +
    +
    62
    +
    63} // namespace ftxui
    +
    bool Contain(int x, int y) const
    Definition box.cpp:42
    +
    std::string character
    Definition pixel.hpp:45
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    std::string & at(int x, int y)
    Access a character in a cell at a given position.
    Definition image.cpp:29
    +
    Image()=delete
    +
    Box stencil
    Definition image.hpp:41
    +
    void Clear()
    Clear all the pixel from the screen.
    Definition image.cpp:55
    +
    std::vector< std::vector< Pixel > > pixels_
    Definition image.hpp:46
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/image_8cppm.html b/image_8cppm.html new file mode 100644 index 000000000..5a4fca1cb --- /dev/null +++ b/image_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: image.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    image.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/image_8cppm_source.html b/image_8cppm_source.html new file mode 100644 index 000000000..e43fc1a94 --- /dev/null +++ b/image_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: image.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    image.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen.image
    +
    2/// @brief Module file for the Image class of the Screen module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.screen.image;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::Image;
    +
    16}
    +
    A rectangular grid of Pixel.
    Definition image.hpp:17
    + +
    Module file for the Image class of the Screen module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/image_8hpp.html b/image_8hpp.html new file mode 100644 index 000000000..c958e4ee5 --- /dev/null +++ b/image_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: image.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    image.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    class  Image
     A rectangular grid of Pixel. More...
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/image_8hpp_source.html b/image_8hpp_source.html new file mode 100644 index 000000000..63a743fc3 --- /dev/null +++ b/image_8hpp_source.html @@ -0,0 +1,279 @@ + + + + + + + + +FTXUI: image.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    image.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_IMAGE_HPP
    +
    5#define FTXUI_SCREEN_IMAGE_HPP
    +
    6
    +
    7#include <string> // for string, basic_string, allocator
    +
    8#include <vector> // for vector
    +
    9
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief A rectangular grid of Pixel.
    +
    16/// @ingroup screen
    +
    +
    17class Image {
    +
    18 public:
    +
    19 // Constructors:
    +
    20 Image() = delete;
    +
    21 Image(int dimx, int dimy);
    +
    22
    +
    23 // Destructor:
    +
    24 virtual ~Image() = default;
    +
    25
    +
    26 // Access a character in the grid at a given position.
    +
    27 std::string& at(int x, int y);
    +
    28 const std::string& at(int x, int y) const;
    +
    29
    +
    30 // Access a cell (Pixel) in the grid at a given position.
    +
    31 Pixel& PixelAt(int x, int y);
    +
    32 const Pixel& PixelAt(int x, int y) const;
    +
    33
    +
    34 // Get screen dimensions.
    +
    35 int dimx() const { return dimx_; }
    +
    36 int dimy() const { return dimy_; }
    +
    37
    +
    38 // Fill the image with space and default style
    +
    39 void Clear();
    +
    40
    + +
    42
    +
    43 protected:
    +
    44 int dimx_;
    +
    45 int dimy_;
    +
    46 std::vector<std::vector<Pixel>> pixels_;
    +
    47};
    +
    +
    48
    +
    49} // namespace ftxui
    +
    50
    +
    51#endif // FTXUI_SCREEN_IMAGE_HPP
    + +
    int dimy() const
    Definition image.hpp:36
    + +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    std::string & at(int x, int y)
    Access a character in a cell at a given position.
    Definition image.cpp:29
    +
    Image()=delete
    +
    Box stencil
    Definition image.hpp:41
    + +
    void Clear()
    Clear all the pixel from the screen.
    Definition image.cpp:55
    +
    int dimx() const
    Definition image.hpp:35
    +
    std::vector< std::vector< Pixel > > pixels_
    Definition image.hpp:46
    +
    virtual ~Image()=default
    +
    A rectangular grid of Pixel.
    Definition image.hpp:17
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/index.html b/index.html new file mode 100644 index 000000000..f5a8f38d7 --- /dev/null +++ b/index.html @@ -0,0 +1,291 @@ + + + + + + + + +FTXUI: Introduction + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Introduction
    +
    +
    +

    Table of Contents

    + +
    +

    Demo image

    +

    FTXUI is simple cross-platform C++ library for terminal based user interfaces!

    +

    +Feature

    +
      +
    • Functional style. Inspired by 1 and React
    • +
    • No dependencies
    • +
    • Cross platform.
    • +
    • Simple and elegant syntax (in my opinion)
    • +
    • Keyboard & mouse navigation.
    • +
    • Support for UTF8 and fullwidth chars (→ 测试)
    • +
    • Support for animations. Demo 1, Demo 2
    • +
    • Support for drawing. Demo
    • +
    • Learn by examples, and tutorials
    • +
    • Multiple build system and packages:
    • +
    • Good practices: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc...
    • +
    +

    +Example

    +
    + +
    #include <iostream>
    +
    +
    int main() {
    +
    using namespace ftxui;
    +
    +
    // Create a simple document with three text elements.
    +
    Element document = hbox({
    +
    text("left") | border,
    +
    text("middle") | border | flex,
    +
    text("right") | border,
    +
    });
    +
    +
    // Create a screen with full width and height fitting the document.
    +
    auto screen = Screen::Create(
    +
    Dimension::Full(), // Width
    +
    Dimension::Fit(document) // Height
    +
    );
    +
    +
    // Render the document onto the screen.
    +
    Render(screen, document);
    +
    +
    // Print the screen to the console.
    +
    screen.Print();
    +
    }
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + +

    Expected output:

    +
    ┌────┐┌────────────────────────────────────┐┌─────┐
    +
    │left││middle ││right│
    +
    └────┘└────────────────────────────────────┘└─────┘
    +

    +Supported Platforms

    +
      +
    • Linux
    • +
    • MacOS
    • +
    • Windows
    • +
    • WebAssembly
    • +
    +
    + + + + +
    Next
    Getting Started
    +
    + +
    +
    + + + + + diff --git a/index.js b/index.js new file mode 100644 index 000000000..b25d83f17 --- /dev/null +++ b/index.js @@ -0,0 +1,6 @@ +var index = +[ + [ "Feature", "index.html#feature", null ], + [ "Example", "index.html#example", null ], + [ "Supported Platforms", "index.html#supported-platforms", null ] +]; \ No newline at end of file diff --git a/inherit_graph_0.map b/inherit_graph_0.map new file mode 100644 index 000000000..cd28c1461 --- /dev/null +++ b/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_0.md5 b/inherit_graph_0.md5 new file mode 100644 index 000000000..e465a6ae5 --- /dev/null +++ b/inherit_graph_0.md5 @@ -0,0 +1 @@ +4435ee1ac918b3aab7fd083634e537f5 \ No newline at end of file diff --git a/inherit_graph_0.png b/inherit_graph_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f1878684b2994bd5cb5d02bc67c8455d27ed0f51 GIT binary patch literal 2476 zcmV;d2~+loP)Ugi~AOr*d`4~T9sD8B_bsRK?I_fA{AML^L}{3eJrI&wJyAw zUqW){oHH~3nR7bry#gkEAJD>J{1mKc z866H*w2Tf1D_T1-8jX<2WT>jDa@d&5moLZd+qWGy-v2v)P0@Cg#MRf=BO@aN4Gj$r z8}rGNCnzf`bJ%!}=5Nc5LyPvxl`D|RWO(r4f!%%OayiC~8RJMfR>a1};@-V`4j;Fw zstN}V9KgJJ^DuMfOsrhF5|17|a`-&o!)P>O*REX%4GqPN88fhM-8vWy2D`>+ZI6CO zZtTIKMZ0Iu9@Ny-;PBzYcK01KW(+(%Jsl~>3cX&B^73+rj#*Gp0Dpgfq^GANI5-$9 zR;++nEXKNZ>u~MbHHXgC76yX>{{H?@DwUWwZyw}wIVvkF!SlRbr(|n;^gD864>q6E z+DmS3E=o&Fq0{Lgl}b@jQGvdF`wD)!T#nGtP~_y~K&R8e)6)}Mwrqj7w>N-)zk)(S zLJ$%XBE$y=2jltk=Xm<`DZIVCk(ii>f`S4hCnux2x*8D?5r~Y86z15xc{8+HEjW(D zph1HW6BC0eQ>Fj_wr<^u*RNk=_wL;|apDAge0-3coD2ZCcI_IjU%!s3swxBp1!2{y zRd9B81^_fRHsZj61IWzGgqN2WqN1WK)*TZQgApS};Qsyl;JE+JfE6oN;M1p1001IF zYHBJ}DiuT`5vEU{j+mGjn|t}ac)47T*|TTk>C>ms>-AW(W(^V&5-@7iDBQh!SI{wc z?pzEQFaXif(I_e^f~%`5deOdp`{>rKTQqUvMDq3ZrJ$f7x^m?TrKF^gi;D|oWn~F{o;`a;YPFhF zDi!VDzn|RP+(@I*5E0SKmoG^y7SqO!8%eEJlU}bUBBI2^L>fADC>=k3oNnB>K{A<) z=Fgumj47APY2?U}bm77UI(FJOpd7dYCcX!&cV+W~JD$?n61b~!ErPbWk)z!pt9GyRZUg+DS zM-NI!NT3@xZctcQ7)c}&s;jHBxko>uudQ6Sm!n6I(&EL7Fa46DHJi=UuU|j<`0*nV z5#{CO(Xe5|sHv&RVj*#HaYFm;+qXjUTiY0(=P5ouUTELBbB6#>NlA%d3l9&cgoFf} zx)Ku;DJCXHXpbE`meSJFgtpOWBxh%5Avr`uCXBo z=LFpu85snCii(PCYN)8FAdchc;lqc5O{G$ilamvfOeU+fw(i;D|#kk93TqfNXi%$j@~&9s5J^qeqW!RYz-I!6uUl z-MV!X+5rIp!gc4)oiTd!XyoPPwW|L|*JE$4?ZF{Mt57JAl#~RCL?YO+!T;@t#Lv$UuCA_7sZ`*3zExd4d-lZFuU}y{o8ju}3IM3AtQ34d z8t>%vU+Vn){LrIE4=9yN`1|`?jHl6PU^bgEdGchz_U#&)+s$KtFGuawXK$|U;isP- z zc)*5hvUbOBQ7rPXQ%lt5{U#eX3T(CEQVMtMsaa5{QUe-Utcf8L`Ftp_3G8Q zdi5&&{r!=goQ%ttFJs}tg-A(BLI3{!QCL`r=;&y4>eLAw$KmA3lbAbqE>4{~h0mWq zBQVhNRpSjCHo(cr2~kl|aB*?LfB^$gR8)j<rBe9#_`uWC z6R%#qLQ+x^MvWR}bB`RM@0Viljo9PIk8R$FD{|`g1=>aRaF&bW@cK9pO=?M27|%E_UhFu(r7efGMT8Xtjyvji-@SS zw3M>4vaIaI#l@7JolT!UeX?3dO-&8y^?ItPsGz#KI#R3ER9|0j5!2AnK+m2%qeqV( z2{)wQQeR(BFJ8Q$moHyZLqmgwujSgm7vFMkzU9l8FQn7yNUPP7(P*^t^E^+dPoJjh z>T1&IboAlF2dkKtd-SvVTIRaF{L-ffjE+Nd(RKuE742X1?g4|*UL5uxF-FHACnx7m zOZaKnNz3SPu%cyjI9Sm#IvlKM866H*w2Tgi&8G*kv9Z5X2ZPaWtcsS1Gyo$0fEEVB q3XbDS{dplK literal 0 HcmV?d00001 diff --git a/inherit_graph_1.map b/inherit_graph_1.map new file mode 100644 index 000000000..36295bb24 --- /dev/null +++ b/inherit_graph_1.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5 new file mode 100644 index 000000000..3f90fdd61 --- /dev/null +++ b/inherit_graph_1.md5 @@ -0,0 +1 @@ +0cdfa615b50845127a49e6654d0b8ede \ No newline at end of file diff --git a/inherit_graph_1.png b/inherit_graph_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f5b6caf225b601d6dde20f09bbc85e4ed9e96308 GIT binary patch literal 2671 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 + + diff --git a/inherit_graph_10.md5 b/inherit_graph_10.md5 new file mode 100644 index 000000000..86c6718bf --- /dev/null +++ b/inherit_graph_10.md5 @@ -0,0 +1 @@ +1dc11581f1d425c42bb41c33e9cab80f \ No newline at end of file diff --git a/inherit_graph_10.png b/inherit_graph_10.png new file mode 100644 index 0000000000000000000000000000000000000000..3f87fc1eed8a8d5c3a9e6580aa1b5b9162fc8e78 GIT binary patch literal 2143 zcmV-l2%z_gP)zRNorLpBb-}qoVd<@)F}6Q%AH(`YYs@!qCi642ckJ zydo$SSf&(KmV_121@lT0cFu=POA1FAl+@H2P)W?ZWKyY^& z??D_6=N}G-^RLa5#j=e#3ERkWF#CM z98g(V2`=}49!yM3#OUZK)1I1|LPkagWHK4}d_FE+x&#{=8)m$;v=lF1ynsrjg0HVH zl9H03r>CbeUS3`frBaEourP#&hcBq-&Ye4GX=%az`}bjFWCQ@1n3zC%dOBKKT3~N) zkJQvuSXfv90Eh^=xw)vSsse|@fxo{$A|oRK0R8>_h=_>5jT<-M<>dtc$j{G5O-&67 z3JRd3ql2iZDD2y}53gUpX67Ff5&}z0OPoG^8oj-}Fg7-ZSS&_hU?Ajjxt5NMj0|*i zbl~RAno0}J1=XE7IIyx*SCWcl@ zUtb>qpvub1CF6ubAz4^hP*zqJRa8_^aBwgQg+gZh%9Sf*Yimmd1qD=ARz`k)eiRlK z#*C+>r4gUcrw0!nP-$r?g@=bzd3iaLySTWR=H})oK0cnjyu7Htzh9#^kH@3SmoHOU zSs5Kaew>_~oM?J_nuv(v;^N58&W@fweM(QBJRut!8#;gfJac?@b~f4C+LBVKq^71O zGBPrvckkY5%wHmrXw7+SY>c>EE|rv&EUTlft&JQV9VsOxg``p`$>nk)BJ%e3rrg|I zCg*Zmms{tR5)%_c(b3Ui>u#9p>S_W&y}i9l#tDT&N=;2=+F!nWApkTqG(-x8g7ozC zm_;HYQYw|Cudh!%Jv}r$JWRT}x>Q|Vt&wwLVuH#2=+Pqz2ne9Sz(5)wAJ?jV=FAzU zJv}{5d_JE_N=j&OaFDoME@J>9qN=JY($&=^rBccC1qTOHU|=8#1OmEy_pa9bKY#wb z;JmG@tSB=xb6FikL|$HAR9IN3as01_S&7!A)_FB7W|%cUl6LOg2>?(kmDsy??~<|3 z&d$tlb8~a%xS^pT%+Ai@?Afy#@f;2Z9UUFu@pvF2`1trNSQ`LRQc_@JV}s`AX6WeX zXw^P&-~jVmUtb>{9v=Ac;RCF!tia`RArgt0@q-5sVs35@U0q$wW9aeY$FQ=pf=DDn zQc}`_^Izz;uT(0rYuB!2b*zMsA3v^0>tgFX{|H_SYc`CVn;VRcjZsxq1))&5WGsiH z^>G{kU}9nd4u^va7cRii&`@K{)zuY4Lqkxj)ljKaFf%h-Fh^Qi8j6aFker;1d-v{X z)lw>zT5VHPQ<$2XVs35@TMX z#v~F6YHDhh&Ee$a1Q!< z-rkPJ#zrOwpU+2ibv5eh>JSwb#l+21SXjuMth%~7G&MEh@ZrO7a&m$|Ai%9#x0u+h ztSmS?J3}B4003UTe2M)0e7t(~3YnRiIC=6UbD|6k3~=${MO?df4N|F;$8ufS(tRLZMi4otD$O>8y4SGtceYx5>=RjP~r=Ln4ugcJJOzM~@z*o}M1& z*;-s&%*0PkO%VXEAjb! z^6>B=cX#&%bE{M;^7Zwl(9lqtnVDh6gM)*K&*zh;rzh>$v4gU+vl%V5wY6kzZB34j zj$~(NM*@L>WHK2M5q0L_eO4fO$Y}lsvS7v8tskOD08X6jC zcz9T2tf{Gq1_lP0wpy(wsZ>gnlam^8eSLk@)YL?yqoZ2+)oL|$cXv~3Yb(vo%`KXH zVq$`%QYj4%4r+{#jg65^CZq4)ziZ{5nVF&Y@845fTN};J&NBVo-QCpC(4Y}JIyy>H zsg&7t&oebOMKYO;>g(%Cp-^bmm_M0I>G=BfE4_XDmU#h?%jNX#+qV^IU1%*9Tj%B2 z6vMDA&F@$Lc4jfduwScLR>it~OJZ4`yu3VETU&3nj5Wa;W)s=JfB#lXSTpP+iDgx= zhGAJ1tYKJI1#1|VRk7%%cd`Gau>9R<8HR}J@be#UEPpxw^#ThE3kwSi3(FtRe*hKC VT1< + + diff --git a/inherit_graph_11.md5 b/inherit_graph_11.md5 new file mode 100644 index 000000000..5f3f7aa7d --- /dev/null +++ b/inherit_graph_11.md5 @@ -0,0 +1 @@ +1fb22836cd55800cc14ab99e29faabd5 \ No newline at end of file diff --git a/inherit_graph_11.png b/inherit_graph_11.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7cd9eb4d66fc09a607fb4641665723ffc6bdca GIT binary patch literal 830 zcmV-E1Ht@>P)^@xU}$;n8iQWzQZv>FEgoKtzxv39>AMF$SB>2B*`hy5?tkm&=9e>1mvw zpCcBFVR3O0larHm?W686uCA^S4u{Kvc*9^Y0Qff`gTWwHS65Le6yWuGkxVABv9VEc z-Ou#VXcT_GAIrMz3!Qz*XscQnM_7ib9s3Q zK@c!DHdd^SkB=jt&m)yeeOW&;GE%So66y}aY&OGSFhG`NRgKYTL_VL#^Ye4D_VDmf z?0r=)ike-905k}rqoV^}uNP};YdAPKDCq@*K^z?&p|7tGCX=aTKCG{=qrbl&CX=ab z&06(Zp-HqWD=QF15e|m~ot>TN>gqx|orc9?!RF>BbUGb&c6MO5+u`&1P$(4e`ud8! zy}gPnkskH_is^px)J@5}nxY?cy<1YKNQP%f7%>BV9(y1u@yS|5o- z==S!uW{)2YP)%PtQ50b|n^pTdoel#70~LFtqoXzHEf&kyOnyMy{F}4`JPZXq3 + + diff --git a/inherit_graph_12.md5 b/inherit_graph_12.md5 new file mode 100644 index 000000000..43db80328 --- /dev/null +++ b/inherit_graph_12.md5 @@ -0,0 +1 @@ +a240cf39d68380b0d161fb8e742cd024 \ No newline at end of file diff --git a/inherit_graph_12.png b/inherit_graph_12.png new file mode 100644 index 0000000000000000000000000000000000000000..97f05eeda8289067a81c7b447e4c830afb62443d GIT binary patch literal 1123 zcmV-p1f2VcP)D2#oC)# zp*8Yyv2ulL7n-tK=X15^_xtwz zzI|KI?|GgcfP;gBgX8}S^Sq!|t5X?<`SLr=d^U*a+wk!4$>SRTxrkwyFAT%{%bu-I z%|8If9~b-r|H;tM(1*ME%;HDkzi(K20Y%c zwV>DQadUG603afm&1P6E7BCEhii(O?ubXe_)oL~5ayd3PH?h9Hj<&WozjLV7YA6&6 zY;A49YPBLMDGA-(-4KaH=?yueb>UrVgE!Z z6ax6M6#M)8QC(e)%F0TZOePqO#(?L2OK-JWp;Rgn9UYC<)>dR?W%-@MYPCY8Qb8aP zps}$L7Z(>$C=>vIy1F_P6cj)vlfh&%p`@hbT|UD`qtSfTYPA$B3kwSbfE*4-K+XC2 zIq`TrT3K1~)hreZ@%emmxm-j2$h~d+M8$zKF7K&81{Fb?)F3rbyy-9eAt*@`s>FH_E`n9z+Iy*aiQrq6%rh|infSUXJdzzo0C%4;8 zL_~JGo%Z+lL-H9cftF@OAMN>kKC-j31NNh$qL7)H`C{*-$NJawGMUV;mXnk7s)ono zp}4r%cPx=eLiQOhf6U9PzXdLEmf-?t87^>^;R0tFE^wCN0%w_k_u+xQtKbL^zrcy; p8-9E-#1SU{Wy!(8!NKuK_zvcpn#6~}5a|E_002ovPDHLkV1m<#E?)ou literal 0 HcmV?d00001 diff --git a/inherit_graph_13.map b/inherit_graph_13.map new file mode 100644 index 000000000..1bfd137a0 --- /dev/null +++ b/inherit_graph_13.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5 new file mode 100644 index 000000000..b49cfaa7f --- /dev/null +++ b/inherit_graph_13.md5 @@ -0,0 +1 @@ +a28ec29e0629ac7b75953a397ef4f71e \ No newline at end of file diff --git a/inherit_graph_13.png b/inherit_graph_13.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7ea5210c3261b717e23ca49cd9b88ebd8b31e1 GIT binary patch literal 2060 zcmV+n2=n)eP)KtRtHU6&t>6|kw3t(YkVPRomVVQeyz7NF2#MpB)XH&hWScvZtg#>hUND~B9Z(w&i$8lu*`8-!>||y zYZw-zU=71!6s%!bjAF`DlCca744|N(08gJj#qjVjTwGib6%~b*D_71`i#dlxBEja( zn-LKa!Nd+7I)vKVS^$8lsVVI2><}FtjnL50*^+4#Gx879(a`}fFE8A@c@tq_VTg~9 zhfpZQ!Gi};Qc^M#E#@Rjr4kyAMlYsTt6^(v3#n9!l#~<*g+fF`L_j8!&5}yvn2~=N zu~>|yOP4|>lYz_qzX#*v<1sim2ml}=T)K1#a=9EF4hInt5fF>TOl?d|48p>~(Ae0B z7cXAG(a{l7sT3U@9mvkk#?a6Zwr}5#$jC^&IqTM~gHowPLqh{xTwIWvnhIN6TZ4OU z*suXAl?wIs^$-XIIC}Ib9335*nv#+d+`D%V0|NsH3=BkKVj_4v-Y@4LKYko-ZEeWR z%*2%|SK#jMj_mAg0D!%{Jwif4005z(p^(evC@U*NSXdYU;K-39sIIOCm&=8dlM}>Z zF@l1E7)>=bHOR@y!Ta~`;qC2>sRdB%y2jolU(7e|KD-Q7(9NG6m0W!>Jr zduhp%C3OAzb-H@>DmgkjQc_Y9lNX6ZWNmFt=gys@2M->QzrR0ucz94?U?APObBFTs z^2prWoGL3T_2$f@ooBqE~l@Nh~@Ok}R1 z)9J{`$%!spxWL5JYBebo3X;p^bpHH#;`8}bRaHeqL>i5TEG#VOMp`AN-(&x{gr@Vhssg%TGF%c1|R4THxw4~wTVJ5HB>4=C7(rhSG8D`o`l7)o@ z06?qN!pX_$r#0>E?cj2`Sg~RS6I-=v6~@QM(b3TXA0Hn8fKVu8@(UL(goT9#?CtIK zVp^?M@7jKTe#~bxGczn-z8tNst+2PZH>jtZn;Vn2v9V#kOK)#4#>U2Q;J^XBejE-5 zZEbCEc6R>D`CpgCpW*NCkNEg_OioUstE&sgjvYg8ZY~lM5}5mylaqt?_IBuWI%qT+ z2m}HEfJh|5zJ2@P?d^?#fB*yq1!3#ftpI@5)>eZwPlst6#?#XiR#sM!%jFP>L_e)r zuwVhk$H$@5>6o>)zrUZ!eTBo(e|Y}=_-A}?Agxx51q&AZ?VexZ^ZDR#I7mrJfw{T4 zUe3eA!yt`Q<-Xm+0KlhDpOBuOj)a5+=yW=)UcDO8(b14dB(Su!#QppCQC(fl)So$X z2B%J)f?BP{<;$0mnVE^k#zuoRPlsurlIG2uhqSaboH%g;j~_qQ%RPDW1Qit(aCLQs zv$HeKo;}Otva+(^=H@nS*B2HRGN!4jszO~|9oDQ_Gwq(PuC8!*cSmh)ErNrC5fT!D zz`#H>G&F$E=NqJr&*!7BukV+2DwPV>*46-ko}M1`_xB?$Ee-3}uZN$XACyWZQ~Uh+ zbI4>e@OV7<`1n8~k)Wle1zN3kMl}D5895~-Cnv+y)D%%sQ7|_*hn<}ry1KgH>+6e) z7cYXxeh$o0}Wl-Q6J&2+-2ff~>48EL*k= z0H)Q`#KZ)}#l_gQYZvnJ@~~*pB6N0kB04%6CMG5ZX^V`E#Qy#Jarf?BczJm-r=;TI zVyILq5D~h&yD>UCilU+-0AGx{cI{dSg+d60LUea`!_(6fqobn$0D(Y&^z?M>-n|*>RX57X*7F)=|3g+gyb zN%Z9;SXWm^gM))c&wumg4OLcFG8@r`h6Yk76r@lnsJy(Knwy({&_zVl($YdzRaK&huZUr4x(pai&`U0000 + + + + diff --git a/inherit_graph_14.md5 b/inherit_graph_14.md5 new file mode 100644 index 000000000..35ce6960a --- /dev/null +++ b/inherit_graph_14.md5 @@ -0,0 +1 @@ +c88db8570e1dbc1efadc332689b140fb \ No newline at end of file diff --git a/inherit_graph_14.png b/inherit_graph_14.png new file mode 100644 index 0000000000000000000000000000000000000000..34a4c00b22c011793864b2cdf59bbe7fea4f9ad9 GIT binary patch literal 3464 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

    {a*M4p^X0vN*@YuEvAEGjw;gTVj` zJq>E~h@2Q;uPVs8IkLAgn@XiVHa0bF8ymaO)YODo%(}VR!GEu1W=7Q1)bv|#uaS?B zBC!1V)z#$p?;$@H7fVIdE$@4KzW~t1hIzaiB?(S8CKX_P4dTf3JfD1SDi-SIh^}-l$rTJ33L&ZgY^;}y>0SDf0l;*`t>Rh zdgkWlK!98twmOA?-eCY#4}m~XuSjwKR_i$(ZMS{u|9L*!-=;J(Cnu+bK*$l*!6-kV zFE2yYuUr`xi~M6?Q;PDqV_|U?NSzm7b#-hZhHFS8M4M+VZH2YQ~FZCHvke-taX<4+K&w4V?u z+)A5W{Y7BF`ZH$F>B^?T)#%9Jxa_m+?CeZTOf5r0yZ{t``@geu0gjlHNP!BKfUG5& zu7~=jqEB_JRApP4Zs=TI^F8@0MxcCqd%F#2!-GRZ(H%+rL?C<>E~OBpj(jbd^Nq>= z$^rZGwR(RiURG0!dHwn|j_BlQ{rxt5cq5fH&iT!f@c+gAK4p$VqldCTdC#5WSLKXz zmT_Wibf`$Pog?{zf>y*Y#D&b`|GW2iEOH9iF#PW*)IL7p2^STai8=TTY^^}oOe~FY IhECD{0gv;^lmGw# literal 0 HcmV?d00001 diff --git a/inherit_graph_15.map b/inherit_graph_15.map new file mode 100644 index 000000000..5ad07d584 --- /dev/null +++ b/inherit_graph_15.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_15.md5 b/inherit_graph_15.md5 new file mode 100644 index 000000000..127b20de0 --- /dev/null +++ b/inherit_graph_15.md5 @@ -0,0 +1 @@ +48fc1e6d7262d0be72e08601acaf863d \ No newline at end of file diff --git a/inherit_graph_15.png b/inherit_graph_15.png new file mode 100644 index 0000000000000000000000000000000000000000..96184f979c8db2121f73fb23a403953838864f8b GIT binary patch literal 2109 zcmV-D2*US?P)0YsyK@l9hzAu&9-5l|lpUO<9@bGTRqL~as-iiwCIAR!TG$9ZzaS}J9O zvLDv>)HTMKWBzM(tU1SQ0Tvb(78Vv37J&1!K_-)#aX6eE%OQs4_rv9K-zyY~|NUq) z{5goj;q2gWIDh{+SuB4NwOU;U;P8(&ts?l2LZSHWf>{163WWknrBchzT?Q>I|1#Jj zU}1}Zg)M@4DK0LCkB<+I9zD9;Qhpmc8$%YLzP=u5X=x}dEQC-fTy8nPjU_9B@$qpK z6&0bOp#f71_(L3+cr%$nG&mQ>s`7KJ{^z=0L?%k`?Z(v}6nwpwL&9NAkqzL-@`rzf|g^e3G zA|@sVW@cvS@9#%)ax#*WlMxUQuoTniM5$E5&CN~2*52L@6B838BqU&JY6`b+--er; z8#+5X^?s{IMnf!NGw90s+ZnGODYqBehyR?>JptzkZ!!V`K0B{GBhlF?|32J+pUm zx!UR0u3ZZNIDY&%^7HfI@9&R;2M;1UJDYhE0O0xa=ZJ}kfw8eMjvYIOPoF-)*Vh*S zFf=p-Pft%+T3X`d$&*;UdNt&7IRGFiC^#>R+ej*||apDBU$H!~rO-xKA02CG$MlCHZ`aB{n^j!&lMy*y;U0od=IB&&tjOE zm_T`XIZ8@O(A3m~kdTliTXhy)1a@|ISi5#Ds;jFZkx1r@S+{N-W@l$HIXTH}4`04~ zVSL}w)gS>tetteKT)2St_IBL5bqkj+UBatZuV7$cpmUs=nHfAhJOBU^i3GN`wg?Um z#_rv_ArJ__;c$?ip03q&+1lFb)FG8hA(cw;`SWMoxpN0su3SNEY%C5PI)w1>aCmxp z&bclA6J};+P*qihl9CcsR#w8*)fEvD5x9T7APnvV0?Lbd9b#&*7?T$$cq;*@c8j#7#SJC$;k=v@$u;D>cZIA z7yv*Z5MXq4^p`oTtgH|f6@|>qOaOpbEXI~CThQFx45?HK4-XHxySt;UtqlT!U|vn% zPaaK8O=xLpfti^ZWHK4fojW)0SbdSp*XGP~_Uu_$Sy|!Hqet-e z_C{G*86qPiapT4f2!%rQ_xB?rA_4{m1`E1>u~>}r=g%WIHy0x#BMTb)D=uEVhz%Py zELlFi`6oxj@6621Pwr|lR8+I5v?L1qW=Q;&oXFX`2%pd n-1p0^frW*Ig@uLX-^u?0ln9XN)hUpc00000NkvXXu0mjf7~$ki literal 0 HcmV?d00001 diff --git a/inherit_graph_16.map b/inherit_graph_16.map new file mode 100644 index 000000000..59bfa10df --- /dev/null +++ b/inherit_graph_16.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_16.md5 b/inherit_graph_16.md5 new file mode 100644 index 000000000..dddd20227 --- /dev/null +++ b/inherit_graph_16.md5 @@ -0,0 +1 @@ +633ea83b34800cd28bd24a91ad5406ba \ No newline at end of file diff --git a/inherit_graph_16.png b/inherit_graph_16.png new file mode 100644 index 0000000000000000000000000000000000000000..a877835fc354d60ff16f4e13e154afd5f90fbb4a GIT binary patch literal 2367 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_17.map b/inherit_graph_17.map new file mode 100644 index 000000000..35cf3509b --- /dev/null +++ b/inherit_graph_17.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_17.md5 b/inherit_graph_17.md5 new file mode 100644 index 000000000..8788d8924 --- /dev/null +++ b/inherit_graph_17.md5 @@ -0,0 +1 @@ +6e5fd3462277b12bb32baabce9801615 \ No newline at end of file diff --git a/inherit_graph_17.png b/inherit_graph_17.png new file mode 100644 index 0000000000000000000000000000000000000000..6306ac9ead68caf86b4c835dbb86137932e2b9fc GIT binary patch literal 3340 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 + + diff --git a/inherit_graph_18.md5 b/inherit_graph_18.md5 new file mode 100644 index 000000000..965e183eb --- /dev/null +++ b/inherit_graph_18.md5 @@ -0,0 +1 @@ +1ab5a803c7370e815f7ba96768e9992a \ No newline at end of file diff --git a/inherit_graph_18.png b/inherit_graph_18.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4a947d47d2debcae46605e1c5d8738ad99da75 GIT binary patch literal 1466 zcmV;r1x5OaP)>EYtZQkjkM@o@+6*W_4;X%pCNwgnfYGCMY#4Y%7J5|@`ii^@DvO^ZTQ)1na7 zv?ydzO)D-grlzK5F(HMz# z3&x+WZ-R)J24FB4Fqurs*laeFk&(fP6DM#woxrc{Co?mX%*;&S*PXp@-#$7!J85fc zBOxIHtJO+ZR~L8g+~LQMALQoda^%R7pk9w3Kjz7kCkzb@k)EDTNl6J>tyZa-ot=%x zhg%$@~3&v258g(cRsx)Vy%vf|Bp;?G=C+7#I*9 zk4LOpwMzW_`BTXc4-YHXllArW^$A&)#mkp3m3)1Dy@-j45q`ga-o55RRaKQRo6Xfz zJ&M@&I30t7g8-~pv0}zKn>TM(uGg+z%gU82F&GR%F~8prfY<9K5D0MY+_|6{k|go& z-8&K!69Gs{N>Xy`)~y4;@As3El7huz!DuwHYu7F^GBP-H=+Lyf-oJm3EX!=)zFmp! z+_{s{(NVg(x=2k;jaaX6Sy0oSK7C4TY%E*1Zk=(CBuTT5ClePJha^c4I|G zwr!hJjmpYOu3x`SM@I+u@89R<&6{*~cB0W}g674?$1^%Q%JA^8@*ev3?VFN|WUp{p zuyS|>9_xE}@z2?n-If%5k zw~K~`2J!6KGtt!4BtCxpIPE;Q+buqS{;Z6hPN(?#^{X--8X6MMpFa;;qL3NCh!hqUE~XBZFbFYC2+;`SE`b)6X^>^vx6~R`R8&+{R2GVV07x-a U`|e8N$^ZZW07*qoM6N<$f-Y0hR{#J2 literal 0 HcmV?d00001 diff --git a/inherit_graph_19.map b/inherit_graph_19.map new file mode 100644 index 000000000..280421428 --- /dev/null +++ b/inherit_graph_19.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_19.md5 b/inherit_graph_19.md5 new file mode 100644 index 000000000..662071af7 --- /dev/null +++ b/inherit_graph_19.md5 @@ -0,0 +1 @@ +a8224a5cdbc07bcdf21e2afdd3d2a6df \ No newline at end of file diff --git a/inherit_graph_19.png b/inherit_graph_19.png new file mode 100644 index 0000000000000000000000000000000000000000..29ace4807badb3d6173250ddc26cc9092266a0fd GIT binary patch literal 1973 zcmV;m2TJ&fP)*qa}%zo0hYrM5C}$GAvE(d5j{W z+Ejc|3Sni0R3=F;suxN_!?aAa5+bx08%-m&Xdcqav=lRc6-qG|n&~!oJukxZwC10! zpUXd-&#QB;`@XO9y{>)F&ADL!4-XFy4-XH|>__l>KrWYy1p-0Tbco@Zc`yv~k5Z}B z{TdVgK1m=DLU7VQ)Ej+Uv z-ZVT;!<&Z3Y37`130maS5gZ(h z^z?MBTD8jI9BFB3NJ>gVTwEL%lgs50iA1iD>@-ud)4Y875`KPu$j!|~R#p}wA|g;y zQUa+|iZ^fGOvNK+1?}za2n`K|N~OZyy?Y^-%hA`@2boOf)GooYEP8r+Y+~!zub(ld znUb9b0K{T3qNAg^dxb)QEnBwW(4j-n>-7MBzAd|V@5YN4FTk=ava+(Ub?a6X7Z*dV zRzn~VATBNrhYug-^2p_K?Ao;pEX$&~xfv^0u0&2w4*dN5001K+Be-(q3Z6W90Cz?Kym=GB!NDjhDndp^2IAx65g#8vXEgwUq*kk`x3`zl)6*$1Fpw%LDyY1? zoc#U$>BNZ>Tn?E`MqXZCl$)DN4<0IoVd&YjXIxCJ zR+CUDB%{&DtvP!1C^tSlJWL{yh$<^9si&uh7>1!&uU>KEckbNbOyfxYz`#JNsi`58 z$wc1X-gM!@1yU#!L`0O7ltkywo#WQZWHQRh$>Hule*DNitD&KR0MLgIAI9vFSS+Ue z{QOC4A|eV852w=7Qk(U^n#R$-ji=R7#xspePfrGe0RXUI!2&K878b@`zkBx%48vf< zh7DXSGBOetiv=AW9b9bV#*N(d{Q2_{78ZuKwl=i4x5LB318df-;l?8(BAm(}6B7fq zS`D2}2Z=<2Ezn zH93N#eH%~fzs04ddHnb>JUu-jl}fpoQ277PC?6jmSS%I{3=D9wzP>(gY?R*%H5!fZ z@$rGTw>O4{hA=cVH0E4K@{gKEtyUv8HWpH;6c&pGRaI56SS&U_E&vDwc7F^20IXfR z7G7RnP^naQV_K~i0|Nutv}x0%HBIykXXJ5HZIjl8@(Xfzrw-r3oS)YMcY zBqSg_Jbcoc0KnVZo7<)TP2XI_l%1aL-MfdTrY4xpX1ss@9&T=K$ji$^W@hHNYv#?H zhugPrW8c1gsIIQY$jAt+Rx9q_y~~|GfS=oJaBwh0A`x0!TTxI@fRK<7068Dk{pU{7aTB!Mb(p(AL(5$jC?lKX;$9vN9YycFd_BoH}(1M1;h|L@Zsp z6rP@*Xm4*vN=ga}3kz-LPE^zW{ri!bnTeX38ia<1qNu3okNWo4_>&Le=H_P7Xf#w` zUr#!nj=H+K#+;|u>#3)w$1ZL%ndtTF*VNL|LT0nsW=tlN(XCszsK39T8XFtw>({S# z>jwu1iDg;p?d_%E;bGEfG-NWF9Li5b)Y{rgdcB^z@9*y?jYdNTgJDAbBO@cE(P(IJ zaL{Jnj~_p%v9XbKI-Ok(M{D}@=@UJD`jk68u`ElUKYw<(Z;oo62$!CoT*+vI=MuA} zrfE4n@yt!8?3>0_G&MC%w}dHYw%5e(G(1kjn})|}c+>DW4R0DAr{PV*<22)*p3>6N z{-zF|S%jTwh)4?{Wg4{b%s?21`DeN{@bK{P@bK{PxPt!ynOQ1Ltl=tP00000NkvXX Hu0mjfIc2W8 literal 0 HcmV?d00001 diff --git a/inherit_graph_2.map b/inherit_graph_2.map new file mode 100644 index 000000000..6fe496793 --- /dev/null +++ b/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5 new file mode 100644 index 000000000..23ec30ee5 --- /dev/null +++ b/inherit_graph_2.md5 @@ -0,0 +1 @@ +53fc201c4075da0acd9890762c28d764 \ No newline at end of file diff --git a/inherit_graph_2.png b/inherit_graph_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e368004eed825926da82d18600c79c9d82f3bc82 GIT binary patch literal 1624 zcmV-e2B-OnP)K~#90?V4>!Q*R%~KW8o|wOnZAWEg^MLnvb!F)fKCn<>l0`%Zjk zTj@qYPiCUDk#E#qL=TwDhysKD@Q>aU1Qy|ovS2bu>+E~3bL~02?#ib0pl)%|Ns z`FkZvl5!+T`fKH6309J+sj0t#fBYJYFu_k;F4wXP609sPmy4dBo`|?&6|@M}7{UYs zVFH0L!G8r-tCh~q&SmR=&6vP$xAXMr)Bl^i3&HJn zEiHsXA+BG)zF-p=42Eb*nUS8J9*jogvgB1Nl{lSF`P|`f5FZ~;O-&5|k`%Eow`Pc% z2?hoR7#bSF?RKNr>+$>jY~8w5F1K2(n9XMT`}=Xb-Kf=S>g(%CO-%)+r{$ueB8rNN zqq3WaEIZ|C{*=SY%-$z-CkvT|PI*tc(= zTyM*kEvQr~IaXI!hr{8RQ5(S9w{K}{Ya#J9C}G)&wq>i<2i$lAN4Od3iZ^@7@h7ce~wKEEd+UUr%*)HGx0?v)L?{_xASk z`Sa(n`Zk*ll}bf*bv1o`edOooQ(Ie0X=y3N#l=`G7GAx2CAX=lsKDuTQeR)sjvYHN zo6U50Pw$YHm6ef_l0r#I2~MXItJOMVUc22+OG^tSB_$LW7vpp~<-2)4-j(V?2KRm=7O50C48a z8H$RExOnkm*fe%;EYUkL;P+`fIA z*RNl*d-rYtQc_YdnM^b^G?0*xu&8m&rOoH_p-?C|d-g0FHf+FTGBGwb7S=u(408DJ zVI)bStE-E+xVTw!EtII3;NioEjE|2~T3RZ{hK7dd?CcC%Ea~-n`8Y8#5rEOr(OEB^ zR;!hdH*eldY;3G-fS<9^(NX!_Bj7B39 z6BBs7Ub3>X7B!B!v}I;yVzb#W7!2g*=8~6}M_E}}So_-AT2fO}>F@6+CMIUyW10_9 zc^tT0E}EO0aXOvy=hCH15$_)sx;Xm1{-4?hgF$j~atMV&R8>{sa5yL|EM$CqeBSw0 zDisqG69j`nIW{sfB9|?89P`oE($d1acki&-Y`l5%hV1NYCMPH5@`i>6rlzJiefl(^ zP-sE<=VHk-L4SWgpFVxUVzHo9{-?X0J9na1tMU1KBqt{?HO-t14h}LhGD1T`1Br== zjE#-qa5%#1BqSv8<;#~@`_Sohq@|^C<;oQr8yf*=Zf-`e*OQi(wrtvZdwUrk9;Tq6 zfUK-6lu9MHZrx&ZbX1;c)M_ + + diff --git a/inherit_graph_20.md5 b/inherit_graph_20.md5 new file mode 100644 index 000000000..601bffa1a --- /dev/null +++ b/inherit_graph_20.md5 @@ -0,0 +1 @@ +24bc010492b5b99e2569158a9d94fc9e \ No newline at end of file diff --git a/inherit_graph_20.png b/inherit_graph_20.png new file mode 100644 index 0000000000000000000000000000000000000000..2714c0fd27dbd3dd94b442a3ba1aafb0c388a93d GIT binary patch literal 1013 zcmVYbU+>3lyB zoag;`zIPt=<#PZ6fj}TA1(h%GJkL-R_3bm7`I!lYLVx9Jzvl}SMSY_v>Q7}_`ciy9 z+&4BhHso#Piy#OBLZQ&Rwcix(<(GnlD% z+$@E?BAlL{qPx3WQcp?31ptO&z;RsB>$kVJv9q&-=jUfwEEY^nO`)Qq0sz4CJo@_j zaCv!&csvfH(TG4Gfa~jP1cO1myu4s^bQBJUqa;te-Ht>e0YMO;*XyykxCo=sh~?#F zB$G+3uC8KhYYQyPA{Y$*?@T`Bw6L_agxT3ya2yAx(}_qVg0Zo&TwM?ZOiWCmy1E)( zuNU!n9KF50n4h1=@bEAO1_t1Axo~uJRFbF5<$_A3g4gTC{rx@cb~^xIWMl*l4GkC^ z97G@x0MGN1+^1yU+;BLIL?R*5c6WE7)oMlB)6)}HR#tF)e2n(?b^w6YYDHaL9a5X)p`}0EkATI5;>!Pft(Lo^H1re!m|8(AL%lhGFpV z@Bo%&q0wkyHk(WO^?eV?!tLtnDww%ywYp&4)zuYVUtcjjJuT8Hib67(%mvZX(vqvy z)YL$&R_B6!(=wS%NuFl2IajN#tpxyNG8yP}x{~j=7!;qmTCEloMPXrK0V8Eg7K;Vv=jR0@L`hGrR*T2S$FlbS z2+6_?hr{4FPV|aKqXp||nnpMr#@^l@3@qOq|N0N`{wVYAtgN~KU$RaI^j|IPUL_#bY!J4+~z zlarII+wIQ2mnC^BCL<(V86n}y2nkn4NVqaW!j%ycu8e&6C&J_LDA~uCq#)dEHv2b# j(NE}wKp+qZgtGYuDoAOl7qJcp00000NkvXXu0mjfPk+}) literal 0 HcmV?d00001 diff --git a/inherit_graph_21.map b/inherit_graph_21.map new file mode 100644 index 000000000..7a773350b --- /dev/null +++ b/inherit_graph_21.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_21.md5 b/inherit_graph_21.md5 new file mode 100644 index 000000000..d5721f4d6 --- /dev/null +++ b/inherit_graph_21.md5 @@ -0,0 +1 @@ +f3bff5f7476d058a14d69552bbe5da42 \ No newline at end of file diff --git a/inherit_graph_21.png b/inherit_graph_21.png new file mode 100644 index 0000000000000000000000000000000000000000..48f198fa54830db128509c77551becd8d7feb0e4 GIT binary patch literal 1547 zcmV+m2K4!fP)|7VtHZLJp}ZOX7>M>JX`m@k7(B%(;mNFSIM zE!|62Sdy|bXroUReF*yC>O=K0o@Evay?rSnGaRT$*r2j3vvfK^3@p8#4?P~-&W<^q zZqMWS!GUwG`@Zh$zx&#K-`6>Sh=_=Yh)8H){0-&h<%tZ#WQRk{Vnia5^f(-j=Bc(N z{+$?x$z~Yl&cexB+)PYNH~|z*wegZNiNoQTcR`CChreZ_#E-pr4VIeMFyoll9 z;W@<#m9}6IEQy1mqoV_Had9|){J4*O{rdGY@^`sh$jZu^vyT1y_v7o=uc)rBhFmVk zt5>g(laqta&dyoK36-`vVKf?xO(qis!_J*Msj{+Cu)VCTjPBpRPjtnauar*RW=yW<9IdTL|O-(2* zEuFs!ob5_cC={gCYJD!R*Goi1YPFiqo;}O;|NQwg0igc=ej*}DPfw?tH*flksaC6b ztFN%IkZNjbxM!AS>Dskx-1F0?Pbn=ejigd3<>chhnKNg&6)61QqM`zNy&e}XT)>MLFYxKpCzOIly1KgX^XE@gRaN=e8HT~zw{MZ0 zoGj=&Q$m)M#Kc7CbUMLyhT(mX{$tycCBE|V^7621)hgV*dl&ca-9u4P5mv5T$@5bv z6i_G>*u8r+4~)T6u9sMn;gGosEMB55jCVLn@Wx!Gj0f_7zB*TrLO0FtA#! zh>3~uY1_1Eli+U*hKP7ik;~;6931>(KZapou~=~F(j_!BG{9&ya%}?x1GsYK3Pwjq zIoq2zZ_wZ04~0SzFiuZT4~B+@aPHhWR~sq0wkKyG$lS zUtb@TN+r~4HMVZuiuCk!==FN&_4_-Sqltr-!K}D#SFvT3Fgy%M@L7%e|kzv3gYAA(c0RI zq@*OQUAqgvMy_&Ac2lX=^le;nZVIWaUegw)hj{P^($y}i9$n~)Fid!>E*_6;n{ zLMD^Vc)lk2_tU-e#*G_A({`Lq^|g>Zdi02vFJDd`k0;zx=FGfTUkkyG9Xrs{(t_IB zTC85ZI^1&RjsH|qo;-OHZV3xQL{wiQzKBVQK*Xd(AYxJ?5HTqch+y?)Hk%hxhsYFo xNg<+_0R9StmPLs~BIyaY1`!bv5t08d{{Uy1HnH0~0&@TW002ovPDHLkV1l28_#6NL literal 0 HcmV?d00001 diff --git a/inherit_graph_22.map b/inherit_graph_22.map new file mode 100644 index 000000000..1acf9989b --- /dev/null +++ b/inherit_graph_22.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_22.md5 b/inherit_graph_22.md5 new file mode 100644 index 000000000..9e2f16d35 --- /dev/null +++ b/inherit_graph_22.md5 @@ -0,0 +1 @@ +9ab4f350d9932be4b8d722cb2da7f9f3 \ No newline at end of file diff --git a/inherit_graph_22.png b/inherit_graph_22.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1987fc6acff00703bb6fb89d7ab29ddd93bb2b GIT binary patch literal 1013 zcmVA6PWzpBy7pE5&7t68yZ#g7^p%wr_V@Rhot+i6hldART3T3GSfH@55P-F{HP+YHd3=1tYPB*j zFhFW*DgYjj2dC3XBog89@Q}Q`JVr)FC@3gke0-c}G|JS}6v1E+v)Rnt+}yir`S6}% zu~?X&pXci8O4L?YSGm5v76Ta@8)Il_2)o^m+wEq1dz<$5c5(jU;US%!ooF-~dU|@e zxw*mVbOO-Y+KOJUr>Uul(a}*n9?!cy%XX)PLLnlNNSwB@u|Y{m33YXKEG;eJ^Z5W+ zTwKKMb^~yKf6v6k1P2EPR9033V6)lC&dw$li&0cm1VC3;7hbOyfQpI=3D~F_}z~cj})YTPQU(H3>Z>Jv|)&x7*F+!2p_{*0s?C$Q8 zpPvtW>sbzmgIFv^T3Xt>>yagt^78UG&9m8TzZ^Fjjd8_)r@Fd2?pUQ#CG;=7UXNa{ zf0K{jp}hM@poAiU5{d*$C=w{4NT7rwff9-YKYdQ=?(Y6fAAc1Ip}f4j>;eBI!Anw5 jsZ^KA_Mo7k@c-s36yN}jlSr^=00000NkvXXu0mjfz$EME literal 0 HcmV?d00001 diff --git a/inherit_graph_23.map b/inherit_graph_23.map new file mode 100644 index 000000000..0152e087f --- /dev/null +++ b/inherit_graph_23.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_23.md5 b/inherit_graph_23.md5 new file mode 100644 index 000000000..aade36bc2 --- /dev/null +++ b/inherit_graph_23.md5 @@ -0,0 +1 @@ +e8ee10fc3ad73d99087814308dea91ca \ No newline at end of file diff --git a/inherit_graph_23.png b/inherit_graph_23.png new file mode 100644 index 0000000000000000000000000000000000000000..7a096a6799e8b7ef6a34db6d806945bf2e05612f GIT binary patch literal 1931 zcmV;62Xy#}P)!Q~evqzvt*wDxH*s=F!+R=0m!`oOL5AWDk(#dhxFp zzA#ZU%n;I^%rFR&6_wB%O`KFl-4&Ij5K|ax`A_GfNy&Uj#4Htin3|&baQ$C|=XUop z=ifPRZqEmVo$LDTdtJZtmGirF0|W#F1Ox;G{tYmH52U1|a16uzu^i0^*dCT;KNJ-e z{dacE@$ZWmhWUeGm_O~;mcUXnJw5#hz<*}PEKHxFsHkYk8xmMrii(P$*Xu3f>@xHs zu*?XiuRsLTS0HvVJv}`gm6eq?(@RN7K~+_i&GeRwJ9q9NE-ns9NlA9CYZudBzkZG0 z-d>yOH8nM%zrWvRddq=Mr$csjHd0elk)EE8*49?++O^9rwdb7P7s9Dir_k8gXcki_ z6u5l(vMuD7g~7o=sMTt`eEAZiqoeTm_eVlP0wN+JY@)BxXb>A4i}?6>0Ko9@FmiKq zZK6FNHZi@qxfvcF9>~bZ;A3mouC;~qve41dfgL+`z|+$c$;rv!I1Zhioyf|{LRMB5 z4jeeJ=o$k918{Y9<*!{`T@e)(wP;;yu!-paz;PU6Vq&ab|K!ONJbn5UgM)*JjEqEP zW+p@;5qf)jk(ii>{QP``g@pkCN=iylTU!gYS`7yW2LQmx$Oz7#KM#Y!0DpgfT1`YJ!)S7tWnK2VY-boIQIM4<9}R5y5CQ^6znSa)L&q0RT)+PU70NYk2YE z1vrjFVqzjrpFWN9@^Xm9;)UAtds0(V4<0#kgcic?-Mc9>Gjq;-L_`D?7Z>x_7cN{N zsZ>g8wVKMy%PA%%h7KM)$mg$Ky-HH4luRZQ>2x|;vt|vwdi9FW%jI%%b#n zE+-EU4^pXAR9RU`N~MzIaybzZH8(etQmLeU`}UDmt0k>gONE7nrR8mqx5{ZNW(7?dJZ~K}}VPPSqrlvkzGSj`iy(v06n*XV*tK;*tP5=7!D~UuR z((Cnn-efY7lamv5c6RbHrBX?8ad9M(NT{Hoz^tBJE~n(=Wd3@5e4MH-oJw0Zo9Xoc6($doS zyiTX%P4DgPC6;BWrKN?>-@kv~W~STh@xE=_HnTH5ARyqE>x@PtCMG6u;=~EFIKwb# zZEb}_A^`y0ym=EG$00mC9GRJ!7CH)rf`9Gg(;H~b!U#DxoB^1hl`5~0s{m2 z*z8)1#qMXiSS$v^FgSDO3|w4X%yOGIZ{}aCR4VxS`N3c?prN6`Vrn*-OcvMf?(T4R zcgN)9B))(D4mUS90Km6z-v9va?(XyIhlGT{&CLzf)zy&8<-gp6wKW*V;zLZU5R1ha z8ymy;_&A)MoqxIC#bEdU$jM|f1O)}5v9S@+(b0&Bi9uv!Bn$=vKcGB&_6#K@C8(&V zz@{-(}QT3X8Ai2C|^=yW>l+_@7nnG6z%1Xr$H;n%8EDg*=s@K2H7={q|+ zBR4k}7cXAK^XJdaYF1TMp|-Zxsv3(SFfb4t$Kl3}8vuam>1h-c6f9bI2D_W?;NXBq zj~=0-q5?iXK2RtW@bvUVS63Gt930Tq)rG@{4@0e1Ln@Wx`0?Y|x^*iO6BEsJ0s;aM z6cmK8urS2N#zLi1Avib~B9RDXWo5W^>lS1(8T|eIQBhHWva&L;ENhki$&)9MmzRfx zgamkddqbg6VEy{_xPJXQe0+T7t+7}{A`wbUOOc1b$Zh>yL0|DGBe8qC%W4Goc2tEG{V5hD6I z^z`-h(eUsvH8nNS=g*%lw152gL2uu_rFZY%(Zs~Wg7jyYn3$mE=4NVWXrM1&zF1vj zc8@bmO-+$jtEJJ=Q6eI0Yipy{)>g9~YHDiCG)6~9Nw3#aUtb^9*VmJaiwjLnO + + diff --git a/inherit_graph_24.md5 b/inherit_graph_24.md5 new file mode 100644 index 000000000..fbef9a6b4 --- /dev/null +++ b/inherit_graph_24.md5 @@ -0,0 +1 @@ +5816ad23681e298edcbe91d3eb2fe531 \ No newline at end of file diff --git a/inherit_graph_24.png b/inherit_graph_24.png new file mode 100644 index 0000000000000000000000000000000000000000..622b3e0e4253f4ec5768ec988a20035585663050 GIT binary patch literal 1169 zcmV;C1aA9@P)001Ni1^@s6!R*In00006VoOIv0RI60 z0RN!9r;`8x1V%|jK~!jg?U>C=8*3DYpGj^k6pC4tw#tR6pf)Jc(vOHzsvtrHE3Q=B zs5C~%x&d3220_I752#t#g`2COD?$7K7j|4EDHIe%L_ul&KyXY`1dYC3IhSan%}s7> zVV>3GciuDSoFAF@9R_rCbaeh4q>F;X;rLsUq>`Ix=6AyD^^RQB{<9^*3v(6b982Eo%`AzZr{dm3Js4+u|d-sac;te`b4o`|8Z%D_f!FJ0W@ZLSlCazDG&eU#toiZd2c4areEIT)?Cfmby?e*q zyLSP2`}Qph3kw(w24q>Lxw)B_FJC5Oq^KmkXKih5@#)hi+S=M8j5^0`Hpk3$xm~=dH z9UY{nrvp%1TZ_lz0l;pz^YGzA#>U2|udl~ywQBb(FE1w;4C3{ADK0KfbgZZ(Y}W1D zw*gR961jkf5D18G z-@Zj?$H&KFadA;BEiH+Ylaq*;&*u|6J3He0_wT~*_ly1g{Yy2MmzRa2C_+_LvAw-5 z0)fDl^{&I`^9iTZDWZ9kv^RJFqtQryetyjOlP6CuX(p2?X3n!`&$R3F4gVq*i$%Lm zPfzE;g9lgEO9cI^LmcR4#er^C9O!1nfo@hD=w`)%ZdM$`e9vlaZB1n#e*~Az5<)0I j-3|1jqobpvlSF<3a)>SGN4ey#00000NkvXXu0mjf|HeE& literal 0 HcmV?d00001 diff --git a/inherit_graph_25.map b/inherit_graph_25.map new file mode 100644 index 000000000..529217eff --- /dev/null +++ b/inherit_graph_25.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/inherit_graph_25.md5 b/inherit_graph_25.md5 new file mode 100644 index 000000000..da48a7635 --- /dev/null +++ b/inherit_graph_25.md5 @@ -0,0 +1 @@ +0167881deb6f0c9c442f1e63b254be44 \ No newline at end of file diff --git a/inherit_graph_25.png b/inherit_graph_25.png new file mode 100644 index 0000000000000000000000000000000000000000..756df3880abc718afa7696f8958e99e625ab3350 GIT binary patch literal 4041 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 W4znI)b|1{<5PfZwR*{DNfBysG!1@FL literal 0 HcmV?d00001 diff --git a/inherit_graph_26.map b/inherit_graph_26.map new file mode 100644 index 000000000..3570a4d45 --- /dev/null +++ b/inherit_graph_26.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_26.md5 b/inherit_graph_26.md5 new file mode 100644 index 000000000..d329d22d8 --- /dev/null +++ b/inherit_graph_26.md5 @@ -0,0 +1 @@ +54060053997a49091d3f7c340a9cc13e \ No newline at end of file diff --git a/inherit_graph_26.png b/inherit_graph_26.png new file mode 100644 index 0000000000000000000000000000000000000000..90c54cb4b74919c2683c982339a9a322d5055ba4 GIT binary patch literal 1486 zcmV;<1u^=GP)NsOpL1^{{BZ9J^tCE&MLESw0;8j*&Fe;glTVxcyEG&>pROUi^v+4i2c<|sh)7fTY z&vQOk=l}cv&-eHHo!|a1=L|G7G&D3c{u@ZK21QW{B}v+xj$kz6k!88ZeZ=iglEv{(ecs!n24@hHbJRT2$Kp@U8ry&-NB+-hNfoMg` zK(wM|AX?E9z~yq$+S;1#FjP`fw7R-FE?&Ht3aNyssj1=Ky?b%?P$agS;^N|@VooI~DcZAV&v^UxZ7QS^A`l4B+uIvu3kHK&EEd|@+9)e4 zLs1k42M4iQtuvY>lW7+h7o*qfQxbbB_~m{+f~zmC~#rm?Y+{rmS*R8+*>yLXZ0e}9X+cI{%xk|pffvxoQZ-?L!Bf+>BUI(2GN zZI{bMNl6JMB_#j|A!ur9;{N^nNRoujW@F#JeF^8EEVHtw`Tc$l95_HuP7VhT9;C0Y z54+tS)xUS|Ugpf1gQ6&OcXzXO>sCfaMgZvO=wNVgP#yo{#}6Jnct9i)p{%S7gTa8q z;lS;7qbLeJJw3Fyw^LhNs}^jWBS((#`SWM)+_^KY@5!_Qo;-QNr%#_$O_$5XxpU`m zI2@Fgmg081sjaO|IR9jsm6-pU zOG^t?RaH~!n$2eN^Yby8Ol;e>4S$!91 zvS!U1UcGwtTfXMcpC6|`k#IOnZfL|(R&C=;`M5?RI?0f>_q1!*uBi{t=kw9o*~#|p+W{~djXZkvNFCeM z)D(5EPNyRj3aRaR^X75%=uu9eK8@GwRqfr~-8h|2>~_0)sF}`ptadD`R;|KlG;;p@ zdDYg?(16Kg!e}(k_&NLzv$m&Ahsk8ZY&N6U>v{R|B@GP?6crT#aPs6y91aJqt*s0V z4MoiofZe-ybLh|^T3TALSS&O)Hd0?-j}U^LJ9n~p@nUjwa|s56R904U>C&ZyeNU!6 zk?ibjZr;2}RaF(YZrx&Zbd<5NF`Ap3;|@W8jOyy@3a8U4W&*!{YJd$D+T#Uwr@mU3k4- z@$=_Twg1D152C%jT?7JwsQbQs`zHK;zv$@b5TQ^gPB#(XvD$$^Kz#i8F>1`n$cT9U z{JD7X;zd+kiR7OsmoHxy)z#I_u{BD`OtV-lQSEi>)h&;l0ST>t<807*qoM6N<$g6z27^#A|> literal 0 HcmV?d00001 diff --git a/inherit_graph_27.map b/inherit_graph_27.map new file mode 100644 index 000000000..832a894f9 --- /dev/null +++ b/inherit_graph_27.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_27.md5 b/inherit_graph_27.md5 new file mode 100644 index 000000000..6caacba02 --- /dev/null +++ b/inherit_graph_27.md5 @@ -0,0 +1 @@ +b9450bcd72fb8bb078ab823f4d3d784d \ No newline at end of file diff --git a/inherit_graph_27.png b/inherit_graph_27.png new file mode 100644 index 0000000000000000000000000000000000000000..22d8137bdd7bdce6f6376cac9e89a72ee5b5c62a GIT binary patch literal 1540 zcmV+f2K)JmP)TA(jS^djm-(P%_3;$C7=6hsAM6pp5jjA(1csJ4-)%(Fj9Zj0x>*zMdM z|Fvv3xt-4|pXWK>-}Cr;{QZ8%!vRD@L_|bH@`FirI2?{Y7>21^j$(c{h{)H`(J{Kv zw<7f-hGFU$hWYE)mGxWmCxE{fI?@{QjjLC$7QC9@8JEkI(O>e5>k#=4Vnd1yu^~l< z*pMPaY)Fx@Bn>%r>J%UiM3?dv33w-iN7%V@CmlO>jJNG}JKeo|m%LstSu7TEI-T_4!v{h9&Ye5d*49QAi-nFK zKTgqTl#e$wG*BQA;O$5xLMD@mrlzLI>-CaMCL@hTLnf1njvP5cu~>`%(DUcd1$9kK zOb`)e)DRK5-EK0OOtf|DRyuU(5cTx*@Y-w|BBHLYE^2COqCI=|(E0P{X=Y~Thvtij z$mw)aYiny`>iiev3<(4Ru-ok@EiJ|2!-o-xL}0aA1@We)CP*X_I2;ZP4-dm=G-76E z1_038+lzQS&R?HQCehQ=gSojmG&D3op-^D&-o5a6Ja9N1kjv$e%jJ0V=n>}T=6K!e z)vEy@qXqzMHXA%156+%Fi<+7mSgls{_V(t~c)ebnJb4mkvl%TdEqL(Y0S+8EP>5-q zXDL>QPN$$Or+T zcsx!-M0&lRIy*ZBH9UFpgtS^M$z(FBudk=mr%wx3WhPB39*>8bo13$0#>dBL<;s;5 z3~ZNsZquP`KB#<*&VV z?V3Q#vMk2O$9X#zi{ZkB3rHjqyzlkv*N8@=P%4!fH6tS-E^aeLLFQ+o9EJ z0RZRDox`O|mrz?}T8&k!R^`kikw|d+_HEq1e;+E93I>A#Wo2b}|NcEB z5=mhuDxX6=6bjMXw{Lmd@Ap$U9Omt>U%yg!cQ+*x2_l+5)NkIrNmEl(6bJ+;7K^2g z$#ER@_4QFS8l^8^zEF2}H_gt@^6{~;F?#mwnc#p;CX*Bjg{Z&3pT7ZENG8p|zySGt zKH@lzK7INmh-K3d5qf!kZ74Wl>gE_FWACs8lMbRI04G@ zRb&+GE-M!u9UTSvb^RY$mWHHmX(In2ZdpZ!*pMPaY)FwIHl)bNdZ=f6Z%CxDq&0+y qe3*ZuPNcy6JJ%v2A|fIpOTs_qrQd8Dp)BhF0000 + + diff --git a/inherit_graph_28.md5 b/inherit_graph_28.md5 new file mode 100644 index 000000000..ef65b6337 --- /dev/null +++ b/inherit_graph_28.md5 @@ -0,0 +1 @@ +62ae36d0906765f17dd70b8091ac17c5 \ No newline at end of file diff --git a/inherit_graph_28.png b/inherit_graph_28.png new file mode 100644 index 0000000000000000000000000000000000000000..1007d353936f3641d74826b3b917cb67aac1c314 GIT binary patch literal 689 zcmV;i0#5yjP)K~!jg?U+AEYEc}=KgatFmv9gSONAyyBq5qY@a}?ZOF5WSxCkN= zI61gDhfoO3?;+IU+!i7d=H{Y<4?>HmRR`bTdzVaoym-g_!~IP6{C?-$-}ieDhjZ=$ z9UYxzMtlrJqfxsMVs9Q|WHT5H?h1v%&-bx!A3F&l_Jk1MzfRUn*#~~S4~!Z9!^OqL z%+<`2larH)al;qum^-@RRYx~0n^-JHsZ^SEnSVx#;Z!Qc`T6<8Tr?VGXJaVP0THlS&(G-Z^U9Tg25ocU=SG2cqkO2R;y91R;bO5!tyUX}U0q#$ z>K%%rP%IV+hr?W6Ub3;VL9^N9@bC~tQKaaUVmOz}@$&LA7Pnfh + + diff --git a/inherit_graph_29.md5 b/inherit_graph_29.md5 new file mode 100644 index 000000000..a991bf889 --- /dev/null +++ b/inherit_graph_29.md5 @@ -0,0 +1 @@ +08092e3bc94266721c0b334074940ed9 \ No newline at end of file diff --git a/inherit_graph_29.png b/inherit_graph_29.png new file mode 100644 index 0000000000000000000000000000000000000000..5f8b18e16171b90b655e060e59ce998729c5f85d GIT binary patch literal 1481 zcmV;)1vdJLP)f9I^N5ygTcQOrXZsmPp>kR;LuT~vspsIS1Z zSZ+-u(89v9VtG?{)lImBv@U{hWCTJOT^RKV;mYbJEhMr?66PibqUHH6zOVB+=QhpF z`F*@U7@YGy@AE#-^Pd0CIqx|K1OkCTAP@*Zn%&@ZIx{6nDo#Z*g5)F1@{rf-?U~uO zVs&`36_%S>1iME$IP|}5&XjI^(H+b!P4UOdhz@H5$$pcauF;uga`ye z1Og#~gcAq^u-R;cLZMWrGH;SDf|{BdIy*a)9cI}uIXOvpcQ;d0Q^0?t{-~>ig>dG~ z8M3mnIC0`cgw5%6lAfNPh%k#{Y;26Swlc4`wOToJ=ny)cE@^QSUBBDy zX5YSj?B2aQVPhsl1aIEFVRCYEPTSV4TN4ptQGEFDft@>dvSGsps;a6`6ooHezVPVL zBih^B>FDT4TI@vE@Av!JzI}T_$4rO_Vo_65LuqL#rKP37-~SA|-A-R$AHBW3q^GCT z*w{!`R+i?|(b2(!2M-8^LX?!0P+MDzUatq>?Af#Q^zQSU0uks9M(4&494_*{P=Oqct3yshhX#*IZEqom&xynOkRuV24v`@OxrR8>`B zG#aU{uIAgfZ`kd2&3@_9CF<+zvDs`KJ9doD&Q2;SDl~g}c{v`BhsMT6EEWrPyPck% zp0M#94hIHg*&H`sb#*njZr!4yqJqN0!mwQD zsy|+RvF7K%fdgb@WUzPdUOXNTPN#E0$70^NT&{!1j~`bT!meGr)Y{tGIc-HnMQTe+ zi?&}-P@tYWcTU^?{Q0vAs3RjIY9J6$^?JSP_xm+_Fc?$~27@{{I5_9{9*;+LI2>W) z&&;K}yITd+j~_p3ZCzbms?}=Me$jm6#TyN1_lObZf<5^V1V)QafXM7BW}F5Y}ul1uUfTA8(&cr04x>@9*+mV-%ovg zeNual75DUcH)!4@__wV5{Cw7|S;LbjPberT z03aic=1do6B82?OiWB@`Odt@SZICm<|m%*cUe{si*j;u$ji&) z#fukMtyXL{8zm(ryng)}lgY%;&=8}eqntl~p0ctswr$%s=L?aUtX#R03l}cX)YKHQ zULPGDjp-XNUT$tK8#iv``t|DoOixd9?b@~9u5Uh=OeO+>z`Xj-mxP@Od_Et2eSKkV zt*xyK8bhbk;q&=8a^wg%Z{8#$BZI-gK`JXN(dl&L!-4m~p|9|}RD%sc4(h~MP!Lqs> z2vUO(fk22rAVeTQh(Lf4fdC-_0YU@Fj$VIRO$g(_? j>Kp_Dfj}S-EKmLduyu;Z6h + + diff --git a/inherit_graph_3.md5 b/inherit_graph_3.md5 new file mode 100644 index 000000000..27d384407 --- /dev/null +++ b/inherit_graph_3.md5 @@ -0,0 +1 @@ +1553e9fb5f9ac4f32dae1aa03b8cbc37 \ No newline at end of file diff --git a/inherit_graph_3.png b/inherit_graph_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1b32a1f54f686bbad074ff7058174e80fdcbe011 GIT binary patch literal 1382 zcmV-s1)2JZP)s&U<00006VoOIv0RI60 z0RN!9r;`8x1sh33K~!jg?U+w!6ImR`KQq>%MKn^;L~EreNeH5)Rir^g6icNwl;Ccq z;2|b8wFv5=h_=u{FSg!1gbtOe(1Xja7pZ^1f(LQqAu$y%HC8;tYN}`gMsq2BdnnF2 zO{;dBI7^++Y2NSmd+&Yu&f~o|112UWCMF97X?h?K2$V^ZMOOo`*&y%&VnVg*b3;6BpSdQsmP*t_yf)+ZesuGPxbKrcjCYqa@wK>k5IYT%cMwVqZY}kO$=VRBdT>zXrcaCSzo^j#A z1+HGbip%996bd1Pps%lwp`jrpNusW<4xi7b(|zE;0b;Qj(P)%Yr%thF&z^aCmA93y zsw&5iAIEC7a_G<@`uqEJ`A8&!-|uJ1k|ngZw(|DvTRa|*mVf;CF>l_y(bXS2b_|Qf zLThU)u~>|~d-rns^l7|aFAWV1`2Bt!K76S4X>M*tQ4~5lI@q#h3m%V$aCqtq{NTZZ ztX;d7#>PezMIjIf08=l!r>BR;#zq<%8c-C4_V#w24xi6Qad9yxPo8A+=FR!C>|a`1 zT7Exz^r)B%nM_7ltyb~={d*yV5F;ZaV&le*Vsdg)tJ%7Bt2lf1tk!<@>XiV*yLaz| z5JK$Ou|xFr_37$6J3F=Z?c28nAQFj$7V~<&qN}TGR$Yps2%pcVwX3VE#g!{pwD$P; zxR7O8JbLstwT8yk4&s z8yg$r-o1O&*4An1?PtsRfY z>Fw<$9*>jBWJo5H-#jPc@i?+9vwiz^Eml)g!^Fe{qobo#S62g2Sy}mA59UH%OjlKv z?(S|J4u=*Chr_6YvGEaJ$_cK75#9FvzlH%eZ;-rnbGz)Zb#U zFflPfCX-?L^5p=eQYkI>g`%Ro9eq>d&3Ay|;bERXe~#bp*NLmFti)!skxVABTCMY) z=DQ>k2~w#Pot>SOmX`AA(@prgh#2sj8~%+qW-gHCQYbwr$&%bD$Oqhr_}C{rj=o?bOuNV7J>TDJjv_d^u=$ z?%YXRTN{fPFJ@q1fNR&T;cz(Ev}qHAgM$nV3?R#e`)-`~No}K%dB6&Udt617jysqeb%j82S6wk((S*~>s>AvckbNLjo;qh&Z0$&0FY&w!NEaB zMn*`bQn*|$ve_)JU%%FAt*fi!<;#~WUAhzix7*E&7cYp%<4BT(-EP+{py@ga!hgBF zn9R&#6FflPPF)1AX0J7}I&q<*HuK)l507*qoM6N<$f|Xyg-~a#s literal 0 HcmV?d00001 diff --git a/inherit_graph_30.map b/inherit_graph_30.map new file mode 100644 index 000000000..6ef075d82 --- /dev/null +++ b/inherit_graph_30.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_30.md5 b/inherit_graph_30.md5 new file mode 100644 index 000000000..b6092a4eb --- /dev/null +++ b/inherit_graph_30.md5 @@ -0,0 +1 @@ +b9ed23634de55cb543c4c311847468f0 \ No newline at end of file diff --git a/inherit_graph_30.png b/inherit_graph_30.png new file mode 100644 index 0000000000000000000000000000000000000000..a276ab82a6eec1f10b90f01247a605f487d7f8af GIT binary patch literal 2267 zcmV<12qgE3P)m2U3v8@_-%Qx9}9p znIeG}S{^Ev|CB{k|A;1}b}-%)jX)?f#PFCtrnT~rNUlsx(`hzzbKdVCKYCv0+@_{K z{k=XP80@~U`#RlRJokM)8^FTC!otGB!otGxXK?0DNF ze)gQn+(jG?$D709{O9iri)B4CGc!{H;9s-nbc*sfxw*M39uUj=CO0=1G)?QwQ>zdQ z3yVS6qGVZfutmwT=3t9*nHd=wfxo{$#>U20JCuJcD_)cd2?;1KFJEalYX+4{h3e{R zsMTr!>o5Q1KyUZG7|x$R4;vdBoH=twM<$U-AP@+a!_6NtK0c0uf&$dk)L?vk973TG zetv#9e*8GNT<(hbUGDtj;^J`l@L>c71}<1fsZ=5_FAue~wNR_o*t>Tx;^X7N=ku3r zb0t}pqI~!69aJjSyt3W9cQ1#FKcc(48vy|U*tTsOVq#(-6bjMT*N5lNpQE_A7-eN; zE9QH-^QUPVUS3{{(m8VE2>Sc`k&==EKA(?{^yyQKjg7(A*B6P2iQw^g0D!c# zG}PDEgQ6%1g+hqMV(i((v2e*GHTw{J&8M1;Zojpb)(e=;*O(b?IFYuB!!pr8N_4i3o9 z&PGvD5z5QU@#xVb0MHu$`0)cTUc5kKV(-@|i54qyPJMjjp>4yja%jEoGpxVRuR zG!*sq^;-7DVlhljO_7w81U{dS+S*#Arlx8YgM%TJN|BP1q7`R!bTqhJE+i5OdU|@`>+7rc#QY;- zV`Kk)`t)hC7!DjbKoS!Z=aqSSdXl`nJZ9|b>Pphn)0y$tuU`oOGBh+qMn*;mkH;f4 zO*3+ZLP1PTO-WBr&%E}fQYjIO#ai}f$5LHgO#qP3pFcBm6%`f4&(Dwf=+iakZ(v}6 zP!vVpzkkoji;9YveCFoAko*ko4F^qg_YKjO10`mCrV}tuQo1B~+ z5*r&^Jhui{{P>;^kx0aR-?C*306?KoU}$IvYPA~Y&Yja*&*5;;+1UwOTU&H>bs;Aw z2VGrVn3$Nrz`%e`BjM)e#(dwnaU)}2C=>z!TwGirl}bU=G?J5(_38pJ=FH^7cXz|x-5mg!>i__lnwrAR%?%wL9eVR$D63MG z9FESPlK=pGJ|7$o2dSy4Ff%jLk~uj!VPawe-rnAbii$#9TpY~J&GGEnGp*wk08C8& zmzJ}$Gb}7D@aokoxVpLm04yynVQFcpb)3zoYs?>?&&TBCBqk>(nRsX4Q5Tz^vHdY7 zGlsRbHLR_zap=$?2!%qFmX;zlHC4yv=FOWiJw1(yi3#SI9~~WKWWSl4t3sjBk}s7t z_43@_-X0DP4tVqC4gCE4;P3AbUteFewY7oI=i|$lFBlyi#l?#k5fTyt4-b!df6$-J zh7B8V>Cz=+W@hTVFZ{jH`Y`5CBoblAjvcsj=MDg1W@ZMrZ{J>WehY!m=VN4KL~E|7 zs7R~9nmryK9>&d^H=$H28TrSLA2BpE1Z!*Sd2QO;+r!q@7B_C(VCJ&2vLF(Pn5Q`a z2g zLV>ZdF@%!g@uJUdh{sn-@lJvzkb2nTmN5Cjperx!o$Onl$38#Q ztko=vL?SpiI6xo}puN2vSy@?dbaY%$9*bfrjZRxz8>yF@8?Y8>X;pUw32 zG?B?_Gl}bejAv*aR%Won3 z)7RHWYHDhjIE*zqg#6Wrw6(R7mX;PWIy$No&s>{?5Ta74h)gCUA3l5_YPDKxy{oG$ zdGO!?`T6rFX>M*N!^6WmHjSaL(OH(FWLbawF3LYaUs0~9J0%MXuu9!G%RisF{ljv? zJ}Ft&9BfgttU1`CWLa~tMai<}V2hGv&7rsZj*E-?JL6zsVbCc`LP#Be0}Bfa3kwSi3(Nl>{{<@Jn9{+Dck=)M002ovPDHLkV1mSMJ4^ro literal 0 HcmV?d00001 diff --git a/inherit_graph_31.map b/inherit_graph_31.map new file mode 100644 index 000000000..2e8e2053f --- /dev/null +++ b/inherit_graph_31.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_31.md5 b/inherit_graph_31.md5 new file mode 100644 index 000000000..273840bd7 --- /dev/null +++ b/inherit_graph_31.md5 @@ -0,0 +1 @@ +dd2b95b8ac46f5feb04a93e7441443b8 \ No newline at end of file diff --git a/inherit_graph_31.png b/inherit_graph_31.png new file mode 100644 index 0000000000000000000000000000000000000000..6c88d2a0d10567ff5e213656bbab16d8cb2d1850 GIT binary patch literal 742 zcmV^hseYHe?vCFgS*zTe@^cfRwO zH$MOk4UI*Hj0&PCej|i<)Ci+AjIrX`+1Zb`nr?I_LWqYDay7qLbLBgL{99qHfB~6I zM)5TB-A8t*Jt_zTrQWqZ7>+Hy}gZUwaO)+5S!NJPA3 zEU;RwFquqve0)SQnS{+|-AHw*eo9amY0{|a5(-c-!vBf zT|n_C!Ot>!U*XNd&j76ewF9V)R)E?8)Mnx;FzGw`S7WRI##j-*{-At0exI9$hK7dB YPg{4BZb&$hbpQYW07*qoM6N<$g5Z*4AOHXW literal 0 HcmV?d00001 diff --git a/inherit_graph_32.map b/inherit_graph_32.map new file mode 100644 index 000000000..b671df058 --- /dev/null +++ b/inherit_graph_32.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_32.md5 b/inherit_graph_32.md5 new file mode 100644 index 000000000..845cf6f58 --- /dev/null +++ b/inherit_graph_32.md5 @@ -0,0 +1 @@ +8356195b2968fa94bb07f767ce45dfac \ No newline at end of file diff --git a/inherit_graph_32.png b/inherit_graph_32.png new file mode 100644 index 0000000000000000000000000000000000000000..18e95da207018536ef329d46a52f825369915600 GIT binary patch literal 2151 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 + + diff --git a/inherit_graph_33.md5 b/inherit_graph_33.md5 new file mode 100644 index 000000000..fa60686c8 --- /dev/null +++ b/inherit_graph_33.md5 @@ -0,0 +1 @@ +27cf57c7b64319d49fae89c37b9e7b1c \ No newline at end of file diff --git a/inherit_graph_33.png b/inherit_graph_33.png new file mode 100644 index 0000000000000000000000000000000000000000..db075b4d6a889e047723384131da7189c42db6ff GIT binary patch literal 1724 zcmV;t21EIYP)!(|Z)hzuVNTRSF?7s~5i7aJ7Z@Kqd6=MU)V8pt-VK zpmVFeh|ny15KN*nqjv>u)?O6Et*9s#!Hi)IjXea0k!vwfd(bA^()HlnI`_rB{b^2b zGk5Kd`~ST9|IRu4opbix|F^RTfP;gBgM;J$32&l7qtPto@p$WhM=>1#3=ws(?A8_#*c2#CY`LkRHN0Q+LOmR2? zQyfmf6o(UVn&|acR& zaJ$`j^5jV}(j<(>jgT-P&Sy>r08Vv%00OWG{wC*04%Z0(g!5CXXK>y?Ympjg3$!6sWDO#qjVj0HC?K8E&^5XU?1f!!Xe6^#J0JP$GiC zU_g0!IaDeYOeRxIpFitmrX)?k`Sa(aqM`x@g8=|wHk*-?lY=#D*2Kl0IB^084;}== zFsQ1kg4t}w?%lgtztibNb#*l|Gc&Pw?_PZP@Bs>ig7tTGbs-Q4ue!rj6)6>c2a-siHNAMu#ik9Q_SPnu3bw;qmhV+hK7cS&*#(Ar%zdb zdwV;jrKM3Y7)+>_MA2%sR8vz^K2fivPN7n%6k@R$t*x!F+wIu7b7x#kZ*MQg$H!4y zTMLF^z%UF-N=m@v@!)p5**J+r!d@?0vUrvg;pDh>VO3 ztX#Pgy}i9Z%>w|hUcCaJ&&TT3t6AH+b?Xp`MDY6c>lycw2vdF+`m5~Qw-38^?ZW>3 z`!RR!+&F($Ru*_X9vT`NkeQho<6FLbIeX3H#r;sil9rZ+NF>6pKYjYdUawfO0t*%_ zfW=~gOeTwYTxVw|LZJ{gY}mlsCO(nDU=Z2a**~oT0J5{Q5s5?)3Wcz6;X(jlkM{3- zB(l#;Nc!i%($Z2qdh`g#j~}1ZFBXfDpPvuA-HweLH-cdp6crVrySp1%Sy>6?$ji%% znQV)oP(oC{S2f$l6UN6Dwk8XD1vE2R3is4B)R9 zo8RxBvJSCWjJ&)&w6?agww9I_NF);E<>e*R%S=i79hjb;4u)Z-^a}(6+`4rOYPA{$ zg8{j@x$t_usI07nKp;pcM`L3nlu9McW-~@dM`P|N0BC4v01=_2qy#xRIS>kk@OV5> zsZ_Xd;X+KTL?S_cem+DZ5njH0iI$cYNTpH$Kt)9b4jedu+qZ8+CX?af#fx#hUb}V; zJ9g~AjT<)*jYje9+c(_2c{6T+nl*l9i0SU`W(Sao3=a>}7e-A+EAkG_8WN>;0t#>dBF_WAPV3pt%m>gwtu zzuzC1UoMx^)vH%&baa%QPA3fy568v4efySdHXA#1xm+%K_wHRxOgJ2-o}M0h@!~~X z4TsB@Qyfmf6o(Tq#hG%5nd*Ot9RDri1SFzP{PhoDj{g{cYs108!NI}70pL%R%p77* SYa25F0000 + + diff --git a/inherit_graph_34.md5 b/inherit_graph_34.md5 new file mode 100644 index 000000000..00a2c1e90 --- /dev/null +++ b/inherit_graph_34.md5 @@ -0,0 +1 @@ +970eab6ae76f25f9c7f8a4ebd64b97fe \ No newline at end of file diff --git a/inherit_graph_34.png b/inherit_graph_34.png new file mode 100644 index 0000000000000000000000000000000000000000..84b5f7ee8872be471dc59ec37880d9ec5d7479dc GIT binary patch literal 1263 zcmVGlcfR-iF&{I-fPsO5!Ox5IrO@2mTp&qO)ql~sXs__E9e=ejM_7|5fUHaF%S!#X=VQ51zcckZO}VyLYp1-#$H-SrzDF*zD{q;c%FX7cZvhfk1$8ILy6! z_w-n1RiN9J^m@JAzki>XFJA)i@#9AVfdI|T&1tzp2nGiSsjsic>-BQ^^5vBH;lqcS zoSan8-@JK)q9`O12>>Q0COCHN82k6{r>m=rckkY%)L*}ToyNvS>gwvaaNzL+~dcOPy-PBgBo>QNTU$#}Q4#I!?d0a>;`8~`+@78uIyyQ~6osayCW65rM~@!W zYs_?7T3YH`TU&(|_Uzds&YU?T=H}+ah7B9UhYugb-o1Op@bIv>apQ)_&COMFW3iYp znM~r*qerTC`}S>NHk(B}9v4Cg;dDC1ty{O$cr+RnfLL5y6w}kw!fLgOrKKe`o=7Bw z5JJ3t`&L*i7BM+Fsm9{*xX8}V7SEqQ*ECaWYpZB!X{rCxpNyYI-$Q9>DY7in*VjiV z6yn;oYmASNr{qK;5lki%+qZ95HIK(bGMQw4ex8boif^v5b?a7qJ|Ek*ZDYrd9aL9W zbLh|^0G>X5%F4S`E(&*$UFkt3Wqae|zjoV2*zZYP;c zl1L<2yLK&ry8Y~S`=_SNW|GOITJ!$>`;=?={eF6Tdzqb`Wq5d)bLYjEMMaE`jxsVbg30u$ovyAf1_lNwFE6LC zu#nfUU#s=``T6ws_ft?%fXCyZy1JT9C%Y3?QNx$DuUS8f;V;+x(v9Ylft*WYuXV0DyiA0bjiOrigV>bWYN^NZ|(P)%N zB!b)RCND3KrluyWRx5V9onSD?!omUz3kz)8w25`=)~U6{#l?g|A)?VJu~-aQmNWMD zJ?LUsSy@@en8V><*REY@y2WClw6rv1oy}%Tc`zu7k`i}1oj9G&jP)*;3zy6Fjjq2B z<6BZAhG7~p4AY2Vm_`i4G-4R05yLQzWPA_H^k42*C(SS+!~;J4@%`ob(+dLw1B3q! Ze*mp94_7VuR>=SW002ovPDHLkV1oJhb)^6R literal 0 HcmV?d00001 diff --git a/inherit_graph_35.map b/inherit_graph_35.map new file mode 100644 index 000000000..acee9dce0 --- /dev/null +++ b/inherit_graph_35.map @@ -0,0 +1,5 @@ + + + + + diff --git a/inherit_graph_35.md5 b/inherit_graph_35.md5 new file mode 100644 index 000000000..58a02dc69 --- /dev/null +++ b/inherit_graph_35.md5 @@ -0,0 +1 @@ +e96fd1f00493b43926b1e0db36809952 \ No newline at end of file diff --git a/inherit_graph_35.png b/inherit_graph_35.png new file mode 100644 index 0000000000000000000000000000000000000000..e71be013b57fe2ed9deed36e86e72b17a597a681 GIT binary patch literal 2255 zcmV;=2r&1FP)$YOHbLF2 za(#DsDRudR7z7e%s7Q=%Ll6^<3S7mYD=sUBCBnTBT}T8YRFj(U7Iii32apIQKwxdl z*$+4L-r52M3oUYf2?;&ZIp;a^%rl+NbO4577=~dOhG7_nu}$R5hLn^PA3{i&HG)}6 zrKP10tR2Hbtd#t$bf)%C{+A7ekT60>)zXAyRm-wiS5SUdy19#W+Kn4G7B>_t>FDS{ zX=$mo!}x07YJOI_+4fIviDO|HW`S6-GR!i;ij`rO37am~p`js&#bS(%j95Dq#srq1 zrDfB_`uX!`G&eUxqtRG96vhOWpQUAyV$I6Rf>m zsc9hPG4%n5??G^qQv8-ud?pljAfOf-#0qRBKR!M_5R1k7*Aj^Yk&%%&dGaLM+uP0V zr>3R`wY9ZStJO$INWkI4hs~NpN=gdi(ZbV{Y zA|fLr0RROB1?cJN!NrRgar^dd1Ox=&+O=y78YenB+T3)RWU*rP^76vjvuBZ+nTd{$ z4iIAWOGc!nrJ=F05d{SW(CKu@%gaM&XD1X21pwgGsZ)6N>>1>8IYviEaqQSJgZ0my zJBK@W?jSEO5AN>nC@wBWdwcs=pUVBUj;{G1AMpT=P~i6fbd-Wm0D!;_06;;Ff1J5| z*lK<_jzdmP4&vkE(bv}pp-?zyKQfsN<>lqb%gckew>KU|4dlUd292}%WLqk*`5KyI3sb8*E ztErux9ewxio!POrx3|;O)Kq%#0d+|Jk;W%C(0`^hP)%|J)h0JkU2+4ZCjaWGF1dl; zwfq)eIr)i+iJ|G~=|=H&cXv|&w6(Q$&VD|9`b7DBK5cGpHt1t~e0R$&32h&@(Zs}iJY8+Fh_fJ!~x7a5u06022qOhUX!-;ed{*UuR5 zT-$1utrOP8>9>sI*s`a-AEK`0cWq@)Dd+1Z$y zn!@GFmkrhr2nfK77cU@_$v_B!R;$I;t5=PVvNPdxz(#=@+>0^{yX;=$;)>rSgsjjYuSS&_(csRVhy&;uKQCL_AnM`I@KRg}}_wV0F zOG^ucLLq{Jf^g{2A$WLr%sB^BL?RL5;^N@v=ZDbHQ26=z!O_vt;5|o<9D!UeM?^#f z($dlvG>#=0T@sW?BngC&s`)&ErBbQj?CflCRQdSvBRV@fv3c`m2!%p@yGElyZ*MOM zA@K9_Gdfk6n3zCUR~LMIeBkEhhSt_rgolS4T(%+jn07N1YoSmKLHR0(;kZ#_* zY4Y0cm$z;}@fpzHy7_x~to1)x=bIm9`Iv40w8&}j_U+q^+B`iy;pypV)GiPR5EvLZ zV_yyq4%oG8m;Uvy@5xOQ3WWv-081+SBl$0YA^=56^;EQHx zza>A!ksbhY0P>`t=y%XzagGoSV+K~NX8Pd|qys>Qwc}t`E}MSphGCdruwrGHWr7te z!z>f5SQ%!SV8zNX%fyUVgQZgGQpUl|6U)!aV^pk^(pCW9TOk(43@kqk!!QiPFbu;m d48z!({{v^8UZQ~6mze+n002ovPDHLkV1mNcLmB`8 literal 0 HcmV?d00001 diff --git a/inherit_graph_36.map b/inherit_graph_36.map new file mode 100644 index 000000000..88b97d482 --- /dev/null +++ b/inherit_graph_36.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_36.md5 b/inherit_graph_36.md5 new file mode 100644 index 000000000..fc7f596e1 --- /dev/null +++ b/inherit_graph_36.md5 @@ -0,0 +1 @@ +37532b4d3b0abeaba90ea16339a6cd61 \ No newline at end of file diff --git a/inherit_graph_36.png b/inherit_graph_36.png new file mode 100644 index 0000000000000000000000000000000000000000..e553e5150858967b1ef087deee08ee66b5ec8fa7 GIT binary patch literal 1912 zcmV-;2Z#8HP)!Q*9W>|7SW8(-iumEtQq1WMnlm=EM&6A$n0Pd;zmU zQI~_hgoZ56{$&Evu(*-zO1h2Lr>@F`1YvJ zeDaa=`?UMI?(2Rz|9khj&V3FbARr(hARw?Bn7M|WoSbb8!^HlM!3eAjBGTWwb?d{g zHqW`07>0>u80OA@H!OjFK{|jxel^S!^d~oN+*tF`2&^8ZQn{dA^dFByV2u$3-CziU zZZOuhpjN9DEX(4{moLA2DE}MQwV*RIGiYmT!|d$r?;gtk2Db=WR8$0(WidE7$g?Yz zO5C}#ex87wPA4=P4bsxmaN@)XR905<{{2d&5|17|T2Y&;iCIhBB4}@KFZ6mnii(PO zc7wry(a}+Nbm10Go;->A`g$ZKB_TUI8xs=~P$(3f-(WDnWHPO&&DF%LC2ret&zv~} zolXaxPPb?sBErp^H<6Z>hV=AwG&D5u{NKKPLrqN$l9H03QmOFv?b~^6+`oSxXV0ER za&j_iYHE1faZ^(hPMtcnVEOas&v^X!G3x5-keQi@#Kc6DmzP7Y*8>19U%rf?p&?XM zRDfk!s8lKdKuJjnSe8XXLISd~vheijQ?C8RVp3C6VK5lDdKQZXEX%^-Z~y>0Iy#V* zm4#!+j-jlq3=!?&JR8>_WIXM}}j~|Cxtwv#C zA?H7L?i}jt>yeq637JfW%*;$){H05mP*6|+mSvHhosEYNAM)yqjEtb8qhrCcpPwK6 z{QS_;(gK&u#nsuoc{2bYB_#!0w{Aspax&CvHF9!t000>o8BnX$C@n3;?%lhQl$3<_ z_Vy)X+S}V%LTL9jD&;)goTCS{Q2|Pv}qIa^Yd4J!Iw*JZf;s$ zULLK4!-o%3X=y1+9qEO-)S%fGidZS*=zQi^XIx7&yP(ZYM7-fz z*{Hj_n|ytJ$?0@*euu-cWSmzPJmxw&a`^;`7lZ#DS%_~6QwD<~~3MQUm)&u26m zArgtOfB$~YCYQ_Ma=Gy4%^Q6E`W4>Z-q^Kk7w124-~jh~aBvW_v$MEx;R3H+hG8%? zGz6(sija^HgoK1}zPaT?hYq2?zaL{`W9aVghE}UZR8$lU1_Q#w!xx;B(P+f=>(^m4 z8sTs_U^1By6cn_&3j`oKIvV-;`PjE_9~24&;^X6yl9ICO_U7VNL4hClQjJD~+S*#4 zJs=NCdH146Rm+ z>gsAlMMYuz_U*h??&0BqyLa!Rxw#p^!NG`$i9ujsAl|=!&#ml#N{UP-6GB5n5gi?k zy?ggUCX*o}BLf*3836uHfa2ofpi-$25fOnSM~)yoJREYl9O2>N@bU5C&2?@J0F;%L z;o7xp*t2I3cI?=JPoF+<^@DBQY zOnzcEn@OkB(a6XM&ptCVL;d~z^y<|snw_1U*Ot@iB!j^~X0w^5r>9A$)6vY#46n|} z$OyfB`I06kCV2LLN{Wbxrl+T=r>BRyy1K|_v(4*&Y;264KYz|kz6J&cNUztE-EOCk zA3ySZi^bUOcIxcxB#XsDQ&Ur<)9HBg{qW%fb#!!)#bTK^hUKtWQZ(-dkei#E#xTqs z;eF`(MyXVSh|=ro>Ub}>*Y#Phz{(K>-CziUZZHHvHyDDT8w^3v4Td1-24m5)+{M28 y6j + + diff --git a/inherit_graph_37.md5 b/inherit_graph_37.md5 new file mode 100644 index 000000000..6b46099e0 --- /dev/null +++ b/inherit_graph_37.md5 @@ -0,0 +1 @@ +ceaa2e4f57e4b67306d013728ef7be20 \ No newline at end of file diff --git a/inherit_graph_37.png b/inherit_graph_37.png new file mode 100644 index 0000000000000000000000000000000000000000..56c3463f8df5cb4c246fb1626747707524ec3706 GIT binary patch literal 987 zcmV<110?*3P)F7Q0Q4*eur89ca#tXP(lTOo}HZ?d_Es%XJ;6VM#jg- z$;rtPviCRnO)M@hMx|15adAOsXD42-m+9$gs;a7JZEYnO{B~;E+uNhNyPJ%R42Fh= zsHmuTRgc^4CO0>i{{DW#;V?FvjmgPL+S=M^Zf>Thr-!YrEdWkWPibgqpuD`C!NEbY zva)cy-NN=O>`r`WWo3oCyE_a91A4taUANh6TwPtUyu6IbWJ=e&y1JN}no3_66&1bM zGcYi~=;$Z_DwT?+rY54%C|a!+fVH(X0)YS)i-lM$hAhjBjEwN*%NH6O8%ZXU!uBgH z#MRYR4h{~uy1L@%=!n_bS@e26$H&L`d_Inkk4YpF#9}ct8qK3#gTe6V`ZYZ|oi6=4 zFE5YG%*=Fv_qBLD4nTEvHEy>XqtS@PV!>*)(%#-KYU|>@&UJNlc)ebhmX?UcVoXd- zkVqsjo6V$BDf;^Q@OV5p9FAuX9JTt}XZhM5Ns@ke{nXst9Fa%_x7*G3_BOS(wcOs` z{^YLzo?pl+Jbtj;i$=yUteF}ubkskdlq6UmHG?lc!ya&1zDD(?>&P;p-_BeUjbhKSq9M2Z*Kqq002ov JPDHLkV1nzF;M@QJ literal 0 HcmV?d00001 diff --git a/inherit_graph_38.map b/inherit_graph_38.map new file mode 100644 index 000000000..809a2404f --- /dev/null +++ b/inherit_graph_38.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_38.md5 b/inherit_graph_38.md5 new file mode 100644 index 000000000..e637f4231 --- /dev/null +++ b/inherit_graph_38.md5 @@ -0,0 +1 @@ +ca0375ff8413a414d7f3b5b1e75664e5 \ No newline at end of file diff --git a/inherit_graph_38.png b/inherit_graph_38.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc9b1b4c55e8ac0624235270fa0f798b2de431d GIT binary patch literal 1825 zcmV++2j2LJP)2n2sFM?<)zoMd<)KnT&9Y=1ilUILi}v1T zN@SifD)CS#Xcv+sWL6hSWC?Zgm2@I+iV#aQ4w zg1>i?NF>`N63JixoGg)_VSIeN6!_P~*mov=qo}B8)&+_D97RP%==J*V;?gh{YRQOGBQF%MFpdyqW~l(CQ?>b zHpi-dOnrSlCX;Daa!*>F{tRhpY1G!%0R-+? zGBU#M-Mc4km&s&2efsp5=dm?5F|nzs2`48fl9H0>>+2&gFONHS?$FfKgq@w8EvEP( zzP`RT$+KX=0yL3JndVv9Xc*`g+uAH5nNhxVpLmU^bh{ z&(G)Cvu9{D8V(;mY&CacVj>|SA%uj4Oe^2m*ccZsT%fYD5{*W~kt0V)PfzE;g9ny1 z06054vv~1hOYF>+WBH*W4U?r zCXtbm`1|{F=+Ggnd+cO{hli7$olQnY2HxJ@gocJvUH$b9n8{>f$BrGWUAva!$B*OS z;6Oq`!go2$W;2P2iQKw%i`?AYUp5eIcqLBc_U+q@kB_ry(bkU5}KQv@$~crz`?!1xQYp#F z$=KQ1v1iX71_lPK#`pL4vw#17BoYY~6%{x*I80|dr^IF^mX?;%*w{#4Umqiua`!O1gmV(O1$A^T31blsc*}i={TCJ9Y z2M=0}Pft(B)zy{8#ztf^*|g@I4mLA!>(;F#B_*L$Dp|K~9V(Ry0F_FGL?Yqz>C-3_ z3ac>_jhU=yP^nZ54Gl3gG-Mgy)6+Aho~iN;4-d0&;lgR>>+kPp+qP{)Mn)1B7l%@* zkwl7Q-?#Gr4i&1}9IR=pr8PN@$qpkUc5MC zot~baXfzrwU%vcP`96I3KzDaHnVFgF+qaK^fB>tP(G3j^JbwHbxm=E)pC55?akR9w zSp7iMYBd!V6;xGK5fv4M*=(NiIwmsf5BoBijMCCl9zA-5i;D{Z0Rb#uzMOaO-c9RB zk;~3JTC@Gz10)qSb0iNlCFB<==2}a-zJvoVK<$!otF)ET(2e zOiawbV`F25pTS@-2yfoJnX=#e_wR+ex;mk+ug@x8S63$(jYi9Nv)L?^mzN8JgM*gX z;NYO3*Xsq7$s`O94-4hx<-*9wh#&}ppx5h#PoF-`D4)@26soGK1cgE&n9XJ@UCqtS z!mC%WtYR%KEkadQmC)1EBXo3h2ztHVs=d9vU8t$45k7zZ{KGX43=9b6<>i9OWcu-@ zO`x!_P>6|%xic#!{%Jga{#^L@@uMIJf-pQhEF3s+KnMv5nPXK`Gnt9A@`&-f}SG7xz!<5cvhZGf@zPD&RkJphaXFNTt#bbFD!{L_|bH + + diff --git a/inherit_graph_39.md5 b/inherit_graph_39.md5 new file mode 100644 index 000000000..2f43546a9 --- /dev/null +++ b/inherit_graph_39.md5 @@ -0,0 +1 @@ +7164764369139aa547062683badb0ae9 \ No newline at end of file diff --git a/inherit_graph_39.png b/inherit_graph_39.png new file mode 100644 index 0000000000000000000000000000000000000000..14ea7bd832d96a15ff909c9d942ae62344709135 GIT binary patch literal 823 zcmV-71IYY|P)?G!k&zJ!3kv~oyWLo=RvA-CM~VTFNQ8od0=!-?@pzoMxjEL> z)`&zR-uJ!x< zsH)2S{XGEd>+7hhN_TfR^Yim05(!x{UyzYCpt!ggMNzoEz6R3k)@rrV+1W`?PY<`Z zx9solGdw(u$Kyd!6ecGp866$P>2%WH-;b{AxLmGG$OI&nz;jktS9y4NpuWETkNrNM zkL~SkTrL+UCnrozP2q4jxVgDudU~2*FqkTv_V#v)ii)_ryrjImT)I|i256eb(a{m{ zc%0MIQ)Xsnu-omg<}WQRVYAt2YHDI=Xb6C_vojKj1U{cHEmsJ^`T6<#HlU@Y1+Ujj zUS1wmRaIClmN)ZfXJ@IbtmOFkn7zF{91aH-iv=MB-|1Ha!-I2=aTb$WYyIXpbXZnslYQ$r{eVq#(fAq01KcPuO{(AL%_OKKWf-w8&e zQTqD&SXo)2qN0Mq!9f}u8&OpiMN!Z+jm^zXN=r*=Zf>Teq=aZRilQhP(Ie#v*xK59 zvp*ONrrKp?Wn5idrS)r?mTFg5SEn{re;Z2%AMPw58`A)z1sIKKfYAbs#x%fa0Y>xX z4S01U^xAjy&&CS_lF8&Qzy6?nI)2}qiHV6xil6-+>06<;r_KNX002ovPDHLkV1g}$ BdMN+^ literal 0 HcmV?d00001 diff --git a/inherit_graph_4.map b/inherit_graph_4.map new file mode 100644 index 000000000..bebf43f3e --- /dev/null +++ b/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_4.md5 b/inherit_graph_4.md5 new file mode 100644 index 000000000..730b8ee4b --- /dev/null +++ b/inherit_graph_4.md5 @@ -0,0 +1 @@ +d094dfe221f590f1557a5598136f99e2 \ No newline at end of file diff --git a/inherit_graph_4.png b/inherit_graph_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe7424b4486b1715463cf9c96b0c1f68eb4adce GIT binary patch literal 1995 zcmV;+2Q>JJP)t8sI%2(mNrEsvwSI?FIno`?>@Ni{xsd1 zvpu&xJl6+yaQ$Ac>$m^DyZ*mx`vVLHgTY`h7#k07r9q)k`15$Y-5XI1W8>lT`NL|p zy8TC+>&hS=kGGr0Drzj*=xs;a6W6bg}; zn21fAHm&bXtOuo1DL--I1UZUMrz4R_L?1tXB%x49qobo1{?yb|dj9-5Hy$4!C#h6Q zv$L~QT3Sj1fq+6nLP#o=l1il_A|kWdOlq~7($dmME|*hHO^wBz2M!#dGiT0ltJfl$Di52?+^w@#00Ao}OM)uC1DX z#AGs2V`C#7J$jTpJUnRk?%mYf+-&z+rlh1$PEL;9xVv}nQba@q357yZC=}G%+Dc}# z*>0XKZr;2}N~QAOD>dP?olg`b}vl9G~8Qc?niLID6cb?OuL_k0Qii(P0Fc_S+ z&MMZklg!P{k*}{Weg6EJh=}_7`Y13k&_dNBk%*d_nz-@s@Gt?Osi`R+8eP(h>>^3M}U4 z@pyRq_ATP$u2?L#T6a=X5(WncasU2(OixcEBO?Qe ziHX>}dGori!&;e{nL&MhJ!)%f(b?IF^z?M6?OIL|iCV2jd3iZPLP9uOdwV<7YBeVk zS65e5tg@pn5tJy9qD?@j8H>#_vaplStyn6L&O}W+@N~u%| zsZ@$jpFW|kt`66(U4v4oL~?R6GBPp{7Z(RU-#K^rrKKe_Ha4QRwiXQy4cN777cw(5 z@!-J&czSv|WevayJ&8`ILw|oia&mGYlgYT3N~OZXhYvA2Itl;~i^X{Q^eLBDRaIp% zk5DMYz>DwRSe zlOZ-X7J9uNLZJ{ZUcA8L$B*IW=7z|~NaW_`qPMpfMx)VguC$)NDKIdQ z#A30<32Ei&hKOirXo%e1-RaSzM?^%_+uKVLiG)NV5lJKx+PZZs<>%+q^71l$`0#-e z5)w!x5>ZrC6nS}hQDI>rH`mW{ZPolU%w{u9Oib8~TWe1;K0aYjYdO5 zLqk@527`h0dObHb8jYmUXlP<$g1&wGMlCHZw6wIu`A0@Z=-IPp7R}<~;v)6*^w8_q zuPtJUi1d0r_4oI$T34&plEGlGu)TZtj=H+KXl7<+Rs8$+@2Ru1)8+^Gvs`O6|0+E_ zJ=E9N=d}6OiY<|>x~VFaN;!|m`-44C^8d%*&y(D(s;aVh=!pGy!>|hz3BxW-Bn-PS zkudDSM8dEO6A8mEOe74u*!=G%H#hg6tb_3zvq~gH^dA8K+JIUZzX5zce|V#7U@#aA d27|${#-H5cY&r=Vi2MKm002ovPDHLkV1h>o$jJZz literal 0 HcmV?d00001 diff --git a/inherit_graph_40.map b/inherit_graph_40.map new file mode 100644 index 000000000..d4dd951cc --- /dev/null +++ b/inherit_graph_40.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_40.md5 b/inherit_graph_40.md5 new file mode 100644 index 000000000..e491a7da0 --- /dev/null +++ b/inherit_graph_40.md5 @@ -0,0 +1 @@ +1026827ac8bb8bb58f5caef9b2f322fe \ No newline at end of file diff --git a/inherit_graph_40.png b/inherit_graph_40.png new file mode 100644 index 0000000000000000000000000000000000000000..920f82eed24f43d971c41b947c7b902845a83af0 GIT binary patch literal 2052 zcmV+f2>bVmP)!A_N2saxoeM zXc;6Jd@w2?ff$1}M#TpSl~EjsdSjf3F*Io)SOnTcP=dB-5EY7;Ql-qpx(|etuVR@5 z;mbY0x3l(M>-^W=t9$QrP5~Ac78Vv37M7)l^Q%E567e}4j{j1KVOe^(T<&LyL{j@t z+sa=%aX1`*4u^B^@5y3WPK=L_{}({iKW$TrWDRK#$i^^PcU2Kd#-OPnkr%s{1z8(NzYHA86Cnp>`b_}krt_u+! zz{JYHF`}Pffetzia=vavG0D!Gqw=S!JQ>)eR^z=k!WhM6S-w%;U zgr1%r2!+BqtpZA=5*m%hz_#3SU67Ro0Qh`90s;a60K0eZhN-D3UcP*ZsHlneGHGdP zsI9F9m&?V54I2;_7l)lYcQXECV`I2_^(v~XtHI~4 zP*4D=R0 zLTG3xluG3k9p}!S!~6H|aq;3sl$Msl&CLyYd3kfrRU{H2EG!JKU%!Szp#YD^LqhA6)A|hX3Un(dlVEQK|C6S|}Bi*@khsw&z z$j;7=PM$o;v0olZwY69aej=uxJ9 zXlRIdJRX&om(R+dh$tc=f$==?ca&vPTdsS5x0iaKxKK(W~KA%rHIXN@xAR_Ye z@}iQG5(EGFcQ>-Kve4SvYS6AysgR$a z50y#dYV z@bU3s+E=Ywg)LjQ;N81-;Pd&j^1pH82KanFyuH1VnwrY=H8nK_0O)kO-!ADooepMZ zX3VuQ9kXG!xw^QxFzxHstz&ddZm)mBf;|FHo=KvjqVVX^Bb1hwLMoL40Q7o2{Qdnw zL`Y0bL{?T7f`fxGFfafBu(Y(q;NTzz2M3vWI-Snwy{xRPFgiL4yFL4QvuCk)?_T)$_!xXha&d8it*tGtUAqPV z7#|-;Zf>s8_|DGGu(!9zrAwC>n^-J{i;D~F?d=&`Nl6JaL2|hq4Gj$l3=Eu=|I?>W zQB+ifXV0D?CnpEd(b3H0tX{nuX=!OVfBrmVG8q%&({S`nVA{XYBi#xqjCNEbpyTA={R`sAWob(frk$t!qd|ed3kyB%Jr`@pMz^-VM3@mQb{V6in(rSX(72>PCA{AIy*a=)BGg;{r#j=Dygfhi-v}VNG6lf@bEAbtD~dC zp#SjjFui^ImYSQJX=G%?psk^yfixNo_4f9XLZP7V-@i}MXUzY@hYwU&S7*@o=g*%c zlgX&Bug}0fFfc$0g@S5pYe}osPPvCrD5P7rZcVG>>({STQ&Yo?$9!|0WNd7VWHK4` z_xDe^*K{oE(+!JpCX3|XfUzQ3w%=}8mJf?|CSjSNu&@xewzf+xkwn$iJge?-588LcrO-xMun>tvQF;j|!h~xmGmp}{4GJwnFeqL$~ iEG#T6EG#T6zvF+C8z6Sb&S07V0000 + + diff --git a/inherit_graph_41.md5 b/inherit_graph_41.md5 new file mode 100644 index 000000000..3966c6a56 --- /dev/null +++ b/inherit_graph_41.md5 @@ -0,0 +1 @@ +147920169f9d58f9cf178f8371cb8e9a \ No newline at end of file diff --git a/inherit_graph_41.png b/inherit_graph_41.png new file mode 100644 index 0000000000000000000000000000000000000000..7966929b9ec87642ff52007fccbc5d6265f4e205 GIT binary patch literal 2031 zcmV#x}mLz#Q9+3bPR($Xj2 z$DAe)VzF3%u~@AC&73UCTxNWH{3ZbD_c068O;B1|>Tp4nxlL(lDKr|5MVvhgS}1=w z)O3^?hnkKu<51K6i^#~xKtn^rY|C&sbHa3UlGQZf-98{r!=dnd#7ZewWeFQN+Z=Oq=I$ zIC%K*;S4IW#4e`m=;(l#mlrZKGx6oi7gSVKV8ezD=uk|j&*F~tvAy?V97=jiC@ z!070x!{@Puk&zM9)YO2>Wv4+5tP64gh#O9wH+n0RYj_(cp5qP^naqO8@yTSX*0*y1F_TjYfor zha)R13(n5YX8GHi_`W-rn%=@Gy%_g{P+{ii(PmmX-#oREngeBt%3+Ol#8L!6AD( zolXan$z*nyJ9X+5jvP6H$jC^@<#IGMG$1iCk;yBSN*p|R5Mg0q*t>Tx>g(%KUte!i z?e}{jp-_lRmoDMWn>S3ps;UYfK73#dXRTjbTN{#-li}jxg6!;UgocJ%tg)@F4e9CW z@bK`!fddDi)oQV6(x=B{Yy<}fqpPb6DwPURQBk&D605|=$3v^tLZwo{%gYN%Nl93~d^wa# zC3<^%?KaPpq^73I($dn%&#-077UJvcOGF|O2@4A&uCA`6q@;w&fBN)^I6FHNjYh-7 z3(e0)e%Rn?U1$j;6t0Lbp$yNOz@Cci>_e7xD5wlY3GP8u5ye5=}ihvDI2)YR0Vva%8_EiFh$NU-Z&)ggO2KA(@!&``)^GDJs5!`J$jC^9hlfL_)4|={9f5&?2nh*+QmKT=WC8&6^z@*$wbg3vR4iDq08*(G z<>lq5tgM7wE@yJT($Ah;y?T`~UUPFZ)M_<0Z{GaFnu#w1EiEljtJUD~cu*)5IDPuG z-E^g=rz0;f4+4PzJv}{m^ym@fa=G0N2RQKK@QD*A(B9sT`}gmI!{OlO&6~J$=MMb* z{2&wxv3T)fyn6Kt91aH@4hPlM)o5yJf}fusR;^lvgoFfmdwW~0osQ(>WL&#;4TKPE z-MW>D|7t&bv0}vvgoK1(&6+icj*do2NeNc2TxoNCP*4zxii+^^(@lBR+Hi3VTUT|c#2P2RtM|HCy-9%D2bNmEmkS&d$= zH>=_E`Q-Zb>ttkPgtWD_k)fd>o7V9=baizRyDb^`3FNdF>-)zg6b*SlPkhN>q&bEYq1@!SsnQ^G;C^HT<9c9L$rlZU_ z)4oXT-@kt*bx{5wEKElTX$G)k7PL_2AZ#{!V74_-C=?2XLZMLX&)+eeq>CJSB|HEC N002ovPDHLkV1kXN>FWRh literal 0 HcmV?d00001 diff --git a/inherit_graph_42.map b/inherit_graph_42.map new file mode 100644 index 000000000..1b2290bb3 --- /dev/null +++ b/inherit_graph_42.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_42.md5 b/inherit_graph_42.md5 new file mode 100644 index 000000000..e88d37c53 --- /dev/null +++ b/inherit_graph_42.md5 @@ -0,0 +1 @@ +106e70262d883ea306c5edc4d27e5585 \ No newline at end of file diff --git a/inherit_graph_42.png b/inherit_graph_42.png new file mode 100644 index 0000000000000000000000000000000000000000..8851f5eef0033bc9a2f44560e62481ad467a3c29 GIT binary patch literal 1670 zcmV;126_33P)e0;)c)UE z{GWp;ipr-b>hGDe#S#vFzrO{*U;nL*3Gp{3lPT(kSi-|(GNH4xb4;C{1urZSh7B#6p6m@lV zFq_RtO--G4zvs`NLoSz3-`E7ac<}=3*RPLS|8R&%h{ui{gVX5*03;X*%v)SA_gK zbSdiV>yeU@0*yw4Cr_S$5E538P>IUMrmL$9KA$gOZ99GXG>#rU3b|a4%F0UE?RF@Y zN&rAbMFpf%DROdhU@#a^SXju+d-duSbUGc<($Y{Wx#4GmBz6xg^mYHMqmxxw^c?Ao;pFJHcd!{Gpz z%Y{m%!m3rPpx5is*Vh+vpDCfyXi5(rJV?T!xVV_4rKJ&>Oh$5ZbIGDbi-^%^Wb}_8 zKazxm1k%~r$<#a^4@pc+ByP8x5JJe|!-q*#RaHRWnwlB{fb8DAo48!AusmgDWsw61 z4luue{`^UJJRZ4z{W=*O93(VNlV{JKG5UiC4@i7`Jn?uuL3Kh1*|>2dF`LaH`|=S;Tgyn>KBNR;$H_4eG}{25B65+x-iSg>G0NS>rpDRZ2d zn27A`Z1nW>fY0ZHrfKBn<}!L-ULHnAN73KkkMG~VPpWU&upy-L|K`h=FSvR0CahK~ zIyyQ~US1ybDH0A53-R}w2mo1GS;)-HL}_U$HgDdHVQ*3SO@lckbMQ)oO*^ZiiGVg-WHuty{N3-oS-QRMte1 zNQ8a+_Cc@L0|3NgF)}hT;B-16lgS{L%TZ8JfUd4CBqt{a?Z@SEq19^9(a`~y%LP84 z54Bp2GiT0BI?rOUFhRDpwZY|bp{S?`VzC%Pp%CZKpJ&DzjYdc$5(tIDpn51&S68F1 zt`6DR+34=>#-m4%P+3_S@c@A+zU-eoc@iR#2>0&YLve92T3TALXU`rqH8mkMH5G2R z8!D9wadB~B^%aZ7ICt(G&YnGs;o;#)$4Vp;WMpK3$K#>9yBkKM5o_131prvBR+N{Q z!)CL==kvku_oKPF88l6Urs+xbP^ho3$MWUN!@9Pq5|I!a8XAz4loU`~v0??<+uNBt zPa=`P>2zXXU;u-IgAj|w0e9t*BS*s8f>RVV=_|(N%a@gjIU-h}6$sQ`fpg}83rx^e5{eU=gk1P}-W zW9ngVhq5B7z3~& z#sF-HF~EfHiB(lqGwFk68jJ~%5Yh&qY! + + diff --git a/inherit_graph_43.md5 b/inherit_graph_43.md5 new file mode 100644 index 000000000..329f18606 --- /dev/null +++ b/inherit_graph_43.md5 @@ -0,0 +1 @@ +cbba8be594492d5503d0bf27cfd13c44 \ No newline at end of file diff --git a/inherit_graph_43.png b/inherit_graph_43.png new file mode 100644 index 0000000000000000000000000000000000000000..185121b2d47c9e83024cbec04f7fd1dc1b74f697 GIT binary patch literal 1934 zcmV;92XXj`P)zlv@|ae=}Y(%QIm{Y6cl$DpHbZS-}ia8C|C7f{JOT z%{Xa6gOpk^G?`?U^f5>cL4-PGX^Pzl!$`?Xr4d;o3Kc||W!Ddl<98y=Sp6&pZ!ENJvOXNJvQh`;dKW&}y|lGMQ}2uMi{gdn1IXD=aL0-rwf< zZ6ldXwnQeA{XKrNB>o_xfph&00}ALXr%s*v>1rhY9Q1nqckS|V)*jC0JyrkGH1>lQc_X~2net{Ms;;HD^{#v{rdG|A<3#qCX?af;)0i# z7fY5bAv!u5H#awHJFQlWmzUR=7T7n)ALQ=cyM%{_+t_|~&Vqsh6bc1uwHg-}m!Fzz%(gHeA0JdI z6{}aTrntD6j~_o$TU%?>rmU=tgoFe%8Vz}Qd6>;+0QT+MM`>v(6%`ezR4PuNK0P45 z#bV*=)vLtD#^UMeNkKsY9v&WcXtyZJg>v{V0>7e6wcXuZzCkIbYPjosRw{G1+2r=Yb{U|@> z4Aj!ng2iI7S$z&2I>eqmdr+xVBqb$LRaHe?TpR$gv9W}Og|TqqLQEzT5fKsAe$CCz zq@|@XW5x^&1_J>B0X%&8klNZ>n|Agfm&?h_%%rKQiD%EA0dVi$Jzl(cVQtgY)I?%p zBF@gv7z_r2f`W$B4q!AI*|~Ekp`oE9BqUH-SxIGOC7U;I#@pK)jYfmXWJ0Ueem7@o zYAVN$9Ydqhuy*ZQOePb1_wKdPw0-+_TwGk(v113XUcExCRu4MPO`A4x|NebyYisfF z@E|@up4qc!V>B9RYik?PoQ)WrP8XG&oGeB{WMrh6F=K{MDwQHMG*nEUJXz%C=34!4 z-nPfw3eF}U7Zj@h((JQiGqRxtAGCd`8NHA)85_PEgT&kMNLhOO`cDmJ_#X&2nh)h zMMXt6zWzC1zI-X2w3m3uAHy0$99wF}rr{qN}Tmg9i`N-rjEYJ%0Qc zv)N2qTAEECnM}r$Cr|M8_5E&4jYdO9M+aqPWxRX$j<~ou)M_;oCrg;o;%*_V&`=-cCqJ2mt>6{#O6g zsZ#;y>FF7E8-M@)Jr^!qproXP`ucieVq!+Tau3Cr70}o72EhFJ^9c$HA}T71<;$0& zP$-beWMpP$4mi{W1qBTnQ>j#`ZZ_Ip5?@e6XqV*f3?v6ncAm`S|f8fBp3r z0B_&EwfgLh(;u_h%#|xwC@CqSs;Y{xurT7|<0&sMxBH@EFF)lBUP zkt0V)PfusUgb8-_8BV*OpC5sNff$WOEEWp@t*x!r#~KQS!n*1W7T?#`m*dBeTWz_y zx%m7054tiBM@mWx85tP_2M5#I+RDwFH%UrL8uQ|TFowD zdGk1V@}y0CCnqOLN=k@{iQ(M2b66}E`uh4ffByW4SJ$uP + + diff --git a/inherit_graph_44.md5 b/inherit_graph_44.md5 new file mode 100644 index 000000000..f2450bf18 --- /dev/null +++ b/inherit_graph_44.md5 @@ -0,0 +1 @@ +72069e62a3b6bc5a63c9967efe11809c \ No newline at end of file diff --git a/inherit_graph_44.png b/inherit_graph_44.png new file mode 100644 index 0000000000000000000000000000000000000000..65ea947c44d21114fcd428e3f828018766ef1c30 GIT binary patch literal 1525 zcmVKO+zxwR^132QY4MmdbxXI zO{%rEv_T?~Wk_oTR!ASCvBC&H^!ONtG^#I2kxw|&G6FL~Bcm5Bv6m0Q(DVLq<7nD! zyInb+uHUDf$90^?`RDpyJCF0aKt@JJMn)zvNMi#Iha*Fhq(7!Y%uDJ5#7|JB^PcaMsS3jBUQ8jWVs^-4=iF_}!5Or`{= z`?Vy*l*5M)6AT6cNKa2^(V|6^l$4O2ogH(H+qZACZrwUIZQ7IwNjMx1=FXiPbH2;v zV)N$B6crUEWc|sIknQX7yoR;%&*{isx`sCr6EO9=!5;jzQvpsA?|uh)y&Y{uns@$%(M0K8r=-QC@sI&})8 z(MV}&>33_+nl+2+>T1+#HBP6KyLay*goyiI{fM8^=sP<*86F;v=nW@MoZ!%*Ll})l z>~=eWKmeP~27uLSMX%SBpP!G%B4Hk<9kH>?<;rMRNty{P9 z@Zm#RT3S%4R1_B%vvA=;s;a7Z_UzfD?%9MmozCt1_U#k#uzvk|q19@I!C(+8SFRK@ zX3P+$PoEB79~>MM)22-m?d|R1*wE0BNKH)@Jv}`_2q6v}I3QduS47>ivN8dPojZ4m zwzjsoG_6{-O8EW$@HjU&S5#J3hR3g7y%K;J7#I*j2(egwtU1On*wdWwsSxpwVZ%!ia%_$fVQ$&w}P-o2Zuswx0fh1>0>wY8PDwl*>{GH^H?c)i|)X;vzg3=R%Xm{U?x zLPbRd%a<>wtE-FV=4R}6dqNF?pZG?9?AS3nIy$&@>lP^~DKs=RaQ*sqGBY#L>-DJB zYF@l}K}t$WTy=Fi9Vbtoq_?*hx7(dCy;iFgkHk|a&o z3(lQ87xA8Q;lc$nGc&{E)YMd(o14*UwE)=dc8ZFM=_V$&e6JmMvTM z-FRMJ-ndw1W@g0A8D;U}#fgv-b?yB8{D`qap$PZDQ8XG&LO$_KmZbV1Df2h7DM^TI zN)jTQl7z^nBq6dXNr-Gp5)$=2#pQDSN*yxaFwPVq#Q%VQPl1--5`{w1H`N+sWMpJy b{(t!kV!E)c2lBP*00000NkvXXu0mjf^cnCb literal 0 HcmV?d00001 diff --git a/inherit_graph_45.map b/inherit_graph_45.map new file mode 100644 index 000000000..ed9cdd203 --- /dev/null +++ b/inherit_graph_45.map @@ -0,0 +1,5 @@ + + + + + diff --git a/inherit_graph_45.md5 b/inherit_graph_45.md5 new file mode 100644 index 000000000..1420d969f --- /dev/null +++ b/inherit_graph_45.md5 @@ -0,0 +1 @@ +a09fde5e74c0343d75245dbc1e8633a4 \ No newline at end of file diff --git a/inherit_graph_45.png b/inherit_graph_45.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb67f5e1fd39d52047f725f2e4b06b652151b7e GIT binary patch literal 3911 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_46.map b/inherit_graph_46.map new file mode 100644 index 000000000..11605026b --- /dev/null +++ b/inherit_graph_46.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_46.md5 b/inherit_graph_46.md5 new file mode 100644 index 000000000..b3c3397bf --- /dev/null +++ b/inherit_graph_46.md5 @@ -0,0 +1 @@ +fcfc0f9490f54351d9c83870abab05d7 \ No newline at end of file diff --git a/inherit_graph_46.png b/inherit_graph_46.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a40dadbfc176f5f3988d6664c37348fbc2ae69 GIT binary patch literal 1318 zcmV+>1=;$EP)s&U<00006VoOIv0RI60 z0RN!9r;`8x1lvhOK~!jg?U-*!Q(YX#KX=oxVJu=oP4iXxJPn> zQm04*MJg*1H3cc6*9~6;;)@=hi3W;@ln5?yVr4}BAuRA!^oK0)MWW|<<(}4*=CiwQ z=>5FAzjMy-eDC+3`#bksP*G7)QQ0U+KL^Un%8ZgEolru|Mnt30%z3@ukso7mKX;NO z>4YRnfB!yN8=K|jWgk%ZV=T<{6}(<=%mr<9yk0NkE7v0_6%+Jr0m6b(RRTc5^@!Ys^1E0@_5Q3?xDO@fWrKP1I`InZK7#J9!y}g}B zj~*`yg$r1%Rx&d)X>4pHJ3Bi#?!}82 z)YR0FoSaN`bu|`?g;%d$;rIJP`bA4YK>^R7KgaL)V=x$Sxm@hsyO;X{qyI~B0fG|jE|28V_&{}5nHxw z5wo+iLI@!)U%o6VDk?(qR##UGKol1ji?Ok>b!l3mprAmMmX@x2-173W7#bQ9XV0D$ zfVg}2?z(f_zkgr2-R^&W_E@&^a_rbKJRT1pK762|p@BDV-UQpGrlwe2T%@L^CS;5x zNlZ^qvuDqqRdb#{f1cUdS-QHqn4h1=>2#8to6FX%Tji3yDqp{TrL(h>j*bpSM@K0t zDw6fBib+jBeE2Zw>FGEe4svpG(ChU`lEn4v*TXic^z`&KbJ}b+Y&IJoKYrxl!-w3v zcMrGQO@4kpPN$RX>})g|c`D@M;v#*0eROnm(A(RK)oR7%a?#!09q|SqDKV+(2M!$I z;>C;9*VhAJHk(OHOCt~nV6)k<+wEj!Wic@^fnKlwWxka!qtVe(#>U1l8jX~dm2vCV zE!i|zR#sA5TT4bp29uMM3=R%bQc@zj;Sj?UX4y#-S~Y&;$dRy^$z;N0GKIzW@82(nlrRn+JQ$O_(eOw8@Y*b> zrYnGIx&o-CD}ZXc0;r}dfNHt|tofZ@QBm + + diff --git a/inherit_graph_47.md5 b/inherit_graph_47.md5 new file mode 100644 index 000000000..24d7e21be --- /dev/null +++ b/inherit_graph_47.md5 @@ -0,0 +1 @@ +e0888656890384f044d69114769878ac \ No newline at end of file diff --git a/inherit_graph_47.png b/inherit_graph_47.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2cc6401d9757584dc0c8b89b35775b3248cd95 GIT binary patch literal 1520 zcmV4VPC%UKHIlgrY8lw^xWFg9sA)qp*35<&9cIxN>U)onf+A^Y>o7_~dcQ z{&>u{@qF&i@Ao{v^L?K0&N;tx25>kW4u`{017UtZk|ez#2)kB73@3Rs8jaWKboR}S zWzHWY2*NHw5dQvsvN%g&W@e@nK>gfUjH$CYoz7(!#910nrxUU)$HX-&poO!{a8uI| zZfY9BO-)16##EclhOVxzm6q|pVA1Y38P1(M2baqQ0LaP7!G;YR(A3m~O`A5UQ9dCg zNy6H-Yk%AM)WTx1;LxE%*tc(=YBg24Qs2FMhrGNzI2;Z%H#Z{?2w>;VofsP%Q=@!B zY~8x`k2F=5W%&JmRcoqt`_=395JeID_wUF3`}Z+5HH9~C-YCXAeE1MYj~+#BZ7tf` z+7O9ESS}ikqOGkBMxzlnn+>~=e9YHDD!*$@Z>(A(P!v)PP;2M?m7qa$YR@oGMP z{1~mRtuPvmuvjb@9UTP#w6?Zlcz76BuU>^Him=&iDewPWmgSl1@pur8Mo~~uz+zXf zT*2A1XCaCrPMkP_uC6Ya&1ROjTCKQq=MKzfGb$=7U^1D|)6>H?sIRXN6B83`{Er_$ z(9_d{pFe*B00ssI;Pd%dzQ4a8$B!RJc6K&SpFRzP!4OwNe}6xknwqd`)hbx6R=j=t z7Q1)v#`*K-QCC-onwlCkG&CrFtclcYXlQ^|tA*8SMIaD>(P#t!96o#)1qB7Dt*wQ_ z;eaGbYFVJ9v9Zx~^5jWMhP`|DQej~sRaaNjwr$%eH#e8AUAxBeC+B|M~N0#kwjg zD(LRryK(n;A#UHkO^uC>|IGJLl|~5wcI?=J=H_MugF&>kwBW;s4=gt{G=xYbf-`5% zDCP))fZ^d`*s)`<+wA~=jT<*&^XAQPxm>8Ou7)UzsH&=h$K!!cr$cFJDT<1U zaP#I(0Km-53~t=Gp{QA0T#Q$*Ua{l$_V%PS#nX@qYSh%}bQm8WPwD)Nv1}h7E?v5W zfq?-$d-e<&85!v8?8K8NPf%1;gzek6BR@YMpFVv;Mn(p*va)dR-aTBuejQu3Y{9y9 z>l9Zd0NCwz+`4rO<>lpAzkWRefk0Av;%P_)HEJF?as&>C165U3s&&6Hq|zvPJRW-g z{(VebmSq|l8BxSWM@Px+cGI_S-(tp3PfwF9%k=f@SMvFMiiU#dzb3@xa#1iCq;NP) z-QC?3iA31B#>U3jShw3ve!qV~y^Cp>KWB1sl3u=isTeafG_>Ga6RjDIMyb2Io2I9y zS?tS~FZBBLYemDA2#YmJs+hVQEMzK2$zrCa&9`69FI4M()h0hbA4Ig$GX6;Tm70cd zQ_~P`Y8t{#O+&b;X~?48uf<~dojN!w5@RY6^#b^71+;KdK%>!kS6Tyy!{Kl^>B_%N WRXY091d&4k0000 + + diff --git a/inherit_graph_48.md5 b/inherit_graph_48.md5 new file mode 100644 index 000000000..851a7b304 --- /dev/null +++ b/inherit_graph_48.md5 @@ -0,0 +1 @@ +c4988a4c8e5b8835eb9618614d8e8631 \ No newline at end of file diff --git a/inherit_graph_48.png b/inherit_graph_48.png new file mode 100644 index 0000000000000000000000000000000000000000..3d875e6fc49d7e98742bb15686a017a4664e235d GIT binary patch literal 2238 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 M07*qoM6N<$f}VyRWdHyG literal 0 HcmV?d00001 diff --git a/inherit_graph_49.map b/inherit_graph_49.map new file mode 100644 index 000000000..0612db201 --- /dev/null +++ b/inherit_graph_49.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_49.md5 b/inherit_graph_49.md5 new file mode 100644 index 000000000..7f5d5238f --- /dev/null +++ b/inherit_graph_49.md5 @@ -0,0 +1 @@ +5e21954f6a07333bea5c071f37a01888 \ No newline at end of file diff --git a/inherit_graph_49.png b/inherit_graph_49.png new file mode 100644 index 0000000000000000000000000000000000000000..2175d4d685c1ecea49cf43bcc07572c5c0164102 GIT binary patch literal 2487 zcmV;o2}t&dP)xatYe@sVLA|^#JPwUDpRJ0 z4KuKEQI{=?D3_5{;}&u8&lwfxC7LX+TbwabqmYm#+RCMbIur%NHbLd$N_8Dxfc@S- zczHr^T6`tL^F8O`^mj=MAR{9qBO@atBO^1mD4Y#?y*^Z-P|ST1$;iCi z2qBCI4jkwhX`A3YNTE>7RVWny8N0M(WF%Gt$444m8g!U_`}RHeY-D7H$;-=gYgdkO z9x^hcLT*r*agE%dGUJ+;u0i#BJ(ZP}9{n3OY~b|i(_@y;SnK`U_*XQjFMo;k_4Rah zb$RqRG&FGM&K;jC;f_xF>KkU)NZKEc7k&lJzO*1WttKKS4RQd3hM##yaa z_U+q;$z-Cxzn`e6DDw03dE<>Yyw-9Td%QhspUj|_FJETr)TtN@1~zTlM0a;LiHV8a zzJ1#l;fafj8&?l)Br8^|;NZc7=yW=Aa&owT|2|1cNzWY5xmL5;OlN1O!Pw@UZw^?H^qTZY+e_DXMLt=qS6 z=lb>Q?A*DN!-o$O6&1yvJ$uN>$ssyAnzLumqErseF)LTDM5ED=m6gTszyHqU$&;U` z?J4$1eE=Z@6%`d!RaK!-C`e6BB|AIYp+22XM`L3n_4W0r)oMyhOL_hE*F8SZ(ePaM zpcadT!NEa7LP8|lwr$(kym>PzDJkUS&Ga0TB@qeER991Ox<7 zP*5P7L;?77Xoq*REabwcf~DGcqy= z2?-%RJspF=fL^bsy}g|a7cNj(SSU5;Fk827<=(w}oH=vmsoL&hJL|*H8)nz8U8JX{ zvuxQi3D*XKXgxPGCY&M%sOq@7Tw6(Q~#>Pew7#Jw}`uZfl-ENnD ze)rvXMMXu0i>}#h7SpCp6Go%aV{Qh6L1brVOV_cnv0~l2b<*{tM~{SBtrkE0@Pmui z)AANVh^ne85gi>Z0s{j@Qc{vAE-n^-{PD*#>AAa(kB=9J4jq!NfBEGX0XS%kBs4Ts zeDlpWUTHhWcGmCe>Jmz&Qe3)pN%B`!Rf!1`CJ39&CTWzElt})Ljt&8co}M1J`FSEY zH&?7*zkZc-Kl*HmPe@2$)22=I^z`u6S6^}C#tq4L?bF5dyl53CT`ujMPp+lM~)mJIyxG&*^E}J z9hIIp`1|_x@ zl>D#0`l^)2leSIX@?7?yv9Yntm@$J@t5&ga;X;CggHb3H6crUQY0@Nz`)16T0l=qFJW)Znrac?p(66vdGKJ zBQP+KQ>RY3Eb%s*&E6&vMl)(XcLWCqW3^hP>sMZR zh2r93cI?lqPn`;i1ULU2J#yj~_o4O-)VW%9Sgk zzrWwXH~c(@85|rG)z#Gw2VQURbV%|^gUWbjxJh0%?a|_?LH`w>#ml_BJhwfl%n%0- z9ANtN=`WqOuaFz`IrGjt@4S@SzCvE&WyUpfgUXC+Y|$}%!z ziA#eDA&duAMjzqbGY002ovPDHLkV1oC+ B?uGyW literal 0 HcmV?d00001 diff --git a/inherit_graph_5.map b/inherit_graph_5.map new file mode 100644 index 000000000..000e9ef84 --- /dev/null +++ b/inherit_graph_5.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_5.md5 b/inherit_graph_5.md5 new file mode 100644 index 000000000..293e48189 --- /dev/null +++ b/inherit_graph_5.md5 @@ -0,0 +1 @@ +22f72c05d33a580aef30d3b89a0c4ac6 \ No newline at end of file diff --git a/inherit_graph_5.png b/inherit_graph_5.png new file mode 100644 index 0000000000000000000000000000000000000000..737de6faf1a25d76e8088c988222f9c5078b2507 GIT binary patch literal 1078 zcmV-61j+k}P)_#>B?v;UFPiZMq9}fKI2?b!toi>e5(FVv5QM)zuPxsq z%knhv$IIHAP=4TWIDUCUzQ*Bju)V$grY`!Rm){;e6czMPRQR+|8X6i{SXj`+%WAc< zva+Iyml~fI%FfOX7Z(?rcx`QMad~;EiI*Dh?mqv8*49>BF4uQMe}5t)BdM;g#%wlg zVgKo963X7*9-*P3G&VNk@p#zW+{9wBu(-HLQBjc=ulQ6n2?Zc3DvE-F0szcrGpnns zEG;d)8;YVR3=Ivjy1I%W2v{r@YHDg;X=Y|-n46p9_V$+Y@^UIGD^FwSDbl`9}Xl`zPqdhu0LKHhfp(qM@d3mp%Ga8NF-)(Je#KgqlcDwQO^V4b!K*KHh$C^@DSV(PcEv>Ds zw70jbYJ-D=@pwGk-`{&{H#axldm$kqNRq_e-QBzIv)OFOvP?@$3yPv>H3skt&na%V zn~;zY)q9DFiNwande;wt?(S}ql9GsxjU^!=f#l?5>~=enBmr=6aNync0Zb+n8yg!q zola_NYrQ%x(0ol%6ovEibDp1{866!})fx;2#>U2|sHk9aauP|BkY$;vsVPM9`~NgC zF+o*T717brgolSC%QCaGv#)$YLql0#U#GaZn2L%D#>dAo7z`htMUzl^dV09Nz6L-P zMZ&_uh>wrQ-~S)`fq?-`CX@F%H#e7)lM{}Pjt~TagoK1w`qb1^c6WCXmC{H2?qr07*qoM6N<$f~Q9X>;M1& literal 0 HcmV?d00001 diff --git a/inherit_graph_50.map b/inherit_graph_50.map new file mode 100644 index 000000000..ef3b38937 --- /dev/null +++ b/inherit_graph_50.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_50.md5 b/inherit_graph_50.md5 new file mode 100644 index 000000000..d58294cf1 --- /dev/null +++ b/inherit_graph_50.md5 @@ -0,0 +1 @@ +76e850b350ff98384a22942c081a6328 \ No newline at end of file diff --git a/inherit_graph_50.png b/inherit_graph_50.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f497d865347bdb8a49f82e92407e04729c7406 GIT binary patch literal 1703 zcmV;Y23YxtP)#Q|%kazh|2!<(%|~%B5o-(y%Wn7<`Y|) zxtv-=k&gc0D2bqyUiLyqLQv9EA%+N{>%}U6O`BmQu0n=pQEiqR>Y&_q{a(b*uenWq zeocLNc0RApeO>ptc3t;(=Ug}E1~@o4I5;>sA^~Qm;pow$8yJT9V=0p1SUB{0{oR>1 z!At|gFn=%%^Vi~}#IcCXExwP&#>RzBg=0}Lo6XSc^+A2SMb3re9|R|U1jC6R!EoY7 zFr4@iOvv5--@)Z_L9f@NySp3H)6>|#eLE^EDgsCj-Me?GQ(PFz%gc*38V${tv9U1%Ks`M@es-tR={Ig|ZKcxE zQc@@s)Y8(z+SO_`wY9a;g$oy`prC*rJ$l5>FDWUZ!oosoXlS4xKYj$n3*}d<)%4)O z1FEa5quslAlSZSVk&zMBfBW`rQYw`p$2mDUB$vy{#M7%sEEvFGi$fmY?Pau zOA`|lA?q@kOjKH0O8NQuR9jo?w?pF@$~6aoH=s_JYL}P`09H0>>0+#$65RL@84lG8re0NS=X91 zYp`qAE+i)>FMbd8yib9nT*bzJI6k0U%!4Ofj~e;qtWl4si`Ru{MXpLDA9CWVKr7^!s9-KYyO}fB5i$0Fd2oCnBPekr6VPOsxOcvC(KG05m*2 zJZsHjv6#BLy4dmP=qLf8@$vDXb@li6Q*3N3xm+&RHaR&-L_}Y{d?6l>=a-YgU?71& zKn{l^XuSC{+mj!bo-dcnF)%QIj~_pxzrPeWa} zNVat{+kjZ4&xpOCqii!XL@7}!wkHA{n4Fws+lsHH#K*^n zjQ6|zcF!Lh8^g70*WhxwSli&>AnbNK#9}cvZrq5pv^3~+I(R%D0D#3}L2qww(0C~+ zDM(98LvL>{a&vQ$mzRf}oE*G-`4S?LXioopXlZGIN~H=qUbbu*YHMq8>Cz=UeE87s zzOJq=JbwHb03el0@#M)9))(sV#K(&lFVNZ9iKwV3WMyTcqM`y8ivU! zXlP*PU%h%2si~>#n`|NY?Z1*xD8%Q_pCOS*kdTl79*+l$#R8Q|1*K96KA(>}ckV!` zR3b4k5o_13h1csvTU%Sucziw|_wV0FNl6KsnwpT1kN~UIibIDEfzRiI$K%cFpAWNb z_y9nw)j}W;K&4V4CME`Au^7X{!`QlYE3RL^4&dh|R-sU!qoV^86B7Y#Z6@p2uZK>j zLs?lF5)%_KI5>!!ni{qx-MV!P2M!#--Me?;@p$0%dU5aGy`Y=Ua1rosEH5uFW*Fu# z?nw9Ff$vDSsi`SIYwq)I1jC6R!EoY7Fr4@i3@3gB!-*fkaN + + diff --git a/inherit_graph_51.md5 b/inherit_graph_51.md5 new file mode 100644 index 000000000..758b35aa6 --- /dev/null +++ b/inherit_graph_51.md5 @@ -0,0 +1 @@ +1412fe7e409492597612c5d6548ad02f \ No newline at end of file diff --git a/inherit_graph_51.png b/inherit_graph_51.png new file mode 100644 index 0000000000000000000000000000000000000000..c732867b7bc889df8151b20aa81db86928a7f041 GIT binary patch literal 2417 zcmZWrX*gSH8;-QdphU&e5_^r&L1HPb3=u)vw4_59wZ`^E5n3~vVp>})6-zYI#Tu=x zTEw)WMX6M@4Mm5FLG4scRcarq^Y)wT`}JMtI_G_Uobx=-dq4MmpEsT4;=D&@zYGKd z*>jYD{~4_L;5LUzfoHr)i~?As{E5zZ$k%UINlV3b2;@71qj-CFTEWMHkmE{Y`vt|E zYn61Pnl^g7sx~fAiPa&(mR^Ow+KUc@cIZkSuyo2y(cSLqnNN zCYpMj$UkRz72O|($h7Zv>QnnSSd&&#SIY$45S*UqqlL6b`|zNs_@^vyK)!hFx=sfuJLWnx_eiDV`HP_ z{(Z(rEk#8MJ3G4q>kCjmpKr&gFf>ugIO*lZn4S)V(Q(h8KQC!%@g~bFt-89nIJvng zWg%^(60q?i(b+spM)yHmTTN&JWN~p3o{q1qtlY2{(w6TM`0GLnm1;6MIXNx(@aa=( zQ(Psk=cY@(juC( zv$O;@CME`^lN=_hvtKmNTfGz+sqNw6VHB!iS}O+a>w-jOm-kmEz;UN*eNLE}nTeJk zg%0MjSctWezCI=xEiR}#JUkq4lvgk2&fO!qxjFE{hn)n=>~lp!7z~Ew>zn=hwF@R@ z1$OxG;kx?z#N!4IuC59&oycE*&1(vN*L?Xe?t=%$vD+*2ZgL6=0qcvS7r*RFu?KXZ zVcsQQFgG`c#Fv#FQ1^UDQH*B>1&Jp+re;yMc3xRzo!_uEg#a=L9!Jgfj*Ku85+s_h zeAzE0B?XBW2%O56?=mVY4K;p>L5Rg-3Wd_fPgNLF#w&Ll7#N_?XmUV6&sF6|H^UKt z-D>;xJrfFL<7~C)bo$cjYR6!$uXu6P=KaD#wyFQyuR%*R3`#EP%htMsv$JzeF<{D* zrl#*1+3hGh#KYq+@LxIwtPqWvt!7Yud~!0;*psIX)aYfR+R@SRm)X7ATDu8MRj#X_ zpElqwP*8elsczUvqoR;)oX?uAn!Zsy1kgyj{=KVzWMocwD20LrKmiZ&qf)b!51!UW zqZNHyuSlXk8`sp-XkNm|%F5n9%Y_aM44iGCB6mY2Mn*=KHpBs-(=u^YeCHIWw$?Q$ zb4vVqhS>bumWs53W^#760^prC;6!6R7%Ukx+f$s~)`krX4xaoxBTTz??KW%HZc=h$ zbzyLPd9#koO(-lxYG`P{_wG&1$$>{&YfR70-6<`F3Iu|>-+y-?k>KnfJKU`C?nBp#iZrvd z?6MTJZ0kJnJRXlgAjD&}<3ZBT%gZzDzLk|1xN>-P)_zPJMv>R^ukZQC-~ z?RiIrDl<1X5eRp;q~yyEoP$H3NR;NBt;r1^8XAJbc83kQgoOM6(^1pZbRv^=E?&GS zI`VLPJI>nLTKnKZ*}Lp;Mzb#ZDK-U|KBuJx$!4>c*4H~5BE~GPuULo&Z+--P zPRq`gz99_ygo4yX&ABu-HZq#JA4X2#Hvaxw7bJpUVfHRAStCVLhG4|e(a~uc84edN zaB;v0k%mS_xZq#|fOttoMQVS)JLc++hHDY#q(gbDsrkFGkdP3t*_4!&%6s?PfpdtC z!63(o6uhotjo0Hu4o8QTm&a*s)sm2q2;2TJP+iy10D6(+qjCuP@87>CS^E%)vhhrr zTYWcFy(r!Tgs&7e_d2Lp+0^^VZX%ILi;3}{e^d4i>%c($*{)l6`kF2F7^6!omA}cr zxFq-vMeh8eYl8m|NR8g7JUy$AB3b*|GgM6x0>teTeXXh$|DIC*dsvydv8mNFl)z#? Snn(m^D9BMq7kmxQFYzDMVtr}= literal 0 HcmV?d00001 diff --git a/inherit_graph_52.map b/inherit_graph_52.map new file mode 100644 index 000000000..b72dd731c --- /dev/null +++ b/inherit_graph_52.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_52.md5 b/inherit_graph_52.md5 new file mode 100644 index 000000000..ec8dcb2db --- /dev/null +++ b/inherit_graph_52.md5 @@ -0,0 +1 @@ +fa61ae5ea3bac596f464b00803b07888 \ No newline at end of file diff --git a/inherit_graph_52.png b/inherit_graph_52.png new file mode 100644 index 0000000000000000000000000000000000000000..abc354bb32a7ee944f22aedf15101a730a001a4d GIT binary patch literal 1478 zcmV;%1v&bOP)s&U<00006VoOIv0RI60 z0RN!9r;`8x1$#+EK~!jg?U-FiQ+*uAzvpZdiPoYQ$n9BTM3XHNn_9L(gKi{qSoBzp zAgcMox(FiC3So8C3*AOz7bSSn!y_5KToghS^*p8?aWbn#MK7Axn$E~UZu9qCJap)E z+|-;NvGchazu))#{$IX_{r~42Kt@JJMrNtN{9JH4oqsS4vqK6qOA(f3-+Mfse}Akg ze-<$evx8xnzZTBc(q?jUvJt?aKh{K{f5+qT%)6nbj>qEx$8n-MD}k5a9yxRgkVBV% zMG?BoMzMYSc2reW zL8H;6V*ISAtgOV|y?aqqRK(YuPA4)lG8WuRB2p6izJ2>JG&F?j>S|~-8gz7Yz+$n$ z@As!-{H)+O4uyq({TJYg_|+uUN5y|9$@ad7M6d8aA5^$BrFCTU#3r zA3mIL=5+eHx;mUVaRT}I`8aaq2wGZN(9+U^{rmSrtJR{kv=nZ)8&0PafcVUCxm>t> z`7%mNOR;Cq9=P3ZR99E?{qF8=96x>>>FMdHs;a`LPoH47+vgfpV#>?Q%PJ}=Xg0LB zx0A_aqUFn%lf`18GiT1w+qZ9th-hSFgj6aOaU93%!{IQcrKQp9*RP3)Xxp}J({SSd3pKYKWChhJ$=`%UGV$;7#ti#Z*MQ^>+4}MnZR)z zLZJ|%(I`%xIwiP2%n=dp9yO zGjaR&ZP@L0Fbsp*+FGQirwjC(H*Xfr&}cMC^}%2e@pv3#V`EsgYL)1Eh7o-@6|i#U zO2lF@eEs^B-vUQRNBQ1N=gfsU@9CdEf5z3TR}qOs_}bH_PZ10Tq0{MLFc@Go8qwL= ziJd!l!e+CBQTM@OgBynFYKy1KgP%a<>LI>&MJ;lqa+>xqcs@i@JD^@{rX`Y0BQ33`KrgY@Xp zBmOX+YW~E;1o{1b>hJHTXf!J5b#-;o@bIu;t^4=yQzQ~el7N_bJxBo{EiDaOwrokN z(d+fl>-C~~qL-IMdH`Tq78^Efn6jtUYN6F?lg?MER4|!LQ(m8!mnT}wX0uJH{S_9) zx0l}yIdln-Lze(KbP13{mjF3*36MjVfP~NKm6eqX>EpLT6gm<81K@xJUX~;*%f6S| ggN%%fjLiJ;AJ9R+`t0fYq5uE@07*qoM6N<$f_up49smFU literal 0 HcmV?d00001 diff --git a/inherit_graph_53.map b/inherit_graph_53.map new file mode 100644 index 000000000..991bf8dc2 --- /dev/null +++ b/inherit_graph_53.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_53.md5 b/inherit_graph_53.md5 new file mode 100644 index 000000000..c4ccb1aec --- /dev/null +++ b/inherit_graph_53.md5 @@ -0,0 +1 @@ +27122b248363e7b5a4f459888103d1cc \ No newline at end of file diff --git a/inherit_graph_53.png b/inherit_graph_53.png new file mode 100644 index 0000000000000000000000000000000000000000..a4af1c6b231f834343fecebc751ef59cf1bb45d8 GIT binary patch literal 1993 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 + + diff --git a/inherit_graph_54.md5 b/inherit_graph_54.md5 new file mode 100644 index 000000000..6b255d72a --- /dev/null +++ b/inherit_graph_54.md5 @@ -0,0 +1 @@ +9d9aca89209dbf74c98a549e2b3c3890 \ No newline at end of file diff --git a/inherit_graph_54.png b/inherit_graph_54.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed9634711b2ddd56b200afc7eb6eb5933aa4f3f GIT binary patch literal 2325 zcmV+w3F`KVP)U&;)ozL@pp3mof&UwzW=NtyGu&}VOu&}VOI2z7CgH$T@<#0G*ze5bmpNmW;yE4$` zG|<4|aKbno&i}?o63bu2$jQ}DNlA%grLg=JG&eUxCX?CpamQH;%YO(qxmX+qn_Mgo zV_cFeGcyx%xqQ^~wOTDABO{^L>m8_y#nFsQay@wP0G*wk%y^_^Ga8LhC=@W6OyePM z%#8J6`L8nM+u~R-7z~ifWT>yNhsk8Zk|j%!o}LbYKwxveR4Rp+mzO=Z9u}=ui;|KO zG&VNEWHKQjAOPv<>6krx_NdoLOH0H0_3N=})hfm|Uiyc_Xf$Hw%9TU&<_BgKYvD5RTbRa+z=lhZ{>4xazbHY zAu}#0D1e8D2ePxX0RSA%pzq@V0GUh%fk1%h=xDgQx;jj|O;S=);!{&oX|!~AcM||= zYHG5w>-Bo(c=6)JB$LUQaYjZ4-MDds8Jo>!DlRUjsHiB)$jG3&x;g?t@87>?=2TZ# zQ&LhAty{N_ii?ZMXf!fDi9|xzu3e*of&yB*b}iM^)KEl31g%`TlKT4ktaRn)=hNiL zlNo&yiG;3Ry-NA{`4kluMZ0$GV)iX6Dk2XL5Ayf-Cy_`*85tQi^;;|!Dk&+UjT<*o ze0)5eJ9o}%Pl-fA*RNlvqM{;-ii)Dt)Kq%;@}si~=CE0=z`=i>AE z;Pd&oefu`dW;0{|=bwLuj2YO2rKhLk+_`fQi^T{D34vHFwwhm5RD?Zy_8>Ac63NNQ zkjv#(bDEo*v3>h?xVX3=D=P~EfdF-Nb;!=n2A6Ania9ws(ChWMdGjU{o0OCU9*+m9 zR0@qogNTR-7>!13*suZK-rk6bi9umuA*52NP5qgfnK*j%C}Lt_uy*ZQ6c!dT6{LR; zi9`ZdS68H`r{mqbcZiOTw$jzo(t_Q)cf-fW2U%HJm@{V%)M_>A>+7*>*|HJu!)S?% zi^Ic*4^dxV4^K}|Bqk4-X0t52w7m zJgX;jVCDL8+||`ZTrQU$KYq;kFJ8RJR4%PnOU};Dq*AFEzfPwk7Z(@OXf#Ab6ciLh zJ9qA6{0fDF01R0je0_cC(4j+2?2k`;Z*MPod3n*LOP7daFCmuJE#HuF(I9t{ymj>^X7ri=i|B9RE)-QBo+`7%zNIDwRu6vW2H zLM#?z*|KGWe%^l;lgWfzw{D@lyc}}59E%n$LSkYfu3ftZKA&%wJ^J}&#ogWAIDY&% z3RV=04x>@PM$o;`2GF;5fBi7`}gldBoZMq zG7=FH5qR|I(U6}yCQO)syu3UdJa`bbwY7|0qtPHWH5Jj((M&}FfYQ=ZCczpS8lY4v zv0}vv0N;~atJMyv-{0RKGiT03ad9zYJ96X*ghC-xRY!}brzdvo*ny^|CMcCk`1<-n zDwSgY{{3TGXE-u4GLVy#gW%v`w6?aQwzd|@$;oz4EWi$xi_hnytE&q$X3T)Mw>P+4 zE?Qe#k&uvpty{N_81L-tjIy#a#Kpzo{Q2|v`t>Wq!v6g`8IQ+9Wo0Fjl9F)t>{)nw zdqbnqATco!JRWbzb#rrbK}1-$ZXKphoeFn%ceJ;+W7DQhIDPuG)m))ah=70qczJoD zwY3#TjvPT?U?2cs>(;Hv%F04@bv5SCpN}(V&J5CDUS5vPn>XXil`H7$>x0E&K}AKy zFI5|Ve}5c2cn}8;9KeSUAAWkBfgC=37*nTCwcC1Q;%6FqqVJ9HqeqYE!Gj0%@#9A; zpGu{oH*ekyIVK`97!0IRsp#$7x76F)OSQGNR-YS)h+e&VMM|ZTK7IN$sHyDg>awZp z+qZAj+}uo!jg6$$Y6tm)f`aJ6g$wlg^Ji*qZl><;?m=@pIy$JXu8w)Bu%+K + + diff --git a/inherit_graph_55.md5 b/inherit_graph_55.md5 new file mode 100644 index 000000000..e5b04d566 --- /dev/null +++ b/inherit_graph_55.md5 @@ -0,0 +1 @@ +319f59f680f3881de17350e7aa63b103 \ No newline at end of file diff --git a/inherit_graph_55.png b/inherit_graph_55.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea014cef338d5f845971cdf3c5973a5aa174e09 GIT binary patch literal 876 zcmV-y1C#uTP)rfcRpOaJ(DYS!%!W9*yE%gJj5NHWD;0HSB=oQgH z2^3revEWCgb#U-MP%=2*OHq+_64zR46}#0ADmbW9Rq9d)?{sq$V^nOL_QLs1=e+OB zd!F-`em>%7)$ydnd^B5W$(#^9hi=(5XLY6R;g3K_PObCTS@;n#}!fZCf@Am@$2+`c> zDw=}KU>F91AjtFj`g&NcRynr3yo_Kl2!>(M($a#NnHlu;^{IM1KR;t_Z4IeZ3hnLf zSXo&?U0t2-ntOYD*x%pB8(4wI9U2!%peU0p?YcQ?ky z#&CRmtg7+*{a{%ZqA23>@)A7HBcIQ|+i!h+9gB;L5Cj3Uv$KdsqnMhSDw^Jco{Z1v z>gtlm{r&xTdU}E+NpQQ}a(sMzTs~^U!^3E8ZN={HE+!@>RK2pv+uI8O z@Or&yXlTII)fL*>+6vZNQZq7{47RqmkjZ3_%jIx)cZa5?CRGi`aq_sjx*9z_JxHh1 znqKL28ZR#|SXfw4#R(y}xVWfnGjh2cJRT3Gr>Eib`CvAiad2>;IVKMe51P5vYSr|! zSS%ofU}gKRd7Kp=q8(NS<5httzjP2JAUj%-LQ7Q@NO z2?hrTHFb8o9Zshci9`ZkuNQ(KfaiInQYlz0mZE4bnHhGw9U~(nu-R;IyWOzaY^bfR z)zmp04mh1oxLhs_3=Cj%a}ymM9hy3pWf2aC5s5_5+}sR~ + + diff --git a/inherit_graph_56.md5 b/inherit_graph_56.md5 new file mode 100644 index 000000000..fbe367f85 --- /dev/null +++ b/inherit_graph_56.md5 @@ -0,0 +1 @@ +dd2a10d5d2685569b9974c41ded614da \ No newline at end of file diff --git a/inherit_graph_56.png b/inherit_graph_56.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3db29f58c65e47fcbea712167938adf65a45d4 GIT binary patch literal 1672 zcmV;326y?1P)#Q(YX#zjuE`Vr!!kT6=5=vW+b=8?NR?4f=y+4*P>o zjUtv;C+kHJjZzz~US-kSsP@7Hp?Zi4|GcQyi-OE_3k4~akfK6uO(#qtot)=Ibf4C3 zIg`zJc0TXU?{|KG?)hHMIou0SC=?2XLdgV}9}O(a{>3m%@lrHHNgY0)@1GxSq8|+m z!xS?Nb2~jPQPRl#;(z1XwQH$ug_0HmfdG6y-%ovlH1|UJgP`JPFjV{uW=X|oSr(5T zJxb_zxm@Vz=tx^X>8`ibEUEZ`KmcQ7V+s8)U%tf1$Vl4yNp-zH?d3{%+fRm>nHlWd zxig_(C=}xHTxN=iyN z8_Tj#C=_Y$B@v4fUnCO2>-BQuhK2@6BoesYZU6wo@V+6Xlzsd5VPs?kZnqmUnG9WB zT`-%?=@^Ze;$K_ zgSc?v0&d*60i8~VD_5?-<#M64v=pVKr2qgz2z)*t{C+({S`&1S>%=g;HjxZQ3Dg+j0_ zi{as6SS%LI%*^~W-??+=aO%`4SglqZJ9Z2m9UVA)_%HxKDwRSimEz&Uhls^uT+H(2 z%ae*E|&`z zFJ44>c{%p%*#ocF%k7%L*E>;VWhJt+vr$u1gHNA6!Dh21v-H15RaI3*b#*oQ9ro|v zPbw=b6Z*YgFL5{=+_<2iAa4GbFJFj4p&&PJ-Xw$&vT4&M;`8|kA%u*Nj}x(2OoG86 zH$M`IkgTjMGCVv?2qDDp_Y=KdPb3lvF`Lb#wzihMd-pEs_=VI9hr>i95|JlQp2R)l z)YKFqgb;(lK$@DG;(Xud9~&DZ0)c>Zb#-xmzu!+pA`yv1BHa4a)zxwS4<9}d03;L& zC0yel>FMbq)z#JHXId|6+n$A}=ow+qP{(e}6wde*B2u-d;2}H$$)2BNz-K91hPL zzmR%TsT70|n9b%m|FUJvl3p8uK!Bp6BF<(qnGlP`@aD}M7z_pgfL5#J{3}v!MDLeDuzkiR3i3yxNdlqG7WiT3z2nK_^c}-1C+zZgz*@>Q> z9_-k$gEvp3(Lkrup}V^qTeoh7)oO*sVnJVDA7nBaK7am<%a<=>dU~3RdG+cQLZJ|p zO69!q3$3SCtD)2B;PH4cH#Y|Wc>Ve{y1Tmpe0_Pw$Hx<{k4B?GUS1w9UAn~C8XFs- z)oOXWP^w6o_!^A{yLRn@TCIl3WP)0){^^#e)oP*B>0mGzuzmY>G&VLuuh;YD357!3 zxpN2Y?d{0T&4tlu#Ol?n@%HUo2!%pOrBaNJjzXnUp`f4ug@uJM7!0u6?XcVJ^Tsc< zo=_;nty{P7^yyRN=H{ZXun-3i9z;$~4uJnIyB3QDE|-g!Un~}*rKJVU&CSqgG|11- zM|*oaT3T8l5TxhZ8*fjks;a7B80I$prThQj+b`Yg*RS)mrayKv7%F}SL&eWvsQ4KS z6+eTa;%6{a{0xSQpTQ*jw(oR0)7b}Q3E+uO2 + + diff --git a/inherit_graph_57.md5 b/inherit_graph_57.md5 new file mode 100644 index 000000000..778208d57 --- /dev/null +++ b/inherit_graph_57.md5 @@ -0,0 +1 @@ +226968c3e6b6b8446c206df6658063f9 \ No newline at end of file diff --git a/inherit_graph_57.png b/inherit_graph_57.png new file mode 100644 index 0000000000000000000000000000000000000000..7fbe703bd3a7b8e230ab0118b9e5e3ee4ea53460 GIT binary patch literal 1511 zcmVWg1 zYs>g^kRS*}f*@R+y0#R);b-8|w}x>7{Z2jp#J`Tg27;_+ekSR?&5xgFJHc}cJ0~;{c5$E+qZ8gQsQrU z|NcE49Ub_5K4P&Lxw*O6Y&MKWW729)H3er3Yu2p6U@%ZqQ-emMp{uKl{QP__Uc5*}MMctTPbCRWaVnJxi^U@U=FOXjUayzW zZ``)TJGGr6PMr9(?e}-EgLp$prxgSNF*|0t)oYeQd3hyG#UlKYPGU_ z`EqXEy2Z|&JK4N>GiT16!QpUFU0uzG4<7*7x^*i90|W9np->2m#UhUbaOKJss;jHn zv}qGZjvOHti^;x3^AjbhYtXiB+h}cVW#7Jim`o-rDk|{#d;kQ4LCVU?Sh{p6yLazK zqtVdN&@gU{v9U3B?b^lp^XF-AZ%3=uGBPs4y?gg?I-RIg@t4rl)I=l_;rjLK0Qh`9 z!r`#&|NQwg9*>8wU%vuy;J^VK4hI&C1*_FcS63I?w{Mr@6U|SQgr>Ofv0}vv`MA8i zoJb@>XJ;p7vzb63fJ&vJv9XaEGiI=E-8x1`N8|FN(I}Obl?Z}>$Kyex(E#B0`vEW* z4C88QwOSS~Tqwu<9pP}8wzf9z-@i{mK>+}zrKQZDKOeu}Pj+^8QuBX=qzW`VJj}_H zCm9|dCK`A{L9$*w`3n7X*Q4&z^nv1}B>TBP30rXf#SuQ4u?K z?7(ifqt$A;diAP2#Q_{Xe3-VjHXc8I%<0poX>V`m$&)9t7|qSioI7`pJ$v?W{P=Ns z(~*~#$E;bi=uWHQCo^?JQTqfv^Bi+{bqj0|}?0^*)holb`!2)JA>rca+9H%?w& z-lXIwO48P#k&zL?;V{k3&1~Gbk;1~lxW)Ftg9qHad6Ue{OjfO0h23svaBvV&6y+Gb zUXRD)!Rz&6wOSb)8v|h4v}x?!yO)Cp58`&a<@lE`Ut+V_sH&=xr`PQ4Z0_E@E5~$p zcFM;_qmkU)TzY$ZDJ?CfpFX!ypvvPh*OA9AXoFG3xpPZZ=-o1M#`_yVRmoH!D+O=yeUc8vX z!a^1-Siq}SujHpV(fmoLzP|n^o6RQu8=gLWDh&+{#n}c22PLo9D~X~gy?y&u8WB}g50c literal 0 HcmV?d00001 diff --git a/inherit_graph_58.map b/inherit_graph_58.map new file mode 100644 index 000000000..d9942367f --- /dev/null +++ b/inherit_graph_58.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_58.md5 b/inherit_graph_58.md5 new file mode 100644 index 000000000..4d78736f2 --- /dev/null +++ b/inherit_graph_58.md5 @@ -0,0 +1 @@ +c76f2d7c282ccb9bc0f24da27d550e36 \ No newline at end of file diff --git a/inherit_graph_58.png b/inherit_graph_58.png new file mode 100644 index 0000000000000000000000000000000000000000..095c43c7b0631eae1155b059f4e30fb645e2727d GIT binary patch literal 1450 zcmV;b1y%ZqP)foE zTdjqWiJCQKb|F|d(Vq)r1rc=7K`6p5Dk4UtCTg2Ok_ZKz3*7=OmQXf!EG)e3@;ACF`t!U=^!owsh?`g6KX zF|(2&2>F5_-2Z)PNzB0k;E(Bs2*G}F^XAQ%XCo0Eo6R<>UG|&vkXR&=UbEUWk=Lg;=kd?k00#by*sL3E|>HC`SZnuh)R8Z zJv}`=04SA8GBPr-+wE-Kx-};8mJ5p#OrcQF+}tddolYkzm5RE$IsgPA;<fUZRgLQ$LVw; zlgZe$X%iI{6&Q_1vHt7VuW4&*!{_s%*XyaPt7FxwRkOyra^(tMua_G)ZlF@B0MKf+ zVyu#q5|m0MuU@^vVzB^Vu~=wmXdpK?7XZKCkHuo4qoV_rN`=*G#cVd?@p$O%?M0)} z;BYudOG^Wo*AMXE!2=#Xe8`tCUnndroSe+blPB@{ ze3;Emf)y)PP+eV3R#w)3yp#X1s2MgN z+qZ8QuXpX*#n-Q2ak*R=3-g~D1L^7M0311TgbNogEGVbBh^b&hLqoK+wJ|g_L?94g zWMl-5MgvR@-fp*}*Xt=LD8OhmvVZ^nu=eN9og*zR4UflzTrQ93f9KAfR8>{s_xo`= zoeU2TFF407TegVTYu2m*V0?UB6fBzG@Aoq~IY~`TO;~?|An^YEdr`2QoSX&cG#4=w zED#8gpP$d+!-uiiY^YQ!9zA*_E{On_FJGpmrG1i_Z{NNZ#c6D8pBNh(qp`7(($Z4$^782G>l6L`{rx@r_<>;dh{qwO--ULJw2V5FJFpfm&>(e({U6_~zo7?NNKh9p>mAqkdXNP;C8l3)pjBv^tG z^+i{-|KcR#ON3ydP^gosKTaj$%->o_NJvOXNc=DO3%TCCi%SQ}Pyhe`07*qoM6N<$ Ef~Hu&vj6}9 literal 0 HcmV?d00001 diff --git a/inherit_graph_59.map b/inherit_graph_59.map new file mode 100644 index 000000000..d686088a3 --- /dev/null +++ b/inherit_graph_59.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_59.md5 b/inherit_graph_59.md5 new file mode 100644 index 000000000..fc1c569ac --- /dev/null +++ b/inherit_graph_59.md5 @@ -0,0 +1 @@ +9ae0741b92966d690be1fd1420641acf \ No newline at end of file diff --git a/inherit_graph_59.png b/inherit_graph_59.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d6a645aa0760e84e109306a44614995922f772 GIT binary patch literal 2009 zcmV;~2PXK5P)#Q(qXzzuQ#&+YD!AElV;tR<@xsQiqC`Sn8^Zs6h7q{s&*IMQI zyxM)vInSSSzMgxI7a$M_1OkCTAS`tl<_4Ke#$_-V5spZP@bAN9GJ8}iRnttHlX)iw zgAu`CF#h{}X%UtZQ&Uql08(e#EJQesN~N-ULWHG-N~MBEqp`3v9gquwU;+^#!Ql`Q z5*!W@;VdW=3e?rrIXaCc!#^RyUoD!})>icP_Wm+|1nbOsJ6;ImZ$ULK4_BhH^ckDE7dqP@KxZfS z{QOW>RtA56e*nOV6DQEr)C4AziFNDNAtNILQBhF~u6sWJGMNlXNlDOXG|=gE2n-BF zX=y1q91Z{=H8m9_B_#+A4Fv!U3=AMOH5IkBwYYHM0=l}oP*G8Vt5>f=AP}IkvJwEm z<#Oq{4GRmynl)?C(9nQKj~-dAXSR9v@bExYRTcXC`wgsUdzyZ2ltyUu=BLgljE;xGhC^m2247FN~+}vDv zdwU}%CkI-s7IATLIDY&%_Uze%q@*NdW@h5qvuCs)^D~@Utwv^MCR|-zk&}~y{{DVQ zrBb>*EiDa7r4nUjW!SQ13#3vhnwm_$Bw1xX|7x`w>FMcUu~?AFWO(!D4I~l?y_+^Q zHDP#onC}1W+c!LZ{1}sylSoNP!Rpnkv1`{ZD3wacWU^UvSh;c~SS%KXhKA;?$9$fB zeSHxd8;iieKpZ}N7#gsBXSD-bl`3Hc#d-u{um4t)@tY5z# zw{G3S{{8!{`V|NS@bdBkpU*dWqnLB!#tlqOO+h3Qfyd*`ThGjS*6DO$GMOkSD1e)r z8xj%{@cHv+0Jg2$VzHYD^?E%fCMHl&P+($bFc|3S>Y|Ggi9{A-gMxzS-^-UThr7Ew zEx>7;!CyhzkPgs000Jq0UQno-QC@&s;WYFcQ?ky#?aT-_tO^}YyJU1EEd!4 zE-o$*iA2!r^*%w6(RtXf&d;vlA5+72xrB3#w=4JPUFB;7W>3(e(;Hv%gckOrzbXU z+z2+Cz2JJx=lR^Zb0{w_M|*oaE?>Tkii!$!badFXZi~fkXF?v22Z2C<=H_NZM@J(j zCI%9T1Uj7#Y&P3oVdtf%rw7Bs!#H{JB$AVpAr^~g{itp$SFT*4h1l5Gh?bTXY~Q{e z01yxmfTvHN(tWF|t4+qT*=!6A4O#e{zLox-I{mmm^}uwlan^!N9h zjGew{NF)*{6pCM7kDs3(E?&F{E|-h&@Nh&$MWL{;5I#OWf5y6HWo7Nn&d#P5!^@X1 zDZO5AVSoSrJ=N0ELK%%l6MIWb3)R=xXVo?`GD1Ch^2DT%UazNKy?RAIYcv|_)2B~! z`uP6+J5^s_Pks6Fg|>Bec2bRvjg-M)pn7|IDUC)mr$3!eXA*Bd|3aaVx_0dvH99&< zsnu#~aB$FKP7DSE)!f`n4GauWU%!5(>g(&NiHQli{o}`vR6|1potJqI=2)v|wt1!~ ziu&;31NGv?3u<6sU{;?$vu+Eas;Y|0%F4QFR}m6^FfBrYDRYVNpZIo6_`9*&?RY8E z*4F0e6#gp6PDpS#M1%x~Lqte$I7Ea5heJe2a5!_`j^%Rs@63a+gs~7IMNy3a_BkLI r!V-YVWcD~Z2LgdWAP@)y!k@?gZ`L#|1N_aK00000NkvXXu0mjfKpUe1 literal 0 HcmV?d00001 diff --git a/inherit_graph_6.map b/inherit_graph_6.map new file mode 100644 index 000000000..a983f0d0d --- /dev/null +++ b/inherit_graph_6.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_6.md5 b/inherit_graph_6.md5 new file mode 100644 index 000000000..e889e1eaa --- /dev/null +++ b/inherit_graph_6.md5 @@ -0,0 +1 @@ +57162925f30fd6589b1e3ad0e86327eb \ No newline at end of file diff --git a/inherit_graph_6.png b/inherit_graph_6.png new file mode 100644 index 0000000000000000000000000000000000000000..de0fa16dbeb8596d934e0b427982b0cd24fe2305 GIT binary patch literal 875 zcmV-x1C;!UP)3(Ge9D6$AnSWLYMeOyco)*xcO2?RM*N3r*~JPy1Ke> zxm-+6PSV-gNg|O@>-l`1Xf%q~>&55u5s$~!+V%A{Znyi@85fJi@caGbayiZ3bXm!_ zJUl#bd3i~9cekny4-d1owZ+WL47ps6P$^1J2IQ7#ka7 zdwZLrq9VlM z_xF^RmI82hcL#vQVo|RNhr`s?)^d1wNHUq!Z6!bKoJ^BQ~22fc5otVzC$-8yn2c&EfO;)CZvz-S=cZpXci8is$EN78e%*Fq_RREiKX0 z)5G%eGPzt1MNwE;SwR# + + diff --git a/inherit_graph_60.md5 b/inherit_graph_60.md5 new file mode 100644 index 000000000..5a5ba5ffc --- /dev/null +++ b/inherit_graph_60.md5 @@ -0,0 +1 @@ +189c61d0b13d363eb311c1b126f385b7 \ No newline at end of file diff --git a/inherit_graph_60.png b/inherit_graph_60.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9e57c0e6282cd0936d35edaef8620933d63725 GIT binary patch literal 1848 zcmV-82gmq{P)!Q|}wczh}B7h)-n1Y!*V%n4#h-sRsEbFtjBp|D;q< zPgC|rD|3&Qln@8u& z>2LA7Kd;VxUFTf)_d0yK{qvaEz*nDzgJ7)tn{(P(Z?j73fi zFbuPvVVM8Uk0eSMGrd`SoIihlZlzGd5~I-wjYczRPB70}D1R~3ER>+3W}yU4SewOW zvmrY>8xDu#k87yaYP7Yrg;3SMm#{XA%jH66XD8fl_aE1I^5h9VfBwvk|0eThycv77g;%1S(V z@W3xN7g}dSNX*jR-HrbKeqLO!*ZZyNa3C`?6JoJAWcAEuGt$!1(B9sT!ootZEQ{gc zVWg+0&uF2TOeR>Z);ZNWTc-S;WiDV@7D}ZO&z?Pl(P)HNEXIKY2e5SMQUHL*1LZLu)bv1-SAy|?Tjq7oVl*02QBi@Ys3=rbRpHB*FHkC#T)wKR3YRWjLUD01RtAwsgqoTftXj2-r(xnAW;#uQ=KS#C1G>7p zP*+#S8O6uGef!{WIB@UYJ#L=T(o#f3M1W;kSS%JO6biUpE)*6PA}J{e`T6;1Y-|L} zvXg36tJOGu{5bOS^O2XAhsMT6)Ya7m-Al;XwQJXZR4Nsj3Cor(BWKT^<;52-UQ9F^ z4L43tPbUox4cz$S$BzU685|rWR;!f=1OoE>`ExF>)oQuC&1NG)p^%tNCN6Kc+lfdd zA{L8iJ$v@} z)ngb2eSLjMNl5_!WMpK_SpQU-1_uWN&Y75)$elacquy?}BRV>o8?RlvmOB=SM99d< zKyPnvP#Ryqehq;@fHiB@aItmk)?s{n9B2BoYa4BkOcJF*G!U zN4Yz$*#V~C210`RNJ-}4N^puWDI%lr7kVqBZ!TS1po{W z4|BQcdI<#~*|X&2kRPjmT| zD_24$li~5>$Jn@WBeJuzp-?E$)6;{vxVTWX!DG5P7c5wS{rmUh@ZrPI>2%z67K;Tc zl?qCwl3Vcr(9+Vv8Ah+y!(cFA)22-Tei_qdvjxTe3$xjb6)RRiDwV=!v%&3lL#x#yAt52C8bYBESFT(^K|ukoUcHJRKYn2S`v3o} zCL$sNw{PD@X=y1gT)2Rwq$F4@7L=5fAR;0n6m9SbX3qNhdJsaeb?a6vTC@n!(a|uQ z&Dg$uJIsQ`6{r&xg+ifFC=?21*8C4wQmNBO=T`^-0000 + + diff --git a/inherit_graph_61.md5 b/inherit_graph_61.md5 new file mode 100644 index 000000000..e57515937 --- /dev/null +++ b/inherit_graph_61.md5 @@ -0,0 +1 @@ +ac7452292daac3eb613bb9e744cd84c9 \ No newline at end of file diff --git a/inherit_graph_61.png b/inherit_graph_61.png new file mode 100644 index 0000000000000000000000000000000000000000..e62e37eb64cc2a05cc9c97504f464c05115a3df1 GIT binary patch literal 2129 zcmV-X2(I^uP)!lWiNv|Fd~#zMvHZhWlVDu6$X!rFbhUb4Ep)k@bK` zRL<#yK14|`7$`-dgV0YQhNAgG4`D3 z_}>S3Jl@|t9`E+Ak;L&Ev9LM5QBY8@x>7iP3-o$D3JVKo&Ds58EgXLkoH;n=gfj=n zocyuoFdB`Bii(2CWLj$}|5(<{9O>!lc<|uCPv38`SWsVIkIBi&6;!qQEVu4o$+FE+ zSy_n_Cr;SJs;jFJ6%~b!jt&-^o}R|uy?gQG$rAv8TrNjYP|$LRUp0(IBd%S$hPb#m z?Ax~wXU?2KPfyR1`bbSpMNLhOP3(8CdnU^^hd>}eX=y2jhlg40&Ye5x?CiwDhYwk- zy}cce9zBAOj}HJKC@2W-?(WMSepTq{=|Ny%Ak=C#5)u+1m&-9cJPeUYw4}Gbt*s41 zLqj&P-?{DuNl8gLs!%9su}n@*lC!fjRaI57m_Q&Pl}bf2nT*A9a&pMu-=DRWN+nfS zSF?6!mG&wm*L`31? z;k0MZ9-5k(vZ*yQGm|!M+(;&qiD|xj_bz2-W>RcyES)}mn(4{T&L(GPXY%#+rO3!g zQYw|R);*u@#mq}{b2A-3ew_C2-%pvDnM~VaX>DyKg+f8Id12Wr2cOSJL_`F%S}lOD zZ=Ka@MQUm)T3T9QHk$zeTCEn*(b4R__V#vs`0#mZlQ(cj;X@bGY0EEXgrBw*{-t%#40M^;uAn` zsZ*!m0qoX6; zzki?I6A}_ag@uKzEfR_7;>C-sJuoo9R)(RWA+ocxqmGUamanL&V0nYVKz4R^)ZE<6 z@*0hX_S68}x`7))Xq!1C&p+ko#J3E_*i0bR>34qPp zITH^L54w8wD$|^toXm1&vzgr8-Kny&l8A`JVlfpL7u(!Fv+l*{o^M{BJ$pvZ&dxMG zKF;!EV`H=Go{LpoIRGF!IvU;G-54AkgjTDCR4N4kNTpI}wOTYaHNj%BATly?-hPBa zA-mqZc{2cDWMl+AJw0%6aDczRKg)-Ngs|(^uV2H?&JMeG?`E;k&`?;dR`mAv0sv$( z88jLVnwpv*6bf#x7C zbLUQUcX!WQ=TdafH!mWQ2uh_AK|w)~%jGC7Ed`JF!*8iS&5D>KARqu+wrqh$qd{F= zosBs(8Vzb|YY`kA3>O!ddHb2GFjrSsOiWB*Vq${DW=t#qHa-VYOP>LkMix)3mK&e!sxw#n_UExO?|5dozCqp->2cK!E)Gd;njM#d&#oEbr^<3r|l^s8lKz%gM=sP$*(}GLg$uZH5Ji;mbb#*n$%F5WLa?_?w*tKgH33Bnc0eo^Lnf0UCnpDfetrOe#Kc5oWo02e zJRIri>9f|gknZ_#cXvmAem*=rJP;Zhiin5^oIQJ%ef6w3KeHhvA~Kmwq|@o>?c29D z@mH^2kxr*0i^XCSZ)FVmD*49?m9vvMeolZwaqjA=nzI^#YdcB^Snwn<)j7TJ+Teoh} z=;$cv^?G(Rp2_?7@2R1of!f;IX03Z6-HVx*fq?;PX=!1{=%p~TMlAP}szj8%g($1;#eBx@~URpGu?IOc>i2gjUn=HQqU&Kw+b zGUtXgH8u5D>frbd`N14S)Ck}|YoLXLgM)*EgM)+PU&#Le&0^&fRzO+j00000NkvXX Hu0mjfyD$A` literal 0 HcmV?d00001 diff --git a/inherit_graph_62.map b/inherit_graph_62.map new file mode 100644 index 000000000..b263a35b1 --- /dev/null +++ b/inherit_graph_62.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_62.md5 b/inherit_graph_62.md5 new file mode 100644 index 000000000..ae6d37de1 --- /dev/null +++ b/inherit_graph_62.md5 @@ -0,0 +1 @@ +2aed292e81df319545f4f4ef968da104 \ No newline at end of file diff --git a/inherit_graph_62.png b/inherit_graph_62.png new file mode 100644 index 0000000000000000000000000000000000000000..b177f42be2fb25f4076b8e4f95caea9f2f2d0216 GIT binary patch literal 2245 zcmaJ@c|4R|8-Bc)tjRhe_0o)W;%)3?8#`&T#Ms6%UNOZaWG7^atP{q*W|UBWfA-AiW2uX$Pm1)II=R`|+44~z`sO#vLM{?^=)bMe{URT!sd+X} z$?bel6dKJZub|+eR+w~sg1*^C{l;;+aBFqCX{zzhRIBF|6~Bq4L4t#WQA7AwQb?pg z$oeN1;4OuMTj)+mFJb1r2-(2;sEC1&k*O)}W4&uA^N?|8@IbOuFUG{*Uol8aVzSYbe(BM%QrEiJ7F7++txA1f;Xv;kqspY#Pom$rMn zO*cm%0K(<3GwbW?C#J4DJ9De6t9yBQxi1bEhaNL^;^N}ofB1m>^a0}axiz?dWQ6kU zM(r6WGznd*E2*J@>Hj!B-sy!rIx)zj$;rvt>Nop(6g%XtOuMT&I56;lL?+AdLReop z)twnz+1=UQ6;3B+XJf3bCC?E)x8~4jw4tFPud7#i-uTV-sT1Zn!cu!t@m-xHlBhHs z{_@$g6kuv{(j>dtscvX+@LM9Uc+J={skBsS9Q#jnaX>&ocYw7u{{&uDFLGZ$`!*i$ z85*iV^;R}VN=e1Fg=~n-9n%J(1764y?T}&bpN)-3|C#28AV<|*?(S&xNG27BKIVoh z(%+XGy0qMdj}&X00+IADv1xr77xc1W%F4=ed4tPqYgVtEs8v<4Y%e@s9yA9^J4`K9 zZ)$9`sX4+@Gn%Id9}3ElGBfG(lIn1C6I0VbO1cE>U1B1nwXJP?jEoMtch5T{MBV&u zZ;G%Qw}hx@KT!tFMTw4%4hjsc#5OF_2J>3HsbU8V1}9^GKXf=>ISCGjUkUypL`IkT zHzm)$A&~R(psA^;ju=e;Q(H0;4o`qF4t8&W@a_c#Wx^^eDwe)}l_IT9y~Me^zMX%k zzN7kieZ4ebf8z${%SVrRhKn?b3QmH4) zw71W_6A)z?6{VA70pDAjr8vLwe_36f2y=9H9t7K?J}O9U?Lw}ExR8xGi5LGeomr*j z6`cH%&q;xW9qtG8_4Q@1s?LE7F+lpYG&MIrJh4Pk=kvEZV_Ca5K`05v$o#91EuK8D ztrgt5Ib6iQRaaLBe*YbF+>xm+mUd1RFQl!lZJv$AVi5`oI53KYx!6IzL5}saLGQf; zN|P{?oXim(8hX9XK5+AE@8dz*_{uJ-qrJVj(lkRvwc<0x*8UATHAf$-u!*yI=sU!ly z6Y+D^z|xZ2|I=Tw{rzTuzK@SA*k*ZZmr_!4zGmVF%dZ+c`Gr@twF*F4Q@W+(qE=1WY}J(+7o`i6$At*x!@ z$b875^E}os{SR1mkvieLv{eCH<>-m0ee2J<2!vaO(Z3kS{n z1b_ro?E1QYP)G<4bTuFxx~HJ1sQ3bdSo-m!dw=sAi~c@ku(y{TD4W1%<>o>h92_1b zCE-Bt1N+Fz$;I}18tCiar)rX~=Kq#v!V1v0x8oZcl)zNh>~u+piybDwX=7{4uH(j- z^ocK~%rPrXj*hm%LPI-ydRRwCM@edaVgmyMnFR$iXtaX^G*{6zB~4si>hfj&yDjIS zO4zsU5y$h*V{iKYgKbX^F2IR0G|VCrSzBBbT`qNXb=B0?_As^=%O~)sKD#}!=^7go zY-wo$!U;;W@83DX2m}I1D=Q@4AbEK=92D2U64YEwT-@5l1>wWV&21PSuB9SI4S|XR zk1gP8gtfAQw8n0-2nX~y~9#gWp4 zDKPiGpPYp7@$mueiFg75x&;Q`($Z3ASNth{LBaU@_wPrG!wx1jwAyrdrm2B-_Nm}l zNfi~lWDx1;RFO+4S67Md?rzBEh@GX;6P>%^&~3E%cBeoSpIHrzkF*F zVP|JoR#U@anVFQbvfm8?ZEcCJ(5p^P1$Ue+rHSRu%|gP$!gO%w z(ANi~(It;QHnNpm}&L}73%>f`LeN*F*SvG+t>FS;EBU!Wo5-? zW}bn`$n?z4id$P-Uzg9};Npt2dHR4zBwEdPsHPA5^BqOI2?z)T2|TPa`qV1DRm-@w z; + + diff --git a/inherit_graph_7.md5 b/inherit_graph_7.md5 new file mode 100644 index 000000000..ab3f50923 --- /dev/null +++ b/inherit_graph_7.md5 @@ -0,0 +1 @@ +333fde60818a424877b08e17cbd1ec19 \ No newline at end of file diff --git a/inherit_graph_7.png b/inherit_graph_7.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ef8225052ff6d28a3b872244a1a66d09ebabce GIT binary patch literal 1559 zcmV+y2I%>TP)R`00006VoOIv0RI60 z0RN!9r;`8x1?Eor9nH%QM85jt*{;R3AuK#v^uDR zJq9?c2BG{{8!Z z+{5GXpr@y2TrF9=UN5v-EgTL9%w{tLK|ml7fKI2I(5{Q;Ek8dWDwRrBzp`@h;K35B z)k+g#+qP|V^ytwj&0sK4MMVXx&1N%+qR8sr-d@t{^%M*SskXM3=FFKxd3kxH*Xyag zygaT(L^LuoLJbWKw0rk%Dk&+UD_5>Wt!uGZ==SZ~R9jn1#l^*BwOZ-@`}b_TsHljx zZrw_eNF?fW)z#IsV8H_F>+55EZr!>?)z#HhTwF}YjvXVP&qqX*&|7(VIo-K)hxJU> z>!09uyUA*`QoJlD<(fM%Fo1XO-eK9YWlZbn=s+M4VD<3uFkCJd!r?H?W;2#7Spt*E z1e?tUK@j3jloSS%LInl%fD4jn>oZ!e5SBLJYg zyBlq7ZK$lQgi;y()lZ&0iN3x*+`W63_1V9FKc-Ea20;+e)zyWfq9TMsp@iO^Jb8jI zU%s%O$#|U<{&wf)9Xf*6NJ3AWyAW0Ht&z{YW z;~_~BGBYz-y>8t)c06Oo46I(g8n0i!PKj4JNce7fqU7f0!eB74dT?+MH8nLja^%R* zg)%Y_4u{$Jz`#J%=M{>WKd54~tgI}A!(sII_ha6?c>usp^;ub2WA*}oRjXEE?%cU> zI2_PwwNYd3?d|CA??+)_A=5_x$dV+nbrP*1msdHMwCCK;&Q2^`xRBLqwHgl|JYeA&h zf{~FCT)%!j<_0MdRaI3WBJA3=3yT*oMrLLvyk0L#OG|O_;>D=B8jS`kR;++ZrNXOM zuTWQ4hm|W=CiMF|)2B~Q+Nl;zi6lZnv9ydU{wLiA2chbkg_l z-=pRY4i1tiiqz53L4LnK#;Z=Jqo$@N3I>BDiXwgc_AO@4Xm1{mhdzJ)95qJ{uVXRR z4V5h6rX#Bi;Dm$7u|(y6wQ6g=DntXZ>Wsx2f9KP{&*Jlr&f zhnvRmaMPHCH&kV1WvTSRnFM0OC8Bl!rBmRA!{Kl^91iDy$-h=9jBeu@{bc|E002ov JPDHLkV1iIV2A}`{ literal 0 HcmV?d00001 diff --git a/inherit_graph_8.map b/inherit_graph_8.map new file mode 100644 index 000000000..4e635d398 --- /dev/null +++ b/inherit_graph_8.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_8.md5 b/inherit_graph_8.md5 new file mode 100644 index 000000000..a2aa0dc59 --- /dev/null +++ b/inherit_graph_8.md5 @@ -0,0 +1 @@ +a27d617d1e0f8afb46b7b6a5aa689280 \ No newline at end of file diff --git a/inherit_graph_8.png b/inherit_graph_8.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4efcd7fd12d7ce7bde261bb43cddd388997cf9 GIT binary patch literal 1232 zcmV;>1TXuEP)FmHpeS@^?tC=&0_dDmEGkh}xGBPqUG6yJ*2db;9lN1Vt`7(;R4hVwab-7%gqcP?2B!xm@ zRwxvI|GBcR7khhq{{Ysbu@fd9;BvYC^MbA$E|-hx>FE=3;Sy^3-yxeQ0kVk_Ae$%w zvWXIK>h63|zJ2>fPfrhHV`J>@?xNT0sj8|XH#b+RC9W)zOyZX>U&zSF;KPRx6crUw zTU(34V4$I)fsY?QO0mS1Mv_Ui*=(ezr!zD(gdiN=m)hD|wzjqaa5|lMJRSr=K&R7T zv)Rbc&lhv6tE;hCEX>W#F*P-XMx&vnrG=D~6#Dx5@OV7DdGkih-`w1!yu6&Ao*q(D zQ-7;JIXOvZXD1sQ8)Ri=(b(8XY;3F)?T0^!UayzY(NUV4n?npd;GodT%1U0mctJ}` z3mF+1SS%Jip2M%Fsi`R*KYmPPWF$|YK4oKL1B=B1Ku%5$9UUF`d_FP%{rmT+qy{DCPqg`1HT?GolbXZ-qO+%ot>R5EiJLVz0KO%8XAozB|0r~m)R8&-i z+qy{DkF(KeBsMmdk&%&8bGEm)F`Lco@9$GnQ$u@uJ0&G01cSklJcZ)KPbCqn)ynGX zD&ynh^!D~rR#wKXTer@w|N8Z7=I7^eI2=q&OkgsZ`0?XMnBD&(>`7FqRJ69X^77?N z?%lgbadEMDZFqPXl}g2p8#f390<^ZaqE@Tf+1a7Jz5PP##Kgp4wOZ-!?q+asFyse` z*Xun~e`aO|zu!+$Q4!hM*(jAtIyySo+}so=J{%<3of{h)Q7V;GRaFrg8HrY_WqElS zlgY%}w{Owubd;2oU@#ak7!0hetY9=6`TqU;h1RjzY!nm}aP#I(N=r+{`0d-b&(zmw zG_)qYmBqt|}=MfPRxZQ5FTCEt%%ge*+MDg5YGKJ&{g22Ov4^LmLjHD^0NF$dkWG{T*+dDDO_TuHLy;6KiT}{$w53niD4O u@9&QTe_cW?*8)Khyq8^rjEs!TRpuvmaG%&a&b>AO0000 + + diff --git a/inherit_graph_9.md5 b/inherit_graph_9.md5 new file mode 100644 index 000000000..be8fc65a1 --- /dev/null +++ b/inherit_graph_9.md5 @@ -0,0 +1 @@ +ccbad72bcddc29bf44b2d2c141b794ea \ No newline at end of file diff --git a/inherit_graph_9.png b/inherit_graph_9.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3ac5464ace1b93826b0a0c746c56fca216e1fc GIT binary patch literal 2689 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 + + + + + + + +FTXUI: Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + +

    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class Hierarchy
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    +
    +
    + + + + + diff --git a/input__in__frame_8cpp.html b/input__in__frame_8cpp.html new file mode 100644 index 000000000..8672b1c45 --- /dev/null +++ b/input__in__frame_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: input_in_frame.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    input_in_frame.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file input_in_frame.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/input__in__frame_8cpp.js b/input__in__frame_8cpp.js new file mode 100644 index 000000000..9152f0396 --- /dev/null +++ b/input__in__frame_8cpp.js @@ -0,0 +1,4 @@ +var input__in__frame_8cpp = +[ + [ "main", "input__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/input__in__frame_8cpp_source.html b/input__in__frame_8cpp_source.html new file mode 100644 index 000000000..2383e135e --- /dev/null +++ b/input__in__frame_8cpp_source.html @@ -0,0 +1,249 @@ + + + + + + + + +FTXUI: input_in_frame.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    input_in_frame.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, __shared_ptr_access
    +
    5#include <string> // for string, basic_string, operator+, to_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Input, Renderer, Vertical
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, size, border, frame, vscroll_indicator, HEIGHT, LESS_THAN
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16
    +
    17 Component input_list = Container::Vertical({});
    +
    18 std::vector<std::string> items(100, "");
    +
    19 for (size_t i = 0; i < items.size(); ++i) {
    +
    20 input_list->Add(Input(&(items[i]), "placeholder " + std::to_string(i)));
    +
    21 }
    +
    22
    +
    23 auto renderer = Renderer(input_list, [&] {
    +
    24 return input_list->Render() | vscroll_indicator | frame | border |
    +
    25 size(HEIGHT, LESS_THAN, 10);
    +
    26 });
    +
    27
    +
    28 auto screen = ScreenInteractive::TerminalOutput();
    +
    29 screen.Loop(renderer);
    +
    30}
    +
    + + + + +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/input__style_8cpp.html b/input__style_8cpp.html new file mode 100644 index 000000000..0441c2fb6 --- /dev/null +++ b/input__style_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: input_style.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    input_style.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file input_style.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/input__style_8cpp.js b/input__style_8cpp.js new file mode 100644 index 000000000..01dc71c5f --- /dev/null +++ b/input__style_8cpp.js @@ -0,0 +1,4 @@ +var input__style_8cpp = +[ + [ "main", "input__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/input__style_8cpp_source.html b/input__style_8cpp_source.html new file mode 100644 index 000000000..8a5b340bf --- /dev/null +++ b/input__style_8cpp_source.html @@ -0,0 +1,321 @@ + + + + + + + + +FTXUI: input_style.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    input_style.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/linear_gradient.hpp> // for LinearGradient
    +
    5#include <ftxui/screen/color.hpp> // for Color, Color::White, Color::Red, Color::Blue, Color::Black, Color::GrayDark, ftxui
    +
    6#include <functional> // for function
    +
    7#include <string> // for allocator, string
    +
    8#include <utility> // for move
    +
    9
    +
    10#include "ftxui/component/component.hpp" // for Input, Horizontal, Vertical, operator|
    +
    11#include "ftxui/component/component_base.hpp" // for Component
    +
    12#include "ftxui/component/component_options.hpp" // for InputState, InputOption
    +
    13#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    14#include "ftxui/dom/elements.hpp" // for operator|=, Element, bgcolor, operator|, separatorEmpty, color, borderEmpty, separator, text, center, dim, hbox, vbox, border, borderDouble, borderRounded
    +
    15
    +
    +
    16int main() {
    +
    17 using namespace ftxui;
    +
    18
    +
    19 InputOption style_1 = InputOption::Default();
    +
    20
    +
    21 InputOption style_2 = InputOption::Spacious();
    +
    22
    +
    23 InputOption style_3 = InputOption::Spacious();
    +
    24 style_3.transform = [](InputState state) {
    +
    25 state.element |= borderEmpty;
    +
    26
    +
    27 if (state.is_placeholder) {
    +
    28 state.element |= dim;
    +
    29 }
    +
    30
    +
    31 if (state.focused) {
    +
    32 state.element |= borderDouble;
    +
    33 state.element |= bgcolor(Color::White);
    +
    34 state.element |= color(Color::Black);
    +
    35 } else if (state.hovered) {
    +
    36 state.element |= borderRounded;
    +
    37 state.element |= bgcolor(LinearGradient(90, Color::Blue, Color::Red));
    +
    38 state.element |= color(Color::White);
    +
    39 } else {
    +
    40 state.element |= border;
    +
    41 state.element |= bgcolor(LinearGradient(0, Color::Blue, Color::Red));
    +
    42 state.element |= color(Color::White);
    +
    43 }
    +
    44
    +
    45 return state.element;
    +
    46 };
    +
    47
    +
    48 InputOption style_4 = InputOption::Spacious();
    +
    49 style_4.transform = [](InputState state) {
    +
    50 state.element = hbox({
    +
    51 text("Theorem") | center | borderEmpty | bgcolor(Color::Red),
    +
    52 separatorEmpty(),
    +
    53 separator() | color(Color::White),
    +
    54 separatorEmpty(),
    +
    55 std::move(state.element),
    +
    56 });
    +
    57
    +
    58 state.element |= borderEmpty;
    +
    59 if (state.is_placeholder) {
    +
    60 state.element |= dim;
    +
    61 }
    +
    62
    +
    63 if (state.focused) {
    +
    64 state.element |= bgcolor(Color::Black);
    +
    65 } else {
    +
    66 state.element |= bgcolor(Color::Blue);
    +
    67 }
    +
    68
    +
    69 if (state.hovered) {
    +
    70 state.element |= bgcolor(Color::GrayDark);
    +
    71 }
    +
    72
    +
    73 return vbox({state.element, separatorEmpty()});
    +
    74 };
    +
    75
    +
    76 auto generateUiFromStyle = [&](InputOption style) {
    +
    77 auto first_name = new std::string(); // Leaked
    +
    78 auto middle_name = new std::string(); // Leaked
    +
    79 auto last_name = new std::string(); // Leaked
    +
    80 return Container::Vertical({
    +
    81 Input(first_name, "first name", style),
    +
    82 Input(middle_name, "middle name", style),
    +
    83 Input(last_name, "last name", style),
    +
    84 }) |
    +
    85 borderEmpty;
    +
    86 };
    +
    87
    +
    88 auto ui = Container::Horizontal({
    +
    89 generateUiFromStyle(style_1),
    +
    90 generateUiFromStyle(style_2),
    +
    91 generateUiFromStyle(style_3),
    +
    92 generateUiFromStyle(style_4),
    +
    93 });
    +
    94
    +
    95 auto screen = ScreenInteractive::TerminalOutput();
    +
    96 screen.Loop(ui);
    +
    97}
    +
    + + + + + +
    std::function< Element(InputState)> transform
    +
    Option for the Input component.
    +
    A class representing the settings for linear-gradient color effect.
    +
    int main()
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    Used to define style for the Input component.
    +
    +
    + + + + + diff --git a/installation.html b/installation.html new file mode 100644 index 000000000..92531bae1 --- /dev/null +++ b/installation.html @@ -0,0 +1,271 @@ + + + + + + + + +FTXUI: Installation + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Installation
    +
    +
    +

    Table of Contents

    + +
    +

    title-img

    +

    +Overview

    +

    FTXUI can be integrated into your project using several build systems and package managers.
    + This page serves as an entry point for the available integration methods.

    +

    +Supported Methods

    + +

    +Next Steps

    +

    Once FTXUI is installed:

    + +

    +Contributions

    +

    If you use another build system or package manager, feel free to contribute a guide.
    + You can also open a feature request on the GitHub issue tracker.

    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation.js b/installation.js new file mode 100644 index 000000000..f53918a15 --- /dev/null +++ b/installation.js @@ -0,0 +1,29 @@ +var installation = +[ + [ "CMake", "installation_cmake.html", [ + [ "Overview", "installation.html#overview", null ], + [ "Supported Methods", "installation.html#supported-methods", null ], + [ "Next Steps", "installation.html#next-steps", null ], + [ "Contributions", "installation.html#contributions", null ], + [ "Methods of Integration", "installation_cmake.html#methods-of-integration", [ + [ "Using FetchContent", "installation_cmake.html#using-fetchcontent", null ], + [ "Using find_package", "installation_cmake.html#using-find_package", null ], + [ "Using git submodule", "installation_cmake.html#using-git-submodule", null ] + ] ], + [ "Optional CMake Flags", "installation_cmake.html#optional-cmake-flags", null ], + [ "Verifying Integration", "installation_cmake.html#verifying-integration", null ] + ] ], + [ "Bazel", "installation_bazel.html", null ], + [ "Vcpkg", "installation_vcpkg.html", [ + [ "Vcpkg Package", "installation_vcpkg.html#vcpkg-package", null ], + [ "Install FTXUI using Vcpkg", "installation_vcpkg.html#install-ftxui-using-vcpkg", null ], + [ "Configure your build system.", "installation_vcpkg.html#configure-your-build-system", null ] + ] ], + [ "Conan", "installation_conan.html", null ], + [ "Manual", "installation_manual.html", null ], + [ "Nix", "installation_nix.html", null ], + [ "Debian/Ubuntu", "installation_debian.html", null ], + [ "Arch Linux", "installation_arch.html", null ], + [ "openSUSE", "installation_opensuse.html", null ], + [ "XMake", "installation_xmake.html", null ] +]; \ No newline at end of file diff --git a/installation_8md.html b/installation_8md.html new file mode 100644 index 000000000..aebf31929 --- /dev/null +++ b/installation_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__arch_8md.html b/installation__arch_8md.html new file mode 100644 index 000000000..fca60e751 --- /dev/null +++ b/installation__arch_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_arch.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_arch.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__bazel_8md.html b/installation__bazel_8md.html new file mode 100644 index 000000000..ca6e972eb --- /dev/null +++ b/installation__bazel_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_bazel.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_bazel.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__cmake_8md.html b/installation__cmake_8md.html new file mode 100644 index 000000000..e864ca7e8 --- /dev/null +++ b/installation__cmake_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_cmake.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_cmake.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__conan_8md.html b/installation__conan_8md.html new file mode 100644 index 000000000..898d6c69b --- /dev/null +++ b/installation__conan_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_conan.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_conan.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__debian_8md.html b/installation__debian_8md.html new file mode 100644 index 000000000..fa27b3120 --- /dev/null +++ b/installation__debian_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_debian.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_debian.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__manual_8md.html b/installation__manual_8md.html new file mode 100644 index 000000000..e7d6397c2 --- /dev/null +++ b/installation__manual_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_manual.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_manual.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__nix_8md.html b/installation__nix_8md.html new file mode 100644 index 000000000..e39841548 --- /dev/null +++ b/installation__nix_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_nix.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_nix.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__opensuse_8md.html b/installation__opensuse_8md.html new file mode 100644 index 000000000..59ec3e547 --- /dev/null +++ b/installation__opensuse_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_opensuse.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_opensuse.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__vcpkg_8md.html b/installation__vcpkg_8md.html new file mode 100644 index 000000000..e5ce02962 --- /dev/null +++ b/installation__vcpkg_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_vcpkg.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_vcpkg.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation__xmake_8md.html b/installation__xmake_8md.html new file mode 100644 index 000000000..d6303810a --- /dev/null +++ b/installation__xmake_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: installation_xmake.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    installation_xmake.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/installation_arch.html b/installation_arch.html new file mode 100644 index 000000000..376053319 --- /dev/null +++ b/installation_arch.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: Arch Linux + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Arch Linux
    +
    +
    +

    FTXUI is packaged on the AUR. Install using an AUR helper:

    +
    yay -S ftxui
    +

    You can also manually download the PKGBUILD from https://aur.archlinux.org/packages/ftxui.

    +

    Once installed, you can use it in your CMake projects by adding the following to your CMakeLists.txt:

    +
    find_package(ftxui REQUIRED)
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +
    Note
    This is an unofficial package. That means it is not maintained by the FTXUI team, but by the community. The package maintainers seems to actively update the package to the latest version. Thanks to the maintainers for their work!
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_bazel.html b/installation_bazel.html new file mode 100644 index 000000000..3838ca5d6 --- /dev/null +++ b/installation_bazel.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: Bazel + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Bazel
    +
    +
    +

    FTXUI can be integrated into your project using Bazel with Bzlmod (Bazel modules).

    +

    The library is registered in the Bazel Central Registry

    +

    MODULE.bazel

    bazel_dep(name = "ftxui", version = "6.1.9")
    +

    BUILD.bazel

    cc_binary(
    +
    name = "main",
    +
    srcs = ["main.cpp"],
    +
    deps = [
    +
    "@ftxui//:component",
    +
    "@ftxui//:dom",
    +
    "@ftxui//:screen",
    +
    ],
    +
    )
    +

    +Starter Project

    +

    You can use the official Bazel starter project for a minimal working setup:

    + +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_cmake.html b/installation_cmake.html new file mode 100644 index 000000000..43c54b3f9 --- /dev/null +++ b/installation_cmake.html @@ -0,0 +1,316 @@ + + + + + + + + +FTXUI: CMake + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    CMake
    +
    +
    + +

    This page explains how to depend on FTXUI using CMake.
    +

    +

    +Methods of Integration

    +

    +Using FetchContent

    +

    This approach downloads FTXUI at configure time and doesn't require a system-wide install.

    +
    include(FetchContent)
    +
    +
    FetchContent_Declare(ftxui
    +
    GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI
    +
    GIT_TAG v6.1.9 # Replace with a version, tag, or commit hash
    +
    )
    +
    +
    FetchContent_MakeAvailable(ftxui)
    +
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +

    This ensures reproducible builds and easy dependency management.

    +

    +Using find_package

    +

    If FTXUI is installed system-wide or via a package manager (e.g. vcpkg or Conan), you can use:

    +
    find_package(ftxui REQUIRED)
    +
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +

    Make sure the package is visible in your CMAKE_PREFIX_PATH.

    +

    +Using git submodule

    +

    You can also add FTXUI as a Git submodule, keeping it as part of your repository:

    +
    git submodule add https://github.com/ArthurSonzogni/FTXUI external/ftxui
    +
    git submodule update --init --recursive
    +

    When cloning a repository that already includes FTXUI as a submodule, make sure to fetch submodules with:

    +
    git clone --recurse-submodules <your-repo>
    +
    # Or, if already cloned:
    +
    git submodule update --init --recursive
    +

    Then in your CMakeLists.txt:

    +
    add_subdirectory(external/ftxui)
    +
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +

    This approach works well if you want to vendor FTXUI in your own repository.

    +

    +Optional CMake Flags

    +

    FTXUI supports the following CMake options:

    + + + + + + + + + + + + + +
    Option Description Default
    FTXUI_BUILD_EXAMPLES Build bundled examples OFF
    FTXUI_BUILD_DOCS Build the documentation OFF
    FTXUI_BUILD_TESTS Enable tests OFF
    FTXUI_ENABLE_INSTALL Generate install targets ON
    FTXUI_MICROSOFT_TERMINAL_FALLBACK Improve Windows compatibility ON/OFF
    +

    To enable an option:

    +
    cmake -DFTXUI_BUILD_EXAMPLES=ON ..
    +

    +Verifying Integration

    +

    To confirm the setup is working, build and run a minimal example. If you need a complete template, see: ftxui-starter

    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_conan.html b/installation_conan.html new file mode 100644 index 000000000..3857e6553 --- /dev/null +++ b/installation_conan.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: Conan + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Conan
    +
    +
    +

    Unofficial recipe for FTXUI exists on Conan Center: https://conan.io/center/recipes/ftxui

    +
    Note
    This is an unofficial recipe. That means it is not maintained by the FTXUI team, but by the community. The package maintainers seems to actively update the package to the latest version. Thanks to the maintainers for their work!
    +
    Todo
    Add instructions on how to use the conan recipe.
    +
    Todo
    Please consider adding an "official" recipe to Conan Center if know how. It could be a github action that will automatically update the conan center when a new release is made.
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_debian.html b/installation_debian.html new file mode 100644 index 000000000..eb98b46a7 --- /dev/null +++ b/installation_debian.html @@ -0,0 +1,237 @@ + + + + + + + + +FTXUI: Debian/Ubuntu + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Debian/Ubuntu
    +
    +
    +

    +Debian and Ubuntu Packages (Unofficial)

    +

    Pre-built packages are provided by the distributions. Install with:

    +
    sudo apt install libftxui-dev
    +

    The following packages are available:

      +
    • ftxui-doc
    • +
    • ftxui-examples
    • +
    • libftxui-component<version>
    • +
    • libftxui-dev
    • +
    • libftxui-dom<version>
    • +
    • libftxui-screen<version>
    • +
    +

    Once installed, you can use it in your CMake projects by adding the following to your CMakeLists.txt:

    +
    find_package(ftxui REQUIRED)
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +
    Note
    This is an unofficial package. That means it is not maintained by the FTXUI team, but by the community.
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_manual.html b/installation_manual.html new file mode 100644 index 000000000..ce0a110ee --- /dev/null +++ b/installation_manual.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: Manual + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Manual
    +
    +
    +

    Table of Contents

    + +
    +

    +Building from Source (Official)

    +

    Clone and build the project using CMake:

    +
    git clone https://github.com/ArthurSonzogni/FTXUI.git
    +
    cd FTXUI
    +
    cmake -S . -B build -DFTXUI_ENABLE_INSTALL=ON -D
    +
    cmake --build build -j
    +
    sudo cmake --install build
    +

    Once installed you can use it in your CMake projects by adding the following to your CMakeLists.txt:

    +
    find_package(ftxui REQUIRED)
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_nix.html b/installation_nix.html new file mode 100644 index 000000000..cc8a6163a --- /dev/null +++ b/installation_nix.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: Nix + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Nix
    +
    +
    +
    Note
    FTXUI author is not very knowledgeable about Nix. This page has been mostly generated by AI. If you have any suggestions to improve it, please open a PR.
    +

    +Nix Flake

    +

    FTXUI ships with a flake.nix providing both packages and a development shell.

    +

    +Build the Library

    +
    nix build github:ArthurSonzogni/FTXUI
    +

    The resulting package is accessible via the result link.

    +

    +Use as a Dependency

    +

    Add FTXUI to your flake inputs:

    +
    {
    +
    inputs.ftxui.url = "github:ArthurSonzogni/FTXUI";
    +
    }
    +

    Then reference ftxui.packages.<system>.ftxui in your outputs.

    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_opensuse.html b/installation_opensuse.html new file mode 100644 index 000000000..c3c040a80 --- /dev/null +++ b/installation_opensuse.html @@ -0,0 +1,225 @@ + + + + + + + + +FTXUI: openSUSE + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    openSUSE
    +
    +
    +

    +openSUSE Package (Unofficial)

    +

    FTXUI seems to be available from the devel:libraries:c_c++ repository.

    +
    sudo zypper addrepo https://download.opensuse.org/repositories/devel:libraries:c_c++/openSUSE_Leap_$releasever/devel:libraries:c_c++.repo
    +
    sudo zypper install ftxui
    +

    See https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui for details.

    +
    Note
    This is an unofficial package. That means it is not maintained by the FTXUI team, but by the community.
    +
    +
    Note
    The FTXUI author is not very knowledgeable about openSUSE. This page has been mostly generated by AI. If you have any suggestions to improve it, please open a PR.
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_vcpkg.html b/installation_vcpkg.html new file mode 100644 index 000000000..3339c7ec6 --- /dev/null +++ b/installation_vcpkg.html @@ -0,0 +1,281 @@ + + + + + + + + +FTXUI: Vcpkg + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Vcpkg
    +
    +
    +

    Table of Contents

    + +
    +

    +Vcpkg Package

    +

    FTXUI is available in the Vcpkg registry

    +

    To use it, you can add the following to your vcpkg.json:

    +
    {
    +
    "name": "your-project",
    +
    "version-string": "0.1.0",
    +
    "dependencies": [
    +
    {
    +
    "name": "ftxui",
    +
    "version>=": "6.1.9"
    +
    }
    +
    ]
    +
    }
    +

    +Install FTXUI using Vcpkg

    +
    vcpkg install --triplet x64-linux # or x64-windows / arm64-osx etc.
    +

    +Configure your build system.

    +

    If you are using CMake, you can use the following in your CMakeLists.txt:

    +

    CMakeLists.txt

    cmake_minimum_required(VERSION 3.15)
    +
    project(my_project)
    +
    +
    # Make sure vcpkg toolchain file is passed at configure time
    +
    find_package(ftxui CONFIG REQUIRED)
    +
    +
    add_executable(main main.cpp)
    +
    target_link_libraries(main
    +
    PRIVATE ftxui::screen
    +
    PRIVATE ftxui::dom
    +
    PRIVATE ftxui::component
    +
    )
    +

    main.cpp

    + + +
    +
    int main() {
    +
    using namespace ftxui;
    +
    +
    auto screen = ScreenInteractive::TerminalOutput();
    +
    auto button = Button("Click me", [] { std::cout << "Clicked!\n"; });
    +
    +
    screen.Loop(button);
    +
    }
    + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +

    Configure and build the project

    cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
    +
    cmake --build build
    +
    ./build/main
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/installation_xmake.html b/installation_xmake.html new file mode 100644 index 000000000..556a8809b --- /dev/null +++ b/installation_xmake.html @@ -0,0 +1,242 @@ + + + + + + + + +FTXUI: XMake + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    XMake
    +
    +
    +

    Table of Contents

    + +
    +

    +XMake Package (Unofficial)

    +

    FTXUI is available in the xmake-repo

    +

    Example xmake.lua snippet:

    +
    add_requires("ftxui", {system = false})
    +
    +
    target("demo")
    +
    set_kind("binary")
    +
    add_files("src/*.cpp")
    +
    add_packages("ftxui")
    +

    Refer to the XMake documentation for further options.

    +
    Note
    This is an unofficial package. That means it is not maintained by the FTXUI team, but by the community.
    +
    +
    Note
    The FTXUI author is not very knowledgeable about openSUSE. This page has been mostly generated by AI. If you have any suggestions to improve it, please open a PR.
    +
    +
    + + + + +
    Previous
    Getting Started
    +
    +
    +
    + + + + + diff --git a/introduction_8md.html b/introduction_8md.html new file mode 100644 index 000000000..6662682a9 --- /dev/null +++ b/introduction_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: introduction.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    introduction.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/inverted_8cpp.html b/inverted_8cpp.html new file mode 100644 index 000000000..b806fe855 --- /dev/null +++ b/inverted_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: inverted.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    inverted.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element inverted (Element child)
     Add a filter that will invert the foreground and the background colors.
     
    +
    +
    + + + + + diff --git a/inverted_8cpp.js b/inverted_8cpp.js new file mode 100644 index 000000000..34ad23209 --- /dev/null +++ b/inverted_8cpp.js @@ -0,0 +1,4 @@ +var inverted_8cpp = +[ + [ "inverted", "inverted_8cpp.html#ga672456b8f2091b615a30ff755418b37b", null ] +]; \ No newline at end of file diff --git a/inverted_8cpp_source.html b/inverted_8cpp_source.html new file mode 100644 index 000000000..ebe632203 --- /dev/null +++ b/inverted_8cpp_source.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: inverted.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    inverted.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, inverted
    +
    8#include "ftxui/dom/node.hpp" // for Node
    +
    9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15namespace {
    +
    16class Inverted : public NodeDecorator {
    +
    17 public:
    + +
    19
    +
    20 void Render(Screen& screen) override {
    +
    21 Node::Render(screen);
    +
    22 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    23 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    24 screen.PixelAt(x, y).inverted ^= true;
    +
    25 }
    +
    26 }
    +
    27 }
    +
    28};
    +
    29} // namespace
    +
    30
    +
    31/// @brief Add a filter that will invert the foreground and the background
    +
    32/// colors.
    +
    33/// @ingroup dom
    +
    + +
    35 return std::make_shared<Inverted>(std::move(child));
    +
    36}
    +
    +
    37
    +
    38} // namespace ftxui
    + +
    NodeDecorator(Element child)
    + +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    +
    + + + + + diff --git a/italic_8cpp.html b/italic_8cpp.html new file mode 100644 index 000000000..b9da153ae --- /dev/null +++ b/italic_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: italic.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    italic.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element italic (Element child)
     Apply a underlinedDouble to text.
     
    +
    +
    + + + + + diff --git a/italic_8cpp.js b/italic_8cpp.js new file mode 100644 index 000000000..f68063f36 --- /dev/null +++ b/italic_8cpp.js @@ -0,0 +1,4 @@ +var italic_8cpp = +[ + [ "italic", "italic_8cpp.html#ga8a8d190765de7bbd9e78f9e639c2a96d", null ] +]; \ No newline at end of file diff --git a/italic_8cpp_source.html b/italic_8cpp_source.html new file mode 100644 index 000000000..eb93a3a2f --- /dev/null +++ b/italic_8cpp_source.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: italic.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    italic.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2025 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, underlinedDouble
    +
    8#include "ftxui/dom/node.hpp" // for Node
    +
    9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief Apply a underlinedDouble to text.
    +
    16/// @ingroup dom
    +
    + +
    18 class Impl : public NodeDecorator {
    +
    19 public:
    +
    20 using NodeDecorator::NodeDecorator;
    +
    21
    +
    22 void Render(Screen& screen) override {
    +
    23 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    24 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    25 screen.PixelAt(x, y).italic = true;
    +
    26 }
    +
    27 }
    +
    28 Node::Render(screen);
    +
    29 }
    +
    30 };
    +
    31
    +
    32 return std::make_shared<Impl>(std::move(child));
    +
    33}
    +
    +
    34
    +
    35} // namespace ftxui
    + + + +
    Element italic(Element)
    Apply a underlinedDouble to text.
    Definition italic.cpp:17
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    bool italic
    Definition pixel.hpp:31
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    +
    + + + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 000000000..875ada738 --- /dev/null +++ b/jquery.js @@ -0,0 +1,204 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e} +var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{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]||se.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]&&se.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&&X.test(n)&&(t=h(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=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/linear__gradient_8cppm.html b/linear__gradient_8cppm.html new file mode 100644 index 000000000..467551070 --- /dev/null +++ b/linear__gradient_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: linear_gradient.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    linear_gradient.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/linear__gradient_8cppm_source.html b/linear__gradient_8cppm_source.html new file mode 100644 index 000000000..c1b369f7f --- /dev/null +++ b/linear__gradient_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: linear_gradient.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    linear_gradient.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.dom.linear_gradient
    +
    2/// @brief Module file for the LinearGradient struct of the Dom module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.dom.linear_gradient;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16}
    +
    A class representing the settings for linear-gradient color effect.
    + +
    Module file for the LinearGradient struct of the Dom module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/linear__gradient_8hpp.html b/linear__gradient_8hpp.html new file mode 100644 index 000000000..1166e0b63 --- /dev/null +++ b/linear__gradient_8hpp.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: linear_gradient.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    linear_gradient.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Classes

    struct  LinearGradient
     A class representing the settings for linear-gradient color effect. More...
     
    struct  LinearGradient::Stop
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/linear__gradient_8hpp.js b/linear__gradient_8hpp.js new file mode 100644 index 000000000..ca0141236 --- /dev/null +++ b/linear__gradient_8hpp.js @@ -0,0 +1,4 @@ +var linear__gradient_8hpp = +[ + [ "Stop", "structftxui_1_1LinearGradient_1_1Stop.html", "structftxui_1_1LinearGradient_1_1Stop" ] +]; \ No newline at end of file diff --git a/linear__gradient_8hpp_source.html b/linear__gradient_8hpp_source.html new file mode 100644 index 000000000..e83ba9673 --- /dev/null +++ b/linear__gradient_8hpp_source.html @@ -0,0 +1,283 @@ + + + + + + + + +FTXUI: linear_gradient.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    linear_gradient.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_LINEAR_GRADIENT_HPP
    +
    5#define FTXUI_DOM_LINEAR_GRADIENT_HPP
    +
    6
    +
    7#include <optional>
    +
    8#include <vector>
    +
    9
    +
    10#include "ftxui/screen/color.hpp" // for Colors
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14/// @brief A class representing the settings for linear-gradient color effect.
    +
    15///
    +
    16/// Example:
    +
    17/// ```cpp
    +
    18/// LinearGradient()
    +
    19/// .Angle(45)
    +
    20/// .Stop(Color::Red, 0.0)
    +
    21/// .Stop(Color::Green, 0.5)
    +
    22/// .Stop(Color::Blue, 1.0);
    +
    23/// ```
    +
    24///
    +
    25/// There are also shorthand constructors:
    +
    26/// ```cpp
    +
    27/// LinearGradient(Color::Red, Color::Blue);
    +
    28/// LinearGradient(45, Color::Red, Color::Blue);
    +
    29/// ```
    +
    30///
    +
    31/// @ingroup dom
    +
    + +
    33 float angle = 0.f;
    +
    34
    +
    35 /// A stop is a color at a specific position in the gradient.
    +
    36 /// The position is a value between 0.0 and 1.0,
    +
    37 /// where 0.0 is the start of the gradient
    +
    38 /// and 1.0 is the end of the gradient.
    +
    +
    39 struct Stop {
    + +
    41 std::optional<float> position;
    +
    42 };
    +
    +
    43 std::vector<Stop> stops;
    +
    44
    +
    45 // Simple constructor
    + +
    47 LinearGradient(Color begin, Color end);
    +
    48 LinearGradient(float angle, Color begin, Color end);
    +
    49
    +
    50 // Modifier using the builder pattern.
    + +
    52 LinearGradient& Stop(Color color, float position);
    + +
    54};
    +
    +
    55
    +
    56} // namespace ftxui
    +
    57
    +
    58#endif // FTXUI_DOM_LINEAR_GRADIENT_HPP
    + +
    LinearGradient & Stop(Color color, float position)
    Add a color stop to the gradient.
    +
    LinearGradient & Angle(float angle)
    Set the angle of the gradient.
    +
    LinearGradient()
    Build the "empty" gradient. This is often followed by calls to LinearGradient::Angle() and LinearGrad...
    +
    std::vector< Stop > stops
    + +
    A class representing the settings for linear-gradient color effect.
    + +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    std::optional< float > position
    +
    +
    + + + + + diff --git a/linear__gradient__gallery_8cpp.html b/linear__gradient__gallery_8cpp.html new file mode 100644 index 000000000..03ca363b7 --- /dev/null +++ b/linear__gradient__gallery_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: linear_gradient_gallery.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    linear_gradient_gallery.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 15 of file linear_gradient_gallery.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/linear__gradient__gallery_8cpp.js b/linear__gradient__gallery_8cpp.js new file mode 100644 index 000000000..3efaa28ae --- /dev/null +++ b/linear__gradient__gallery_8cpp.js @@ -0,0 +1,4 @@ +var linear__gradient__gallery_8cpp = +[ + [ "main", "linear__gradient__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/linear__gradient__gallery_8cpp_source.html b/linear__gradient__gallery_8cpp_source.html new file mode 100644 index 000000000..c01d0de86 --- /dev/null +++ b/linear__gradient__gallery_8cpp_source.html @@ -0,0 +1,277 @@ + + + + + + + + +FTXUI: linear_gradient_gallery.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    linear_gradient_gallery.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/component/component_base.hpp> // for ComponentBase, Component
    +
    5#include <ftxui/dom/elements.hpp> // for operator|, Element, flex, bgcolor, text, vbox, center
    +
    6#include <ftxui/dom/linear_gradient.hpp> // for LinearGradient
    +
    7#include <ftxui/screen/color.hpp> // for Color, Color::Blue, Color::Red
    +
    8#include <memory> // for __shared_ptr_access, shared_ptr
    +
    9#include <string> // for allocator, operator+, char_traits, string, to_string
    +
    10
    +
    11#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    12#include "ftxui/component/component.hpp" // for Slider, Renderer, Vertical
    +
    13#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    14
    +
    +
    15int main() {
    +
    16 using namespace ftxui;
    +
    17 auto screen = ScreenInteractive::Fullscreen();
    +
    18
    +
    19 int angle = 180.f;
    +
    20 float start = 0.f;
    +
    21 float end = 1.f;
    +
    22
    +
    23 std::string slider_angle_text;
    +
    24 std::string slider_start_text;
    +
    25 std::string slider_end_text;
    +
    26
    +
    27 auto slider_angle = Slider(&slider_angle_text, &angle, 0, 360);
    +
    28 auto slider_start = Slider(&slider_start_text, &start, 0.f, 1.f, 0.05f);
    +
    29 auto slider_end = Slider(&slider_end_text, &end, 0.f, 1.f, 0.05f);
    +
    30
    +
    31 auto layout = Container::Vertical({
    +
    32 slider_angle,
    +
    33 slider_start,
    +
    34 slider_end,
    +
    35 });
    +
    36
    +
    37 auto renderer = Renderer(layout, [&] {
    +
    38 slider_angle_text = "angle = " + std::to_string(angle) + "°";
    +
    39 slider_start_text = "start = " + std::to_string(int(start * 100)) + "%";
    +
    40 slider_end_text = "end = " + std::to_string(int(end * 100)) + "%";
    +
    41
    +
    42 auto background = text("Gradient") | center |
    +
    43 bgcolor(LinearGradient()
    +
    44 .Angle(angle)
    +
    45 .Stop(Color::Blue, start)
    +
    46 .Stop(Color::Red, end));
    +
    47 return vbox({
    +
    48 background | flex,
    +
    49 layout->Render(),
    +
    50 }) |
    +
    51 flex;
    +
    52 });
    +
    53
    +
    54 screen.Loop(renderer);
    +
    55}
    +
    + + + + + +
    A class representing the settings for linear-gradient color effect.
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    +
    + + + + + diff --git a/loop_8cpp.html b/loop_8cpp.html new file mode 100644 index 000000000..412013bc7 --- /dev/null +++ b/loop_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: loop.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    loop.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/loop_8cpp_source.html b/loop_8cpp_source.html new file mode 100644 index 000000000..6301d2cc2 --- /dev/null +++ b/loop_8cpp_source.html @@ -0,0 +1,287 @@ + + + + + + + + +FTXUI: loop.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    loop.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6#include <utility> // for move
    +
    7
    +
    8#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive, Component
    +
    9
    +
    10namespace ftxui {
    +
    11
    +
    12/// @brief A Loop is a wrapper around a Component and a ScreenInteractive.
    +
    13/// It is used to run a Component in a terminal.
    +
    14/// @see Component, ScreenInteractive.
    +
    15/// @see ScreenInteractive::Loop().
    +
    16/// @see ScreenInteractive::ExitLoop().
    +
    17/// @param[in] screen The screen to use.
    +
    18/// @param[in] component The component to run.
    +
    19// NOLINTNEXTLINE
    +
    + +
    21 : screen_(screen), component_(std::move(component)) {
    +
    22 screen_->PreMain();
    +
    23}
    +
    +
    24
    +
    + +
    26 screen_->PostMain();
    +
    27}
    +
    +
    28
    +
    29/// @brief Whether the loop has quitted.
    +
    + +
    31 return screen_->HasQuitted();
    +
    32}
    +
    +
    33
    +
    34/// @brief Execute the loop. Make the `component` to process every pending
    +
    35/// tasks/events. A new frame might be drawn if the previous was invalidated.
    +
    36/// Return true until the loop hasn't completed.
    +
    + +
    38 screen_->RunOnce(component_);
    +
    39}
    +
    +
    40
    +
    41/// @brief Wait for at least one event to be handled and execute
    +
    42/// `Loop::RunOnce()`.
    +
    + +
    44 screen_->RunOnceBlocking(component_);
    +
    45}
    +
    +
    46
    +
    47/// Execute the loop, blocking the current thread, up until the loop has
    +
    48/// quitted.
    +
    +
    49void Loop::Run() {
    +
    50 while (!HasQuitted()) {
    + +
    52 }
    +
    53}
    +
    +
    54
    +
    55} // namespace ftxui
    +
    bool HasQuitted()
    Whether the loop has quitted.
    Definition loop.cpp:30
    + +
    void Run()
    Definition loop.cpp:49
    +
    Loop(ScreenInteractive *screen, Component component)
    A Loop is a wrapper around a Component and a ScreenInteractive. It is used to run a Component in a te...
    Definition loop.cpp:20
    +
    void RunOnce()
    Execute the loop. Make the component to process every pending tasks/events. A new frame might be draw...
    Definition loop.cpp:37
    +
    void RunOnceBlocking()
    Wait for at least one event to be handled and execute Loop::RunOnce().
    Definition loop.cpp:43
    +
    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/loop_8cppm.html b/loop_8cppm.html new file mode 100644 index 000000000..97cc04db3 --- /dev/null +++ b/loop_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: loop.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    loop.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/loop_8cppm_source.html b/loop_8cppm_source.html new file mode 100644 index 000000000..9caca3b80 --- /dev/null +++ b/loop_8cppm_source.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: loop.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    loop.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.component.loop
    +
    2/// @brief Module file for the Loop class of the Component module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.component.loop;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16 using ftxui::Component;
    + +
    18
    +
    19 using ftxui::Loop;
    +
    20}
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
    + +
    Module file for the Loop class of the Component module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    +
    +
    + + + + + diff --git a/loop_8hpp.html b/loop_8hpp.html new file mode 100644 index 000000000..b4484c260 --- /dev/null +++ b/loop_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: loop.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    loop.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    class  Loop
     Loop is a class that manages the event loop for a component. More...
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/loop_8hpp_source.html b/loop_8hpp_source.html new file mode 100644 index 000000000..039dbebf2 --- /dev/null +++ b/loop_8hpp_source.html @@ -0,0 +1,307 @@ + + + + + + + + +FTXUI: loop.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    loop.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_COMPONENT_LOOP_HPP
    +
    5#define FTXUI_COMPONENT_LOOP_HPP
    +
    6
    +
    7#include <memory> // for shared_ptr
    +
    8
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    10
    +
    11namespace ftxui {
    +
    12class ComponentBase;
    +
    13
    +
    14using Component = std::shared_ptr<ComponentBase>;
    +
    15class ScreenInteractive;
    +
    16
    +
    17/// @brief Loop is a class that manages the event loop for a component.
    +
    18///
    +
    19/// It is responsible for running the component, handling events, and
    +
    20/// updating the screen.
    +
    21///
    +
    22/// The Loop class is designed to be used with a ScreenInteractive object,
    +
    23/// which represents the terminal screen.
    +
    24///
    +
    25/// **Example**
    +
    26/// ```cpp
    +
    27/// #include <ftxui/component/component.hpp>
    +
    28/// #include <ftxui/component/screen_interactive.hpp>
    +
    29/// #include <ftxui/component/loop.hpp>
    +
    30///
    +
    31/// int main() {
    +
    32/// auto screen = ftxui::ScreenInteractive::TerminalOutput();
    +
    33/// auto component = ftxui::Button("Click me", [] { ... });
    +
    34///
    +
    35/// ftxui::Loop loop(screen.get(), component);
    +
    36///
    +
    37/// // Either
    +
    38/// loop.Run(); // Blocking until the component quits.
    +
    39///
    +
    40/// // Or
    +
    41/// loop.RunOnce(); // Non-blocking, returns immediately.
    +
    42///
    +
    43/// // Or
    +
    44/// loop.RunOnceBlocking(); // Blocking until handling one event.
    +
    45///
    +
    46/// // Or in a loop:
    +
    47/// while (!loop.HasQuitted()) {
    +
    48/// loop.RunOnce();
    +
    49///
    +
    50/// // Do something else like running a different library loop function.
    +
    51/// }
    +
    52/// }
    +
    53/// ```
    +
    54///
    +
    55/// @ingroup component
    +
    +
    56class Loop {
    +
    57 public:
    +
    58 Loop(ScreenInteractive* screen, Component component);
    +
    59 ~Loop();
    +
    60
    +
    61 bool HasQuitted();
    +
    62 void RunOnce();
    +
    63 void RunOnceBlocking();
    +
    64 void Run();
    +
    65
    +
    66 // This class is non copyable/movable.
    +
    67 Loop(const Loop&) = default;
    +
    68 Loop(Loop&&) = delete;
    +
    69 Loop& operator=(Loop&&) = delete;
    +
    70 Loop(const ScreenInteractive&) = delete;
    +
    71 Loop& operator=(const Loop&) = delete;
    +
    72
    +
    73 private:
    +
    74 ScreenInteractive* screen_;
    +
    75 Component component_;
    +
    76};
    +
    +
    77
    +
    78} // namespace ftxui
    +
    79
    +
    80#endif // FTXUI_COMPONENT_LOOP_HPP
    + +
    bool HasQuitted()
    Whether the loop has quitted.
    Definition loop.cpp:30
    +
    Loop(const ScreenInteractive &)=delete
    + +
    void Run()
    Definition loop.cpp:49
    +
    Loop(ScreenInteractive *screen, Component component)
    A Loop is a wrapper around a Component and a ScreenInteractive. It is used to run a Component in a te...
    Definition loop.cpp:20
    +
    Loop & operator=(const Loop &)=delete
    +
    void RunOnce()
    Execute the loop. Make the component to process every pending tasks/events. A new frame might be draw...
    Definition loop.cpp:37
    +
    Loop(const Loop &)=default
    +
    Loop & operator=(Loop &&)=delete
    +
    Loop(Loop &&)=delete
    +
    void RunOnceBlocking()
    Wait for at least one event to be handled and execute Loop::RunOnce().
    Definition loop.cpp:43
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    +
    +
    + + + + + diff --git a/menu.js b/menu.js new file mode 100644 index 000000000..0fd1e9901 --- /dev/null +++ b/menu.js @@ -0,0 +1,134 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
      '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
    • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
    • '; + } + result+='
    '; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
    '+ + '
    '+ + '
     '+ + ''+ + '
    '+ + '
    '+ + '
    '+ + '
    '; + } else { + searchBoxHtml='
    '+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '; + } + } + + $('#main-nav').before('
    '+ + ''+ + ''+ + '
    '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
    +

    + FTXUI is a simple + functional C++ library for terminal user interface.
    + This showcases the: ./example/ folder.
    +

    + +
    +
    +
    +
    +
    + +
    +
    +
    +
  2. '); + } + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menu2_8cpp.html b/menu2_8cpp.html new file mode 100644 index 000000000..56041b0d1 --- /dev/null +++ b/menu2_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: menu2.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu2.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file menu2.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu2_8cpp.js b/menu2_8cpp.js new file mode 100644 index 000000000..edda1b3fe --- /dev/null +++ b/menu2_8cpp.js @@ -0,0 +1,4 @@ +var menu2_8cpp = +[ + [ "main", "menu2_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu2_8cpp_source.html b/menu2_8cpp_source.html new file mode 100644 index 000000000..768f86ed5 --- /dev/null +++ b/menu2_8cpp_source.html @@ -0,0 +1,300 @@ + + + + + + + + +FTXUI: menu2.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu2.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <memory> // for allocator, __shared_ptr_access
    +
    6#include <string> // for string, basic_string, operator+, to_string
    +
    7#include <vector> // for vector
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Menu, Horizontal, Renderer
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/component_options.hpp" // for MenuOption
    +
    13#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    14#include "ftxui/dom/elements.hpp" // for text, separator, bold, hcenter, vbox, hbox, gauge, Element, operator|, border
    +
    15
    +
    +
    16int main() {
    +
    17 using namespace ftxui;
    +
    18 auto screen = ScreenInteractive::TerminalOutput();
    +
    19
    +
    20 std::vector<std::string> left_menu_entries = {
    +
    21 "0%", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%",
    +
    22 };
    +
    23 std::vector<std::string> right_menu_entries = {
    +
    24 "0%", "1%", "2%", "3%", "4%", "5%", "6%", "7%", "8%", "9%", "10%",
    +
    25 };
    +
    26
    +
    27 auto menu_option = MenuOption();
    +
    28 menu_option.on_enter = screen.ExitLoopClosure();
    +
    29
    +
    30 int left_menu_selected = 0;
    +
    31 int right_menu_selected = 0;
    +
    32 Component left_menu_ =
    +
    33 Menu(&left_menu_entries, &left_menu_selected, menu_option);
    +
    34 Component right_menu_ =
    +
    35 Menu(&right_menu_entries, &right_menu_selected, menu_option);
    +
    36
    +
    37 Component container = Container::Horizontal({
    +
    38 left_menu_,
    +
    39 right_menu_,
    +
    40 });
    +
    41
    +
    42 auto renderer = Renderer(container, [&] {
    +
    43 int sum = left_menu_selected * 10 + right_menu_selected;
    +
    44 return vbox({
    +
    45 // -------- Top panel --------------
    +
    46 hbox({
    +
    47 // -------- Left Menu --------------
    +
    48 vbox({
    +
    49 hcenter(bold(text("Percentage by 10%"))),
    +
    50 separator(),
    +
    51 left_menu_->Render(),
    +
    52 }),
    +
    53 separator(),
    +
    54 // -------- Right Menu --------------
    +
    55 vbox({
    +
    56 hcenter(bold(text("Percentage by 1%"))),
    +
    57 separator(),
    +
    58 right_menu_->Render(),
    +
    59 }),
    +
    60 separator(),
    +
    61 }),
    +
    62 separator(),
    +
    63 // -------- Bottom panel --------------
    +
    64 vbox({
    +
    65 hbox({
    +
    66 text(" gauge : "),
    +
    67 gauge(sum / 100.0),
    +
    68 }),
    +
    69 hbox({
    +
    70 text(" text : "),
    +
    71 text(std::to_string(sum) + " %"),
    +
    72 }),
    +
    73 }),
    +
    74 }) |
    +
    75 border;
    +
    76 });
    +
    77
    +
    78 screen.Loop(renderer);
    +
    79}
    +
    + + + + + +
    Option for the Menu component.
    +
    int main()
    Definition menu2.cpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/menu__entries_8cpp.html b/menu__entries_8cpp.html new file mode 100644 index 000000000..6c200ca68 --- /dev/null +++ b/menu__entries_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: menu_entries.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_entries.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    MenuEntryOption Colored (ftxui::Color c)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Colored()

    + +
    +
    + + + + + + + +
    MenuEntryOption Colored (ftxui::Color c)
    +
    + +

    Definition at line 20 of file menu_entries.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 36 of file menu_entries.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__entries_8cpp.js b/menu__entries_8cpp.js new file mode 100644 index 000000000..ee2679207 --- /dev/null +++ b/menu__entries_8cpp.js @@ -0,0 +1,5 @@ +var menu__entries_8cpp = +[ + [ "Colored", "menu__entries_8cpp.html#a12f3ca405f8238e1d03dff81d4cf6997", null ], + [ "main", "menu__entries_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__entries_8cpp_source.html b/menu__entries_8cpp_source.html new file mode 100644 index 000000000..14a930487 --- /dev/null +++ b/menu__entries_8cpp_source.html @@ -0,0 +1,331 @@ + + + + + + + + +FTXUI: menu_entries.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_entries.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <iostream> // for basic_ostream::operator<<, operator<<, endl, basic_ostream, basic_ostream<>::__ostream_type, cout, ostream
    +
    6#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    7#include <string> // for char_traits, to_string, operator+, string, basic_string
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for MenuEntry, Renderer, Vertical
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/component_options.hpp" // for MenuEntryOption
    +
    13#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    14#include "ftxui/dom/elements.hpp" // for operator|, Element, separator, text, hbox, size, frame, color, vbox, HEIGHT, LESS_THAN, bold, border, inverted
    +
    15#include "ftxui/screen/color.hpp" // for Color, Color::Blue, Color::Cyan, Color::Green, Color::Red, Color::Yellow
    +
    16
    +
    17using namespace ftxui;
    +
    18
    +
    19// Define a special style for some menu entry.
    +
    + +
    21 MenuEntryOption option;
    +
    22 option.transform = [c](EntryState state) {
    +
    23 state.label = (state.active ? "> " : " ") + state.label;
    +
    24 Element e = text(state.label) | color(c);
    +
    25 if (state.focused) {
    +
    26 e = e | inverted;
    +
    27 }
    +
    28 if (state.active) {
    +
    29 e = e | bold;
    +
    30 }
    +
    31 return e;
    +
    32 };
    +
    33 return option;
    +
    34}
    +
    +
    35
    +
    +
    36int main() {
    + +
    38
    +
    39 int selected = 0;
    +
    40 auto menu = Container::Vertical(
    +
    41 {
    +
    42 MenuEntry(" 1. improve"),
    +
    43 MenuEntry(" 2. tolerant"),
    +
    44 MenuEntry(" 3. career"),
    +
    45 MenuEntry(" 4. cast"),
    +
    46 MenuEntry(" 5. question"),
    +
    47
    +
    48 Renderer([] { return separator(); }),
    +
    49
    +
    50 MenuEntry(" 6. rear", Colored(Color::Red)),
    +
    51 MenuEntry(" 7. drown", Colored(Color::Yellow)),
    +
    52 MenuEntry(" 8. nail", Colored(Color::Green)),
    +
    53 MenuEntry(" 9. quit", Colored(Color::Cyan)),
    +
    54 MenuEntry("10. decorative", Colored(Color::Blue)),
    +
    55
    +
    56 Renderer([] { return separator(); }),
    +
    57
    +
    58 MenuEntry("11. costume"),
    +
    59 MenuEntry("12. pick"),
    +
    60 MenuEntry("13. oral"),
    +
    61 MenuEntry("14. minister"),
    +
    62 MenuEntry("15. football"),
    +
    63 MenuEntry("16. welcome"),
    +
    64 MenuEntry("17. copper"),
    +
    65 MenuEntry("18. inhabitant"),
    +
    66 MenuEntry("19. fortune"),
    +
    67 },
    +
    68 &selected);
    +
    69
    +
    70 // Display together the menu with a border
    +
    71 auto renderer = Renderer(menu, [&] {
    +
    72 return vbox({
    +
    73 hbox(text("selected = "), text(std::to_string(selected))),
    +
    74 separator(),
    +
    75 menu->Render() | frame | size(HEIGHT, LESS_THAN, 10),
    +
    76 }) |
    +
    77 border;
    +
    78 });
    +
    79
    +
    80 screen.Loop(renderer);
    +
    81
    +
    82 std::cout << "Selected element = " << selected << std::endl;
    +
    83}
    +
    + + + + + + +
    static ScreenInteractive TerminalOutput()
    +
    std::function< Element(const EntryState &state)> transform
    +
    Component MenuEntry(MenuEntryOption options)
    A specific menu entry. They can be put into a Container::Vertical to form a menu.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Option for the MenuEntry component.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + + +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    MenuEntryOption Colored(ftxui::Color c)
    +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    @ LESS_THAN
    Definition elements.hpp:162
    + +
    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
    +
    +
    + + + + + diff --git a/menu__entries__animated_8cpp.html b/menu__entries__animated_8cpp.html new file mode 100644 index 000000000..abdc86575 --- /dev/null +++ b/menu__entries__animated_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: menu_entries_animated.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_entries_animated.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    MenuEntryOption Colored (ftxui::Color c)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Colored()

    + +
    +
    + + + + + + + +
    MenuEntryOption Colored (ftxui::Color c)
    +
    + +

    Definition at line 19 of file menu_entries_animated.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 30 of file menu_entries_animated.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__entries__animated_8cpp.js b/menu__entries__animated_8cpp.js new file mode 100644 index 000000000..d31884100 --- /dev/null +++ b/menu__entries__animated_8cpp.js @@ -0,0 +1,5 @@ +var menu__entries__animated_8cpp = +[ + [ "Colored", "menu__entries__animated_8cpp.html#a12f3ca405f8238e1d03dff81d4cf6997", null ], + [ "main", "menu__entries__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__entries__animated_8cpp_source.html b/menu__entries__animated_8cpp_source.html new file mode 100644 index 000000000..758c65835 --- /dev/null +++ b/menu__entries__animated_8cpp_source.html @@ -0,0 +1,314 @@ + + + + + + + + +FTXUI: menu_entries_animated.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_entries_animated.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <iostream> // for basic_ostream::operator<<, operator<<, endl, basic_ostream, basic_ostream<>::__ostream_type, cout, ostream
    +
    5#include <memory> // for shared_ptr, __shared_ptr_access
    +
    6#include <string> // for to_string, allocator
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for MenuEntryAnimated, Renderer, Vertical
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/component_options.hpp" // for MenuEntryAnimated
    +
    12#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    13#include "ftxui/dom/elements.hpp" // for operator|, separator, Element, Decorator, color, text, hbox, size, bold, frame, inverted, vbox, HEIGHT, LESS_THAN, border
    +
    14#include "ftxui/screen/color.hpp" // for Color, Color::Blue, Color::Cyan, Color::Green, Color::Red, Color::Yellow
    +
    15
    +
    16using namespace ftxui;
    +
    17
    +
    18// Define a special style for some menu entry.
    + +
    29
    +
    +
    30int main() {
    + +
    32
    +
    33 int selected = 0;
    +
    34 auto menu = Container::Vertical(
    +
    35 {
    +
    36 MenuEntry(" 1. rear", Colored(Color::Red)),
    +
    37 MenuEntry(" 2. drown", Colored(Color::Yellow)),
    +
    38 MenuEntry(" 3. nail", Colored(Color::Green)),
    +
    39 MenuEntry(" 4. quit", Colored(Color::Cyan)),
    +
    40 MenuEntry(" 5. decorative", Colored(Color::Blue)),
    +
    41 MenuEntry(" 7. costume"),
    +
    42 MenuEntry(" 8. pick"),
    +
    43 MenuEntry(" 9. oral"),
    +
    44 MenuEntry("11. minister"),
    +
    45 MenuEntry("12. football"),
    +
    46 MenuEntry("13. welcome"),
    +
    47 MenuEntry("14. copper"),
    +
    48 MenuEntry("15. inhabitant"),
    +
    49 },
    +
    50 &selected);
    +
    51
    +
    52 // Display together the menu with a border
    +
    53 auto renderer = Renderer(menu, [&] {
    +
    54 return vbox({
    +
    55 hbox(text("selected = "), text(std::to_string(selected))),
    +
    56 separator(),
    +
    57 menu->Render() | frame,
    +
    58 }) |
    +
    59 border | bgcolor(Color::Black);
    +
    60 });
    +
    61
    +
    62 screen.Loop(renderer);
    +
    63
    +
    64 std::cout << "Selected element = " << selected << std::endl;
    +
    65}
    +
    + + + + + + +
    static ScreenInteractive TerminalOutput()
    + + + +
    AnimatedColorsOption animated_colors
    +
    Component MenuEntry(MenuEntryOption options)
    A specific menu entry. They can be put into a Container::Vertical to form a menu.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Option for the MenuEntry component.
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + + + + +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    MenuEntryOption Colored(ftxui::Color c)
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Element frame(Element)
    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
    Definition frame.cpp:118
    + + + +
    +
    + + + + + diff --git a/menu__in__frame_8cpp.html b/menu__in__frame_8cpp.html new file mode 100644 index 000000000..662c4cf70 --- /dev/null +++ b/menu__in__frame_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: menu_in_frame.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_in_frame.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file menu_in_frame.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__in__frame_8cpp.js b/menu__in__frame_8cpp.js new file mode 100644 index 000000000..d92a0836f --- /dev/null +++ b/menu__in__frame_8cpp.js @@ -0,0 +1,4 @@ +var menu__in__frame_8cpp = +[ + [ "main", "menu__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__in__frame_8cpp_source.html b/menu__in__frame_8cpp_source.html new file mode 100644 index 000000000..a25d5e224 --- /dev/null +++ b/menu__in__frame_8cpp_source.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: menu_in_frame.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_in_frame.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for shared_ptr, __shared_ptr_access
    +
    5#include <string> // for string, basic_string, operator+, to_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Radiobox, Renderer
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, size, border, frame, HEIGHT, LESS_THAN
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> entries;
    +
    18 int selected = 0;
    +
    19
    +
    20 for (int i = 0; i < 30; ++i) {
    +
    21 entries.push_back("Entry " + std::to_string(i));
    +
    22 }
    +
    23 auto radiobox = Menu(&entries, &selected);
    +
    24 auto renderer = Renderer(radiobox, [&] {
    +
    25 return radiobox->Render() | vscroll_indicator | frame |
    + +
    27 });
    +
    28
    +
    29 auto screen = ScreenInteractive::FitComponent();
    +
    30 screen.Loop(renderer);
    +
    31
    +
    32 return 0;
    +
    33}
    +
    + + + + +
    static ScreenInteractive FitComponent()
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element border(Element)
    Draw a border around the element.
    +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    @ LESS_THAN
    Definition elements.hpp:162
    + +
    +
    + + + + + diff --git a/menu__in__frame__horizontal_8cpp.html b/menu__in__frame__horizontal_8cpp.html new file mode 100644 index 000000000..10d4f4a0b --- /dev/null +++ b/menu__in__frame__horizontal_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: menu_in_frame_horizontal.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_in_frame_horizontal.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file menu_in_frame_horizontal.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__in__frame__horizontal_8cpp.js b/menu__in__frame__horizontal_8cpp.js new file mode 100644 index 000000000..a8fb908dc --- /dev/null +++ b/menu__in__frame__horizontal_8cpp.js @@ -0,0 +1,4 @@ +var menu__in__frame__horizontal_8cpp = +[ + [ "main", "menu__in__frame__horizontal_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__in__frame__horizontal_8cpp_source.html b/menu__in__frame__horizontal_8cpp_source.html new file mode 100644 index 000000000..dac7a1b32 --- /dev/null +++ b/menu__in__frame__horizontal_8cpp_source.html @@ -0,0 +1,254 @@ + + + + + + + + +FTXUI: menu_in_frame_horizontal.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_in_frame_horizontal.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for shared_ptr, __shared_ptr_access
    +
    5#include <string> // for string, basic_string, operator+, to_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Radiobox, Renderer
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, size, border, frame, HEIGHT, LESS_THAN
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> entries;
    +
    18 int selected = 0;
    +
    19
    +
    20 for (int i = 0; i < 100; ++i) {
    +
    21 entries.push_back(std::to_string(i));
    +
    22 }
    +
    23 auto radiobox = Menu(&entries, &selected, MenuOption::Horizontal());
    +
    24 auto renderer = Renderer(
    +
    25 radiobox, [&] { return radiobox->Render() | hscroll_indicator | frame; });
    +
    26
    +
    27 auto screen = ScreenInteractive::FitComponent();
    +
    28 screen.Loop(renderer);
    +
    29
    +
    30 return 0;
    +
    31}
    +
    + + + + +
    static ScreenInteractive FitComponent()
    +
    static MenuOption Horizontal()
    Standard options for a horizontal menu. This can be useful to implement a tab bar.
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element frame(Element)
    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
    Definition frame.cpp:118
    + +
    +
    + + + + + diff --git a/menu__multiple_8cpp.html b/menu__multiple_8cpp.html new file mode 100644 index 000000000..a0bef9a22 --- /dev/null +++ b/menu__multiple_8cpp.html @@ -0,0 +1,264 @@ + + + + + + + + +FTXUI: menu_multiple.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_multiple.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    Component Window (std::string title, Component component)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Window()

    + +
    +
    + + + + + + + + + + + +
    Component Window (std::string title,
    Component component )
    +
    + +

    Definition at line 17 of file menu_multiple.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 23 of file menu_multiple.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__multiple_8cpp.js b/menu__multiple_8cpp.js new file mode 100644 index 000000000..7db2259a2 --- /dev/null +++ b/menu__multiple_8cpp.js @@ -0,0 +1,5 @@ +var menu__multiple_8cpp = +[ + [ "Window", "menu__multiple_8cpp.html#ac2013764d7f0c7eb57876c3755e98bb3", null ], + [ "main", "menu__multiple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__multiple_8cpp_source.html b/menu__multiple_8cpp_source.html new file mode 100644 index 000000000..f2e72221e --- /dev/null +++ b/menu__multiple_8cpp_source.html @@ -0,0 +1,309 @@ + + + + + + + + +FTXUI: menu_multiple.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_multiple.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdlib.h> // for EXIT_SUCCESS
    +
    5#include <memory> // for allocator, __shared_ptr_access
    +
    6#include <string> // for string, operator+, basic_string, to_string, char_traits
    +
    7#include <vector> // for vector, __alloc_traits<>::value_type
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Menu, Renderer, Horizontal, Vertical
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    13#include "ftxui/dom/elements.hpp" // for text, Element, operator|, window, flex, vbox
    +
    14
    +
    15using namespace ftxui;
    +
    16
    +
    +
    17Component Window(std::string title, Component component) {
    +
    18 return Renderer(component, [component, title] { //
    +
    19 return window(text(title), component->Render()) | flex;
    +
    20 });
    +
    21}
    +
    +
    22
    +
    +
    23int main() {
    +
    24 int menu_selected[] = {0, 0, 0};
    +
    25 std::vector<std::vector<std::string>> menu_entries = {
    +
    26 {
    +
    27 "Ananas",
    +
    28 "Raspberry",
    +
    29 "Citrus",
    +
    30 },
    +
    31 {
    +
    32 "Potatoes",
    +
    33 "Weat",
    +
    34 "Rise",
    +
    35 },
    +
    36 {
    +
    37 "Carrot",
    +
    38 "Lettuce",
    +
    39 "Tomato",
    +
    40 },
    +
    41 };
    +
    42
    +
    43 int menu_selected_global = 0;
    +
    44 auto menu_global = Container::Vertical(
    +
    45 {
    +
    46 Window("Menu 1", Menu(&menu_entries[0], &menu_selected[0])),
    +
    47 Window("Menu 2", Menu(&menu_entries[1], &menu_selected[1])),
    +
    48 Window("Menu 3", Menu(&menu_entries[2], &menu_selected[2])),
    +
    49 },
    +
    50 &menu_selected_global);
    +
    51
    +
    52 auto info = Renderer([&] {
    +
    53 int g = menu_selected_global;
    +
    54 std::string value = menu_entries[g][menu_selected[g]];
    +
    55 return window(text("Content"), //
    +
    56 vbox({
    +
    57 text("menu_selected_global = " + std::to_string(g)),
    +
    58 text("menu_selected[0] = " +
    +
    59 std::to_string(menu_selected[0])),
    +
    60 text("menu_selected[1] = " +
    +
    61 std::to_string(menu_selected[1])),
    +
    62 text("menu_selected[2] = " +
    +
    63 std::to_string(menu_selected[2])),
    +
    64 text("Value = " + value),
    +
    65 })) |
    +
    66 flex;
    +
    67 });
    +
    68
    +
    69 auto global = Container::Horizontal({
    +
    70 menu_global,
    +
    71 info,
    +
    72 });
    +
    73
    + +
    75 screen.Loop(global);
    +
    76 return EXIT_SUCCESS;
    +
    77}
    +
    + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Window(WindowOptions option)
    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/menu__style_8cpp.html b/menu__style_8cpp.html new file mode 100644 index 000000000..fa325312e --- /dev/null +++ b/menu__style_8cpp.html @@ -0,0 +1,564 @@ + + + + + + + + +FTXUI: menu_style.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_style.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

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

    +Functions

    Component VMenu1 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu2 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu3 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu4 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu5 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu6 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu7 (std::vector< std::string > *entries, int *selected)
     
    Component VMenu8 (std::vector< std::string > *entries, int *selected)
     
    Component HMenu1 (std::vector< std::string > *entries, int *selected)
     
    Component HMenu2 (std::vector< std::string > *entries, int *selected)
     
    Component HMenu3 (std::vector< std::string > *entries, int *selected)
     
    Component HMenu4 (std::vector< std::string > *entries, int *selected)
     
    Component HMenu5 (std::vector< std::string > *entries, int *selected)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ VMenu1()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu1 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 114 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu2()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu2 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 130 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu3()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu3 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 146 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu4()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu4 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 166 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu5()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu5 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 186 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu6()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu6 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 204 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu7()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu7 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 212 of file menu_style.cpp.

    + +
    +
    + +

    ◆ VMenu8()

    + +
    +
    + + + + + + + + + + + +
    Component VMenu8 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 223 of file menu_style.cpp.

    + +
    +
    + +

    ◆ HMenu1()

    + +
    +
    + + + + + + + + + + + +
    Component HMenu1 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 230 of file menu_style.cpp.

    + +
    +
    + +

    ◆ HMenu2()

    + +
    +
    + + + + + + + + + + + +
    Component HMenu2 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 234 of file menu_style.cpp.

    + +
    +
    + +

    ◆ HMenu3()

    + +
    +
    + + + + + + + + + + + +
    Component HMenu3 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 238 of file menu_style.cpp.

    + +
    +
    + +

    ◆ HMenu4()

    + +
    +
    + + + + + + + + + + + +
    Component HMenu4 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 245 of file menu_style.cpp.

    + +
    +
    + +

    ◆ HMenu5()

    + +
    +
    + + + + + + + + + + + +
    Component HMenu5 (std::vector< std::string > * entries,
    int * selected )
    +
    + +

    Definition at line 249 of file menu_style.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 36 of file menu_style.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__style_8cpp.js b/menu__style_8cpp.js new file mode 100644 index 000000000..9219ff628 --- /dev/null +++ b/menu__style_8cpp.js @@ -0,0 +1,17 @@ +var menu__style_8cpp = +[ + [ "VMenu1", "menu__style_8cpp.html#abc833415e917ac2a93b5a4f35df2f0fb", null ], + [ "VMenu2", "menu__style_8cpp.html#ab1c7204fedc90016a50553cdcdc9b58b", null ], + [ "VMenu3", "menu__style_8cpp.html#aec99d3a88e71643df15281e0041e44a2", null ], + [ "VMenu4", "menu__style_8cpp.html#afc540158e9fcd015af9e24d4ef072214", null ], + [ "VMenu5", "menu__style_8cpp.html#a62669e7b3cf3a388a714910a16cce19b", null ], + [ "VMenu6", "menu__style_8cpp.html#aeeb06101b3a771616149626f203be146", null ], + [ "VMenu7", "menu__style_8cpp.html#af07f6b560af2a9d723b3e53360d280b5", null ], + [ "VMenu8", "menu__style_8cpp.html#afade922e195c0cda670066485469de56", null ], + [ "HMenu1", "menu__style_8cpp.html#a909976f4b60ea372663d733e16011767", null ], + [ "HMenu2", "menu__style_8cpp.html#a9ec2a6df3ad7dd845b4d4ab507d9d5fe", null ], + [ "HMenu3", "menu__style_8cpp.html#ab5a58c425dbca17b57cfcbf4b8c98e2e", null ], + [ "HMenu4", "menu__style_8cpp.html#a1aead66022c928952b560ebab9913346", null ], + [ "HMenu5", "menu__style_8cpp.html#a16cc679d7e91d82d484eff7e443539cb", null ], + [ "main", "menu__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__style_8cpp_source.html b/menu__style_8cpp_source.html new file mode 100644 index 000000000..f8194afca --- /dev/null +++ b/menu__style_8cpp_source.html @@ -0,0 +1,558 @@ + + + + + + + + +FTXUI: menu_style.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_style.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <array> // for array
    +
    5#include <chrono> // for milliseconds
    +
    6#include <functional> // for function
    +
    7#include <memory> // for __shared_ptr_access, shared_ptr, allocator
    +
    8#include <string> // for string, char_traits, operator+, basic_string
    +
    9#include <vector> // for vector
    +
    10
    +
    11#include "ftxui/component/animation.hpp" // for ElasticOut, Linear
    +
    12#include "ftxui/component/component.hpp" // for Menu, Horizontal, Renderer, Vertical
    +
    13#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    14#include "ftxui/component/component_options.hpp" // for MenuOption, EntryState, MenuEntryOption, AnimatedColorOption, AnimatedColorsOption, UnderlineOption
    +
    15#include "ftxui/component/mouse.hpp" // for ftxui
    +
    16#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    17#include "ftxui/dom/elements.hpp" // for separator, operator|, Element, text, bgcolor, hbox, bold, color, filler, border, vbox, borderDouble, dim, flex, hcenter
    +
    18#include "ftxui/screen/color.hpp" // for Color, Color::Red, Color::Black, Color::Yellow, Color::Blue, Color::Default, Color::White
    +
    19
    +
    20using namespace ftxui;
    +
    21
    +
    22Component VMenu1(std::vector<std::string>* entries, int* selected);
    +
    23Component VMenu2(std::vector<std::string>* entries, int* selected);
    +
    24Component VMenu3(std::vector<std::string>* entries, int* selected);
    +
    25Component VMenu4(std::vector<std::string>* entries, int* selected);
    +
    26Component VMenu5(std::vector<std::string>* entries, int* selected);
    +
    27Component VMenu6(std::vector<std::string>* entries, int* selected);
    +
    28Component VMenu7(std::vector<std::string>* entries, int* selected);
    +
    29Component VMenu8(std::vector<std::string>* entries, int* selected);
    +
    30Component HMenu1(std::vector<std::string>* entries, int* selected);
    +
    31Component HMenu2(std::vector<std::string>* entries, int* selected);
    +
    32Component HMenu3(std::vector<std::string>* entries, int* selected);
    +
    33Component HMenu4(std::vector<std::string>* entries, int* selected);
    +
    34Component HMenu5(std::vector<std::string>* entries, int* selected);
    +
    35
    +
    +
    36int main() {
    + +
    38
    +
    39 std::vector<std::string> entries{
    +
    40 "Monkey", "Dog", "Cat", "Bird", "Elephant", "Cat",
    +
    41 };
    +
    42 std::array<int, 12> selected = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    +
    43
    +
    44 auto vmenu_1_ = VMenu1(&entries, &selected[0]);
    +
    45 auto vmenu_2_ = VMenu2(&entries, &selected[1]);
    +
    46 auto vmenu_3_ = VMenu3(&entries, &selected[2]);
    +
    47 auto vmenu_4_ = VMenu4(&entries, &selected[3]);
    +
    48 auto vmenu_5_ = VMenu5(&entries, &selected[4]);
    +
    49 auto vmenu_6_ = VMenu6(&entries, &selected[5]);
    +
    50 auto vmenu_7_ = VMenu7(&entries, &selected[6]);
    +
    51 auto vmenu_8_ = VMenu8(&entries, &selected[7]);
    +
    52
    +
    53 auto hmenu_1_ = HMenu1(&entries, &selected[8]);
    +
    54 auto hmenu_2_ = HMenu2(&entries, &selected[9]);
    +
    55 auto hmenu_3_ = HMenu3(&entries, &selected[10]);
    +
    56 auto hmenu_4_ = HMenu4(&entries, &selected[11]);
    +
    57 auto hmenu_5_ = HMenu5(&entries, &selected[12]);
    +
    58
    +
    59 auto container = Container::Vertical({
    + +
    61 vmenu_1_,
    +
    62 vmenu_2_,
    +
    63 vmenu_3_,
    +
    64 vmenu_4_,
    +
    65 vmenu_5_,
    +
    66 vmenu_6_,
    +
    67 vmenu_7_,
    +
    68 vmenu_8_,
    +
    69 }),
    +
    70 hmenu_1_,
    +
    71 hmenu_2_,
    +
    72 hmenu_3_,
    +
    73 hmenu_4_,
    +
    74 hmenu_5_,
    +
    75 });
    +
    76
    +
    77 auto renderer = Renderer(container, [&] {
    +
    78 return //
    +
    79 hbox({
    +
    80 vbox({
    +
    81 hbox({
    +
    82 vmenu_1_->Render(),
    +
    83 separator(),
    +
    84 vmenu_2_->Render(),
    +
    85 separator(),
    +
    86 vmenu_3_->Render(),
    +
    87 separator(),
    +
    88 vmenu_4_->Render(),
    +
    89 separator(),
    +
    90 vmenu_5_->Render(),
    +
    91 vmenu_6_->Render(),
    +
    92 separator(),
    +
    93 vmenu_7_->Render(),
    +
    94 separator(),
    +
    95 vmenu_8_->Render(),
    +
    96 }),
    +
    97 separator(),
    +
    98 hmenu_1_->Render(),
    +
    99 separator(),
    +
    100 hmenu_2_->Render(),
    +
    101 separator(),
    +
    102 hmenu_3_->Render(),
    +
    103 separator(),
    +
    104 hmenu_4_->Render(),
    +
    105 hmenu_5_->Render(),
    +
    106 }) | border,
    +
    107 filler(),
    +
    108 });
    +
    109 });
    +
    110
    +
    111 screen.Loop(renderer);
    +
    112}
    +
    +
    113
    +
    +
    114Component VMenu1(std::vector<std::string>* entries, int* selected) {
    +
    115 auto option = MenuOption::Vertical();
    +
    116 option.entries_option.transform = [](EntryState state) {
    +
    117 state.label = (state.active ? "> " : " ") + state.label;
    +
    118 Element e = text(state.label);
    +
    119 if (state.focused) {
    +
    120 e = e | bgcolor(Color::Blue);
    +
    121 }
    +
    122 if (state.active) {
    +
    123 e = e | bold;
    +
    124 }
    +
    125 return e;
    +
    126 };
    +
    127 return Menu(entries, selected, option);
    +
    128}
    +
    +
    129
    +
    +
    130Component VMenu2(std::vector<std::string>* entries, int* selected) {
    +
    131 auto option = MenuOption::Vertical();
    +
    132 option.entries_option.transform = [](EntryState state) {
    +
    133 state.label += (state.active ? " <" : " ");
    +
    134 Element e = hbox(filler(), text(state.label));
    +
    135 if (state.focused) {
    +
    136 e = e | bgcolor(Color::Red);
    +
    137 }
    +
    138 if (state.active) {
    +
    139 e = e | bold;
    +
    140 }
    +
    141 return e;
    +
    142 };
    +
    143 return Menu(entries, selected, option);
    +
    144}
    +
    +
    145
    +
    +
    146Component VMenu3(std::vector<std::string>* entries, int* selected) {
    +
    147 auto option = MenuOption::Vertical();
    +
    148 option.entries_option.transform = [](EntryState state) {
    +
    149 Element e = state.active ? text("[" + state.label + "]")
    +
    150 : text(" " + state.label + " ");
    +
    151 if (state.focused) {
    +
    152 e = e | bold;
    +
    153 }
    +
    154
    +
    155 if (state.focused) {
    +
    156 e = e | color(Color::Blue);
    +
    157 }
    +
    158 if (state.active) {
    +
    159 e = e | bold;
    +
    160 }
    +
    161 return e;
    +
    162 };
    +
    163 return Menu(entries, selected, option);
    +
    164}
    +
    +
    165
    +
    +
    166Component VMenu4(std::vector<std::string>* entries, int* selected) {
    +
    167 auto option = MenuOption::Vertical();
    +
    168 option.entries_option.transform = [](EntryState state) {
    +
    169 if (state.active && state.focused) {
    +
    170 return text(state.label) | color(Color::Yellow) | bgcolor(Color::Black) |
    +
    171 bold;
    +
    172 }
    +
    173
    +
    174 if (state.active) {
    +
    175 return text(state.label) | color(Color::Yellow) | bgcolor(Color::Black);
    +
    176 }
    +
    177 if (state.focused) {
    +
    178 return text(state.label) | color(Color::Black) | bgcolor(Color::Yellow) |
    +
    179 bold;
    +
    180 }
    +
    181 return text(state.label) | color(Color::Black) | bgcolor(Color::Yellow);
    +
    182 };
    +
    183 return Menu(entries, selected, option);
    +
    184}
    +
    +
    185
    +
    +
    186Component VMenu5(std::vector<std::string>* entries, int* selected) {
    +
    187 auto option = MenuOption::Vertical();
    +
    188 option.entries_option.transform = [](EntryState state) {
    +
    189 auto element = text(state.label);
    +
    190 if (state.active && state.focused) {
    +
    191 return element | borderDouble;
    +
    192 }
    +
    193 if (state.active) {
    +
    194 return element | border;
    +
    195 }
    +
    196 if (state.focused) {
    +
    197 return element | bold;
    +
    198 }
    +
    199 return element;
    +
    200 };
    +
    201 return Menu(entries, selected, option);
    +
    202}
    +
    +
    203
    +
    +
    204Component VMenu6(std::vector<std::string>* entries, int* selected) {
    +
    205 auto option = MenuOption::VerticalAnimated();
    +
    206 option.underline.color_inactive = Color::Default;
    +
    207 option.underline.color_active = Color::Red;
    +
    208 option.underline.SetAnimationFunction(animation::easing::Linear);
    +
    209 return Menu(entries, selected, option);
    +
    210}
    +
    +
    211
    +
    +
    212Component VMenu7(std::vector<std::string>* entries, int* selected) {
    +
    213 auto option = MenuOption::Vertical();
    +
    214 option.entries_option.animated_colors.foreground.enabled = true;
    +
    215 option.entries_option.animated_colors.background.enabled = true;
    +
    216 option.entries_option.animated_colors.background.active = Color::Red;
    +
    217 option.entries_option.animated_colors.background.inactive = Color::Black;
    +
    218 option.entries_option.animated_colors.foreground.active = Color::White;
    +
    219 option.entries_option.animated_colors.foreground.inactive = Color::Red;
    +
    220 return Menu(entries, selected, option);
    +
    221}
    +
    +
    222
    +
    +
    223Component VMenu8(std::vector<std::string>* entries, int* selected) {
    +
    224 auto option = MenuOption::Vertical();
    +
    225 option.entries_option.animated_colors.foreground.Set(
    +
    226 Color::Red, Color::White, std::chrono::milliseconds(500));
    +
    227 return Menu(entries, selected, option);
    +
    228}
    +
    +
    229
    +
    +
    230Component HMenu1(std::vector<std::string>* entries, int* selected) {
    +
    231 return Menu(entries, selected, MenuOption::Horizontal());
    +
    232}
    +
    +
    233
    +
    +
    234Component HMenu2(std::vector<std::string>* entries, int* selected) {
    +
    235 return Menu(entries, selected, MenuOption::Toggle());
    +
    236}
    +
    +
    237
    +
    +
    238Component HMenu3(std::vector<std::string>* entries, int* selected) {
    +
    239 auto option = MenuOption::Toggle();
    +
    240 option.elements_infix = [] { return text(" 🮣🮠 "); };
    +
    241
    +
    242 return Menu(entries, selected, option);
    +
    243}
    +
    +
    244
    +
    +
    245Component HMenu4(std::vector<std::string>* entries, int* selected) {
    +
    246 return Menu(entries, selected, MenuOption::HorizontalAnimated());
    +
    247}
    +
    +
    248
    +
    +
    249Component HMenu5(std::vector<std::string>* entries, int* selected) {
    +
    250 auto option = MenuOption::HorizontalAnimated();
    +
    251 option.underline.SetAnimation(std::chrono::milliseconds(1500),
    +
    252 animation::easing::ElasticOut);
    +
    253 option.entries_option.transform = [](EntryState state) {
    +
    254 Element e = text(state.label) | hcenter | flex;
    +
    255 if (state.active && state.focused) {
    +
    256 e = e | bold;
    +
    257 }
    +
    258 if (!state.focused && !state.active) {
    +
    259 e = e | dim;
    +
    260 }
    +
    261 return e;
    +
    262 };
    +
    263 option.underline.color_inactive = Color::Default;
    +
    264 option.underline.color_active = Color::Red;
    +
    265 return Menu(entries, selected, option);
    +
    266}
    +
    + + + + + + +
    static ScreenInteractive TerminalOutput()
    +
    static MenuOption Toggle()
    Standard options for a horizontal menu with some separator. This can be useful to implement a tab bar...
    +
    static MenuOption Horizontal()
    Standard options for a horizontal menu. This can be useful to implement a tab bar.
    +
    static MenuOption VerticalAnimated()
    Standard options for an animated vertical menu. This can be useful to implement a list of selectable ...
    +
    static MenuOption Vertical()
    Standard options for a vertical menu. This can be useful to implement a list of selectable items.
    +
    static MenuOption HorizontalAnimated()
    Standard options for an animated horizontal menu. This can be useful to implement a tab bar.
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element borderDouble(Element)
    Draw a double border around the element.
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element filler()
    An element that will take expand proportionally to the space left in a container.
    Definition flex.cpp:98
    +
    Element dim(Element)
    Use a light font, for elements with less emphasis.
    Definition dim.cpp:33
    +
    Element border(Element)
    Draw a border around the element.
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + + + +
    Component HMenu5(std::vector< std::string > *entries, int *selected)
    +
    Component HMenu4(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu5(std::vector< std::string > *entries, int *selected)
    +
    Component HMenu1(std::vector< std::string > *entries, int *selected)
    +
    Component HMenu2(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu2(std::vector< std::string > *entries, int *selected)
    +
    Component HMenu3(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu1(std::vector< std::string > *entries, int *selected)
    +
    int main()
    +
    Component VMenu3(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu6(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu7(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu8(std::vector< std::string > *entries, int *selected)
    +
    Component VMenu4(std::vector< std::string > *entries, int *selected)
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    std::shared_ptr< ComponentBase > Component
    + +
    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
    +
    +
    + + + + + diff --git a/menu__underline__animated__gallery_8cpp.html b/menu__underline__animated__gallery_8cpp.html new file mode 100644 index 000000000..99707b3aa --- /dev/null +++ b/menu__underline__animated__gallery_8cpp.html @@ -0,0 +1,281 @@ + + + + + + + + +FTXUI: menu_underline_animated_gallery.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu_underline_animated_gallery.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Functions

    Component DummyComponent (int id)
     
    Component Text (const std::string &t)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ DummyComponent()

    + +
    +
    + + + + + + + +
    Component DummyComponent (int id)
    +
    + +

    Definition at line 20 of file menu_underline_animated_gallery.cpp.

    + +
    +
    + +

    ◆ Text()

    + +
    +
    + + + + + + + +
    Component Text (const std::string & t)
    +
    + +

    Definition at line 30 of file menu_underline_animated_gallery.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 34 of file menu_underline_animated_gallery.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/menu__underline__animated__gallery_8cpp.js b/menu__underline__animated__gallery_8cpp.js new file mode 100644 index 000000000..b90f1e809 --- /dev/null +++ b/menu__underline__animated__gallery_8cpp.js @@ -0,0 +1,6 @@ +var menu__underline__animated__gallery_8cpp = +[ + [ "DummyComponent", "menu__underline__animated__gallery_8cpp.html#a488a81f58d76f17bf95ef222f68e0dfe", null ], + [ "Text", "menu__underline__animated__gallery_8cpp.html#abd88e1b2ce2a860c64bbcd44c0e0282b", null ], + [ "main", "menu__underline__animated__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/menu__underline__animated__gallery_8cpp_source.html b/menu__underline__animated__gallery_8cpp_source.html new file mode 100644 index 000000000..da0ef3564 --- /dev/null +++ b/menu__underline__animated__gallery_8cpp_source.html @@ -0,0 +1,333 @@ + + + + + + + + +FTXUI: menu_underline_animated_gallery.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    menu_underline_animated_gallery.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""ms, literals
    +
    5#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    6#include <string> // for string, operator+, to_string, basic_string
    +
    7#include <vector> // for vector
    +
    8
    +
    9#include "ftxui/component/animation.hpp" // for BackOut, Duration
    +
    10#include "ftxui/component/component.hpp" // for Menu, Renderer, Vertical
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/component_options.hpp" // for MenuOption, UnderlineOption
    +
    13#include "ftxui/component/mouse.hpp" // for ftxui
    +
    14#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    15#include "ftxui/dom/elements.hpp" // for text, Element, operator|, borderEmpty, inverted
    +
    16#include "ftxui/screen/color.hpp" // for Color, Color::Blue, Color::Red
    +
    17
    +
    18using namespace ftxui;
    +
    19
    +
    + +
    21 return Renderer([id](bool focused) {
    +
    22 auto t = text("component " + std::to_string(id));
    +
    23 if (focused) {
    +
    24 t = t | inverted;
    +
    25 }
    +
    26 return t;
    +
    27 });
    +
    28}
    +
    +
    29
    +
    +
    30Component Text(const std::string& t) {
    +
    31 return Renderer([t] { return text(t) | borderEmpty; });
    +
    32}
    +
    +
    33
    +
    +
    34int main() {
    +
    35 using namespace std::literals;
    +
    36 std::vector<std::string> tab_values{
    +
    37 "Tab 1", "Tab 2", "Tab 3", "A very very long tab", "탭",
    +
    38 };
    +
    39 int tab_selected = 0;
    +
    40
    +
    41 auto container = Container::Vertical({});
    +
    42
    +
    43 int frame_count = 0;
    +
    44 container->Add(Renderer(
    +
    45 [&] { return text("Frame count: " + std::to_string(frame_count++)); }));
    +
    46
    +
    47 {
    +
    48 auto option = MenuOption::HorizontalAnimated();
    +
    49 container->Add(Text("This demonstrate the Menu component"));
    +
    50 container->Add(Menu(&tab_values, &tab_selected, option));
    +
    51 }
    +
    52
    +
    53 {
    +
    54 container->Add(Text("Set underline color to blue"));
    +
    55 auto option = MenuOption::HorizontalAnimated();
    +
    56 option.underline.color_inactive = Color::Blue;
    +
    57 container->Add(Menu(&tab_values, &tab_selected, option));
    +
    58 }
    +
    59
    +
    60 {
    +
    61 container->Add(Text("Set underline active color to red"));
    +
    62 auto option = MenuOption::HorizontalAnimated();
    +
    63 option.underline.color_active = Color::Red;
    +
    64 container->Add(Menu(&tab_values, &tab_selected, option));
    +
    65 }
    +
    66
    +
    67 {
    +
    68 container->Add(Text("Set animation duration to 0ms"));
    +
    69 auto option = MenuOption::HorizontalAnimated();
    +
    70 option.underline.SetAnimationDuration(0ms);
    +
    71 container->Add(Menu(&tab_values, &tab_selected, option));
    +
    72 }
    +
    73
    +
    74 {
    +
    75 container->Add(Text("Set animation easing function to back-out"));
    +
    76 auto option = MenuOption::HorizontalAnimated();
    +
    77 option.underline.SetAnimationFunction(animation::easing::BackOut);
    +
    78 option.underline.SetAnimationDuration(350ms);
    +
    79 container->Add(Menu(&tab_values, &tab_selected, option));
    +
    80 }
    +
    81
    +
    82 // option.underline_animation_follower_delay = 250ms
    +
    83 {
    +
    84 container->Add(Text("Add delay to desynchronize animation"));
    +
    85 auto option = MenuOption::HorizontalAnimated();
    +
    86 option.underline.follower_delay = 250ms;
    +
    87 container->Add(Menu(&tab_values, &tab_selected, option));
    +
    88 }
    +
    89
    +
    90 container->SetActiveChild(container->ChildAt(2));
    +
    91
    + +
    93 screen.Loop(container);
    +
    94}
    +
    + + + + + + +
    static ScreenInteractive TerminalOutput()
    +
    void Add(Component children)
    Add a child. @param child The child to be attached.
    Definition component.cpp:70
    +
    static MenuOption HorizontalAnimated()
    Standard options for an animated horizontal menu. This can be useful to implement a tab bar.
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element borderEmpty(Element)
    Draw an empty border around the element.
    + + + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/menudata.js b/menudata.js new file mode 100644 index 000000000..e22a80b90 --- /dev/null +++ b/menudata.js @@ -0,0 +1,173 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Pages",url:"pages.html"}, +{text:"Reference",url:"topics.html"}, +{text:"Modules",url:"modules.html",children:[ +{text:"Modules List",url:"modules.html"}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"j",url:"functions_j.html#index_j"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"q",url:"functions_q.html#index_q"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"x",url:"functions_x.html#index_x"}, +{text:"y",url:"functions_y.html#index_y"}, +{text:"z",url:"functions_z.html#index_z"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars_b.html#index_b"}, +{text:"c",url:"functions_vars_c.html#index_c"}, +{text:"d",url:"functions_vars_d.html#index_d"}, +{text:"e",url:"functions_vars_e.html#index_e"}, +{text:"f",url:"functions_vars_f.html#index_f"}, +{text:"g",url:"functions_vars_g.html#index_g"}, +{text:"h",url:"functions_vars_h.html#index_h"}, +{text:"i",url:"functions_vars_i.html#index_i"}, +{text:"j",url:"functions_vars_j.html#index_j"}, +{text:"k",url:"functions_vars_k.html#index_k"}, +{text:"l",url:"functions_vars_l.html#index_l"}, +{text:"m",url:"functions_vars_m.html#index_m"}, +{text:"n",url:"functions_vars_n.html#index_n"}, +{text:"o",url:"functions_vars_o.html#index_o"}, +{text:"p",url:"functions_vars_p.html#index_p"}, +{text:"q",url:"functions_vars_q.html#index_q"}, +{text:"r",url:"functions_vars_r.html#index_r"}, +{text:"s",url:"functions_vars_s.html#index_s"}, +{text:"t",url:"functions_vars_t.html#index_t"}, +{text:"u",url:"functions_vars_u.html#index_u"}, +{text:"v",url:"functions_vars_v.html#index_v"}, +{text:"w",url:"functions_vars_w.html#index_w"}, +{text:"x",url:"functions_vars_x.html#index_x"}, +{text:"y",url:"functions_vars_y.html#index_y"}, +{text:"z",url:"functions_vars_z.html#index_z"}]}, +{text:"Typedefs",url:"functions_type.html"}, +{text:"Enumerations",url:"functions_enum.html"}, +{text:"Enumerator",url:"functions_eval.html",children:[ +{text:"a",url:"functions_eval.html#index_a"}, +{text:"b",url:"functions_eval_b.html#index_b"}, +{text:"c",url:"functions_eval_c.html#index_c"}, +{text:"d",url:"functions_eval_d.html#index_d"}, +{text:"g",url:"functions_eval_g.html#index_g"}, +{text:"h",url:"functions_eval_h.html#index_h"}, +{text:"i",url:"functions_eval_i.html#index_i"}, +{text:"k",url:"functions_eval_k.html#index_k"}, +{text:"l",url:"functions_eval_l.html#index_l"}, +{text:"m",url:"functions_eval_m.html#index_m"}, +{text:"n",url:"functions_eval_n.html#index_n"}, +{text:"o",url:"functions_eval_o.html#index_o"}, +{text:"p",url:"functions_eval_p.html#index_p"}, +{text:"r",url:"functions_eval_r.html#index_r"}, +{text:"s",url:"functions_eval_s.html#index_s"}, +{text:"t",url:"functions_eval_t.html#index_t"}, +{text:"u",url:"functions_eval_u.html#index_u"}, +{text:"v",url:"functions_eval_v.html#index_v"}, +{text:"w",url:"functions_eval_w.html#index_w"}, +{text:"y",url:"functions_eval_y.html#index_y"}]}, +{text:"Related Symbols",url:"functions_rela.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"b",url:"globals.html#index_b"}, +{text:"c",url:"globals.html#index_c"}, +{text:"d",url:"globals.html#index_d"}, +{text:"e",url:"globals.html#index_e"}, +{text:"f",url:"globals.html#index_f"}, +{text:"g",url:"globals.html#index_g"}, +{text:"h",url:"globals.html#index_h"}, +{text:"i",url:"globals.html#index_i"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"n",url:"globals.html#index_n"}, +{text:"p",url:"globals.html#index_p"}, +{text:"r",url:"globals.html#index_r"}, +{text:"s",url:"globals.html#index_s"}, +{text:"t",url:"globals.html#index_t"}, +{text:"v",url:"globals.html#index_v"}, +{text:"w",url:"globals.html#index_w"}, +{text:"x",url:"globals.html#index_x"}, +{text:"y",url:"globals.html#index_y"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"c",url:"globals_func.html#index_c"}, +{text:"d",url:"globals_func.html#index_d"}, +{text:"e",url:"globals_func.html#index_e"}, +{text:"h",url:"globals_func.html#index_h"}, +{text:"i",url:"globals_func.html#index_i"}, +{text:"l",url:"globals_func.html#index_l"}, +{text:"m",url:"globals_func.html#index_m"}, +{text:"n",url:"globals_func.html#index_n"}, +{text:"s",url:"globals_func.html#index_s"}, +{text:"t",url:"globals_func.html#index_t"}, +{text:"v",url:"globals_func.html#index_v"}, +{text:"w",url:"globals_func.html#index_w"}]}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/minus.svg b/minus.svg new file mode 100644 index 000000000..f70d0c1a1 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 000000000..5f8e87962 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/modal_8cpp.html b/modal_8cpp.html new file mode 100644 index 000000000..c5104ab4c --- /dev/null +++ b/modal_8cpp.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: modal.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    modal.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + +

    +Functions

    Component Modal (Component main, Component modal, const bool *show_modal)
     
    ComponentDecorator Modal (Component modal, const bool *show_modal)
     
    +
    +
    + + + + + diff --git a/modal_8cpp.js b/modal_8cpp.js new file mode 100644 index 000000000..3a021ee36 --- /dev/null +++ b/modal_8cpp.js @@ -0,0 +1,5 @@ +var modal_8cpp = +[ + [ "Modal", "modal_8cpp.html#ga5185342fbba215496cb8a6805f36089c", null ], + [ "Modal", "modal_8cpp.html#ga5babae0bb25f8cada57784cc5d27fb74", null ] +]; \ No newline at end of file diff --git a/modal_8cpp_source.html b/modal_8cpp_source.html new file mode 100644 index 000000000..2fde5b8b9 --- /dev/null +++ b/modal_8cpp_source.html @@ -0,0 +1,290 @@ + + + + + + + + +FTXUI: modal.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    modal.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/component/event.hpp> // for Event
    +
    5#include <ftxui/dom/elements.hpp> // for operator|, Element, center, clear_under, dbox
    +
    6#include <memory> // for __shared_ptr_access, shared_ptr
    +
    7#include <utility> // for move
    +
    8
    +
    9#include "ftxui/component/component.hpp" // for Make, Tab, ComponentDecorator, Modal
    +
    10#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14// Add a |modal| window on top of the |main| component. It is shown one on the
    +
    15// top of the other when |show_modal| is true.
    +
    16/// @ingroup component
    +
    17// NOLINTNEXTLINE
    +
    +
    18Component Modal(Component main, Component modal, const bool* show_modal) {
    +
    19 class Impl : public ComponentBase {
    +
    20 public:
    +
    21 explicit Impl(Component main, Component modal, const bool* show_modal)
    +
    22 : main_(std::move(main)),
    +
    23 modal_(std::move(modal)),
    +
    24 show_modal_(show_modal) {
    +
    25 Add(Container::Tab({main_, modal_}, &selector_));
    +
    26 }
    +
    27
    +
    28 private:
    +
    29 Element OnRender() override {
    +
    30 selector_ = *show_modal_;
    +
    31 auto document = main_->Render();
    +
    32 if (*show_modal_) {
    +
    33 document = dbox({
    +
    34 document,
    +
    35 modal_->Render() | clear_under | center,
    +
    36 });
    +
    37 }
    +
    38 return document;
    +
    39 }
    +
    40
    +
    41 bool OnEvent(Event event) override {
    +
    42 selector_ = *show_modal_;
    +
    43 return ComponentBase::OnEvent(event);
    +
    44 }
    +
    45
    +
    46 Component main_;
    +
    47 Component modal_;
    +
    48 const bool* show_modal_;
    +
    49 int selector_ = *show_modal_;
    +
    50 };
    +
    51 return Make<Impl>(main, modal, show_modal);
    +
    52}
    +
    +
    53
    +
    54// Decorate a component. Add a |modal| window on top of it. It is shown one on
    +
    55// the top of the other when |show_modal| is true.
    +
    56/// @ingroup component
    +
    57// NOLINTNEXTLINE
    +
    +
    58ComponentDecorator Modal(Component modal, const bool* show_modal) {
    +
    59 return [modal, show_modal](Component main) {
    +
    60 return Modal(std::move(main), modal, show_modal);
    +
    61 };
    +
    62}
    +
    +
    63
    +
    64} // namespace ftxui
    + + + + + +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Modal(Component main, Component modal, const bool *show_modal)
    Definition modal.cpp:18
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::function< Component(Component)> ComponentDecorator
    Definition component.hpp:32
    +
    std::shared_ptr< ComponentBase > Component
    +
    +
    + + + + + diff --git a/modal__dialog_8cpp.html b/modal__dialog_8cpp.html new file mode 100644 index 000000000..8a3f81f42 --- /dev/null +++ b/modal__dialog_8cpp.html @@ -0,0 +1,316 @@ + + + + + + + + +FTXUI: modal_dialog.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    modal_dialog.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Functions

    Component MainComponent (std::function< void()> show_modal, std::function< void()> exit)
     
    Component ModalComponent (std::function< void()> do_nothing, std::function< void()> hide_modal)
     
    int main (int argc, const char *argv[])
     
    + + + +

    +Variables

    auto button_style = ButtonOption::Animated()
     
    +

    Function Documentation

    + +

    ◆ MainComponent()

    + +
    +
    + + + + + + + + + + + +
    Component MainComponent (std::function< void()> show_modal,
    std::function< void()> exit )
    +
    + +

    Definition at line 18 of file modal_dialog.cpp.

    + +
    +
    + +

    ◆ ModalComponent()

    + +
    +
    + + + + + + + + + + + +
    Component ModalComponent (std::function< void()> do_nothing,
    std::function< void()> hide_modal )
    +
    + +

    Definition at line 40 of file modal_dialog.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + +
    int main (int argc,
    const char * argv[] )
    +
    + +

    Definition at line 59 of file modal_dialog.cpp.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ button_style

    + +
    +
    + + + + +
    auto button_style = ButtonOption::Animated()
    +
    + +

    Definition at line 15 of file modal_dialog.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/modal__dialog_8cpp.js b/modal__dialog_8cpp.js new file mode 100644 index 000000000..c5070d9f0 --- /dev/null +++ b/modal__dialog_8cpp.js @@ -0,0 +1,7 @@ +var modal__dialog_8cpp = +[ + [ "MainComponent", "modal__dialog_8cpp.html#aa61b015248766b6067b6d3c99f04c389", null ], + [ "ModalComponent", "modal__dialog_8cpp.html#a3b73476f6f304dce17f808a7c3789f5c", null ], + [ "main", "modal__dialog_8cpp.html#ac0f2228420376f4db7e1274f2b41667c", null ], + [ "button_style", "modal__dialog_8cpp.html#a1a0df261e66f85913256ea3d321b3e87", null ] +]; \ No newline at end of file diff --git a/modal__dialog_8cpp_source.html b/modal__dialog_8cpp_source.html new file mode 100644 index 000000000..156c33a94 --- /dev/null +++ b/modal__dialog_8cpp_source.html @@ -0,0 +1,324 @@ + + + + + + + + +FTXUI: modal_dialog.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    modal_dialog.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/component/component_options.hpp> // for ButtonOption
    +
    5#include <ftxui/component/mouse.hpp> // for ftxui
    +
    6#include <functional> // for function
    +
    7#include <memory> // for allocator, shared_ptr
    +
    8
    +
    9#include "ftxui/component/component.hpp" // for Button, operator|=, Renderer, Vertical, Modal
    +
    10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive, Component
    +
    11#include "ftxui/dom/elements.hpp" // for operator|, separator, text, size, Element, vbox, border, GREATER_THAN, WIDTH, center, HEIGHT
    +
    12
    +
    13using namespace ftxui;
    +
    14
    + +
    16
    +
    17// Definition of the main component. The details are not important.
    +
    +
    18Component MainComponent(std::function<void()> show_modal,
    +
    19 std::function<void()> exit) {
    +
    20 auto component = Container::Vertical({
    +
    21 Button("Show modal", show_modal, button_style),
    +
    22 Button("Quit", exit, button_style),
    +
    23 });
    +
    24 // Polish how the two buttons are rendered:
    +
    25 component |= Renderer([&](Element inner) {
    +
    26 return vbox({
    +
    27 text("Main component"),
    +
    28 separator(),
    +
    29 inner,
    +
    30 }) //
    +
    31 | size(WIDTH, GREATER_THAN, 15) //
    +
    32 | size(HEIGHT, GREATER_THAN, 15) //
    +
    33 | border //
    +
    34 | center; //
    +
    35 });
    +
    36 return component;
    +
    37}
    +
    +
    38
    +
    39// Definition of the modal component. The details are not important.
    +
    +
    40Component ModalComponent(std::function<void()> do_nothing,
    +
    41 std::function<void()> hide_modal) {
    +
    42 auto component = Container::Vertical({
    +
    43 Button("Do nothing", do_nothing, button_style),
    +
    44 Button("Quit modal", hide_modal, button_style),
    +
    45 });
    +
    46 // Polish how the two buttons are rendered:
    +
    47 component |= Renderer([&](Element inner) {
    +
    48 return vbox({
    +
    49 text("Modal component "),
    +
    50 separator(),
    +
    51 inner,
    +
    52 }) //
    +
    53 | size(WIDTH, GREATER_THAN, 30) //
    +
    54 | border; //
    +
    55 });
    +
    56 return component;
    +
    57}
    +
    +
    58
    +
    +
    59int main(int argc, const char* argv[]) {
    + +
    61
    +
    62 // State of the application:
    +
    63 bool modal_shown = false;
    +
    64
    +
    65 // Some actions modifying the state:
    +
    66 auto show_modal = [&] { modal_shown = true; };
    +
    67 auto hide_modal = [&] { modal_shown = false; };
    +
    68 auto exit = screen.ExitLoopClosure();
    +
    69 auto do_nothing = [&] {};
    +
    70
    +
    71 // Instanciate the main and modal components:
    +
    72 auto main_component = MainComponent(show_modal, exit);
    +
    73 auto modal_component = ModalComponent(do_nothing, hide_modal);
    +
    74
    +
    75 // Use the `Modal` function to use together the main component and its modal
    +
    76 // window. The |modal_shown| boolean controls whether the modal is shown or
    +
    77 // not.
    +
    78 main_component |= Modal(modal_component, &modal_shown);
    +
    79
    +
    80 screen.Loop(main_component);
    +
    81 return 0;
    +
    82}
    +
    + + + + +
    static ButtonOption Animated()
    Create a ButtonOption, using animated colors.
    +
    static ScreenInteractive TerminalOutput()
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Modal(Component main, Component modal, const bool *show_modal)
    Definition modal.cpp:18
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element border(Element)
    Draw a border around the element.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    auto button_style
    +
    Component ModalComponent(std::function< void()> do_nothing, std::function< void()> hide_modal)
    +
    Component MainComponent(std::function< void()> show_modal, std::function< void()> exit)
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    @ GREATER_THAN
    Definition elements.hpp:162
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/modal__dialog__custom_8cpp.html b/modal__dialog__custom_8cpp.html new file mode 100644 index 000000000..74e5af224 --- /dev/null +++ b/modal__dialog__custom_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: modal_dialog_custom.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    modal_dialog_custom.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 14 of file modal_dialog_custom.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/modal__dialog__custom_8cpp.js b/modal__dialog__custom_8cpp.js new file mode 100644 index 000000000..aa5e03d9b --- /dev/null +++ b/modal__dialog__custom_8cpp.js @@ -0,0 +1,4 @@ +var modal__dialog__custom_8cpp = +[ + [ "main", "modal__dialog__custom_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/modal__dialog__custom_8cpp_source.html b/modal__dialog__custom_8cpp_source.html new file mode 100644 index 000000000..7da92ec73 --- /dev/null +++ b/modal__dialog__custom_8cpp_source.html @@ -0,0 +1,312 @@ + + + + + + + + +FTXUI: modal_dialog_custom.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    modal_dialog_custom.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    5#include <string> // for string, basic_string, char_traits, operator+
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Button, Renderer, Horizontal, Tab
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, filler, text, hbox, separator, center, vbox, bold, border, clear_under, dbox, size, GREATER_THAN, HEIGHT
    +
    13
    +
    +
    14int main() {
    +
    15 using namespace ftxui;
    +
    16 auto screen = ScreenInteractive::TerminalOutput();
    +
    17
    +
    18 // There are two layers. One at depth = 0 and the modal window at depth = 1;
    +
    19 int depth = 0;
    +
    20
    +
    21 // The current rating of FTXUI.
    +
    22 std::string rating = "3/5 stars";
    +
    23
    +
    24 // At depth=0, two buttons. One for rating FTXUI and one for quitting.
    +
    25 auto button_rate_ftxui = Button("Rate FTXUI", [&] { depth = 1; });
    +
    26 auto button_quit = Button("Quit", screen.ExitLoopClosure());
    +
    27
    +
    28 auto depth_0_container = Container::Horizontal({
    +
    29 button_rate_ftxui,
    +
    30 button_quit,
    +
    31 });
    +
    32 auto depth_0_renderer = Renderer(depth_0_container, [&] {
    +
    33 return vbox({
    +
    34 text("Modal dialog example"),
    +
    35 separator(),
    +
    36 text("☆☆☆ FTXUI:" + rating + " ☆☆☆") | bold,
    +
    37 filler(),
    +
    38 hbox({
    +
    39 button_rate_ftxui->Render(),
    +
    40 filler(),
    +
    41 button_quit->Render(),
    +
    42 }),
    +
    43 }) |
    +
    44 border | size(HEIGHT, GREATER_THAN, 18) | center;
    +
    45 });
    +
    46
    +
    47 // At depth=1, The "modal" window.
    +
    48 std::vector<std::string> rating_labels = {
    +
    49 "1/5 stars", "2/5 stars", "3/5 stars", "4/5 stars", "5/5 stars",
    +
    50 };
    +
    51 auto on_rating = [&](std::string new_rating) {
    +
    52 rating = new_rating;
    +
    53 depth = 0;
    +
    54 };
    +
    55 auto depth_1_container = Container::Horizontal({
    +
    56 Button(&rating_labels[0], [&] { on_rating(rating_labels[0]); }),
    +
    57 Button(&rating_labels[1], [&] { on_rating(rating_labels[1]); }),
    +
    58 Button(&rating_labels[2], [&] { on_rating(rating_labels[2]); }),
    +
    59 Button(&rating_labels[3], [&] { on_rating(rating_labels[3]); }),
    +
    60 Button(&rating_labels[4], [&] { on_rating(rating_labels[4]); }),
    +
    61 });
    +
    62
    +
    63 auto depth_1_renderer = Renderer(depth_1_container, [&] {
    +
    64 return vbox({
    +
    65 text("Do you like FTXUI?"),
    +
    66 separator(),
    +
    67 hbox(depth_1_container->Render()),
    +
    68 }) |
    +
    69 border;
    +
    70 });
    +
    71
    +
    72 auto main_container = Container::Tab(
    +
    73 {
    +
    74 depth_0_renderer,
    +
    75 depth_1_renderer,
    +
    76 },
    +
    77 &depth);
    +
    78
    +
    79 auto main_renderer = Renderer(main_container, [&] {
    +
    80 Element document = depth_0_renderer->Render();
    +
    81
    +
    82 if (depth == 1) {
    +
    83 document = dbox({
    +
    84 document,
    +
    85 depth_1_renderer->Render() | clear_under | center,
    +
    86 });
    +
    87 }
    +
    88 return document;
    +
    89 });
    +
    90
    +
    91 screen.Loop(main_renderer);
    +
    92 return 0;
    +
    93}
    +
    + + + + +
    int main()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + +
    +
    + + + + + diff --git a/module-component-examples.html b/module-component-examples.html new file mode 100644 index 000000000..eb50bfb74 --- /dev/null +++ b/module-component-examples.html @@ -0,0 +1,210 @@ + + + + + + + + +FTXUI: Example + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Example
    +
    +
    +
    +
    +
    + + + + + diff --git a/module-component.html b/module-component.html new file mode 100644 index 000000000..e00873c33 --- /dev/null +++ b/module-component.html @@ -0,0 +1,627 @@ + + + + + + + + +FTXUI: ftxui / component + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ftxui / component
    +
    +
    +

    Table of Contents

    + +
    +

    title-img

    +

    The ftxui::component module defines the logic that produces interactive components that respond to user events (keyboard, mouse, etc.).

    +

    The Example section provides a collection of examples.

    +

    A ftxui::ScreenInteractive defines a main loop that renders a component.

    +

    A ftxui::Component is a shared pointer to a ftxui::ComponentBase. The latter defines:

    +

    ftxui::Element are used to render a single frame.

    +

    ftxui::Component are used to render dynamic user interface, producing multiple frame, and updating its state on events.

    +

    Gallery of multiple components. (demo)

    +

    image

    +

    All predefined components are available in "ftxui/dom/component.hpp"

    +
    // Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    // Use of this source code is governed by the MIT license that can be found in
    +
    // the LICENSE file.
    +
    #ifndef FTXUI_COMPONENT_HPP
    +
    #define FTXUI_COMPONENT_HPP
    +
    +
    #include <functional> // for function
    +
    #include <memory> // for make_shared, shared_ptr
    +
    #include <utility> // for forward
    +
    + +
    #include "ftxui/component/component_base.hpp" // for Component, Components
    +
    #include "ftxui/component/component_options.hpp" // for ButtonOption, CheckboxOption, MenuOption
    +
    #include "ftxui/dom/elements.hpp" // for Element
    +
    #include "ftxui/util/ref.hpp" // for ConstRef, Ref, ConstStringRef, ConstStringListRef, StringRef
    +
    +
    namespace ftxui {
    +
    struct ButtonOption;
    +
    struct CheckboxOption;
    +
    struct Event;
    +
    struct InputOption;
    +
    struct MenuOption;
    +
    struct RadioboxOption;
    +
    struct MenuEntryOption;
    +
    +
    template <class T, class... Args>
    +
    std::shared_ptr<T> Make(Args&&... args) {
    +
    return std::make_shared<T>(std::forward<Args>(args)...);
    +
    }
    +
    +
    // Pipe operator to decorate components.
    +
    using ComponentDecorator = std::function<Component(Component)>;
    +
    using ElementDecorator = std::function<Element(Element)>;
    + + + + +
    +
    namespace Container {
    + +
    Component Vertical(Components children, int* selector);
    + +
    Component Horizontal(Components children, int* selector);
    +
    Component Tab(Components children, int* selector);
    + +
    } // namespace Container
    +
    +
    Component Button(ButtonOption options);
    +
    Component Button(ConstStringRef label,
    +
    std::function<void()> on_click,
    +
    ButtonOption options = ButtonOption::Simple());
    +
    +
    Component Checkbox(CheckboxOption options);
    +
    Component Checkbox(ConstStringRef label,
    +
    bool* checked,
    +
    CheckboxOption options = CheckboxOption::Simple());
    +
    +
    Component Input(InputOption options = {});
    +
    Component Input(StringRef content, InputOption options = {});
    +
    Component Input(StringRef content,
    +
    StringRef placeholder,
    +
    InputOption options = {});
    +
    +
    Component Menu(MenuOption options);
    +
    Component Menu(ConstStringListRef entries,
    +
    int* selected_,
    +
    MenuOption options = MenuOption::Vertical());
    +
    Component MenuEntry(MenuEntryOption options);
    +
    Component MenuEntry(ConstStringRef label, MenuEntryOption options = {});
    +
    +
    Component Radiobox(RadioboxOption options);
    +
    Component Radiobox(ConstStringListRef entries,
    +
    int* selected_,
    +
    RadioboxOption options = {});
    +
    +
    Component Dropdown(ConstStringListRef entries, int* selected);
    +
    Component Dropdown(DropdownOption options);
    +
    +
    Component Toggle(ConstStringListRef entries, int* selected);
    +
    +
    // General slider constructor:
    +
    template <typename T>
    +
    Component Slider(SliderOption<T> options);
    +
    +
    // Shorthand without the `SliderOption` constructor:
    +
    Component Slider(ConstStringRef label,
    +
    Ref<int> value,
    +
    ConstRef<int> min = 0,
    +
    ConstRef<int> max = 100,
    +
    ConstRef<int> increment = 5);
    +
    Component Slider(ConstStringRef label,
    +
    Ref<float> value,
    +
    ConstRef<float> min = 0.f,
    +
    ConstRef<float> max = 100.f,
    +
    ConstRef<float> increment = 5.f);
    +
    Component Slider(ConstStringRef label,
    +
    Ref<long> value,
    +
    ConstRef<long> min = 0L,
    +
    ConstRef<long> max = 100L,
    +
    ConstRef<long> increment = 5L);
    +
    +
    Component ResizableSplit(ResizableSplitOption options);
    + + + + +
    +
    Component Renderer(Component child, std::function<Element()>);
    +
    Component Renderer(std::function<Element()>);
    +
    Component Renderer(std::function<Element(bool /* focused */)>);
    + +
    +
    Component CatchEvent(Component child, std::function<bool(Event)>);
    +
    ComponentDecorator CatchEvent(std::function<bool(Event)> on_event);
    +
    +
    Component Maybe(Component, const bool* show);
    +
    Component Maybe(Component, std::function<bool()>);
    +
    ComponentDecorator Maybe(const bool* show);
    +
    ComponentDecorator Maybe(std::function<bool()>);
    +
    +
    Component Modal(Component main, Component modal, const bool* show_modal);
    +
    ComponentDecorator Modal(Component modal, const bool* show_modal);
    +
    +
    Component Collapsible(ConstStringRef label,
    +
    Component child,
    +
    Ref<bool> show = false);
    +
    +
    Component Hoverable(Component component, bool* hover);
    + +
    std::function<void()> on_enter,
    +
    std::function<void()> on_leave);
    + +
    std::function<void(bool)> on_change);
    + +
    ComponentDecorator Hoverable(std::function<void()> on_enter,
    +
    std::function<void()> on_leave);
    +
    ComponentDecorator Hoverable(std::function<void(bool)> on_change);
    +
    +
    Component Window(WindowOptions option);
    +
    +
    } // namespace ftxui
    +
    +
    #endif /* end of include guard: FTXUI_COMPONENT_HPP */
    + + + + +
    static CheckboxOption Simple()
    Option for standard Checkbox.
    +
    static ButtonOption Simple()
    Create a ButtonOption, inverted when focused.
    +
    static MenuOption Vertical()
    Standard options for a vertical menu. This can be useful to implement a list of selectable items.
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Maybe(Component, const bool *show)
    Decorate a component |child|. It is shown only when |show| is true.
    +
    Component ResizableSplitTop(Component main, Component back, int *main_size)
    An vertical split in between two components, configurable using the mouse.
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component MenuEntry(MenuEntryOption options)
    A specific menu entry. They can be put into a Container::Vertical to form a menu.
    +
    Component Toggle(ConstStringListRef entries, int *selected)
    An horizontal list of elements. The user can navigate through them.
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Modal(Component main, Component modal, const bool *show_modal)
    Definition modal.cpp:18
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Hoverable(Component component, bool *hover)
    Wrap a component. Gives the ability to know if it is hovered by the mouse.
    Definition hoverable.cpp:43
    +
    Component Window(WindowOptions option)
    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Input(InputOption options={})
    An input box for editing text.
    +
    Component ResizableSplitRight(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Component Dropdown(ConstStringListRef entries, int *selected)
    A dropdown menu.
    +
    Component Stacked(Components children)
    A list of components to be stacked on top of each other. Events are propagated to the first component...
    +
    Component ResizableSplitBottom(Component main, Component back, int *main_size)
    An vertical split in between two components, configurable using the mouse.
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    Component ResizableSplitLeft(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Component Tab(Components children, int *selector)
    A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::function< Element(Element)> ElementDecorator
    Definition component.hpp:33
    +
    std::vector< Component > Components
    +
    Component ResizableSplit(ResizableSplitOption options)
    A split in between two components.
    +
    Component operator|(Component component, ComponentDecorator decorator)
    +
    Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
    A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed...
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    Component & operator|=(Component &component, ComponentDecorator decorator)
    +
    std::function< Component(Component)> ComponentDecorator
    Definition component.hpp:32
    +
    std::shared_ptr< ComponentBase > Component
    +
    Component CatchEvent(Component child, std::function< bool(Event)>)
    + + +

    +Input

    +

    Example:

    +

    image

    +

    Produced by: ftxui::Input() from "ftxui/component/component.hpp"

    +

    + +

    +

    +Filtered input

    +

    One can filter out the characters received by the input component, using ftxui::CatchEvent.

    +
    std::string phone_number;
    +
    Component input = Input(&phone_number, "phone number");
    +
    +
    // Filter out non-digit characters.
    +
    input |= CatchEvent([&](Event event) {
    +
    return event.is_character() && !std::isdigit(event.character()[0]);
    +
    });
    +
    +
    // Filter out characters past the 10th one.
    +
    input |= CatchEvent([&](Event event) {
    +
    return event.is_character() && phone_number.size() >= 10;
    +
    });
    +

    +Menu

    +

    Defines a menu object. It contains a list of entries, one of them is selected.

    +

    Example:

    +

    image

    +

    Produced by: ftxui::Menu() from "ftxui/component/component.hpp"

    +

    + +

    +

    +Toggle 

    +

    A special kind of menu. The entries are displayed horizontally.

    +

    Example:

    +

    image

    +

    Produced by: ftxui::Toggle() from "ftxui/component/component.hpp"

    +

    + +

    +

    +CheckBox

    +

    This component defines a checkbox. It is a single entry that can be turned on/off.

    +

    Example:

    +

    image

    +

    Produced by: ftxui::Checkbox() from "ftxui/component/component.hpp"

    +

    + +

    +

    +RadioBox

    +

    A radiobutton component. This is a list of entries, where one can be turned on.

    +

    Example:

    +

    image

    +

    Produced by: ftxui::Radiobox() from "ftxui/component/component.hpp"

    +

    + +

    +

    +Dropdown

    +

    A drop-down menu is a component that, when opened, displays a list of elements for the user to select from.

    +

    Example:

    +

    youtube-video-gif (3)

    +

    Produced by: ftxui::Dropdown() from "ftxui/component/component.hpp"

    +

    +Slider

    +

    Represents a slider object that consists of a range with binned intermediate intervals. It can be created by ftxui::Slider().

    +

    Example:

    +

    image

    +

    Produced by: ftxui::Slider() from "ftxui/component/component.hpp"

    +

    +Renderer

    +

    Produced by: ftxui::Renderer() from ftxui/component/component.hpp. This component decorate another one by using a different function to render an interface.

    +

    Example:

    auto inner = [...]
    +
    +
    auto renderer = Renderer(inner, [&] {
    +
    return inner->Render() | border
    +
    });
    +

    ftxui::Renderer also supports the component decorator pattern:

    auto component = [...]
    +
    component = component
    +
    | Renderer([](Element e) { return e | border))
    +
    | Renderer(bold)
    +

    As a short hand, you can also compose a component with an element decorator:

    auto component = [...]
    +
    component = component | border | bold;
    +

    +CatchEvent

    +

    Produced by: ftxui::CatchEvent() from ftxui/component/component.hpp. This component decorate others, catching events before the underlying component.

    +

    Examples:

    auto screen = ScreenInteractive::TerminalOutput();
    +
    auto renderer = Renderer([] {
    +
    return text("My interface");
    +
    });
    +
    auto component = CatchEvent(renderer, [&](Event event) {
    +
    if (event == Event::Character('q')) {
    +
    screen.ExitLoopClosure()();
    +
    return true;
    +
    }
    +
    return false;
    +
    });
    +
    screen.Loop(component);
    +

    The ftxui::CatchEvent can also be used as a decorator:

    component = component
    +
    | CatchEvent(handler_1)
    +
    | CatchEvent(handler_2)
    +
    | CatchEvent(handler_3)
    +
    ;
    +

    +Collapsible

    +

    Useful for visual elements whose visibility can be toggled on or off by the user. Essentially, this is the combination of the ftxui::Checkbox() and ftxui::Maybe() components.

    +
    auto collapsible = Collapsible("Show more", inner_element);
    +

    +Maybe

    +

    Produced by: ftxui::Maybe() from ftxui/component/component.hpp. This component can be utilized to show/hide any other component via a boolean or a predicate.

    +

    Example with a boolean:

    bool show = true;
    +
    auto component = Renderer([]{ return "Hello World!"; });
    +
    auto maybe_component = Maybe(component, &show)
    +

    Example with a predicate:

    auto component = Renderer([]{ return "Hello World!"; });
    +
    auto maybe_component = Maybe(component, [&] { return time > 10; })
    +

    As usual, ftxui::Maybe can also be used as a decorator:

    component = component
    +
    | Maybe(&a_boolean)
    +
    | Maybe([&] { return time > 10; })
    +
    ;
    +

    +Container

    +

    +Horizontal

    +

    Produced by: ftxui::Container::Horizontal() from "ftxui/component/component.hpp". It displays a list of components horizontally and handles keyboard/mouse navigation.

    +

    +Vertical

    +

    Produced by: ftxui::Container::Vertical() from "ftxui/component/component.hpp". It displays a list of components vertically and handles keyboard/mouse navigation.

    +

    +Tab

    +

    Produced by: ftxui::Container::Tab() from "ftxui/component/component.hpp". It takes a list of components and displays only one of them. This is useful for implementing a tab bar.

    +

    Vertical:

    +

    ezgif com-gif-maker (1)

    +

    Horizontal:

    +

    ezgif com-gif-maker (2)

    +

    +ResizableSplit

    +

    It defines a horizontal or vertical separation between two children components. The position of the split is variable and controllable using the mouse. There are four possible splits:

    +

    Example:

    +

    ezgif com-gif-maker
    +

    +

    + +

    +

    +Force a frame redraw.

    +

    Typically, ftxui::ScreenInteractive::Loop() is responsible for drawing a new frame whenever a new group of events (e.g keyboard, mouse, window resize, etc.) has been processed. However, you might want to react to arbitrary events that are unknown to FTXUI. To accomplish this, you must post events using ftxui::ScreenInteractive::PostEvent (this is thread safe) via a thread. You will have to post the event ftxui::Event::Custom.

    +

    Example:

    screen->PostEvent(Event::Custom);
    +

    If you don't need to process a new Event, you can use:

    screen->RequestAnimationFrame();
    +

    instead.

    +
    +
    +
    + + + + + diff --git a/module-component.js b/module-component.js new file mode 100644 index 000000000..def897b08 --- /dev/null +++ b/module-component.js @@ -0,0 +1,24 @@ +var module_component = +[ + [ "Input", "module-component.html#component-input", [ + [ "Filtered input", "module-component.html#filtered-input", null ] + ] ], + [ "Menu", "module-component.html#component-menu", null ], + [ "Toggle ", "module-component.html#component-toggle", null ], + [ "CheckBox", "module-component.html#component-checkbox", null ], + [ "RadioBox", "module-component.html#component-radiobox", null ], + [ "Dropdown", "module-component.html#component-dropdown", null ], + [ "Slider", "module-component.html#component-slider", null ], + [ "Renderer", "module-component.html#component-renderer", null ], + [ "CatchEvent", "module-component.html#component-catchevent", null ], + [ "Collapsible", "module-component.html#component-collapsible", null ], + [ "Maybe", "module-component.html#component-maybe", null ], + [ "Container", "module-component.html#component-container", [ + [ "Horizontal", "module-component.html#component-horizontal", null ], + [ "Vertical", "module-component.html#component-vertical", null ], + [ "Tab", "module-component.html#component-tab", null ] + ] ], + [ "ResizableSplit", "module-component.html#component-resizable-split", null ], + [ "Force a frame redraw.", "module-component.html#component-force-redraw", null ], + [ "Example", "module-component-examples.html", null ] +]; \ No newline at end of file diff --git a/module-component_8md.html b/module-component_8md.html new file mode 100644 index 000000000..d97ca02df --- /dev/null +++ b/module-component_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: module-component.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    module-component.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/module-dom-examples.html b/module-dom-examples.html new file mode 100644 index 000000000..a41612ca4 --- /dev/null +++ b/module-dom-examples.html @@ -0,0 +1,210 @@ + + + + + + + + +FTXUI: Example + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Example
    +
    +
    +
    +
    +
    + + + + + diff --git a/module-dom.html b/module-dom.html new file mode 100644 index 000000000..c56476074 --- /dev/null +++ b/module-dom.html @@ -0,0 +1,866 @@ + + + + + + + + +FTXUI: ftxui / dom + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ftxui / dom
    +
    +
    +

    Table of Contents

    + +
    +

    title-img

    +

    This module defines a hierarchical set of ftxui::Element. An element manages the layout and can be responsive to the terminal dimension changes. Note the following example where this module is used to create a simple layout with a number of operators:

    +

    The Example section provides a collection of examples.

    +

    Example:

    namespace ftxui {
    +
    ...
    +
    +
    // Define the document
    +
    Element document = vbox({
    +
    text("The window") | bold | color(Color::Blue),
    +
    gauge(0.5)
    +
    text("The footer")
    +
    });
    +
    +
    // Add a border, by calling the `ftxui::border` decorator function.
    +
    document = border(document);
    +
    +
    // Add another border, using the pipe operator.
    +
    document = document | border.
    +
    +
    // Add another border, using the |= operator.
    +
    document |= border
    +
    +
    ...
    +
    }
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element gauge(float progress)
    Draw a high definition progress bar.
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +

    List of elements

    +

    The list of all elements are included and can be accessed by including the corresponding header file:

    // Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    // Use of this source code is governed by the MIT license that can be found in
    +
    // the LICENSE file.
    +
    #ifndef FTXUI_DOM_ELEMENTS_HPP
    +
    #define FTXUI_DOM_ELEMENTS_HPP
    +
    +
    #include <functional>
    +
    #include <memory>
    +
    + + + + + + + + + +
    +
    namespace ftxui {
    +
    class Node;
    +
    using Element = std::shared_ptr<Node>;
    +
    using Elements = std::vector<Element>;
    +
    using Decorator = std::function<Element(Element)>;
    +
    using GraphFunction = std::function<std::vector<int>(int, int)>;
    +
    +
    /// @brief BorderStyle is an enumeration that represents the different styles
    +
    /// of borders that can be applied to elements in the terminal UI.
    +
    ///
    +
    /// BorderStyle is an enumeration that represents the different styles of
    +
    /// borders that can be applied to elements in the terminal UI.
    +
    /// It is used to define the visual appearance of borders around elements,
    +
    /// such as windows, frames, or separators.
    +
    /// @ingroup dom
    + + + + + + + +
    };
    +
    +
    // Pipe elements into decorator togethers.
    +
    // For instance the next lines are equivalents:
    +
    // -> text("ftxui") | bold | underlined
    +
    // -> underlined(bold(text("FTXUI")))
    + + + + +
    +
    // --- Widget ---
    +
    Element text(std::string text);
    +
    Element vtext(std::string text);
    + + + + + + + + + + +
    float right,
    +
    Color unselected_color,
    +
    Color selected_color);
    + +
    float down,
    +
    Color unselected_color,
    +
    Color selected_color);
    +
    Element gauge(float progress);
    +
    Element gaugeLeft(float progress);
    +
    Element gaugeRight(float progress);
    +
    Element gaugeUp(float progress);
    +
    Element gaugeDown(float progress);
    +
    Element gaugeDirection(float progress, Direction direction);
    + + + + + + + + + + +
    Decorator borderWith(const Pixel&);
    +
    Element window(Element title, Element content, BorderStyle border = ROUNDED);
    +
    Element spinner(int charset_index, size_t image_index);
    +
    Element paragraph(const std::string& text);
    +
    Element paragraphAlignLeft(const std::string& text);
    +
    Element paragraphAlignRight(const std::string& text);
    +
    Element paragraphAlignCenter(const std::string& text);
    +
    Element paragraphAlignJustify(const std::string& text);
    + + +
    Element canvas(ConstRef<Canvas>);
    +
    Element canvas(int width, int height, std::function<void(Canvas&)>);
    +
    Element canvas(std::function<void(Canvas&)>);
    +
    +
    // -- Decorator ---
    + + + + + + + + + + +
    Decorator color(const LinearGradient&);
    +
    Decorator bgcolor(const LinearGradient&);
    + + +
    Element color(const LinearGradient&, Element);
    +
    Element bgcolor(const LinearGradient&, Element);
    +
    Decorator focusPosition(int x, int y);
    +
    Decorator focusPositionRelative(float x, float y);
    + +
    Decorator hyperlink(std::string link);
    +
    Element hyperlink(std::string link, Element child);
    + +
    Decorator selectionColor(Color foreground);
    + + +
    Decorator selectionStyle(std::function<void(Pixel&)> style);
    +
    +
    // --- Layout is
    +
    // Horizontal, Vertical or stacked set of elements.
    + + + +
    Element flexbox(Elements, FlexboxConfig config = FlexboxConfig());
    +
    Element gridbox(std::vector<Elements> lines);
    +
    +
    Element hflow(Elements); // Helper: default flexbox with row direction.
    +
    Element vflow(Elements); // Helper: default flexbox with column direction.
    +
    +
    // -- Flexibility ---
    +
    // Define how to share the remaining space when not all of it is used inside a
    +
    // container.
    +
    Element flex(Element); // Expand/Minimize if possible/needed.
    +
    Element flex_grow(Element); // Expand element if possible.
    +
    Element flex_shrink(Element); // Minimize element if needed.
    +
    +
    Element xflex(Element); // Expand/Minimize if possible/needed on X axis.
    +
    Element xflex_grow(Element); // Expand element if possible on X axis.
    +
    Element xflex_shrink(Element); // Minimize element if needed on X axis.
    +
    +
    Element yflex(Element); // Expand/Minimize if possible/needed on Y axis.
    +
    Element yflex_grow(Element); // Expand element if possible on Y axis.
    +
    Element yflex_shrink(Element); // Minimize element if needed on Y axis.
    +
    +
    Element notflex(Element); // Reset the flex attribute.
    +
    Element filler(); // A blank expandable element.
    +
    +
    // -- Size override;
    + + + +
    +
    // --- Frame ---
    +
    // A frame is a scrollable area. The internal area is potentially larger than
    +
    // the external one. The internal area is scrolled in order to make visible the
    +
    // focused element.
    + + + + +
    Element select(Element e); // Deprecated - Alias for focus.
    +
    +
    // --- Cursor ---
    +
    // Those are similar to `focus`, but also change the shape of the cursor.
    + + + + + + +
    +
    // --- Misc ---
    + + +
    Decorator reflect(Box& box);
    +
    // Before drawing the |element| clear the pixel below. This is useful in
    +
    // combinaison with dbox.
    + +
    +
    // --- Util --------------------------------------------------------------------
    + + + + + +
    +
    namespace Dimension {
    +
    Dimensions Fit(Element&, bool extend_beyond_screen = false);
    +
    } // namespace Dimension
    +
    +
    } // namespace ftxui
    +
    +
    // Make container able to take any number of children as input.
    +
    #include "ftxui/dom/take_any_args.hpp"
    +
    +
    // Include old definitions using wstring.
    + +
    #endif // FTXUI_DOM_ELEMENTS_HPP
    + + + + + + +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Element borderDouble(Element)
    Draw a double border around the element.
    +
    Element focusCursorBarBlinking(Element)
    Same as focus, but set the cursor shape to be a blinking bar.
    Definition frame.cpp:189
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Element gaugeDirection(float progress, Direction direction)
    Draw a high definition progress bar progressing in specified direction.
    +
    Decorator focusPositionRelative(float x, float y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    Element separatorStyled(BorderStyle)
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element xflex_grow(Element)
    Expand if possible on the X axis.
    Definition flex.cpp:147
    +
    Element underlinedDouble(Element)
    Apply a underlinedDouble to text.
    +
    Element clear_under(Element element)
    Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
    +
    Element borderDashed(Element)
    Draw a dashed border around the element.
    +
    Element separatorEmpty()
    Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
    +
    Element vscroll_indicator(Element)
    Display a vertical scrollbar on the right. Colors follow the content.
    +
    Element nothing(Element element)
    A decoration doing absolutely nothing.
    Definition dom/util.cpp:28
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Direction
    Direction is an enumeration that represents the four cardinal directions.
    Definition direction.hpp:13
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element paragraphAlignRight(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the right.
    +
    Element gaugeRight(float progress)
    Draw a high definition progress bar progressing from left to right.
    +
    Element focusCursorUnderlineBlinking(Element)
    Same as focus, but set the cursor shape to be a blinking underline.
    Definition frame.cpp:217
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    Element separatorLight()
    Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
    +
    Element spinner(int charset_index, size_t image_index)
    Useful to represent the effect of time and/or events. This displays an ASCII art "video".
    +
    Element borderRounded(Element)
    Draw a rounded border around the element.
    +
    Element emptyElement()
    Definition dom/util.cpp:140
    +
    Element yflex(Element)
    Expand/Minimize if possible/needed on the Y axis.
    Definition flex.cpp:135
    +
    Element flex_shrink(Element)
    Minimize if needed.
    Definition flex.cpp:159
    +
    Element focusCursorBar(Element)
    Same as focus, but set the cursor shape to be a still block.
    Definition frame.cpp:175
    +
    Element focusCursorBlock(Element)
    Same as focus, but set the cursor shape to be a still block.
    Definition frame.cpp:147
    +
    Element underlined(Element)
    Underline the given element.
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    Element focusCursorUnderline(Element)
    Same as focus, but set the cursor shape to be a still underline.
    Definition frame.cpp:203
    +
    Element borderHeavy(Element)
    Draw a heavy border around the element.
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    Element paragraphAlignCenter(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the center.
    +
    Element gaugeUp(float progress)
    Draw a high definition progress bar progressing from bottom to top.
    +
    Element align_right(Element)
    Align an element on the right side.
    +
    Decorator focusPosition(int x, int y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    Element yflex_grow(Element)
    Expand if possible on the Y axis.
    Definition flex.cpp:153
    +
    Element hscroll_indicator(Element)
    Display a horizontal scrollbar at the bottom. Colors follow the content.
    +
    Element flex_grow(Element)
    Expand if possible.
    Definition flex.cpp:141
    +
    Element separatorDashed()
    Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
    +
    Element notflex(Element)
    Make the element not flexible.
    Definition flex.cpp:177
    +
    Element strikethrough(Element)
    Apply a strikethrough to text.
    +
    Element italic(Element)
    Apply a underlinedDouble to text.
    Definition italic.cpp:17
    +
    Element dbox(Elements)
    Stack several element on top of each other.
    +
    Element xflex_shrink(Element)
    Minimize if needed on the X axis.
    Definition flex.cpp:165
    +
    Element gaugeLeft(float progress)
    Draw a high definition progress bar progressing from right to left.
    +
    Element separatorCharacter(std::string)
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vtext(std::wstring text)
    Display a piece unicode text vertically.
    Definition text.cpp:220
    +
    Element borderLight(Element)
    Draw a light border around the element.
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    +
    Element paragraphAlignLeft(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the left.
    +
    Decorator borderWith(const Pixel &)
    Same as border but with a constant Pixel around the element.
    +
    Decorator borderStyled(BorderStyle)
    Same as border but with different styles.
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element filler()
    An element that will take expand proportionally to the space left in a container.
    Definition flex.cpp:98
    +
    Element dim(Element)
    Use a light font, for elements with less emphasis.
    Definition dim.cpp:33
    +
    Element automerge(Element child)
    Enable character to be automatically merged with others nearby.
    Definition automerge.cpp:17
    +
    Decorator hyperlink(std::string link)
    Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported onl...
    Definition hyperlink.cpp:70
    +
    Element blink(Element)
    The text drawn alternates in between visible and hidden.
    Definition blink.cpp:33
    +
    Element vcenter(Element)
    Center an element vertically.
    +
    Element separatorDouble()
    Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
    +
    Element focusCursorBlockBlinking(Element)
    Same as focus, but set the cursor shape to be a blinking block.
    Definition frame.cpp:161
    +
    Element paragraphAlignJustify(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned using a justified alignment....
    +
    Element border(Element)
    Draw a border around the element.
    +
    Element separatorHeavy()
    Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
    +
    Element borderEmpty(Element)
    Draw an empty border around the element.
    +
    Element yflex_shrink(Element)
    Minimize if needed on the Y axis.
    Definition flex.cpp:171
    +
    Element hcenter(Element)
    Center an element horizontally.
    +
    BorderStyle
    BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
    Definition elements.hpp:35
    +
    Element gaugeDown(float progress)
    Draw a high definition progress bar progressing from top to bottom.
    +
    @ EMPTY
    Definition elements.hpp:41
    +
    @ DOUBLE
    Definition elements.hpp:39
    +
    @ HEAVY
    Definition elements.hpp:38
    +
    @ ROUNDED
    Definition elements.hpp:40
    +
    @ DASHED
    Definition elements.hpp:37
    +
    @ LIGHT
    Definition elements.hpp:36
    + +
    Dimensions Fit(Element &, bool extend_beyond_screen=false)
    +
    WidthOrHeight
    Definition elements.hpp:161
    + + +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
    A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
    Definition flexbox.cpp:251
    +
    Element separatorVSelector(float up, float down, Color unselected_color, Color selected_color)
    Draw an vertical bar, with the area in between up/downcolored differently.
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element xframe(Element)
    Same as frame, but only on the x-axis.
    Definition frame.cpp:126
    +
    Element hflow(Elements)
    A container displaying elements in rows from left to right. When filled, it starts on a new row below...
    Definition flexbox.cpp:269
    +
    Decorator selectionStyle(std::function< void(Pixel &)> style)
    Set the style of an element when selected.
    +
    Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)
    Draw a horizontal bar, with the area in between left/right colored differently.
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Element canvas(ConstRef< Canvas >)
    Produce an element from a Canvas, or a reference to a Canvas.
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Decorator selectionForegroundColor(Color foreground)
    Set the foreground color of an element when selected. Note that the style is applied on top of the ex...
    +
    Component operator|(Component component, ComponentDecorator decorator)
    +
    Decorator selectionBackgroundColor(Color foreground)
    Set the background color of an element when selected. Note that the style is applied on top of the ex...
    +
    Element yframe(Element)
    Same as frame, but only on the y-axis.
    Definition frame.cpp:134
    +
    Decorator selectionColor(Color foreground)
    Set the color of an element when selected.
    +
    Element select(Element e)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:108
    +
    Element selectionStyleReset(Element)
    Reset the selection style of an element.
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    std::function< std::vector< int >(int, int)> GraphFunction
    Definition elements.hpp:25
    +
    Element gridbox(std::vector< Elements > lines)
    A container displaying a grid of elements.
    +
    Elements paragraph(std::wstring text)
    +
    Element frame(Element)
    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
    Definition frame.cpp:118
    +
    Component & operator|=(Component &component, ComponentDecorator decorator)
    + +
    @ LESS_THAN
    Definition elements.hpp:162
    + +
    @ GREATER_THAN
    Definition elements.hpp:162
    +
    Element vflow(Elements)
    A container displaying elements in rows from top to bottom. When filled, it starts on a new columns o...
    Definition flexbox.cpp:289
    +
    Element graph(GraphFunction)
    Draw a graph using a GraphFunction.
    + + +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t down
    Definition screen.cpp:133
    +
    std::uint8_t right
    Definition screen.cpp:132
    + +

    +text

    +

    The most simple widget. It displays a text.

    text("I am a piece of text");
    +
    I am a piece of text.
    +

    +vtext

    +

    Identical to ftxui::text, but displayed vertically.

    +

    Code:

    vtext("HELLO");
    +

    Terminal output:

    H
    +
    E
    +
    L
    +
    L
    +
    O
    +

    +paragraph 

    +

    Similar to ftxui::text, but the individual word are wrapped along multiple lines, depending on the width of its container.

    +

    Sample Code:

    paragraph("A very long text")
    +

    ezgif com-gif-maker (4)

    +

    For a more detailed example refer to detailed example. Paragraph also includes a number of other variants as shown below:

    namespace ftxui {
    +
    Element paragraph(std::string text);
    +
    Element paragraphAlignLeft(std::string text);
    +
    Element paragraphAlignRight(std::string text);
    +
    Element paragraphAlignCenter(std::string text);
    +
    Element paragraphAlignJustify(std::string text);
    +
    }
    +

    +border

    +

    Adds a border around an element.

    +

    Code:

    border(text("The element"))
    +

    Terminal output:

    ┌───────────┐
    +
    │The element│
    +
    └───────────┘
    +
    Note
    You can achieve the same behavior by using the pipe operator.
    +
    + Code:
    text("The element") | border
    +
    +

    Border also comes in a variety of styles as shown below:

    +window

    +

    A ftxui::window is a ftxui::border, but with an additional header. To add a window around an element, wrap it and specify a string as the header. Code:

    window("The window", text("The element"))
    +

    Terminal output:

    ┌The window─┐
    +
    │The element│
    +
    └───────────┘
    +

    +separator

    +

    Displays a vertical/horizontal line to visually split the content of a container in two.

    +

    Code:

    border(
    +
    hbox({
    +
    text("Left"),
    +
    separator(),
    +
    text("Right")
    +
    })
    +
    )
    +

    Terminal output:

    ┌────┬─────┐
    +
    │left│right│
    +
    └────┴─────┘
    +

    Separators come in a variety of flavors as shown below:

    namespace ftxui {
    + + + + + + + + + +
    float right,
    +
    Color background,
    +
    Color foreground);
    + +
    float down,
    +
    Color background,
    +
    Color foreground);
    +
    }
    +

    +gauge

    +

    This is a visual element that represents a ratio of progress.

    +

    Code:

    border(gauge(0.5))
    +

    Terminal output:

    ┌────────────────────────────────────────────────────────────────────────────┐
    +
    │██████████████████████████████████████ │
    +
    └────────────────────────────────────────────────────────────────────────────┘
    +

    Gauges can be displayed in many orientations as shown below:

    namespace {
    +
    Element gauge(float ratio);
    +
    Element gaugeLeft(float ratio);
    +
    Element gaugeRight(float ratio);
    +
    Element gaugeUp(float ratio);
    +
    Element gaugeDown(float ratio);
    +
    Element gaugeDirection(float ratio, GaugeDirection);
    +
    }
    +

    +graph

    +

    + +

    +

    See:

    Element graph(GraphFunction);
    +

    +Colors

    +

    Most terminal consoles can display colored text and colored backgrounds. FTXUI supports every color palette:

    Decorator color(Color);
    +
    Decorator bgcolor(Color);
    +

    Color gallery: image

    +

    +Palette16 

    +

    On most terminals the following colors are supported:

      +
    • Default
    • +
    • Black
    • +
    • GrayDark
    • +
    • GrayLight
    • +
    • White
    • +
    • Blue
    • +
    • BlueLight
    • +
    • Cyan
    • +
    • CyanLight
    • +
    • Green
    • +
    • GreenLight
    • +
    • Magenta
    • +
    • MagentaLight
    • +
    • Red
    • +
    • RedLight
    • +
    • Yellow
    • +
    • YellowLight
    • +
    +

    Example use of the above colors using the pipe operator:

    text("Blue foreground") | color(Color::Blue);
    +
    text("Blue background") | bgcolor(Color::Blue);
    +
    text("Black on white") | color(Color::Black) | bgcolor(Color::White);
    +

    +Palette256 

    +

    On terminal supporting 256 colors. + +

    +
    text("HotPink") | color(Color::HotPink);
    +

    +TrueColor

    +

    On terminal supporting trueColor, you can directly use the 24bit RGB color space:

    +

    Use the constructors below to specify the RGB or HSV values for your color:

    +

    There are two constructors:

    ftxui::Color::RGB(uint8_t red, uint8_t green, uint8_t blue);
    +
    ftxui::Color::HSV(uint8_t hue, uint8_t saturation, uint8_t value);
    +
    static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
    +
    static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
    Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
    +

    + + +

    +

    +LinearGradient

    +

    FTXUI supports linear gradient. Either on the foreground or the background.

    +
    Decorator color(const LinearGradient&);
    +
    Decorator bgcolor(const LinearGradient&);
    +

    A ftxui::LinearGradient is defined by an angle in degree, and a list of color stops.

    auto gradient = LinearGradient()
    +
    .Angle(45)
    +
    .AddStop(0.0, Color::Red)
    +
    .AddStop(0.5, Color::Green)
    +
    .AddStop(1.0, Color::Blue);
    +

    You can also use simplified constructors:

    LinearGradient(Color::Red, Color::Blue);
    +
    LinearGradient(45, Color::Red, Color::Blue);
    +

    See demo.

    +

    +Style

    +

    In addition to colored text and colored backgrounds. Many terminals support text effects such as: bold, italic, dim, underlined, inverted, blink.

    +
    Element bold(Element);
    +
    Element italic(Element);
    +
    Element dim(Element);
    +
    Element inverted(Element);
    +
    Element underlined(Element);
    +
    Element underlinedDouble(Element);
    +
    Element strikethrough(Element);
    +
    Element blink(Element);
    +
    Decorator color(Color);
    +
    Decorator bgcolor(Color);
    +
    Decorator colorgrad(LinearGradient);
    +
    Decorator bgcolorgrad(LinearGradient);
    +

    Example

    +

    image

    +

    To use these effects, simply wrap your elements with your desired effect:

    underlined(bold(text("This text is bold and underlined")))
    +

    Alternatively, use the pipe operator to chain it on your element:

    text("This text is bold") | bold | underlined
    +

    +Layout

    +

    Enables elements to be arranged in the following ways:

      +
    • Horizontally with ftxui::hbox
    • +
    • Vertically with ftxui::vbox
    • +
    • Inside a grid with ftxui::gridbox
    • +
    • Wrapped along one direction using the ftxui::flexbox.
    • +
    +

    Example using ftxui::hbox, ftxui::vbox and ftxui::filler.

    +

    image

    +

    Example using ftxui::gridbox:

    +

    image

    +

    Example using flexbox:

    +

    image

    +

    Checkout this example and the associated demo.

    +

    Element can also become flexible using the ftxui::flex decorator.

    +

    Code:

    hbox({
    +
    text("left") | border ,
    +
    text("middle") | border | flex,
    +
    text("right") | border,
    +
    });
    +

    Terminal output:

    ┌────┐┌─────────────────────────────────────────────────────┐┌─────┐
    +
    │left││middle ││right│
    +
    └────┘└─────────────────────────────────────────────────────┘└─────┘
    +

    Code:

    hbox({
    +
    text("left") | border ,
    +
    text("middle") | border | flex,
    +
    text("right") | border | flex,
    +
    });
    +

    Terminal output:

    ┌────┐┌───────────────────────────────┐┌───────────────────────────────┐
    +
    │left││middle ││right │
    +
    └────┘└───────────────────────────────┘└───────────────────────────────┘
    +

    +Table

    +

    Enables easy formatting of data into a neat table like visual form.

    +

    Code example:

    +

    image

    +

    +Canvas

    +

    See the API <ftxui/dom/canvas.hpp>

    +
    auto c = Canvas(100, 100);
    +
    c.DrawPointLine(10, 10, 80, 10, Color::Red);
    +
    auto element = canvas(c);
    +

    Drawing can be performed on a ftxui::Canvas, using braille, block, or simple characters:

    +

    Simple example:

    +

    image

    +

    Complex example:

    +

    ezgif com-gif-maker (3)

    +
    +
    +
    + + + + + diff --git a/module-dom.js b/module-dom.js new file mode 100644 index 000000000..dbe9a1fe4 --- /dev/null +++ b/module-dom.js @@ -0,0 +1,22 @@ +var module_dom = +[ + [ "text", "module-dom.html#dom-text", null ], + [ "vtext", "module-dom.html#dom-vtext", null ], + [ "paragraph ", "module-dom.html#dom-paragraph", null ], + [ "border", "module-dom.html#dom-border", null ], + [ "window", "module-dom.html#dom-window", null ], + [ "separator", "module-dom.html#dom-separator", null ], + [ "gauge", "module-dom.html#dom-gauge", null ], + [ "graph", "module-dom.html#dom-graph", null ], + [ "Colors", "module-dom.html#dom-colors", [ + [ "Palette16 ", "module-dom.html#dom-colors-palette-16", null ], + [ "Palette256 ", "module-dom.html#dom-colors-palette-256", null ], + [ "TrueColor", "module-dom.html#dom-colors-true-color", null ] + ] ], + [ "LinearGradient", "module-dom.html#dom-linear-gradient", null ], + [ "Style", "module-dom.html#dom-style", null ], + [ "Layout", "module-dom.html#dom-layout", null ], + [ "Table", "module-dom.html#dom-table", null ], + [ "Canvas", "module-dom.html#dom-canvas", null ], + [ "Example", "module-dom-examples.html", null ] +]; \ No newline at end of file diff --git a/module-dom_8md.html b/module-dom_8md.html new file mode 100644 index 000000000..07fb8b6c0 --- /dev/null +++ b/module-dom_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: module-dom.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    module-dom.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/module-screen.html b/module-screen.html new file mode 100644 index 000000000..b78f91d94 --- /dev/null +++ b/module-screen.html @@ -0,0 +1,380 @@ + + + + + + + + +FTXUI: ftxui / screen + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ftxui / screen
    +
    +
    +

    Table of Contents

    + +
    +

    title-img

    +

    The ftxui::screen module is the low-level foundation. It can be used standalone, but it is primarily designed to be used together by ftxui::dom and ftxui::component modules.

    +

    It provides a ftxui::Screen.

    +
    +

    +ftxui::Screen

    +

    The ftxui::Screen class represents a 2D grid of styled characters that can be rendered to a terminal.
    + It provides methods to create a screen, access pixels, and render elements.

    +

    You can access the individual cells (ftxui::Pixel) of the screen using the ftxui::Screen::PixelAt method, which returns a reference to the pixel at the specified coordinates.

    +

    Example

    + +
    +
    void main() {
    +
    auto screen = ftxui::Screen::Create(
    +
    ftxui::Dimension::Full(), // Use full terminal width
    +
    ftxui::Dimension::Fixed(10) // Fixed height of 10 rows
    +
    );
    +
    +
    // Access a specific pixel at (10, 5)
    +
    auto& pixel = screen.PixelAt(10, 5);
    +
    +
    // Set properties of the pixel.
    +
    pixel.character = U'X';
    +
    pixel.foreground_color = ftxui::Color::Red;
    +
    pixel.background_color = ftxui::Color::RGB(0, 255, 0);
    +
    pixel.bold = true; // Set bold style
    +
    screen.Print(); // Print the screen to the terminal
    +
    }
    + + +
    static Screen Create(Dimensions dimension)
    Create a screen with the given dimension.
    Definition screen.cpp:395
    +
    static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
    Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
    + + +
    Note
    If the coordinates are out of bounds, a dummy pixel is returned.
    +

    The screen can be printed to the terminal using ftxui::Screen::Print() or converted to a std::string with ftxui::Screen::ToString().

    +
      +
    • Print()
      auto screen = ...;
      +
      screen.Print();
      +
    • +
    • ToString()
      auto screen = ...;
      +
      std::cout << screen.ToString();
      +
    • +
    +

    Note that you can reset the cursor position to the top-left corner of the screen after printing by calling ftxui::Screen::ResetCursorPosition().

    +

    Example

    auto screen = ...;
    +
    while(true) {
    +
    // Drawing operations:
    +
    ...
    +
    +
    // Print the screen to the terminal. Then reset the cursor position and the
    +
    // screen content.
    +
    std::cout << screen.ToString();
    +
    std::cout << screen.ResetCursorPosition(/*clear=*/true);
    +
    std::cout << std::flush;
    +
    +
    // Sleep for a short duration to control the refresh rate.
    +
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
    +
    }
    +

    +

    +ftxui::Dimension

    +

    The ftxui::Dimension utility controls screen sizing:

    +
      +
    • Dimension::Full() — use full terminal width or height
    • +
    • Dimension::Fit(element) — size to fit the rendered ftxui::Element
    • +
    • Dimension::Fixed(n) — use exactly n columns or rows
    • +
    +

    These values are to be passed to ftxui::Screen::Create().

    +

    ftxui::Screen::Create() provides two overloads:

    +
      +
    • Screen::Create(Dimension) sets both width and height to the same kind of dimension
    • +
    • Screen::Create(Dimension width, Dimension height) allows distinct control per axis
    • +
    +
    auto screen = ftxui::Screen::Create(
    +
    ftxui::Dimension::Full(), // width
    +
    ftxui::Dimension::Fixed(10) // height
    +
    );
    +

    Once created, render an element and display the result:

    +
    ftxui::Render(screen, element);
    +
    screen.Print();
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +

    +

    +ftxui::Pixel

    +

    Each cell in the screen grid is a ftxui::Pixel, which holds:

    +
      +
    • Unicode codepoint.
        +
      • character
      • +
      +
    • +
    • ftxui::Color:
        +
      • foreground_color
      • +
      • background_color
      • +
      +
    • +
    • Booleans:
        +
      • blink
      • +
      • bold
      • +
      • dim
      • +
      • italic
      • +
      • inverted (swap foreground and background colors)
      • +
      • underlined
      • +
      • underlined_double
      • +
      • strikethrough
      • +
      +
    • +
    +
    auto screen = ftxui::Screen::Create(
    +
    ftxui::Dimension::Fixed(5),
    +
    ftxui::Dimension::Fixed(5),
    +
    );
    +
    +
    auto& pixel = screen.PixelAt(3, 3);
    +
    pixel.character = U'X';
    +
    pixel.bold = true;
    +
    pixel.foreground_color = ftxui::Color::Red;
    +
    pixel.background_color = ftxui::Color::RGB(0, 255, 0);
    +
    +
    screen.Print();
    +
    Note
    PixelAt(x, y) performs bounds checking and returns a reference to the pixel at the specified coordinate. If out-of-bounds, a dummy pixel reference is returned.
    +

    Each cell in the screen is a ftxui::Pixel. You can modify them using:

    +
    auto& pixel = screen.PixelAt(x, y);
    +
    pixel.character = U'X';
    +
    pixel.bold = true;
    +
    pixel.foreground_color = Color::Red;
    +

    +

    +ftxui::Color

    +

    The ftxui::Color class is used to define foreground and background colors for each ftxui::Pixel.

    +

    It supports various color spaces and predefined palettes. FTXUI will dynamically fallback to the closest available color in the terminal if the requested color is not supported by the terminal.

    +

    Color Spaces

    + +
    Note
    You can query the terminal capability using ftxui::Terminal::ColorSupport();
    +
    + This can manually be set using ftxui::Terminal::SetColorSupport().
    +
    +
    +
    + + + + + diff --git a/module-screen_8md.html b/module-screen_8md.html new file mode 100644 index 000000000..aa1c5a7c6 --- /dev/null +++ b/module-screen_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: module-screen.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    module-screen.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/module_8md.html b/module_8md.html new file mode 100644 index 000000000..a4551cf60 --- /dev/null +++ b/module_8md.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: module.md File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    module.md File Reference
    +
    +
    +
    +
    + + + + + diff --git a/module__ftxui.html b/module__ftxui.html new file mode 100644 index 000000000..45c41b6aa --- /dev/null +++ b/module__ftxui.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: ftxui Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui Module Reference
    +
    +
    + +

    Module file re-exporting all FTXUI submodules. +More...

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

    Detailed Description

    +

    Module file re-exporting all FTXUI submodules.

    +

    +Exported Modules

    module  ftxui.component
     Module file for FTXUI component operations.
     
    module  ftxui.dom
     Module file for FTXUI main operations.
     
    module  ftxui.screen
     Module file for FTXUI screen operations.
     
    module  ftxui.util
     Module file for FTXUI utility operations.
     
    + + + +

    +Files

    file  ftxui.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component.html b/module__ftxui_8component.html new file mode 100644 index 000000000..f96264a89 --- /dev/null +++ b/module__ftxui_8component.html @@ -0,0 +1,257 @@ + + + + + + + + +FTXUI: ftxui.component Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component Module Reference
    +
    +
    + +

    Module file for FTXUI component operations. +More...

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

    Detailed Description

    +

    Module file for FTXUI component operations.

    +

    +Exported Modules

    module  ftxui.component.animation
     C++20 module interface for the Animation namespace of the Component module.
     
    module  ftxui.component.mouse
     Module file for the Mouse struct of the Component module.
     
    module  ftxui.component.captured_mouse
     Module file for the CapturedMouseInterface class of the Component module.
     
    module  ftxui.component.component
     Module file for the Component classes of the Component module.
     
    module  ftxui.component.component_options
     Module file for options for the Component class of the Component module.
     
    module  ftxui.component.event
     Module file for the Event struct of the Component module.
     
    module  ftxui.component.loop
     Module file for the Loop class of the Component module.
     
    module  ftxui.component.receiver
     Module file for the Receiver class of the Component module.
     
    module  ftxui.component.screen_interactive
     Module file for the ScreenInteractive class of the Component module.
     
    module  ftxui.component.component_base
     Module file for the ComponentBase class of the Component module.
     
    module  ftxui.component.task
     Module file for the Task class of the Component module.
     
    + + + +

    +Files

    file  component.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8animation.html b/module__ftxui_8component_8animation.html new file mode 100644 index 000000000..a40e5346e --- /dev/null +++ b/module__ftxui_8component_8animation.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.animation Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.animation Module Reference
    +
    +
    + +

    C++20 module interface for the Animation namespace of the Component module. +More...

    +

    Detailed Description

    +

    C++20 module interface for the Animation namespace of the Component module.

    +
    + + + +

    +Files

    file  animation.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8captured__mouse.html b/module__ftxui_8component_8captured__mouse.html new file mode 100644 index 000000000..d0e683ee5 --- /dev/null +++ b/module__ftxui_8component_8captured__mouse.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.captured_mouse Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.captured_mouse Module Reference
    +
    +
    + +

    Module file for the CapturedMouseInterface class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the CapturedMouseInterface class of the Component module.

    +
    + + + +

    +Files

    file  captured_mouse.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8component.html b/module__ftxui_8component_8component.html new file mode 100644 index 000000000..4d5a7190c --- /dev/null +++ b/module__ftxui_8component_8component.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.component Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.component Module Reference
    +
    +
    + +

    Module file for the Component classes of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the Component classes of the Component module.

    +
    + + + +

    +Files

    file  component.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8component__base.html b/module__ftxui_8component_8component__base.html new file mode 100644 index 000000000..04dd8efe4 --- /dev/null +++ b/module__ftxui_8component_8component__base.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.component_base Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.component_base Module Reference
    +
    +
    + +

    Module file for the ComponentBase class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the ComponentBase class of the Component module.

    +
    + + + +

    +Files

    file  component_base.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8component__options.html b/module__ftxui_8component_8component__options.html new file mode 100644 index 000000000..0b28fb2f1 --- /dev/null +++ b/module__ftxui_8component_8component__options.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.component_options Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.component_options Module Reference
    +
    +
    + +

    Module file for options for the Component class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for options for the Component class of the Component module.

    +
    + + + +

    +Files

    file  component_options.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8event.html b/module__ftxui_8component_8event.html new file mode 100644 index 000000000..bb1c12253 --- /dev/null +++ b/module__ftxui_8component_8event.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.event Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.event Module Reference
    +
    +
    + +

    Module file for the Event struct of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the Event struct of the Component module.

    +
    + + + +

    +Files

    file  event.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8loop.html b/module__ftxui_8component_8loop.html new file mode 100644 index 000000000..52d2c3377 --- /dev/null +++ b/module__ftxui_8component_8loop.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.loop Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.loop Module Reference
    +
    +
    + +

    Module file for the Loop class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the Loop class of the Component module.

    +
    + + + +

    +Files

    file  loop.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8mouse.html b/module__ftxui_8component_8mouse.html new file mode 100644 index 000000000..118577225 --- /dev/null +++ b/module__ftxui_8component_8mouse.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.mouse Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.mouse Module Reference
    +
    +
    + +

    Module file for the Mouse struct of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the Mouse struct of the Component module.

    +
    + + + +

    +Files

    file  mouse.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8receiver.html b/module__ftxui_8component_8receiver.html new file mode 100644 index 000000000..574da7384 --- /dev/null +++ b/module__ftxui_8component_8receiver.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.receiver Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.receiver Module Reference
    +
    +
    + +

    Module file for the Receiver class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the Receiver class of the Component module.

    +
    + + + +

    +Files

    file  receiver.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8screen__interactive.html b/module__ftxui_8component_8screen__interactive.html new file mode 100644 index 000000000..dec2a6076 --- /dev/null +++ b/module__ftxui_8component_8screen__interactive.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.screen_interactive Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.screen_interactive Module Reference
    +
    +
    + +

    Module file for the ScreenInteractive class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the ScreenInteractive class of the Component module.

    +
    + + + +

    +Files

    file  screen_interactive.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8component_8task.html b/module__ftxui_8component_8task.html new file mode 100644 index 000000000..7fe495ecf --- /dev/null +++ b/module__ftxui_8component_8task.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.component.task Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.component.task Module Reference
    +
    +
    + +

    Module file for the Task class of the Component module. +More...

    +

    Detailed Description

    +

    Module file for the Task class of the Component module.

    +
    + + + +

    +Files

    file  task.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom.html b/module__ftxui_8dom.html new file mode 100644 index 000000000..aec1fd260 --- /dev/null +++ b/module__ftxui_8dom.html @@ -0,0 +1,254 @@ + + + + + + + + +FTXUI: ftxui.dom Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom Module Reference
    +
    +
    + +

    Module file for FTXUI main operations. +More...

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

    Detailed Description

    +

    Module file for FTXUI main operations.

    +

    +Exported Modules

    module  ftxui.dom.direction
     Module file for the Direction enum of the Dom module.
     
    module  ftxui.dom.deprecated
     Module file for deprecated parts of the Dom module.
     
    module  ftxui.dom.flexbox_config
     Module file for the FlexboxConfig struct of the Dom module.
     
    module  ftxui.dom.linear_gradient
     Module file for the LinearGradient struct of the Dom module.
     
    module  ftxui.dom.selection
     Module file for the Selection class of the Dom module.
     
    module  ftxui.dom.node
     Module file for the Node class of the Dom module.
     
    module  ftxui.dom.requirement
     Module file for the Requirement struct of the Dom module.
     
    module  ftxui.dom.canvas
     Module file for the Canvas struct of the Dom module.
     
    module  ftxui.dom.elements
     Module file for the Element classes and functions of the Dom module.
     
    module  ftxui.dom.table
     Module file for the Table class of the Dom module.
     
    + + + +

    +Files

    file  dom.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8canvas.html b/module__ftxui_8dom_8canvas.html new file mode 100644 index 000000000..be617981c --- /dev/null +++ b/module__ftxui_8dom_8canvas.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.canvas Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.canvas Module Reference
    +
    +
    + +

    Module file for the Canvas struct of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Canvas struct of the Dom module.

    +
    + + + +

    +Files

    file  canvas.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8deprecated.html b/module__ftxui_8dom_8deprecated.html new file mode 100644 index 000000000..15380a724 --- /dev/null +++ b/module__ftxui_8dom_8deprecated.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.deprecated Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.deprecated Module Reference
    +
    +
    + +

    Module file for deprecated parts of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for deprecated parts of the Dom module.

    +
    + + + +

    +Files

    file  deprecated.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8direction.html b/module__ftxui_8dom_8direction.html new file mode 100644 index 000000000..59022f4c3 --- /dev/null +++ b/module__ftxui_8dom_8direction.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.direction Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.direction Module Reference
    +
    +
    + +

    Module file for the Direction enum of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Direction enum of the Dom module.

    +
    + + + +

    +Files

    file  direction.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8elements.html b/module__ftxui_8dom_8elements.html new file mode 100644 index 000000000..fafefb7e3 --- /dev/null +++ b/module__ftxui_8dom_8elements.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.elements Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.elements Module Reference
    +
    +
    + +

    Module file for the Element classes and functions of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Element classes and functions of the Dom module.

    +
    + + + +

    +Files

    file  elements.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8flexbox__config.html b/module__ftxui_8dom_8flexbox__config.html new file mode 100644 index 000000000..ba6db2235 --- /dev/null +++ b/module__ftxui_8dom_8flexbox__config.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.flexbox_config Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.flexbox_config Module Reference
    +
    +
    + +

    Module file for the FlexboxConfig struct of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the FlexboxConfig struct of the Dom module.

    +
    + + + +

    +Files

    file  flexbox_config.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8linear__gradient.html b/module__ftxui_8dom_8linear__gradient.html new file mode 100644 index 000000000..901692d7d --- /dev/null +++ b/module__ftxui_8dom_8linear__gradient.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.linear_gradient Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.linear_gradient Module Reference
    +
    +
    + +

    Module file for the LinearGradient struct of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the LinearGradient struct of the Dom module.

    +
    + + + +

    +Files

    file  linear_gradient.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8node.html b/module__ftxui_8dom_8node.html new file mode 100644 index 000000000..5205fb7df --- /dev/null +++ b/module__ftxui_8dom_8node.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.node Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.node Module Reference
    +
    +
    + +

    Module file for the Node class of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Node class of the Dom module.

    +
    + + + +

    +Files

    file  node.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8requirement.html b/module__ftxui_8dom_8requirement.html new file mode 100644 index 000000000..bba5f6b65 --- /dev/null +++ b/module__ftxui_8dom_8requirement.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.requirement Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.requirement Module Reference
    +
    +
    + +

    Module file for the Requirement struct of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Requirement struct of the Dom module.

    +
    + + + +

    +Files

    file  requirement.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8selection.html b/module__ftxui_8dom_8selection.html new file mode 100644 index 000000000..e6dd0f76d --- /dev/null +++ b/module__ftxui_8dom_8selection.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.selection Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.selection Module Reference
    +
    +
    + +

    Module file for the Selection class of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Selection class of the Dom module.

    +
    + + + +

    +Files

    file  selection.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8dom_8table.html b/module__ftxui_8dom_8table.html new file mode 100644 index 000000000..5e411e288 --- /dev/null +++ b/module__ftxui_8dom_8table.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.dom.table Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.dom.table Module Reference
    +
    +
    + +

    Module file for the Table class of the Dom module. +More...

    +

    Detailed Description

    +

    Module file for the Table class of the Dom module.

    +
    + + + +

    +Files

    file  table.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen.html b/module__ftxui_8screen.html new file mode 100644 index 000000000..4bcdb05a1 --- /dev/null +++ b/module__ftxui_8screen.html @@ -0,0 +1,251 @@ + + + + + + + + +FTXUI: ftxui.screen Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen Module Reference
    +
    +
    + +

    Module file for FTXUI screen operations. +More...

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

    Detailed Description

    +

    Module file for FTXUI screen operations.

    +

    +Exported Modules

    module  ftxui.screen.color_info
     Module file for the ColorInfo struct of the Screen module.
     
    module  ftxui.screen.color
     Module file for the Color class of the Screen module.
     
    module  ftxui.screen.deprecated
     Module file for the deprecated parts of the Screen module.
     
    module  ftxui.screen.pixel
     Module file for the Pixel struct of the Screen module.
     
    module  ftxui.screen.box
     Module file for the Box struct of the Screen module.
     
    module  ftxui.screen.terminal
     Module file for the Terminal namespace of the Screen module.
     
    module  ftxui.screen.image
     Module file for the Image class of the Screen module.
     
    module  ftxui.screen.screen
     Module file for the Screen class of the Screen module.
     
    module  ftxui.screen.string
     Module file for string functions of the Screen module.
     
    + + + +

    +Files

    file  screen.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8box.html b/module__ftxui_8screen_8box.html new file mode 100644 index 000000000..996eefa0e --- /dev/null +++ b/module__ftxui_8screen_8box.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.box Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.box Module Reference
    +
    +
    + +

    Module file for the Box struct of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the Box struct of the Screen module.

    +
    + + + +

    +Files

    file  box.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8color.html b/module__ftxui_8screen_8color.html new file mode 100644 index 000000000..8db3abcd7 --- /dev/null +++ b/module__ftxui_8screen_8color.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.color Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.color Module Reference
    +
    +
    + +

    Module file for the Color class of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the Color class of the Screen module.

    +
    + + + +

    +Files

    file  color.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8color__info.html b/module__ftxui_8screen_8color__info.html new file mode 100644 index 000000000..83881bdd0 --- /dev/null +++ b/module__ftxui_8screen_8color__info.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.color_info Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.color_info Module Reference
    +
    +
    + +

    Module file for the ColorInfo struct of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the ColorInfo struct of the Screen module.

    +
    + + + +

    +Files

    file  color_info.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8deprecated.html b/module__ftxui_8screen_8deprecated.html new file mode 100644 index 000000000..7a3e9e08b --- /dev/null +++ b/module__ftxui_8screen_8deprecated.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.deprecated Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.deprecated Module Reference
    +
    +
    + +

    Module file for the deprecated parts of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the deprecated parts of the Screen module.

    +
    + + + +

    +Files

    file  deprecated.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8image.html b/module__ftxui_8screen_8image.html new file mode 100644 index 000000000..b786bfbf5 --- /dev/null +++ b/module__ftxui_8screen_8image.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.image Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.image Module Reference
    +
    +
    + +

    Module file for the Image class of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the Image class of the Screen module.

    +
    + + + +

    +Files

    file  image.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8pixel.html b/module__ftxui_8screen_8pixel.html new file mode 100644 index 000000000..678b49ba4 --- /dev/null +++ b/module__ftxui_8screen_8pixel.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.pixel Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.pixel Module Reference
    +
    +
    + +

    Module file for the Pixel struct of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the Pixel struct of the Screen module.

    +
    + + + +

    +Files

    file  pixel.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8screen.html b/module__ftxui_8screen_8screen.html new file mode 100644 index 000000000..af6d9b0d6 --- /dev/null +++ b/module__ftxui_8screen_8screen.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.screen Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.screen Module Reference
    +
    +
    + +

    Module file for the Screen class of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the Screen class of the Screen module.

    +
    + + + +

    +Files

    file  screen.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8string.html b/module__ftxui_8screen_8string.html new file mode 100644 index 000000000..738b6de79 --- /dev/null +++ b/module__ftxui_8screen_8string.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.string Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.string Module Reference
    +
    +
    + +

    Module file for string functions of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for string functions of the Screen module.

    +
    + + + +

    +Files

    file  string.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8screen_8terminal.html b/module__ftxui_8screen_8terminal.html new file mode 100644 index 000000000..09d5ed30f --- /dev/null +++ b/module__ftxui_8screen_8terminal.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.screen.terminal Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.screen.terminal Module Reference
    +
    +
    + +

    Module file for the Terminal namespace of the Screen module. +More...

    +

    Detailed Description

    +

    Module file for the Terminal namespace of the Screen module.

    +
    + + + +

    +Files

    file  terminal.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8util.html b/module__ftxui_8util.html new file mode 100644 index 000000000..868d15867 --- /dev/null +++ b/module__ftxui_8util.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: ftxui.util Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.util Module Reference
    +
    +
    + +

    Module file for FTXUI utility operations. +More...

    + + + + + + + + +

    Detailed Description

    +

    Module file for FTXUI utility operations.

    +

    +Exported Modules

    module  ftxui.util.autoreset
     Module file for the AutoReset class of the Util module.
     
    module  ftxui.util.ref
     Module file for the Ref classes of the Util module.
     
    + + + +

    +Files

    file  util.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8util_8autoreset.html b/module__ftxui_8util_8autoreset.html new file mode 100644 index 000000000..a6297a23b --- /dev/null +++ b/module__ftxui_8util_8autoreset.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.util.autoreset Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.util.autoreset Module Reference
    +
    +
    + +

    Module file for the AutoReset class of the Util module. +More...

    +

    Detailed Description

    +

    Module file for the AutoReset class of the Util module.

    +
    + + + +

    +Files

    file  autoreset.cppm
     
    +
    +
    + + + + + diff --git a/module__ftxui_8util_8ref.html b/module__ftxui_8util_8ref.html new file mode 100644 index 000000000..5e4740168 --- /dev/null +++ b/module__ftxui_8util_8ref.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: ftxui.util.ref Module Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui.util.ref Module Reference
    +
    +
    + +

    Module file for the Ref classes of the Util module. +More...

    +

    Detailed Description

    +

    Module file for the Ref classes of the Util module.

    +
    + + + +

    +Files

    file  ref.cppm
     
    +
    +
    + + + + + diff --git a/modules.html b/modules.html new file mode 100644 index 000000000..46fea0678 --- /dev/null +++ b/modules.html @@ -0,0 +1,249 @@ + + + + + + + + +FTXUI: Modules List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Modules List
    +
    +
    +
    Here is a list of all modules with brief descriptions:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Mftxui.componentModule file for FTXUI component operations
     Mftxui.component.animationC++20 module interface for the Animation namespace of the Component module
     Mftxui.component.captured_mouseModule file for the CapturedMouseInterface class of the Component module
     Mftxui.component.componentModule file for the Component classes of the Component module
     Mftxui.component.component_baseModule file for the ComponentBase class of the Component module
     Mftxui.component.component_optionsModule file for options for the Component class of the Component module
     Mftxui.component.eventModule file for the Event struct of the Component module
     Mftxui.component.loopModule file for the Loop class of the Component module
     Mftxui.component.mouseModule file for the Mouse struct of the Component module
     Mftxui.component.receiverModule file for the Receiver class of the Component module
     Mftxui.component.screen_interactiveModule file for the ScreenInteractive class of the Component module
     Mftxui.component.taskModule file for the Task class of the Component module
     Mftxui.domModule file for FTXUI main operations
     Mftxui.dom.canvasModule file for the Canvas struct of the Dom module
     Mftxui.dom.deprecatedModule file for deprecated parts of the Dom module
     Mftxui.dom.directionModule file for the Direction enum of the Dom module
     Mftxui.dom.elementsModule file for the Element classes and functions of the Dom module
     Mftxui.dom.flexbox_configModule file for the FlexboxConfig struct of the Dom module
     Mftxui.dom.linear_gradientModule file for the LinearGradient struct of the Dom module
     Mftxui.dom.nodeModule file for the Node class of the Dom module
     Mftxui.dom.requirementModule file for the Requirement struct of the Dom module
     Mftxui.dom.selectionModule file for the Selection class of the Dom module
     Mftxui.dom.tableModule file for the Table class of the Dom module
     MftxuiModule file re-exporting all FTXUI submodules
     Mftxui.screenModule file for FTXUI screen operations
     Mftxui.screen.boxModule file for the Box struct of the Screen module
     Mftxui.screen.colorModule file for the Color class of the Screen module
     Mftxui.screen.color_infoModule file for the ColorInfo struct of the Screen module
     Mftxui.screen.deprecatedModule file for the deprecated parts of the Screen module
     Mftxui.screen.imageModule file for the Image class of the Screen module
     Mftxui.screen.pixelModule file for the Pixel struct of the Screen module
     Mftxui.screen.screenModule file for the Screen class of the Screen module
     Mftxui.screen.stringModule file for string functions of the Screen module
     Mftxui.screen.terminalModule file for the Terminal namespace of the Screen module
     Mftxui.utilModule file for FTXUI utility operations
     Mftxui.util.autoresetModule file for the AutoReset class of the Util module
     Mftxui.util.refModule file for the Ref classes of the Util module
    +
    +
    +
    + + + + + diff --git a/modules_dup.js b/modules_dup.js new file mode 100644 index 000000000..c8819820d --- /dev/null +++ b/modules_dup.js @@ -0,0 +1,40 @@ +var modules_dup = +[ + [ "ftxui.component", "module__ftxui_8component.html", null ], + [ "ftxui.component.animation", "module__ftxui_8component_8animation.html", null ], + [ "ftxui.component.captured_mouse", "module__ftxui_8component_8captured__mouse.html", null ], + [ "ftxui.component.component", "module__ftxui_8component_8component.html", null ], + [ "ftxui.component.component_base", "module__ftxui_8component_8component__base.html", null ], + [ "ftxui.component.component_options", "module__ftxui_8component_8component__options.html", null ], + [ "ftxui.component.event", "module__ftxui_8component_8event.html", null ], + [ "ftxui.component.loop", "module__ftxui_8component_8loop.html", null ], + [ "ftxui.component.mouse", "module__ftxui_8component_8mouse.html", null ], + [ "ftxui.component.receiver", "module__ftxui_8component_8receiver.html", null ], + [ "ftxui.component.screen_interactive", "module__ftxui_8component_8screen__interactive.html", null ], + [ "ftxui.component.task", "module__ftxui_8component_8task.html", null ], + [ "ftxui.dom", "module__ftxui_8dom.html", null ], + [ "ftxui.dom.canvas", "module__ftxui_8dom_8canvas.html", null ], + [ "ftxui.dom.deprecated", "module__ftxui_8dom_8deprecated.html", null ], + [ "ftxui.dom.direction", "module__ftxui_8dom_8direction.html", null ], + [ "ftxui.dom.elements", "module__ftxui_8dom_8elements.html", null ], + [ "ftxui.dom.flexbox_config", "module__ftxui_8dom_8flexbox__config.html", null ], + [ "ftxui.dom.linear_gradient", "module__ftxui_8dom_8linear__gradient.html", null ], + [ "ftxui.dom.node", "module__ftxui_8dom_8node.html", null ], + [ "ftxui.dom.requirement", "module__ftxui_8dom_8requirement.html", null ], + [ "ftxui.dom.selection", "module__ftxui_8dom_8selection.html", null ], + [ "ftxui.dom.table", "module__ftxui_8dom_8table.html", null ], + [ "ftxui", "module__ftxui.html", null ], + [ "ftxui.screen", "module__ftxui_8screen.html", null ], + [ "ftxui.screen.box", "module__ftxui_8screen_8box.html", null ], + [ "ftxui.screen.color", "module__ftxui_8screen_8color.html", null ], + [ "ftxui.screen.color_info", "module__ftxui_8screen_8color__info.html", null ], + [ "ftxui.screen.deprecated", "module__ftxui_8screen_8deprecated.html", null ], + [ "ftxui.screen.image", "module__ftxui_8screen_8image.html", null ], + [ "ftxui.screen.pixel", "module__ftxui_8screen_8pixel.html", null ], + [ "ftxui.screen.screen", "module__ftxui_8screen_8screen.html", null ], + [ "ftxui.screen.string", "module__ftxui_8screen_8string.html", null ], + [ "ftxui.screen.terminal", "module__ftxui_8screen_8terminal.html", null ], + [ "ftxui.util", "module__ftxui_8util.html", null ], + [ "ftxui.util.autoreset", "module__ftxui_8util_8autoreset.html", null ], + [ "ftxui.util.ref", "module__ftxui_8util_8ref.html", null ] +]; \ No newline at end of file diff --git a/mouse_8cppm.html b/mouse_8cppm.html new file mode 100644 index 000000000..f915acbbb --- /dev/null +++ b/mouse_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: mouse.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    mouse.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/mouse_8cppm_source.html b/mouse_8cppm_source.html new file mode 100644 index 000000000..86363a48a --- /dev/null +++ b/mouse_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: mouse.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    mouse.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.component.mouse
    +
    2/// @brief Module file for the Mouse struct of the Component module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.component.mouse;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::Mouse;
    +
    16}
    +
    A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift,...
    Definition mouse.hpp:11
    +
    Module file for the Mouse struct of the Component module.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/mouse_8hpp.html b/mouse_8hpp.html new file mode 100644 index 000000000..db26004d6 --- /dev/null +++ b/mouse_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: mouse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    mouse.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    struct  Mouse
     A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta). More...
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/mouse_8hpp_source.html b/mouse_8hpp_source.html new file mode 100644 index 000000000..5361f4bb8 --- /dev/null +++ b/mouse_8hpp_source.html @@ -0,0 +1,284 @@ + + + + + + + + +FTXUI: mouse.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    mouse.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_COMPONENT_MOUSE_HPP
    +
    5#define FTXUI_COMPONENT_MOUSE_HPP
    +
    6namespace ftxui {
    +
    7
    +
    8/// @brief A mouse event. It contains the coordinate of the mouse, the button
    +
    9/// pressed and the modifier (shift, ctrl, meta).
    +
    10/// @ingroup component
    +
    +
    11struct Mouse {
    +
    +
    12 enum Button {
    +
    13 Left = 0,
    +
    14 Middle = 1,
    +
    15 Right = 2,
    +
    16 None = 3,
    + + +
    19 WheelLeft = 6, /// Supported terminal only.
    +
    20 WheelRight = 7, /// Supported terminal only.
    +
    21 };
    +
    +
    22
    +
    +
    23 enum Motion {
    + + +
    26 Moved = 2,
    +
    27 };
    +
    +
    28
    +
    29 // Button
    + +
    31
    +
    32 // Motion
    + +
    34
    +
    35 // Modifiers:
    +
    36 bool shift = false;
    +
    37 bool meta = false;
    +
    38 bool control = false;
    +
    39
    +
    40 // Coordinates:
    +
    41 int x = 0;
    +
    42 int y = 0;
    +
    43};
    +
    +
    44
    +
    45} // namespace ftxui
    +
    46
    +
    47#endif /* end of include guard: FTXUI_COMPONENT_MOUSE_HPP */
    + + + + + + + +
    @ WheelRight
    Supported terminal only.
    Definition mouse.hpp:20
    + + + + + + +
    bool meta
    Definition mouse.hpp:37
    + +
    Button button
    Definition mouse.hpp:30
    +
    bool shift
    Definition mouse.hpp:36
    +
    bool control
    Definition mouse.hpp:38
    +
    Motion motion
    Definition mouse.hpp:33
    +
    A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift,...
    Definition mouse.hpp:11
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/namespaceeasing.html b/namespaceeasing.html new file mode 100644 index 000000000..d563c283e --- /dev/null +++ b/namespaceeasing.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: easing Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    easing Namespace Referenceexport
    +
    +
    + +

    The FTXUI sf::animation::easing:: namespace. +More...

    +

    Detailed Description

    +

    The FTXUI sf::animation::easing:: namespace.

    +
    +
    + + + + + diff --git a/namespaceftxui.html b/namespaceftxui.html new file mode 100644 index 000000000..0305d7e83 --- /dev/null +++ b/namespaceftxui.html @@ -0,0 +1,3154 @@ + + + + + + + + +FTXUI: ftxui Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui Namespace Reference
    +
    +
    + +

    The FTXUI ftxui:: namespace. +More...

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

    +Namespaces

    namespace  animation
     The FTXUI ftxui::animation:: namespace.
     
    namespace  box_helper
     
    namespace  Container
     
    namespace  Dimension
     Define how the Screen's dimensions should look like.
     
    namespace  flexbox_helper
     
    namespace  literals
     
    namespace  task
     
    namespace  Terminal
     
    namespace  util
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  AnimatedColorOption
     Option about a potentially animated color. More...
     
    struct  AnimatedColorsOption
     
    class  AnimationTask
     
    class  AutoReset
     Assign a value to a variable, reset its old value when going out of scope. More...
     
    struct  Box
     Box is a structure that represents a rectangular area in a 2D space. More...
     
    struct  ButtonOption
     Option for the AnimatedButton component. More...
     
    struct  Canvas
     Canvas is a drawable buffer associated with drawing operations. More...
     
    class  CapturedMouseInterface
     
    struct  CheckboxOption
     Option for the Checkbox component. More...
     
    class  Color
     Color is a class that represents a color in the terminal user interface. More...
     
    struct  ColorInfo
     ColorInfo is a structure that contains information about the terminal color palette. More...
     
    class  ComponentBase
     It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event. More...
     
    class  ConstRef
     An adapter. Own or reference an immutable object. More...
     
    class  ConstStringListRef
     An adapter. Reference a list of strings. More...
     
    class  ConstStringRef
     An adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation. More...
     
    struct  Dimensions
     Dimensions is a structure that represents the size of the terminal. More...
     
    struct  DropdownOption
     Option for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox. More...
     
    struct  EntryState
     arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|. More...
     
    struct  Event
     Represent an event. It can be key press event, a terminal resize, or more ... More...
     
    struct  FlexboxConfig
     FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container. More...
     
    class  Image
     A rectangular grid of Pixel. More...
     
    struct  InputOption
     Option for the Input component. More...
     
    struct  InputState
     Used to define style for the Input component. More...
     
    struct  LinearGradient
     A class representing the settings for linear-gradient color effect. More...
     
    class  Loop
     Loop is a class that manages the event loop for a component. More...
     
    struct  MenuEntryOption
     Option for the MenuEntry component. More...
     
    struct  MenuOption
     Option for the Menu component. More...
     
    struct  Mouse
     A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta). More...
     
    class  Node
     Node is the base class for all elements in the DOM tree. More...
     
    class  NodeDecorator
     
    struct  Pixel
     A Unicode character and its associated style. More...
     
    struct  RadioboxOption
     Option for the Radiobox component. More...
     
    class  ReceiverImpl
     
    class  Ref
     An adapter. Own or reference an mutable object. More...
     
    struct  Requirement
     Requirement is a structure that defines the layout requirements for a Node in the terminal user interface. More...
     
    struct  ResizableSplitOption
     
    class  Screen
     A rectangular grid of Pixel. More...
     
    class  ScreenInteractive
     ScreenInteractive is a Screen that can handle events, run a main loop, and manage components. More...
     
    class  Selection
     Represents a selection in a terminal user interface. More...
     
    class  SenderImpl
     
    struct  SliderOption
     
    class  StringRef
     An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation. More...
     
    class  Table
     Table is a utility to draw tables. More...
     
    class  TableSelection
     
    class  TerminalInputParser
     
    struct  UnderlineOption
     Option for the underline effect. More...
     
    struct  WindowOptions
     
    struct  WindowRenderState
     State passed to the Window component's render function. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    using CapturedMouse = std::unique_ptr<CapturedMouseInterface>
     
    using ComponentDecorator = std::function<Component(Component)>
     
    using ElementDecorator = std::function<Element(Element)>
     
    using Component = std::shared_ptr<ComponentBase>
     
    using Components = std::vector<Component>
     
    template<class T >
    using Sender = std::unique_ptr<SenderImpl<T>>
     
    template<class T >
    using Receiver = std::unique_ptr<ReceiverImpl<T>>
     
    using Closure = std::function<void()>
     
    using Task = std::variant<Event, Closure, AnimationTask>
     
    using Element = std::shared_ptr<Node>
     
    using Elements = std::vector<Element>
     
    using Decorator = std::function<Element(Element)>
     
    using GraphFunction = std::function<std::vector<int>(int, int)>
     
    + + + + + + + + + + + + + +

    +Enumerations

    enum class  Direction {
    +  Up = 0 +,
    +  Down = 1 +,
    +  Left = 2 +,
    +  Right = 3 +
    + }
     Direction is an enumeration that represents the four cardinal directions. More...
     
    enum  BorderStyle {
    +  LIGHT +,
    +  DASHED +,
    +  HEAVY +,
    +  DOUBLE +,
    +  ROUNDED +,
    +  EMPTY +
    + }
     BorderStyle is an enumeration that represents the different styles of borders that can be applied to elements in the terminal UI. More...
     
    enum  WidthOrHeight {
    +  WIDTH +,
    +  HEIGHT +
    + }
     
    enum  Constraint {
    +  LESS_THAN +,
    +  EQUAL +,
    +  GREATER_THAN +
    + }
     
    enum class  WordBreakProperty : int8_t {
    +  ALetter +,
    +  CR +,
    +  Double_Quote +,
    +  Extend +,
    +  ExtendNumLet +,
    +  Format +,
    +  Hebrew_Letter +,
    +  Katakana +,
    +  LF +,
    +  MidLetter +,
    +  MidNum +,
    +  MidNumLet +,
    +  Newline +,
    +  Numeric +,
    +  Regional_Indicator +,
    +  Single_Quote +,
    +  WSegSpace +,
    +  ZWJ +
    + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class T , class... Args>
    std::shared_ptr< T > Make (Args &&... args)
     
    Component operator| (Component component, ComponentDecorator decorator)
     
    Component operator| (Component component, ElementDecorator decorator)
     
    Componentoperator|= (Component &component, ComponentDecorator decorator)
     
    Componentoperator|= (Component &component, ElementDecorator decorator)
     
    Component Button (ButtonOption option)
     Draw a button. Execute a function when clicked.
     
    Component Button (ConstStringRef label, std::function< void()> on_click, ButtonOption option)
     Draw a button. Execute a function when clicked.
     
    Component Checkbox (CheckboxOption option)
     Draw checkable element.
     
    Component Checkbox (ConstStringRef label, bool *checked, CheckboxOption option)
     Draw checkable element.
     
    Component Input (InputOption option)
     An input box for editing text.
     
    Component Input (StringRef content, InputOption option)
     An input box for editing text.
     
    Component Input (StringRef content, StringRef placeholder, InputOption option)
     An input box for editing text.
     
    Component Menu (MenuOption option)
     A list of text. The focused element is selected.
     
    Component Menu (ConstStringListRef entries, int *selected, MenuOption option)
     A list of text. The focused element is selected.
     
    Component MenuEntry (MenuEntryOption option)
     A specific menu entry. They can be put into a Container::Vertical to form a menu.
     
    Component MenuEntry (ConstStringRef label, MenuEntryOption option)
     A specific menu entry. They can be put into a Container::Vertical to form a menu.
     
    Component Radiobox (RadioboxOption option)
     A list of element, where only one can be selected.
     
    Component Radiobox (ConstStringListRef entries, int *selected, RadioboxOption option)
     A list of element, where only one can be selected.
     
    Component Dropdown (ConstStringListRef entries, int *selected)
     A dropdown menu.
     
    Component Dropdown (DropdownOption option)
     A dropdown menu.
     
    Component Toggle (ConstStringListRef entries, int *selected)
     An horizontal list of elements. The user can navigate through them.
     
    template<typename T >
    Component Slider (SliderOption< T > options)
     A slider in any direction.
     
    Component Slider (ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)
     An horizontal slider.
     
    Component Slider (ConstStringRef label, Ref< float > value, ConstRef< float > min=0.f, ConstRef< float > max=100.f, ConstRef< float > increment=5.f)
     
    Component Slider (ConstStringRef label, Ref< long > value, ConstRef< long > min=0L, ConstRef< long > max=100L, ConstRef< long > increment=5L)
     
    Component ResizableSplit (ResizableSplitOption options)
     A split in between two components.
     
    Component ResizableSplitLeft (Component main, Component back, int *main_size)
     An horizontal split in between two components, configurable using the mouse.
     
    Component ResizableSplitRight (Component main, Component back, int *main_size)
     An horizontal split in between two components, configurable using the mouse.
     
    Component ResizableSplitTop (Component main, Component back, int *main_size)
     An vertical split in between two components, configurable using the mouse.
     
    Component ResizableSplitBottom (Component main, Component back, int *main_size)
     An vertical split in between two components, configurable using the mouse.
     
    Component Renderer (Component child, std::function< Element()> render)
     Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
     
    Component Renderer (std::function< Element()> render)
     Return a component, using |render| to render its interface.
     
    Component Renderer (std::function< Element(bool)> render)
     Return a focusable component, using |render| to render its interface.
     
    ComponentDecorator Renderer (ElementDecorator decorator)
     Decorate a component, by decorating what it renders.
     
    Component CatchEvent (Component child, std::function< bool(Event)>)
     
    ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
     Decorate a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
     
    Component Maybe (Component child, const bool *show)
     Decorate a component |child|. It is shown only when |show| is true.
     
    Component Maybe (Component child, std::function< bool()> show)
     Decorate a component |child|. It is shown only when |show| returns true.
     
    ComponentDecorator Maybe (const bool *show)
     Decorate a component. It is shown only when |show| is true.
     
    ComponentDecorator Maybe (std::function< bool()> show)
     Decorate a component. It is shown only when the |show| function returns true.
     
    Component Modal (Component main, Component modal, const bool *show_modal)
     
    ComponentDecorator Modal (Component modal, const bool *show_modal)
     
    Component Collapsible (ConstStringRef label, Component child, Ref< bool > show)
     A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed.
     
    Component Hoverable (Component component, bool *hover)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Hoverable (Component component, std::function< void()> on_enter, std::function< void()> on_leave)
     Wrap a component. Uses callbacks.
     
    Component Hoverable (Component component, std::function< void(bool)> on_change)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (bool *hover)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (std::function< void()> on_enter, std::function< void()> on_leave)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    ComponentDecorator Hoverable (std::function< void(bool)> on_change)
     Wrap a component. Gives the ability to know if it is hovered by the mouse.
     
    Component Window (WindowOptions option)
     A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stacked({...}) component;.
     
    template<class T >
    Receiver< T > MakeReceiver ()
     
    Element text (std::wstring text)
     Display a piece of unicode text.
     
    Element vtext (std::wstring text)
     Display a piece unicode text vertically.
     
    Elements paragraph (std::wstring text)
     
    Element operator| (Element element, Decorator decorator)
     From an element, apply a decorator.
     
    Elementoperator|= (Element &e, Decorator d)
     Apply a decorator to an element.
     
    Elements operator| (Elements elements, Decorator decorator)
     From a set of element, apply a decorator to every elements.
     
    Decorator operator| (Decorator a, Decorator b)
     Compose two decorator into one.
     
    Element text (std::string text)
     Display a piece of UTF8 encoded unicode text.
     
    Element vtext (std::string text)
     Display a piece of unicode text vertically.
     
    Element separator ()
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separatorLight ()
     Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
     
    Element separatorDashed ()
     Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
     
    Element separatorHeavy ()
     Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
     
    Element separatorDouble ()
     Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
     
    Element separatorEmpty ()
     Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
     
    Element separatorStyled (BorderStyle style)
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separator (Pixel pixel)
     Draw a separator in between two element filled with a given pixel.
     
    Element separatorCharacter (std::string value)
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separatorHSelector (float left, float right, Color unselected_color, Color selected_color)
     Draw a horizontal bar, with the area in between left/right colored differently.
     
    Element separatorVSelector (float up, float down, Color unselected_color, Color selected_color)
     Draw an vertical bar, with the area in between up/downcolored differently.
     
    Element gauge (float progress)
     Draw a high definition progress bar.
     
    Element gaugeLeft (float progress)
     Draw a high definition progress bar progressing from right to left.
     
    Element gaugeRight (float progress)
     Draw a high definition progress bar progressing from left to right.
     
    Element gaugeUp (float progress)
     Draw a high definition progress bar progressing from bottom to top.
     
    Element gaugeDown (float progress)
     Draw a high definition progress bar progressing from top to bottom.
     
    Element gaugeDirection (float progress, Direction direction)
     Draw a high definition progress bar progressing in specified direction.
     
    Element border (Element child)
     Draw a border around the element.
     
    Element borderLight (Element child)
     Draw a light border around the element.
     
    Element borderDashed (Element child)
     Draw a dashed border around the element.
     
    Element borderHeavy (Element child)
     Draw a heavy border around the element.
     
    Element borderDouble (Element child)
     Draw a double border around the element.
     
    Element borderRounded (Element child)
     Draw a rounded border around the element.
     
    Element borderEmpty (Element child)
     Draw an empty border around the element.
     
    Decorator borderStyled (BorderStyle style)
     Same as border but with different styles.
     
    Decorator borderStyled (BorderStyle style, Color foreground_color)
     Same as border but with a foreground color and a different style.
     
    Decorator borderStyled (Color foreground_color)
     Same as border but with a foreground color.
     
    Decorator borderWith (const Pixel &pixel)
     Same as border but with a constant Pixel around the element.
     
    Element window (Element title, Element content, BorderStyle border)
     Draw window with a title and a border around the element.
     
    Element spinner (int charset_index, size_t image_index)
     Useful to represent the effect of time and/or events. This displays an ASCII art "video".
     
    Element paragraph (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines.
     
    Element paragraphAlignLeft (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the left.
     
    Element paragraphAlignRight (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the right.
     
    Element paragraphAlignCenter (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the center.
     
    Element paragraphAlignJustify (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned using a justified alignment. the center.
     
    Element graph (GraphFunction graph_function)
     Draw a graph using a GraphFunction.
     
    Element emptyElement ()
     
    Element canvas (ConstRef< Canvas > canvas)
     Produce an element from a Canvas, or a reference to a Canvas.
     
    Element canvas (int width, int height, std::function< void(Canvas &)> fn)
     Produce an element drawing a canvas of requested size.
     
    Element canvas (std::function< void(Canvas &)> fn)
     Produce an element drawing a canvas.
     
    Element bold (Element child)
     Use a bold font, for elements with more emphasis.
     
    Element dim (Element child)
     Use a light font, for elements with less emphasis.
     
    Element italic (Element child)
     Apply a underlinedDouble to text.
     
    Element inverted (Element child)
     Add a filter that will invert the foreground and the background colors.
     
    Element underlined (Element child)
     Underline the given element.
     
    Element underlinedDouble (Element child)
     Apply a underlinedDouble to text.
     
    Element blink (Element child)
     The text drawn alternates in between visible and hidden.
     
    Element strikethrough (Element child)
     Apply a strikethrough to text.
     
    Decorator color (Color c)
     Decorate using a foreground color.
     
    Decorator bgcolor (Color color)
     Decorate using a background color.
     
    Decorator color (const LinearGradient &gradient)
     Decorate using a linear-gradient effect on the foreground color.
     
    Decorator bgcolor (const LinearGradient &gradient)
     Decorate using a linear-gradient effect on the background color.
     
    Element color (Color color, Element child)
     Set the foreground color of an element.
     
    Element bgcolor (Color color, Element child)
     Set the background color of an element.
     
    Element color (const LinearGradient &gradient, Element child)
     Set the foreground color of an element with linear-gradient effect.
     
    Element bgcolor (const LinearGradient &gradient, Element child)
     Set the background color of an element with linear-gradient effect.
     
    Decorator focusPosition (int x, int y)
     Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in the numbers of cells.
     
    Decorator focusPositionRelative (float x, float y)
     Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in proportion of the requested size.
     
    Element automerge (Element child)
     Enable character to be automatically merged with others nearby.
     
    Decorator hyperlink (std::string link)
     Decorate using a hyperlink. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
     
    Element hyperlink (std::string link, Element child)
     Make the rendered area clickable using a web browser. The link will be opened when the user clicks on it. This is supported only on a limited set of terminal emulators. List: https://github.com/Alhadis/OSC8-Adoption/.
     
    Element selectionStyleReset (Element child)
     Reset the selection style of an element.
     
    Decorator selectionColor (Color foreground)
     Set the color of an element when selected.
     
    Decorator selectionBackgroundColor (Color foreground)
     Set the background color of an element when selected. Note that the style is applied on top of the existing style.
     
    Decorator selectionForegroundColor (Color foreground)
     Set the foreground color of an element when selected. Note that the style is applied on top of the existing style.
     
    Decorator selectionStyle (std::function< void(Pixel &)> style)
     Set the style of an element when selected.
     
    Element hbox (Elements children)
     A container displaying elements horizontally one by one.
     
    Element vbox (Elements children)
     A container displaying elements vertically one by one.
     
    Element dbox (Elements children_)
     Stack several element on top of each other.
     
    Element flexbox (Elements children, FlexboxConfig config)
     A container displaying elements on row/columns and capable of wrapping on the next column/row when full.
     
    Element gridbox (std::vector< Elements > lines)
     A container displaying a grid of elements.
     
    Element hflow (Elements children)
     A container displaying elements in rows from left to right. When filled, it starts on a new row below.
     
    Element vflow (Elements children)
     A container displaying elements in rows from top to bottom. When filled, it starts on a new columns on the right. filled, it starts on a new row. is full, it starts a new row.
     
    Element flex (Element child)
     Make a child element to expand proportionally to the space left in a container.
     
    Element flex_grow (Element child)
     Expand if possible.
     
    Element flex_shrink (Element child)
     Minimize if needed.
     
    Element xflex (Element child)
     Expand/Minimize if possible/needed on the X axis.
     
    Element xflex_grow (Element child)
     Expand if possible on the X axis.
     
    Element xflex_shrink (Element child)
     Minimize if needed on the X axis.
     
    Element yflex (Element child)
     Expand/Minimize if possible/needed on the Y axis.
     
    Element yflex_grow (Element child)
     Expand if possible on the Y axis.
     
    Element yflex_shrink (Element child)
     Minimize if needed on the Y axis.
     
    Element notflex (Element child)
     Make the element not flexible.
     
    Element filler ()
     An element that will take expand proportionally to the space left in a container.
     
    Decorator size (WidthOrHeight direction, Constraint constraint, int value)
     Apply a constraint on the size of an element.
     
    Element frame (Element child)
     Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container. In this case only a smaller portion is displayed. The view is scrollable to make the focused element visible.
     
    Element xframe (Element child)
     Same as frame, but only on the x-axis.
     
    Element yframe (Element child)
     Same as frame, but only on the y-axis.
     
    Element focus (Element child)
     Set the child to be the one focused among its siblings.
     
    Element select (Element child)
     Set the child to be the one focused among its siblings.
     
    Element focusCursorBlock (Element child)
     Same as focus, but set the cursor shape to be a still block.
     
    Element focusCursorBlockBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking block.
     
    Element focusCursorBar (Element child)
     Same as focus, but set the cursor shape to be a still block.
     
    Element focusCursorBarBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking bar.
     
    Element focusCursorUnderline (Element child)
     Same as focus, but set the cursor shape to be a still underline.
     
    Element focusCursorUnderlineBlinking (Element child)
     Same as focus, but set the cursor shape to be a blinking underline.
     
    Element vscroll_indicator (Element child)
     Display a vertical scrollbar on the right. Colors follow the content.
     
    Element hscroll_indicator (Element child)
     Display a horizontal scrollbar at the bottom. Colors follow the content.
     
    Decorator reflect (Box &box)
     
    Element clear_under (Element element)
     Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
     
    Element hcenter (Element child)
     Center an element horizontally.
     
    Element vcenter (Element child)
     Center an element vertically.
     
    Element center (Element child)
     Center an element horizontally and vertically.
     
    Element align_right (Element child)
     Align an element on the right side.
     
    Element nothing (Element element)
     A decoration doing absolutely nothing.
     
    void Render (Screen &screen, const Element &element)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node, Selection &selection)
     
    std::string GetNodeSelectedContent (Screen &screen, Node *node, Selection &selection)
     
    Color operator""_rgb (unsigned long long int combined)
     Creates a color from a combined hex RGB representation, e.g. 0x808000_rgb.
     
    ColorInfo GetColorInfo (Color::Palette256 index)
     
    ColorInfo GetColorInfo (Color::Palette16 index)
     
    int wchar_width (wchar_t)
     
    int wstring_width (const std::wstring &)
     
    std::string to_string (const std::wstring &s)
     Convert a std::wstring into a UTF8 std::string.
     
    std::wstring to_wstring (const std::string &s)
     Convert a UTF8 std::string into a std::wstring.
     
    template<typename T >
    std::wstring to_wstring (T s)
     
    int string_width (const std::string &)
     
    std::vector< std::string > Utf8ToGlyphs (const std::string &input)
     
    std::vector< int > CellToGlyphIndex (const std::string &input)
     
    Component CatchEvent (Component child, std::function< bool(Event event)> on_event)
     Return a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.
     
    template Component Slider (SliderOption< int8_t >)
     
    template Component Slider (SliderOption< int16_t >)
     
    template Component Slider (SliderOption< int32_t >)
     
    template Component Slider (SliderOption< int64_t >)
     
    template Component Slider (SliderOption< uint8_t >)
     
    template Component Slider (SliderOption< uint16_t >)
     
    template Component Slider (SliderOption< uint32_t >)
     
    template Component Slider (SliderOption< uint64_t >)
     
    template Component Slider (SliderOption< float >)
     
    template Component Slider (SliderOption< double >)
     
    bool EatCodePoint (const std::string &input, size_t start, size_t *end, uint32_t *ucs)
     
    bool EatCodePoint (const std::wstring &input, size_t start, size_t *end, uint32_t *ucs)
     
    bool IsCombining (uint32_t ucs)
     
    bool IsFullWidth (uint32_t ucs)
     
    bool IsControl (uint32_t ucs)
     
    WordBreakProperty CodepointToWordBreakProperty (uint32_t codepoint)
     
    size_t GlyphPrevious (const std::string &input, size_t start)
     
    size_t GlyphNext (const std::string &input, size_t start)
     
    size_t GlyphIterate (const std::string &input, int glyph_offset, size_t start)
     
    int GlyphCount (const std::string &input)
     
    std::vector< WordBreakPropertyUtf8ToWordBreakProperty (const std::string &input)
     
    bool IsWordBreakingCharacter (const std::string &input, size_t glyph_index)
     
    + + + + + +

    +Variables

    const std::map< std::string, std::string > g_uniformize
     
    const std::array< ColorInfo, 256 > palette256
     
    +

    Detailed Description

    +

    The FTXUI ftxui:: namespace.

    +

    Typedef Documentation

    + +

    ◆ CapturedMouse

    + +
    +
    + + + + +
    using CapturedMouse = std::unique_ptr<CapturedMouseInterface>
    +
    + +

    Definition at line 20 of file captured_mouse.hpp.

    + +
    +
    + +

    ◆ ComponentDecorator

    + +
    +
    + + + + +
    using ComponentDecorator = std::function<Component(Component)>
    +
    + +

    Definition at line 32 of file component.hpp.

    + +
    +
    + +

    ◆ ElementDecorator

    + +
    +
    + + + + +
    using ElementDecorator = std::function<Element(Element)>
    +
    + +

    Definition at line 33 of file component.hpp.

    + +
    +
    + +

    ◆ Component

    + +
    +
    + + + + +
    typedef std::shared_ptr< ComponentBase > Component = std::shared_ptr<ComponentBase>
    +
    + +

    Definition at line 24 of file component_base.hpp.

    + +
    +
    + +

    ◆ Components

    + +
    +
    + + + + +
    using Components = std::vector<Component>
    +
    + +

    Definition at line 25 of file component_base.hpp.

    + +
    +
    + +

    ◆ Sender

    + +
    +
    +
    +template<class T >
    + + + + +
    using Sender = std::unique_ptr<SenderImpl<T>>
    +
    + +

    Definition at line 52 of file receiver.hpp.

    + +
    +
    + +

    ◆ Receiver

    + +
    +
    +
    +template<class T >
    + + + + +
    using Receiver = std::unique_ptr<ReceiverImpl<T>>
    +
    + +

    Definition at line 54 of file receiver.hpp.

    + +
    +
    + +

    ◆ Closure

    + +
    +
    + + + + +
    using Closure = std::function<void()>
    +
    + +

    Definition at line 13 of file task.hpp.

    + +
    +
    + +

    ◆ Task

    + +
    +
    + + + + +
    using Task = std::variant<Event, Closure, AnimationTask>
    +
    + +

    Definition at line 14 of file task.hpp.

    + +
    +
    + +

    ◆ Element

    + +
    +
    + + + + +
    typedef std::shared_ptr< Node > Element = std::shared_ptr<Node>
    +
    + +

    Definition at line 22 of file elements.hpp.

    + +
    +
    + +

    ◆ Elements

    + +
    +
    + + + + +
    typedef std::vector< Element > Elements = std::vector<Element>
    +
    + +

    Definition at line 23 of file elements.hpp.

    + +
    +
    + +

    ◆ Decorator

    + +
    +
    + + + + +
    using Decorator = std::function<Element(Element)>
    +
    + +

    Definition at line 24 of file elements.hpp.

    + +
    +
    + +

    ◆ GraphFunction

    + +
    +
    + + + + +
    using GraphFunction = std::function<std::vector<int>(int, int)>
    +
    + +

    Definition at line 25 of file elements.hpp.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ WidthOrHeight

    + +
    +
    + + + + +
    enum WidthOrHeight
    +
    + + + +
    Enumerator
    WIDTH 
    HEIGHT 
    + +

    Definition at line 161 of file elements.hpp.

    + +
    +
    + +

    ◆ Constraint

    + +
    +
    + + + + +
    enum Constraint
    +
    + + + + +
    Enumerator
    LESS_THAN 
    EQUAL 
    GREATER_THAN 
    + +

    Definition at line 162 of file elements.hpp.

    + +
    +
    + +

    ◆ WordBreakProperty

    + +
    +
    + + + + + +
    + + + + +
    enum class WordBreakProperty : int8_t
    +
    +strong
    +
    + + + + + + + + + + + + + + + + + + + +
    Enumerator
    ALetter 
    CR 
    Double_Quote 
    Extend 
    ExtendNumLet 
    Format 
    Hebrew_Letter 
    Katakana 
    LF 
    MidLetter 
    MidNum 
    MidNumLet 
    Newline 
    Numeric 
    Regional_Indicator 
    Single_Quote 
    WSegSpace 
    ZWJ 
    + +

    Definition at line 40 of file string_internal.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ Make()

    + +
    +
    +
    +template<class T , class... Args>
    + + + + + + + +
    std::shared_ptr< T > Make (Args &&... args)
    +
    + +

    Definition at line 27 of file component.hpp.

    + +
    +
    + +

    ◆ operator|() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Component operator| (Component component,
    ComponentDecorator decorator )
    +
    + +

    Definition at line 12 of file component/util.cpp.

    + +
    +
    + +

    ◆ operator|() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Component operator| (Component component,
    ElementDecorator decorator )
    +
    + +

    Definition at line 17 of file component/util.cpp.

    + +
    +
    + +

    ◆ operator|=() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Component & operator|= (Component & component,
    ComponentDecorator decorator )
    +
    + +

    Definition at line 22 of file component/util.cpp.

    + +
    +
    + +

    ◆ operator|=() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Component & operator|= (Component & component,
    ElementDecorator decorator )
    +
    + +

    Definition at line 28 of file component/util.cpp.

    + +
    +
    + +

    ◆ Slider() [1/13]

    + +
    +
    +
    +template<typename T >
    + + + + + + + +
    Component Slider (SliderOption< T > options)
    +
    + +

    A slider in any direction.

    +
    Parameters
    + + +
    optionsThe options
    +
    +
    +

    +Example

    +
    +
    int value = 50;
    +
    auto slider = Slider({
    +
    .value = &value,
    +
    .min = 0,
    +
    .max = 100,
    +
    .increment= 20,
    +
    });
    +
    screen.Loop(slider);
    +
    static ScreenInteractive TerminalOutput()
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    +

    Definition at line 316 of file src/ftxui/component/slider.cpp.

    + +
    +
    + +

    ◆ Slider() [2/13]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Component Slider (ConstStringRef label,
    Ref< float > value,
    ConstRef< float > min = 0.f,
    ConstRef< float > max = 100.f,
    ConstRef< float > increment = 5.f )
    +
    + +

    Definition at line 273 of file src/ftxui/component/slider.cpp.

    + +
    +
    + +

    ◆ Slider() [3/13]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Component Slider (ConstStringRef label,
    Ref< long > value,
    ConstRef< long > min = 0L,
    ConstRef< long > max = 100L,
    ConstRef< long > increment = 5L )
    +
    + +

    Definition at line 286 of file src/ftxui/component/slider.cpp.

    + +
    +
    + +

    ◆ ResizableSplit()

    + +
    +
    + + + + + + + +
    Component ResizableSplit (ResizableSplitOption options)
    +
    + +

    A split in between two components.

    +
    Parameters
    + + +
    optionsall the parameters.
    +
    +
    +

    +Example

    +
    auto left = Renderer([] { return text("Left") | center;});
    +
    auto right = Renderer([] { return text("right") | center;});
    +
    int left_size = 10;
    +
    auto component = ResizableSplit({
    +
    .main = left,
    +
    .back = right,
    +
    .direction = Direction::Left,
    +
    .main_size = &left_size,
    +
    .separator_func = [] { return separatorDouble(); },
    +
    });
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Element center(Element)
    Center an element horizontally and vertically.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separatorDouble()
    Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
    + +
    Component ResizableSplit(ResizableSplitOption options)
    A split in between two components.
    +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t right
    Definition screen.cpp:132
    +

    +Output

    +
    +
    left ║ right
    +
    +
    +

    Definition at line 186 of file src/ftxui/component/resizable_split.cpp.

    + +
    +
    + +

    ◆ CatchEvent()

    + +
    +
    + + + + + + + + + + + +
    Component CatchEvent (Component child,
    std::function< bool(Event)>  )
    +
    + +
    +
    + +

    ◆ Collapsible()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Component Collapsible (ConstStringRef label,
    Component child,
    Ref< bool > show )
    +
    + +

    A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed.

    +
    Parameters
    + + + + +
    labelThe label of the checkbox.
    childThe child to display.
    showHold the state about whether the child is displayed or not.
    +
    +
    +

    +Example

    +
    auto component = Collapsible("Show details", details);
    +
    Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
    A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed...
    +

    +Output

    +
    ▼ Show details
    +
    <details component>
    +
    +

    Definition at line 33 of file src/ftxui/component/collapsible.cpp.

    + +
    +
    + +

    ◆ MakeReceiver()

    + +
    +
    +
    +template<class T >
    + + + + + + + +
    Receiver< T > MakeReceiver ()
    +
    + +

    Definition at line 149 of file receiver.hpp.

    + +
    +
    + +

    ◆ paragraph()

    + +
    +
    + + + + + + + +
    Elements paragraph (std::wstring text)
    +
    + +
    +
    + +

    ◆ separatorHSelector()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Element separatorHSelector (float left,
    float right,
    Color unselected_color,
    Color selected_color )
    +
    + +

    Draw a horizontal bar, with the area in between left/right colored differently.

    +
    Parameters
    + + + + + +
    leftthe left limit of the active area.
    rightthe right limit of the active area.
    selected_colorthe color of the selected area.
    unselected_colorthe color of the unselected area.
    +
    +
    +

    +Example

    +
    + + +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)
    Draw a horizontal bar, with the area in between left/right colored differently.
    +
    +

    Definition at line 442 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ separatorVSelector()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Element separatorVSelector (float up,
    float down,
    Color unselected_color,
    Color selected_color )
    +
    + +

    Draw an vertical bar, with the area in between up/downcolored differently.

    +
    Parameters
    + + + + + +
    upthe left limit of the active area.
    downthe right limit of the active area.
    selected_colorthe color of the selected area.
    unselected_colorthe color of the unselected area.
    +
    +
    +

    +Example

    + +

    Definition at line 512 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ graph()

    + +
    +
    + + + + + + + +
    Element graph (GraphFunction graph_function)
    +
    + +

    Draw a graph using a GraphFunction.

    +
    Parameters
    + + +
    graph_functionthe function to be called to get the data.
    +
    +
    + +

    Definition at line 71 of file src/ftxui/dom/graph.cpp.

    + +
    +
    + +

    ◆ canvas() [1/3]

    + +
    +
    + + + + + + + +
    Element canvas (ConstRef< Canvas > canvas)
    +
    + +

    Produce an element from a Canvas, or a reference to a Canvas.

    + +

    Definition at line 891 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ canvas() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + +
    Element canvas (int width,
    int height,
    std::function< void(Canvas &)> fn )
    +
    + +

    Produce an element drawing a canvas of requested size.

    +
    Parameters
    + + + + +
    widththe width of the canvas.
    heightthe height of the canvas.
    fna function drawing the canvas.
    +
    +
    + +

    Definition at line 908 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ canvas() [3/3]

    + +
    +
    + + + + + + + +
    Element canvas (std::function< void(Canvas &)> fn)
    +
    + +

    Produce an element drawing a canvas.

    +
    Parameters
    + + +
    fna function drawing the canvas.
    +
    +
    + +

    Definition at line 938 of file src/ftxui/dom/canvas.cpp.

    + +
    +
    + +

    ◆ selectionStyleReset()

    + +
    +
    + + + + + + + +
    Element selectionStyleReset (Element child)
    +
    + +

    Reset the selection style of an element.

    +
    Parameters
    + + +
    childThe input element.
    +
    +
    +
    Returns
    The output element with the selection style reset.
    + +

    Definition at line 55 of file selection_style.cpp.

    + +
    +
    + +

    ◆ selectionColor()

    + +
    +
    + + + + + + + +
    Decorator selectionColor (Color foreground)
    +
    + +

    Set the color of an element when selected.

    +
    Parameters
    + + +
    foregroundThe color to be applied. Note that the style is applied on top of the existing style.
    +
    +
    + +

    Definition at line 78 of file selection_style.cpp.

    + +
    +
    + +

    ◆ selectionBackgroundColor()

    + +
    +
    + + + + + + + +
    Decorator selectionBackgroundColor (Color foreground)
    +
    + +

    Set the background color of an element when selected. Note that the style is applied on top of the existing style.

    + +

    Definition at line 61 of file selection_style.cpp.

    + +
    +
    + +

    ◆ selectionForegroundColor()

    + +
    +
    + + + + + + + +
    Decorator selectionForegroundColor (Color foreground)
    +
    + +

    Set the foreground color of an element when selected. Note that the style is applied on top of the existing style.

    + +

    Definition at line 69 of file selection_style.cpp.

    + +
    +
    + +

    ◆ selectionStyle()

    + +
    +
    + + + + + + + +
    Decorator selectionStyle (std::function< void(Pixel &)> style)
    +
    + +

    Set the style of an element when selected.

    +
    Parameters
    + + +
    styleThe style to be applied. Note that the style is applied on top of the existing style.
    +
    +
    + +

    Definition at line 86 of file selection_style.cpp.

    + +
    +
    + +

    ◆ hbox()

    + +
    +
    + + + + + + + +
    Element hbox (Elements children)
    +
    + +

    A container displaying elements horizontally one by one.

    +
    Parameters
    + + +
    childrenThe elements in the container
    +
    +
    +
    Returns
    The container.
    +

    +Example

    +
    +
    text("Left"),
    +
    text("Right"),
    +
    });
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    +

    Definition at line 94 of file hbox.cpp.

    + +
    +
    + +

    ◆ flexbox()

    + +
    +
    + + + + + + + + + + + +
    Element flexbox (Elements children,
    FlexboxConfig config )
    +
    + +

    A container displaying elements on row/columns and capable of wrapping on the next column/row when full.

    +
    Parameters
    + + + +
    childrenThe elements in the container
    configThe option
    +
    +
    +
    Returns
    The container.
    +

    +Example

    +
    +
    text("element 1"),
    +
    text("element 2"),
    +
    text("element 3"),
    +
    }, FlexboxConfig()
    + + +
    .SetGapMainAxis(1)
    +
    .SetGapCrossAxis(1)
    +
    )
    +
    @ Column
    Flex items are laid out in a column.
    + +
    Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
    A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
    Definition flexbox.cpp:251
    +
    +

    Definition at line 251 of file flexbox.cpp.

    + +
    +
    + +

    ◆ gridbox()

    + +
    +
    + + + + + + + +
    Element gridbox (std::vector< Elements > lines)
    +
    + +

    A container displaying a grid of elements.

    +
    Parameters
    + + +
    linesA list of lines, each line being a list of elements.
    +
    +
    +
    Returns
    The container.
    +

    +Example

    +
    auto cell = [](const char* t) { return text(t) | border; };
    +
    auto document = gridbox({
    +
    {cell("north-west") , cell("north") , cell("north-east")} ,
    +
    {cell("west") , cell("center") , cell("east")} ,
    +
    {cell("south-west") , cell("south") , cell("south-east")} ,
    +
    });
    +
    Element border(Element)
    Draw a border around the element.
    +
    Element gridbox(std::vector< Elements > lines)
    A container displaying a grid of elements.
    +

    Output:

    ╭──────────╮╭──────╮╭──────────╮
    +
    │north-west││north ││north-east│
    +
    ╰──────────╯╰──────╯╰──────────╯
    +
    ╭──────────╮╭──────╮╭──────────╮
    +
    │west ││center││east │
    +
    ╰──────────╯╰──────╯╰──────────╯
    +
    ╭──────────╮╭──────╮╭──────────╮
    +
    │south-west││south ││south-east│
    +
    ╰──────────╯╰──────╯╰──────────╯
    +
    +

    Definition at line 173 of file src/ftxui/dom/gridbox.cpp.

    + +
    +
    + +

    ◆ hflow()

    + +
    +
    + + + + + + + +
    Element hflow (Elements children)
    +
    + +

    A container displaying elements in rows from left to right. When filled, it starts on a new row below.

    +
    Parameters
    + + +
    childrenThe elements in the container
    +
    +
    +
    Returns
    The container.
    +

    +Example

    +
    +
    text("element 1"),
    +
    text("element 2"),
    +
    text("element 3"),
    +
    });
    +
    Element hflow(Elements)
    A container displaying elements in rows from left to right. When filled, it starts on a new row below...
    Definition flexbox.cpp:269
    +
    +

    Definition at line 269 of file flexbox.cpp.

    + +
    +
    + +

    ◆ vflow()

    + +
    +
    + + + + + + + +
    Element vflow (Elements children)
    +
    + +

    A container displaying elements in rows from top to bottom. When filled, it starts on a new columns on the right. filled, it starts on a new row. is full, it starts a new row.

    +
    Parameters
    + + +
    childrenThe elements in the container
    +
    +
    +
    Returns
    The container.
    +

    +Example

    +
    +
    text("element 1"),
    +
    text("element 2"),
    +
    text("element 3"),
    +
    });
    +
    Element vflow(Elements)
    A container displaying elements in rows from top to bottom. When filled, it starts on a new columns o...
    Definition flexbox.cpp:289
    +
    +

    Definition at line 289 of file flexbox.cpp.

    + +
    +
    + +

    ◆ frame()

    + +
    +
    + + + + + + + +
    Element frame (Element child)
    +
    + +

    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container. In this case only a smaller portion is displayed. The view is scrollable to make the focused element visible.

    +
    See also
    frame
    +
    +xframe
    +
    +yframe
    + +

    Definition at line 118 of file frame.cpp.

    + +
    +
    + +

    ◆ xframe()

    + +
    +
    + + + + + + + +
    Element xframe (Element child)
    +
    + +

    Same as frame, but only on the x-axis.

    +
    See also
    frame
    +
    +xframe
    +
    +yframe
    + +

    Definition at line 126 of file frame.cpp.

    + +
    +
    + +

    ◆ yframe()

    + +
    +
    + + + + + + + +
    Element yframe (Element child)
    +
    + +

    Same as frame, but only on the y-axis.

    +
    See also
    frame
    +
    +xframe
    +
    +yframe
    + +

    Definition at line 134 of file frame.cpp.

    + +
    +
    + +

    ◆ select()

    + +
    +
    + + + + + + + +
    Element select (Element child)
    +
    + +

    Set the child to be the one focused among its siblings.

    +

    This is deprecated. Use focus instead.

    Parameters
    + + +
    childThe element to be focused.
    +
    +
    + +

    Definition at line 108 of file frame.cpp.

    + +
    +
    + +

    ◆ reflect()

    + +
    +
    + + + + + + + +
    Decorator reflect (Box & box)
    +
    + +

    Definition at line 43 of file reflect.cpp.

    + +
    +
    + +

    ◆ Render()

    + +
    +
    + + + + + + + + + + + + + + + + +
    void Render (Screen & screen,
    Node * node,
    Selection & selection )
    +
    + +

    Definition at line 96 of file node.cpp.

    + +
    +
    + +

    ◆ GetNodeSelectedContent()

    + +
    +
    + + + + + + + + + + + + + + + + +
    std::string GetNodeSelectedContent (Screen & screen,
    Node * node,
    Selection & selection )
    +
    + +

    Definition at line 168 of file node.cpp.

    + +
    +
    + +

    ◆ GetColorInfo() [1/2]

    + +
    +
    + + + + + + + +
    ColorInfo GetColorInfo (Color::Palette256 index)
    +
    + +

    Definition at line 272 of file color_info.cpp.

    + +
    +
    + +

    ◆ GetColorInfo() [2/2]

    + +
    +
    + + + + + + + +
    ColorInfo GetColorInfo (Color::Palette16 index)
    +
    + +

    Definition at line 276 of file color_info.cpp.

    + +
    +
    + +

    ◆ wchar_width()

    + +
    +
    + + + + + + + +
    int wchar_width (wchar_t ucs)
    +
    + +

    Definition at line 1314 of file string.cpp.

    + +
    +
    + +

    ◆ wstring_width()

    + +
    +
    + + + + + + + +
    int wstring_width (const std::wstring & text)
    +
    + +

    Definition at line 1318 of file string.cpp.

    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + + + +
    std::string to_string (const std::wstring & s)
    +
    + +

    Convert a std::wstring into a UTF8 std::string.

    + +

    Definition at line 1566 of file string.cpp.

    + +
    +
    + +

    ◆ to_wstring() [1/2]

    + +
    +
    + + + + + + + +
    std::wstring to_wstring (const std::string & s)
    +
    + +

    Convert a UTF8 std::string into a std::wstring.

    + +

    Definition at line 1638 of file string.cpp.

    + +
    +
    + +

    ◆ to_wstring() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + +
    std::wstring to_wstring (T s)
    +
    + +

    Definition at line 15 of file string.hpp.

    + +
    +
    + +

    ◆ string_width()

    + +
    +
    + + + + + + + +
    int string_width (const std::string & input)
    +
    + +

    Definition at line 1331 of file string.cpp.

    + +
    +
    + +

    ◆ Utf8ToGlyphs()

    + +
    +
    + + + + + + + +
    std::vector< std::string > Utf8ToGlyphs (const std::string & input)
    +
    + +

    Definition at line 1358 of file string.cpp.

    + +
    +
    + +

    ◆ CellToGlyphIndex()

    + +
    +
    + + + + + + + +
    std::vector< int > CellToGlyphIndex (const std::string & input)
    +
    + +

    Definition at line 1465 of file string.cpp.

    + +
    +
    + +

    ◆ Slider() [4/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< int8_t > )
    +
    + +
    +
    + +

    ◆ Slider() [5/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< int16_t > )
    +
    + +
    +
    + +

    ◆ Slider() [6/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< int32_t > )
    +
    + +
    +
    + +

    ◆ Slider() [7/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< int64_t > )
    +
    + +
    +
    + +

    ◆ Slider() [8/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< uint8_t > )
    +
    + +
    +
    + +

    ◆ Slider() [9/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< uint16_t > )
    +
    + +
    +
    + +

    ◆ Slider() [10/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< uint32_t > )
    +
    + +
    +
    + +

    ◆ Slider() [11/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< uint64_t > )
    +
    + +
    +
    + +

    ◆ Slider() [12/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< float > )
    +
    + +
    +
    + +

    ◆ Slider() [13/13]

    + +
    +
    + + + + + + + +
    template Component Slider (SliderOption< double > )
    +
    + +
    +
    + +

    ◆ EatCodePoint() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    bool EatCodePoint (const std::string & input,
    size_t start,
    size_t * end,
    uint32_t * ucs )
    +
    + +

    Definition at line 1174 of file string.cpp.

    + +
    +
    + +

    ◆ EatCodePoint() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    bool EatCodePoint (const std::wstring & input,
    size_t start,
    size_t * end,
    uint32_t * ucs )
    +
    + +

    Definition at line 1244 of file string.cpp.

    + +
    +
    + +

    ◆ IsCombining()

    + +
    +
    + + + + + + + +
    bool IsCombining (uint32_t ucs)
    +
    + +

    Definition at line 1282 of file string.cpp.

    + +
    +
    + +

    ◆ IsFullWidth()

    + +
    +
    + + + + + + + +
    bool IsFullWidth (uint32_t ucs)
    +
    + +

    Definition at line 1286 of file string.cpp.

    + +
    +
    + +

    ◆ IsControl()

    + +
    +
    + + + + + + + +
    bool IsControl (uint32_t ucs)
    +
    + +

    Definition at line 1294 of file string.cpp.

    + +
    +
    + +

    ◆ CodepointToWordBreakProperty()

    + +
    +
    + + + + + + + +
    WordBreakProperty CodepointToWordBreakProperty (uint32_t codepoint)
    +
    + +

    Definition at line 1308 of file string.cpp.

    + +
    +
    + +

    ◆ GlyphPrevious()

    + +
    +
    + + + + + + + + + + + +
    size_t GlyphPrevious (const std::string & input,
    size_t start )
    +
    + +

    Definition at line 1400 of file string.cpp.

    + +
    +
    + +

    ◆ GlyphNext()

    + +
    +
    + + + + + + + + + + + +
    size_t GlyphNext (const std::string & input,
    size_t start )
    +
    + +

    Definition at line 1425 of file string.cpp.

    + +
    +
    + +

    ◆ GlyphIterate()

    + +
    +
    + + + + + + + + + + + + + + + + +
    size_t GlyphIterate (const std::string & input,
    int glyph_offset,
    size_t start )
    +
    + +

    Definition at line 1451 of file string.cpp.

    + +
    +
    + +

    ◆ GlyphCount()

    + +
    +
    + + + + + + + +
    int GlyphCount (const std::string & input)
    +
    + +

    Definition at line 1506 of file string.cpp.

    + +
    +
    + +

    ◆ Utf8ToWordBreakProperty()

    + +
    +
    + + + + + + + +
    std::vector< WordBreakProperty > Utf8ToWordBreakProperty (const std::string & input)
    +
    + +

    Definition at line 1534 of file string.cpp.

    + +
    +
    + +

    ◆ IsWordBreakingCharacter()

    + +
    +
    + + + + + + + + + + + +
    bool IsWordBreakingCharacter (const std::string & input,
    size_t glyph_index )
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ g_uniformize

    + +
    +
    + + + + +
    const std::map<std::string, std::string> g_uniformize
    +
    + +

    Definition at line 19 of file terminal_input_parser.cpp.

    + +
    +
    + +

    ◆ palette256

    + +
    +
    + + + + +
    const std::array<ColorInfo, 256> palette256
    +
    + +

    Definition at line 13 of file color_info.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1Container.html b/namespaceftxui_1_1Container.html new file mode 100644 index 000000000..c7faba4d2 --- /dev/null +++ b/namespaceftxui_1_1Container.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: ftxui::Container Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::Container Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Component Vertical (Components children)
     A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys.
     
    Component Vertical (Components children, int *selector)
     A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or 'j'/'k' keys. This is useful for implementing a Menu for instance.
     
    Component Horizontal (Components children)
     A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
     
    Component Horizontal (Components children, int *selector)
     A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow key or 'h'/'l' keys.
     
    Component Tab (Components children, int *selector)
     A list of components, where only one is drawn and interacted with at a time. The |selector| gives the index of the selected component. This is useful to implement tabs.
     
    Component Stacked (Components children)
     A list of components to be stacked on top of each other. Events are propagated to the first component, then the second if not handled, etc. The components are drawn in the reverse order they are given. When a component take focus, it is put at the front, without changing the relative order of the other elements.
     
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1Dimension.html b/namespaceftxui_1_1Dimension.html new file mode 100644 index 000000000..01daef812 --- /dev/null +++ b/namespaceftxui_1_1Dimension.html @@ -0,0 +1,282 @@ + + + + + + + + +FTXUI: ftxui::Dimension Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::Dimension Namespace Reference
    +
    +
    + +

    Define how the Screen's dimensions should look like. +More...

    + + + + + + + + +

    +Functions

    Dimensions Fit (Element &, bool extend_beyond_screen=false)
     
    Dimensions Fixed (int)
     
    Dimensions Full ()
     
    +

    Detailed Description

    +

    Define how the Screen's dimensions should look like.

    +

    Function Documentation

    + +

    ◆ Fit()

    + +
    +
    + + + + + + + + + + + +
    Dimensions Fit (Element & ,
    bool extend_beyond_screen = false )
    +
    + +
    +
    + +

    ◆ Fixed()

    + +
    +
    + + + + + + + +
    Dimensions Fixed (int )
    +
    + +
    +
    + +

    ◆ Full()

    + +
    +
    + + + + + + + +
    Dimensions Full ()
    +
    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1Terminal.html b/namespaceftxui_1_1Terminal.html new file mode 100644 index 000000000..03f902127 --- /dev/null +++ b/namespaceftxui_1_1Terminal.html @@ -0,0 +1,271 @@ + + + + + + + + +FTXUI: ftxui::Terminal Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::Terminal Namespace Reference
    +
    +
    + + + + + +

    +Enumerations

    enum  Color {
    +  Palette1 +,
    +  Palette16 +,
    +  Palette256 +,
    +  TrueColor +
    + }
     Color is an enumeration that represents the color support of the terminal. More...
     
    + + + + + + + + + + + + + +

    +Functions

    Dimensions Size ()
     Get the terminal size.
     
    void SetFallbackSize (const Dimensions &fallbackSize)
     Override terminal size in case auto-detection fails.
     
    Color ColorSupport ()
     Get the color support of the terminal.
     
    void SetColorSupport (Color color)
     Override terminal color support in case auto-detection fails.
     
    +

    Function Documentation

    + +

    ◆ SetFallbackSize()

    + +
    +
    + + + + + + + +
    void SetFallbackSize (const Dimensions & fallbackSize)
    +
    + +

    Override terminal size in case auto-detection fails.

    +
    Parameters
    + + +
    fallbackSizeTerminal dimensions to fallback to
    +
    +
    + +

    Definition at line 124 of file terminal.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1animation.html b/namespaceftxui_1_1animation.html new file mode 100644 index 000000000..048acb07b --- /dev/null +++ b/namespaceftxui_1_1animation.html @@ -0,0 +1,296 @@ + + + + + + + + +FTXUI: ftxui::animation Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::animation Namespace Reference
    +
    +
    + +

    The FTXUI ftxui::animation:: namespace. +More...

    + + + + +

    +Namespaces

    namespace  easing
     
    + + + + + +

    +Classes

    class  Animator
     
    class  Params
     
    + + + + + + + +

    +Typedefs

    using Clock = std::chrono::steady_clock
     
    using TimePoint = std::chrono::time_point<Clock>
     
    using Duration = std::chrono::duration<float>
     
    + + + + +

    +Functions

    void RequestAnimationFrame ()
     RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle.
     
    +

    Detailed Description

    +

    The FTXUI ftxui::animation:: namespace.

    +

    Typedef Documentation

    + +

    ◆ Clock

    + +
    +
    + + + + +
    using Clock = std::chrono::steady_clock
    +
    + +

    Definition at line 28 of file animation.hpp.

    + +
    +
    + +

    ◆ TimePoint

    + +
    +
    + + + + +
    using TimePoint = std::chrono::time_point<Clock>
    +
    + +

    Definition at line 29 of file animation.hpp.

    + +
    +
    + +

    ◆ Duration

    + +
    +
    + + + + +
    using Duration = std::chrono::duration<float>
    +
    + +

    Definition at line 30 of file animation.hpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1animation_1_1easing.html b/namespaceftxui_1_1animation_1_1easing.html new file mode 100644 index 000000000..17e471537 --- /dev/null +++ b/namespaceftxui_1_1animation_1_1easing.html @@ -0,0 +1,896 @@ + + + + + + + + +FTXUI: ftxui::animation::easing Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::animation::easing Namespace Reference
    +
    +
    + + + + +

    +Typedefs

    using Function = std::function<float(float)>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    float Linear (float p)
     Modeled after the line y = x.
     
    float QuadraticIn (float p)
     Modeled after the parabola y = x^2.
     
    float QuadraticOut (float p)
     
    float QuadraticInOut (float p)
     
    float CubicIn (float p)
     
    float CubicOut (float p)
     
    float CubicInOut (float p)
     
    float QuarticIn (float p)
     
    float QuarticOut (float p)
     
    float QuarticInOut (float p)
     
    float QuinticIn (float p)
     
    float QuinticOut (float p)
     
    float QuinticInOut (float p)
     
    float SineIn (float p)
     
    float SineOut (float p)
     
    float SineInOut (float p)
     
    float CircularIn (float p)
     
    float CircularOut (float p)
     
    float CircularInOut (float p)
     
    float ExponentialIn (float p)
     
    float ExponentialOut (float p)
     
    float ExponentialInOut (float p)
     
    float ElasticIn (float p)
     
    float ElasticOut (float p)
     
    float ElasticInOut (float p)
     
    float BackIn (float p)
     
    float BackOut (float p)
     
    float BackInOut (float p)
     
    float BounceIn (float p)
     
    float BounceOut (float p)
     
    float BounceInOut (float p)
     
    +

    Typedef Documentation

    + +

    ◆ Function

    + +
    +
    + + + + +
    using Function = std::function<float(float)>
    +
    + +

    Definition at line 45 of file animation.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ Linear()

    + +
    +
    + + + + + + + +
    float Linear (float p)
    +
    + +

    Modeled after the line y = x.

    + +

    Definition at line 29 of file animation.cpp.

    + +
    +
    + +

    ◆ QuadraticIn()

    + +
    +
    + + + + + + + +
    float QuadraticIn (float p)
    +
    + +

    Modeled after the parabola y = x^2.

    + +

    Definition at line 34 of file animation.cpp.

    + +
    +
    + +

    ◆ QuadraticOut()

    + +
    +
    + + + + + + + +
    float QuadraticOut (float p)
    +
    + +

    Definition at line 39 of file animation.cpp.

    + +
    +
    + +

    ◆ QuadraticInOut()

    + +
    +
    + + + + + + + +
    float QuadraticInOut (float p)
    +
    + +

    Definition at line 46 of file animation.cpp.

    + +
    +
    + +

    ◆ CubicIn()

    + +
    +
    + + + + + + + +
    float CubicIn (float p)
    +
    + +

    Definition at line 51 of file animation.cpp.

    + +
    +
    + +

    ◆ CubicOut()

    + +
    +
    + + + + + + + +
    float CubicOut (float p)
    +
    + +

    Definition at line 56 of file animation.cpp.

    + +
    +
    + +

    ◆ CubicInOut()

    + +
    +
    + + + + + + + +
    float CubicInOut (float p)
    +
    + +

    Definition at line 64 of file animation.cpp.

    + +
    +
    + +

    ◆ QuarticIn()

    + +
    +
    + + + + + + + +
    float QuarticIn (float p)
    +
    + +

    Definition at line 73 of file animation.cpp.

    + +
    +
    + +

    ◆ QuarticOut()

    + +
    +
    + + + + + + + +
    float QuarticOut (float p)
    +
    + +

    Definition at line 78 of file animation.cpp.

    + +
    +
    + +

    ◆ QuarticInOut()

    + +
    +
    + + + + + + + +
    float QuarticInOut (float p)
    +
    + +

    Definition at line 86 of file animation.cpp.

    + +
    +
    + +

    ◆ QuinticIn()

    + +
    +
    + + + + + + + +
    float QuinticIn (float p)
    +
    + +

    Definition at line 95 of file animation.cpp.

    + +
    +
    + +

    ◆ QuinticOut()

    + +
    +
    + + + + + + + +
    float QuinticOut (float p)
    +
    + +

    Definition at line 100 of file animation.cpp.

    + +
    +
    + +

    ◆ QuinticInOut()

    + +
    +
    + + + + + + + +
    float QuinticInOut (float p)
    +
    + +

    Definition at line 108 of file animation.cpp.

    + +
    +
    + +

    ◆ SineIn()

    + +
    +
    + + + + + + + +
    float SineIn (float p)
    +
    + +

    Definition at line 117 of file animation.cpp.

    + +
    +
    + +

    ◆ SineOut()

    + +
    +
    + + + + + + + +
    float SineOut (float p)
    +
    + +

    Definition at line 122 of file animation.cpp.

    + +
    +
    + +

    ◆ SineInOut()

    + +
    +
    + + + + + + + +
    float SineInOut (float p)
    +
    + +

    Definition at line 127 of file animation.cpp.

    + +
    +
    + +

    ◆ CircularIn()

    + +
    +
    + + + + + + + +
    float CircularIn (float p)
    +
    + +

    Definition at line 132 of file animation.cpp.

    + +
    +
    + +

    ◆ CircularOut()

    + +
    +
    + + + + + + + +
    float CircularOut (float p)
    +
    + +

    Definition at line 137 of file animation.cpp.

    + +
    +
    + +

    ◆ CircularInOut()

    + +
    +
    + + + + + + + +
    float CircularInOut (float p)
    +
    + +

    Definition at line 144 of file animation.cpp.

    + +
    +
    + +

    ◆ ExponentialIn()

    + +
    +
    + + + + + + + +
    float ExponentialIn (float p)
    +
    + +

    Definition at line 152 of file animation.cpp.

    + +
    +
    + +

    ◆ ExponentialOut()

    + +
    +
    + + + + + + + +
    float ExponentialOut (float p)
    +
    + +

    Definition at line 157 of file animation.cpp.

    + +
    +
    + +

    ◆ ExponentialInOut()

    + +
    +
    + + + + + + + +
    float ExponentialInOut (float p)
    +
    + +

    Definition at line 164 of file animation.cpp.

    + +
    +
    + +

    ◆ ElasticIn()

    + +
    +
    + + + + + + + +
    float ElasticIn (float p)
    +
    + +

    Definition at line 177 of file animation.cpp.

    + +
    +
    + +

    ◆ ElasticOut()

    + +
    +
    + + + + + + + +
    float ElasticOut (float p)
    +
    + +

    Definition at line 184 of file animation.cpp.

    + +
    +
    + +

    ◆ ElasticInOut()

    + +
    +
    + + + + + + + +
    float ElasticInOut (float p)
    +
    + +

    Definition at line 191 of file animation.cpp.

    + +
    +
    + +

    ◆ BackIn()

    + +
    +
    + + + + + + + +
    float BackIn (float p)
    +
    + +

    Definition at line 202 of file animation.cpp.

    + +
    +
    + +

    ◆ BackOut()

    + +
    +
    + + + + + + + +
    float BackOut (float p)
    +
    + +

    Definition at line 207 of file animation.cpp.

    + +
    +
    + +

    ◆ BackInOut()

    + +
    +
    + + + + + + + +
    float BackInOut (float p)
    +
    + +

    Definition at line 215 of file animation.cpp.

    + +
    +
    + +

    ◆ BounceIn()

    + +
    +
    + + + + + + + +
    float BounceIn (float p)
    +
    + +

    Definition at line 224 of file animation.cpp.

    + +
    +
    + +

    ◆ BounceOut()

    + +
    +
    + + + + + + + +
    float BounceOut (float p)
    +
    + +

    Definition at line 228 of file animation.cpp.

    + +
    +
    + +

    ◆ BounceInOut()

    + +
    +
    + + + + + + + +
    float BounceInOut (float p)
    +
    + +

    Definition at line 244 of file animation.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1box__helper.html b/namespaceftxui_1_1box__helper.html new file mode 100644 index 000000000..e5c5636fc --- /dev/null +++ b/namespaceftxui_1_1box__helper.html @@ -0,0 +1,247 @@ + + + + + + + + +FTXUI: ftxui::box_helper Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::box_helper Namespace Reference
    +
    +
    + + + + +

    +Classes

    struct  Element
     
    + + + +

    +Functions

    void Compute (std::vector< Element > *elements, int target_size)
     
    +

    Function Documentation

    + +

    ◆ Compute()

    + +
    +
    + + + + + + + + + + + +
    void Compute (std::vector< Element > * elements,
    int target_size )
    +
    + +

    Definition at line 65 of file box_helper.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1flexbox__helper.html b/namespaceftxui_1_1flexbox__helper.html new file mode 100644 index 000000000..9caeb1cf4 --- /dev/null +++ b/namespaceftxui_1_1flexbox__helper.html @@ -0,0 +1,247 @@ + + + + + + + + +FTXUI: ftxui::flexbox_helper Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::flexbox_helper Namespace Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  Block
     
    struct  Global
     
    struct  Line
     
    + + + +

    +Functions

    void Compute (Global &global)
     
    +

    Function Documentation

    + +

    ◆ Compute()

    + +
    +
    + + + + + + + +
    void Compute (Global & global)
    +
    + +

    Definition at line 369 of file flexbox_helper.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1literals.html b/namespaceftxui_1_1literals.html new file mode 100644 index 000000000..64e5bbd79 --- /dev/null +++ b/namespaceftxui_1_1literals.html @@ -0,0 +1,240 @@ + + + + + + + + +FTXUI: ftxui::literals Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::literals Namespace Reference
    +
    +
    + + + + + +

    +Functions

    Color operator""_rgb (unsigned long long int combined)
     Creates a color from a combined hex RGB representation, e.g. 0x808000_rgb.
     
    +

    Function Documentation

    + +

    ◆ operator""_rgb()

    + +
    +
    + + + + + + + +
    Color operator""_rgb (unsigned long long int combined)
    +
    + +

    Creates a color from a combined hex RGB representation, e.g. 0x808000_rgb.

    + +

    Definition at line 280 of file screen/color.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1task.html b/namespaceftxui_1_1task.html new file mode 100644 index 000000000..846db816b --- /dev/null +++ b/namespaceftxui_1_1task.html @@ -0,0 +1,247 @@ + + + + + + + + +FTXUI: ftxui::task Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::task Namespace Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  PendingTask
     
    struct  TaskQueue
     
    class  TaskRunner
     
    + + + + +

    +Typedefs

    using Task = std::function<void()>
     A task represents a unit of work.
     
    +

    Typedef Documentation

    + +

    ◆ Task

    + +
    +
    + + + + +
    using Task = std::function<void()>
    +
    + +

    A task represents a unit of work.

    + +

    Definition at line 14 of file task_internal.hpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespaceftxui_1_1util.html b/namespaceftxui_1_1util.html new file mode 100644 index 000000000..a6198c549 --- /dev/null +++ b/namespaceftxui_1_1util.html @@ -0,0 +1,257 @@ + + + + + + + + +FTXUI: ftxui::util Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ftxui::util Namespace Reference
    +
    +
    + + + + + +

    +Functions

    template<class T >
    constexpr const T & clamp (const T &v, const T &lo, const T &hi)
     
    +

    Function Documentation

    + +

    ◆ clamp()

    + +
    +
    +
    +template<class T >
    + + + + + +
    + + + + + + + + + + + + + + + + +
    const T & clamp (const T & v,
    const T & lo,
    const T & hi )
    +
    +constexpr
    +
    + +

    Definition at line 11 of file util.hpp.

    + +
    +
    +
    +
    + + + + + diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 000000000..4c4b517b6 --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - a -

      +
    • align_right() : ftxui
    • +
    • automerge() : ftxui
    • +
    +
    +
    + + + + + diff --git a/namespacemembers_b.html b/namespacemembers_b.html new file mode 100644 index 000000000..da1fe42a8 --- /dev/null +++ b/namespacemembers_b.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - b -

    +
    +
    + + + + + diff --git a/namespacemembers_c.html b/namespacemembers_c.html new file mode 100644 index 000000000..bf559378b --- /dev/null +++ b/namespacemembers_c.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - c -

    +
    +
    + + + + + diff --git a/namespacemembers_d.html b/namespacemembers_d.html new file mode 100644 index 000000000..ad539acfb --- /dev/null +++ b/namespacemembers_d.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - d -

    +
    +
    + + + + + diff --git a/namespacemembers_dup.js b/namespacemembers_dup.js new file mode 100644 index 000000000..144a80f56 --- /dev/null +++ b/namespacemembers_dup.js @@ -0,0 +1,26 @@ +var namespacemembers_dup = +[ + [ "a", "namespacemembers.html", null ], + [ "b", "namespacemembers_b.html", null ], + [ "c", "namespacemembers_c.html", null ], + [ "d", "namespacemembers_d.html", null ], + [ "e", "namespacemembers_e.html", null ], + [ "f", "namespacemembers_f.html", null ], + [ "g", "namespacemembers_g.html", null ], + [ "h", "namespacemembers_h.html", null ], + [ "i", "namespacemembers_i.html", null ], + [ "l", "namespacemembers_l.html", null ], + [ "m", "namespacemembers_m.html", null ], + [ "n", "namespacemembers_n.html", null ], + [ "o", "namespacemembers_o.html", null ], + [ "p", "namespacemembers_p.html", null ], + [ "q", "namespacemembers_q.html", null ], + [ "r", "namespacemembers_r.html", null ], + [ "s", "namespacemembers_s.html", null ], + [ "t", "namespacemembers_t.html", null ], + [ "u", "namespacemembers_u.html", null ], + [ "v", "namespacemembers_v.html", null ], + [ "w", "namespacemembers_w.html", null ], + [ "x", "namespacemembers_x.html", null ], + [ "y", "namespacemembers_y.html", null ] +]; \ No newline at end of file diff --git a/namespacemembers_e.html b/namespacemembers_e.html new file mode 100644 index 000000000..50e19bfd7 --- /dev/null +++ b/namespacemembers_e.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - e -

    +
    +
    + + + + + diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html new file mode 100644 index 000000000..6301a3ed5 --- /dev/null +++ b/namespacemembers_enum.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace enums with links to the namespace documentation for each enum:
    +
    +
    + + + + + diff --git a/namespacemembers_eval.html b/namespacemembers_eval.html new file mode 100644 index 000000000..fd2151293 --- /dev/null +++ b/namespacemembers_eval.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace enum values with links to the namespace documentation for each enum value:
    +
    +
    + + + + + diff --git a/namespacemembers_f.html b/namespacemembers_f.html new file mode 100644 index 000000000..617a2441d --- /dev/null +++ b/namespacemembers_f.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - f -

    +
    +
    + + + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html new file mode 100644 index 000000000..fb1949dce --- /dev/null +++ b/namespacemembers_func.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - a -

      +
    • align_right() : ftxui
    • +
    • automerge() : ftxui
    • +
    +
    +
    + + + + + diff --git a/namespacemembers_func.js b/namespacemembers_func.js new file mode 100644 index 000000000..426b196f1 --- /dev/null +++ b/namespacemembers_func.js @@ -0,0 +1,26 @@ +var namespacemembers_func = +[ + [ "a", "namespacemembers_func.html", null ], + [ "b", "namespacemembers_func_b.html", null ], + [ "c", "namespacemembers_func_c.html", null ], + [ "d", "namespacemembers_func_d.html", null ], + [ "e", "namespacemembers_func_e.html", null ], + [ "f", "namespacemembers_func_f.html", null ], + [ "g", "namespacemembers_func_g.html", null ], + [ "h", "namespacemembers_func_h.html", null ], + [ "i", "namespacemembers_func_i.html", null ], + [ "l", "namespacemembers_func_l.html", null ], + [ "m", "namespacemembers_func_m.html", null ], + [ "n", "namespacemembers_func_n.html", null ], + [ "o", "namespacemembers_func_o.html", null ], + [ "p", "namespacemembers_func_p.html", null ], + [ "q", "namespacemembers_func_q.html", null ], + [ "r", "namespacemembers_func_r.html", null ], + [ "s", "namespacemembers_func_s.html", null ], + [ "t", "namespacemembers_func_t.html", null ], + [ "u", "namespacemembers_func_u.html", null ], + [ "v", "namespacemembers_func_v.html", null ], + [ "w", "namespacemembers_func_w.html", null ], + [ "x", "namespacemembers_func_x.html", null ], + [ "y", "namespacemembers_func_y.html", null ] +]; \ No newline at end of file diff --git a/namespacemembers_func_b.html b/namespacemembers_func_b.html new file mode 100644 index 000000000..00c1567fd --- /dev/null +++ b/namespacemembers_func_b.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - b -

    +
    +
    + + + + + diff --git a/namespacemembers_func_c.html b/namespacemembers_func_c.html new file mode 100644 index 000000000..5a7a3c453 --- /dev/null +++ b/namespacemembers_func_c.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - c -

    +
    +
    + + + + + diff --git a/namespacemembers_func_d.html b/namespacemembers_func_d.html new file mode 100644 index 000000000..b6a4a41b2 --- /dev/null +++ b/namespacemembers_func_d.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - d -

    +
    +
    + + + + + diff --git a/namespacemembers_func_e.html b/namespacemembers_func_e.html new file mode 100644 index 000000000..020189367 --- /dev/null +++ b/namespacemembers_func_e.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - e -

    +
    +
    + + + + + diff --git a/namespacemembers_func_f.html b/namespacemembers_func_f.html new file mode 100644 index 000000000..0783073b2 --- /dev/null +++ b/namespacemembers_func_f.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - f -

    +
    +
    + + + + + diff --git a/namespacemembers_func_g.html b/namespacemembers_func_g.html new file mode 100644 index 000000000..47448b6c3 --- /dev/null +++ b/namespacemembers_func_g.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - g -

    +
    +
    + + + + + diff --git a/namespacemembers_func_h.html b/namespacemembers_func_h.html new file mode 100644 index 000000000..0461035dd --- /dev/null +++ b/namespacemembers_func_h.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - h -

    +
    +
    + + + + + diff --git a/namespacemembers_func_i.html b/namespacemembers_func_i.html new file mode 100644 index 000000000..f4558dcb6 --- /dev/null +++ b/namespacemembers_func_i.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - i -

    +
    +
    + + + + + diff --git a/namespacemembers_func_l.html b/namespacemembers_func_l.html new file mode 100644 index 000000000..c4eb3a316 --- /dev/null +++ b/namespacemembers_func_l.html @@ -0,0 +1,210 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - l -

    +
    +
    + + + + + diff --git a/namespacemembers_func_m.html b/namespacemembers_func_m.html new file mode 100644 index 000000000..33fa4df1b --- /dev/null +++ b/namespacemembers_func_m.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - m -

    +
    +
    + + + + + diff --git a/namespacemembers_func_n.html b/namespacemembers_func_n.html new file mode 100644 index 000000000..1a3a07acb --- /dev/null +++ b/namespacemembers_func_n.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - n -

    +
    +
    + + + + + diff --git a/namespacemembers_func_o.html b/namespacemembers_func_o.html new file mode 100644 index 000000000..cbd5629fc --- /dev/null +++ b/namespacemembers_func_o.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - o -

    +
    +
    + + + + + diff --git a/namespacemembers_func_p.html b/namespacemembers_func_p.html new file mode 100644 index 000000000..bdc0bbb67 --- /dev/null +++ b/namespacemembers_func_p.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - p -

      +
    • paragraph() : ftxui
    • +
    • paragraphAlignCenter() : ftxui
    • +
    • paragraphAlignJustify() : ftxui
    • +
    • paragraphAlignLeft() : ftxui
    • +
    • paragraphAlignRight() : ftxui
    • +
    +
    +
    + + + + + diff --git a/namespacemembers_func_q.html b/namespacemembers_func_q.html new file mode 100644 index 000000000..6fa62eb0d --- /dev/null +++ b/namespacemembers_func_q.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - q -

    +
    +
    + + + + + diff --git a/namespacemembers_func_r.html b/namespacemembers_func_r.html new file mode 100644 index 000000000..4620a830f --- /dev/null +++ b/namespacemembers_func_r.html @@ -0,0 +1,219 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - r -

    +
    +
    + + + + + diff --git a/namespacemembers_func_s.html b/namespacemembers_func_s.html new file mode 100644 index 000000000..37502cd03 --- /dev/null +++ b/namespacemembers_func_s.html @@ -0,0 +1,237 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - s -

    +
    +
    + + + + + diff --git a/namespacemembers_func_t.html b/namespacemembers_func_t.html new file mode 100644 index 000000000..082dea3cb --- /dev/null +++ b/namespacemembers_func_t.html @@ -0,0 +1,214 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - t -

    +
    +
    + + + + + diff --git a/namespacemembers_func_u.html b/namespacemembers_func_u.html new file mode 100644 index 000000000..e03349dc8 --- /dev/null +++ b/namespacemembers_func_u.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - u -

      +
    • underlined() : ftxui
    • +
    • underlinedDouble() : ftxui
    • +
    • Utf8ToGlyphs() : ftxui
    • +
    • Utf8ToWordBreakProperty() : ftxui
    • +
    +
    +
    + + + + + diff --git a/namespacemembers_func_v.html b/namespacemembers_func_v.html new file mode 100644 index 000000000..d72865d4f --- /dev/null +++ b/namespacemembers_func_v.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - v -

    +
    +
    + + + + + diff --git a/namespacemembers_func_w.html b/namespacemembers_func_w.html new file mode 100644 index 000000000..a58f338ec --- /dev/null +++ b/namespacemembers_func_w.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - w -

    +
    +
    + + + + + diff --git a/namespacemembers_func_x.html b/namespacemembers_func_x.html new file mode 100644 index 000000000..e5b45bbf7 --- /dev/null +++ b/namespacemembers_func_x.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - x -

    +
    +
    + + + + + diff --git a/namespacemembers_func_y.html b/namespacemembers_func_y.html new file mode 100644 index 000000000..d144d7052 --- /dev/null +++ b/namespacemembers_func_y.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - y -

    +
    +
    + + + + + diff --git a/namespacemembers_g.html b/namespacemembers_g.html new file mode 100644 index 000000000..1719109f0 --- /dev/null +++ b/namespacemembers_g.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - g -

    +
    +
    + + + + + diff --git a/namespacemembers_h.html b/namespacemembers_h.html new file mode 100644 index 000000000..f848cb87c --- /dev/null +++ b/namespacemembers_h.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - h -

    +
    +
    + + + + + diff --git a/namespacemembers_i.html b/namespacemembers_i.html new file mode 100644 index 000000000..f8a88481a --- /dev/null +++ b/namespacemembers_i.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - i -

    +
    +
    + + + + + diff --git a/namespacemembers_l.html b/namespacemembers_l.html new file mode 100644 index 000000000..024a11cb5 --- /dev/null +++ b/namespacemembers_l.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - l -

    +
    +
    + + + + + diff --git a/namespacemembers_m.html b/namespacemembers_m.html new file mode 100644 index 000000000..b9412ae8a --- /dev/null +++ b/namespacemembers_m.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - m -

    +
    +
    + + + + + diff --git a/namespacemembers_n.html b/namespacemembers_n.html new file mode 100644 index 000000000..d661eef0e --- /dev/null +++ b/namespacemembers_n.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - n -

    +
    +
    + + + + + diff --git a/namespacemembers_o.html b/namespacemembers_o.html new file mode 100644 index 000000000..4b975e907 --- /dev/null +++ b/namespacemembers_o.html @@ -0,0 +1,212 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - o -

    +
    +
    + + + + + diff --git a/namespacemembers_p.html b/namespacemembers_p.html new file mode 100644 index 000000000..24ad66d9f --- /dev/null +++ b/namespacemembers_p.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - p -

    +
    +
    + + + + + diff --git a/namespacemembers_q.html b/namespacemembers_q.html new file mode 100644 index 000000000..86ed57e58 --- /dev/null +++ b/namespacemembers_q.html @@ -0,0 +1,218 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - q -

    +
    +
    + + + + + diff --git a/namespacemembers_r.html b/namespacemembers_r.html new file mode 100644 index 000000000..48eebc36b --- /dev/null +++ b/namespacemembers_r.html @@ -0,0 +1,221 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - r -

    +
    +
    + + + + + diff --git a/namespacemembers_s.html b/namespacemembers_s.html new file mode 100644 index 000000000..d331996b1 --- /dev/null +++ b/namespacemembers_s.html @@ -0,0 +1,238 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - s -

    +
    +
    + + + + + diff --git a/namespacemembers_t.html b/namespacemembers_t.html new file mode 100644 index 000000000..c994abf90 --- /dev/null +++ b/namespacemembers_t.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - t -

    +
    +
    + + + + + diff --git a/namespacemembers_type.html b/namespacemembers_type.html new file mode 100644 index 000000000..3858682a8 --- /dev/null +++ b/namespacemembers_type.html @@ -0,0 +1,224 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace typedefs with links to the namespace documentation for each typedef:
    +
    +
    + + + + + diff --git a/namespacemembers_u.html b/namespacemembers_u.html new file mode 100644 index 000000000..745f9f38c --- /dev/null +++ b/namespacemembers_u.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - u -

      +
    • underlined() : ftxui
    • +
    • underlinedDouble() : ftxui
    • +
    • Utf8ToGlyphs() : ftxui
    • +
    • Utf8ToWordBreakProperty() : ftxui
    • +
    +
    +
    + + + + + diff --git a/namespacemembers_v.html b/namespacemembers_v.html new file mode 100644 index 000000000..c5eefbaf0 --- /dev/null +++ b/namespacemembers_v.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - v -

    +
    +
    + + + + + diff --git a/namespacemembers_vars.html b/namespacemembers_vars.html new file mode 100644 index 000000000..7249e98c0 --- /dev/null +++ b/namespacemembers_vars.html @@ -0,0 +1,209 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace variables with links to the namespace documentation for each variable:
    +
    +
    + + + + + diff --git a/namespacemembers_w.html b/namespacemembers_w.html new file mode 100644 index 000000000..cda6d7161 --- /dev/null +++ b/namespacemembers_w.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - w -

    +
    +
    + + + + + diff --git a/namespacemembers_x.html b/namespacemembers_x.html new file mode 100644 index 000000000..4f20b54c0 --- /dev/null +++ b/namespacemembers_x.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - x -

    +
    +
    + + + + + diff --git a/namespacemembers_y.html b/namespacemembers_y.html new file mode 100644 index 000000000..7993fb319 --- /dev/null +++ b/namespacemembers_y.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - y -

    +
    +
    + + + + + diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..eb013475b9f7ddf9f91eb139d3e5eea56ed4b0da GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQn8*cjv*C{Z|{2ZwJHd>T+GW_ z&G(n(OXFIm*>#=D!ps(pjfI@)1;JZ6e$5w8>7Sr`NL46N^}sqt??+t8!u)@^Z*CEJ z{ATk#n=S6SOjULb*~w^nMd9!hhn-h}7BP6b`njxgN@xNA&locX literal 0 HcmV?d00001 diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..68adf3c310f2e16f633f42541169d781b2fa4ade GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQW2gmjv*C{Z|7QbH5drEsP8`J zCcv2?#h;Kk`Ou-smA}?JYhJ{m=pIp#U-pde#a%~>*67{B3KKW`-#&Zt>x;N|k+Z*k u&TmtFQ~NAWjiGe;iZ_~%+e26WzaN*CF1IeZF$B+ufw{uVOGAIbNwB5|B wz1gt#{lp&zWsVJcAyYSgGdv-;?&m*K-lJbwT9*d*DS~u)y85}Sb4q9e0L8H$=l}o! literal 0 HcmV?d00001 diff --git a/nav_hd.png b/nav_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..1de9c24075562ae5664cdefd228218dcdc27c536 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t1~X3=$B+ufw|95)GAQz}I8=+b zC|b<*;CRvYFWShzVMX#1P3JZIN`GDQCOkc^vSwfQpLcVmPO))u@jMmUx>6Kmgr}>Y J%Q~loCII1AAqfBg literal 0 HcmV?d00001 diff --git a/navtree.css b/navtree.css new file mode 100644 index 000000000..418c78534 --- /dev/null +++ b/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree .selected .arrow { + color: #80A5EF; + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:white; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url('splitbar.png'); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: #F7F9FE; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 000000000..9027ce6ac --- /dev/null +++ b/navtree.js @@ -0,0 +1,483 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initNavTree(toroot,relpath) { + let navTreeSubIndices = []; + const ARROW_DOWN = '▼'; + const ARROW_RIGHT = '►'; + const NAVPATH_COOKIE_NAME = ''+'navpath'; + + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/-/g,'_')); + } + + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } + + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } + + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } + + const hashUrl = function() { + return '#'+hashValue(); + } + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); + } + + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } + } + + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); + } + + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); + } + + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); + } + + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=ARROW_RIGHT; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } + } + + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + animationInProgress=false; + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + }); + } + } + + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + label : document.createTextNode(text), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(node.label); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + return node; + } + + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); + } + + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } + } + + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); + } + + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + gotoAnchor(anchor,aname); + } + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); + } + + const showNode = function(o, node, index, hash) { + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + const n = node.children[o.breadcrumbs[index]]; + if (index+11 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } + } + + const showSyncOff = function(n,relpath) { + n.html(''); + } + + const showSyncOn = function(n,relpath) { + n.html(''); + } + + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } + }); + + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + + $(window).bind('hashchange', () => { + if (!animationInProgress) { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + + +FTXUI: nested_screen.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    nested_screen.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    void Nested (std::string path)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Nested()

    + +
    +
    + + + + + + + +
    void Nested (std::string path)
    +
    + +

    Definition at line 15 of file nested_screen.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 41 of file nested_screen.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/nested__screen_8cpp.js b/nested__screen_8cpp.js new file mode 100644 index 000000000..853794ce6 --- /dev/null +++ b/nested__screen_8cpp.js @@ -0,0 +1,5 @@ +var nested__screen_8cpp = +[ + [ "Nested", "nested__screen_8cpp.html#a77fdac0113a8c43983469efa26ce7276", null ], + [ "main", "nested__screen_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/nested__screen_8cpp_source.html b/nested__screen_8cpp_source.html new file mode 100644 index 000000000..05a92f0b1 --- /dev/null +++ b/nested__screen_8cpp_source.html @@ -0,0 +1,279 @@ + + + + + + + + +FTXUI: nested_screen.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    nested_screen.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    5#include <string> // for operator+, string, char_traits, basic_string
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Button, Vertical, Renderer
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    11#include "ftxui/dom/elements.hpp" // for separator, text, Element, operator|, vbox, border
    +
    12
    +
    13using namespace ftxui;
    +
    14
    +
    +
    15void Nested(std::string path) {
    +
    16 auto screen = ScreenInteractive::FitComponent();
    +
    17 auto back_button = Button("Back", screen.ExitLoopClosure());
    +
    18 auto goto_1 = Button("Goto /1", [path] { Nested(path + "/1"); });
    +
    19 auto goto_2 = Button("Goto /2", [path] { Nested(path + "/2"); });
    +
    20 auto goto_3 = Button("Goto /3", [path] { Nested(path + "/3"); });
    +
    21 auto layout = Container::Vertical({
    +
    22 back_button,
    +
    23 goto_1,
    +
    24 goto_2,
    +
    25 goto_3,
    +
    26 });
    +
    27 auto renderer = Renderer(layout, [&] {
    +
    28 return vbox({
    +
    29 text("path: " + path),
    +
    30 separator(),
    +
    31 back_button->Render(),
    +
    32 goto_1->Render(),
    +
    33 goto_2->Render(),
    +
    34 goto_3->Render(),
    +
    35 }) |
    +
    36 border;
    +
    37 });
    +
    38 screen.Loop(renderer);
    +
    39}
    +
    +
    40
    +
    +
    41int main() {
    +
    42 auto screen = ScreenInteractive::FitComponent();
    +
    43 auto button_quit = Button("Quit", screen.ExitLoopClosure());
    +
    44 auto button_nested = Button("Nested", [] { Nested(""); });
    +
    45 screen.Loop(Container::Vertical({
    +
    46 button_quit,
    +
    47 button_nested,
    +
    48 }));
    +
    49 return 0;
    +
    50}
    +
    + + + + +
    static ScreenInteractive FitComponent()
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    void Nested(std::string path)
    +
    int main()
    + +
    +
    + + + + + diff --git a/node_8cpp.html b/node_8cpp.html new file mode 100644 index 000000000..139a939db --- /dev/null +++ b/node_8cpp.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: node.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    node.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + +

    +Functions

    void Render (Screen &screen, const Element &element)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node, Selection &selection)
     
    std::string GetNodeSelectedContent (Screen &screen, Node *node, Selection &selection)
     
    +
    +
    + + + + + diff --git a/node_8cpp.js b/node_8cpp.js new file mode 100644 index 000000000..679c7d81c --- /dev/null +++ b/node_8cpp.js @@ -0,0 +1,7 @@ +var node_8cpp = +[ + [ "Render", "node_8cpp.html#gad4b8aa9392f56ba41e2b421e046a7d83", null ], + [ "Render", "node_8cpp.html#ga32a24db985fa1b37bf686b00f7e1b4ff", null ], + [ "Render", "node_8cpp.html#ab35030b64136afa183d474d11bd1f6dd", null ], + [ "GetNodeSelectedContent", "node_8cpp.html#a1a3d5804148186b3d4bcc07391ba5f30", null ] +]; \ No newline at end of file diff --git a/node_8cpp_source.html b/node_8cpp_source.html new file mode 100644 index 000000000..347e7aa63 --- /dev/null +++ b/node_8cpp_source.html @@ -0,0 +1,476 @@ + + + + + + + + +FTXUI: node.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    node.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/screen/box.hpp> // for Box
    +
    5#include <string>
    +
    6#include <utility> // for move
    +
    7
    +
    8#include <cstddef>
    +
    9#include "ftxui/dom/node.hpp"
    +
    10#include "ftxui/dom/selection.hpp" // for Selection
    +
    11#include "ftxui/screen/screen.hpp" // for Screen
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15Node::Node() = default;
    +
    16Node::Node(Elements children) : children_(std::move(children)) {}
    +
    17Node::~Node() = default;
    +
    18
    +
    19/// @brief Compute how much space an element needs.
    +
    + +
    21 if (children_.empty()) {
    +
    22 return;
    +
    23 }
    +
    24 for (auto& child : children_) {
    +
    25 child->ComputeRequirement();
    +
    26 }
    +
    27
    +
    28 // By default, the requirement is the one of the first child.
    +
    29 requirement_ = children_[0]->requirement();
    +
    30
    +
    31 // Propagate the focused requirement.
    +
    32 for (size_t i = 1; i < children_.size(); ++i) {
    + +
    34 children_[i]->requirement().focused.enabled) {
    +
    35 requirement_.focused = children_[i]->requirement().focused;
    +
    36 }
    +
    37 }
    +
    38}
    +
    +
    39
    +
    40/// @brief Assign a position and a dimension to an element for drawing.
    +
    +
    41void Node::SetBox(Box box) {
    +
    42 box_ = box;
    +
    43}
    +
    +
    44
    +
    45/// @brief Compute the selection of an element.
    +
    +
    46void Node::Select(Selection& selection) {
    +
    47 // If this Node box_ doesn't intersect with the selection, then no selection.
    +
    48 if (Box::Intersection(selection.GetBox(), box_).IsEmpty()) {
    +
    49 return;
    +
    50 }
    +
    51
    +
    52 // By default we defer the selection to the children.
    +
    53 for (auto& child : children_) {
    +
    54 child->Select(selection);
    +
    55 }
    +
    56}
    +
    +
    57
    +
    58/// @brief Display an element on a ftxui::Screen.
    +
    +
    59void Node::Render(Screen& screen) {
    +
    60 for (auto& child : children_) {
    +
    61 child->Render(screen);
    +
    62 }
    +
    63}
    +
    +
    64
    +
    +
    65void Node::Check(Status* status) {
    +
    66 for (auto& child : children_) {
    +
    67 child->Check(status);
    +
    68 }
    +
    69 status->need_iteration |= (status->iteration == 0);
    +
    70}
    +
    +
    71
    +
    +
    72std::string Node::GetSelectedContent(Selection& selection) {
    +
    73 std::string content;
    +
    74
    +
    75 for (auto& child : children_) {
    +
    76 content += child->GetSelectedContent(selection);
    +
    77 }
    +
    78
    +
    79 return content;
    +
    80}
    +
    +
    81
    +
    82/// @brief Display an element on a ftxui::Screen.
    +
    83/// @ingroup dom
    +
    +
    84void Render(Screen& screen, const Element& element) {
    +
    85 Selection selection;
    +
    86 Render(screen, element.get(), selection);
    +
    87}
    +
    +
    88
    +
    89/// @brief Display an element on a ftxui::Screen.
    +
    90/// @ingroup dom
    +
    +
    91void Render(Screen& screen, Node* node) {
    +
    92 Selection selection;
    +
    93 Render(screen, node, selection);
    +
    94}
    +
    +
    95
    +
    +
    96void Render(Screen& screen, Node* node, Selection& selection) {
    +
    97 Box box;
    +
    98 box.x_min = 0;
    +
    99 box.y_min = 0;
    +
    100 box.x_max = screen.dimx() - 1;
    +
    101 box.y_max = screen.dimy() - 1;
    +
    102
    +
    103 Node::Status status;
    +
    104 node->Check(&status);
    +
    105 const int max_iterations = 20;
    +
    106 while (status.need_iteration && status.iteration < max_iterations) {
    +
    107 // Step 1: Find what dimension this elements wants to be.
    +
    108 node->ComputeRequirement();
    +
    109
    +
    110 // Step 2: Assign a dimension to the element.
    +
    111 node->SetBox(box);
    +
    112
    +
    113 // Check if the element needs another iteration of the layout algorithm.
    +
    114 status.need_iteration = false;
    +
    115 status.iteration++;
    +
    116 node->Check(&status);
    +
    117 }
    +
    118
    +
    119 // Step 3: Selection
    +
    120 if (!selection.IsEmpty()) {
    +
    121 node->Select(selection);
    +
    122 }
    +
    123
    +
    124 if (node->requirement().focused.enabled
    +
    125#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
    +
    126 // Setting the cursor to the right position allow folks using CJK (China,
    +
    127 // Japanese, Korean, ...) characters to see their [input method editor]
    +
    128 // displayed at the right location. See [issue].
    +
    129 //
    +
    130 // [input method editor]:
    +
    131 // https://en.wikipedia.org/wiki/Input_method
    +
    132 //
    +
    133 // [issue]:
    +
    134 // https://github.com/ArthurSonzogni/FTXUI/issues/2#issuecomment-505282355
    +
    135 //
    +
    136 // Unfortunately, Microsoft terminal do not handle properly hiding the
    +
    137 // cursor. Instead the character under the cursor is hidden, which is a
    +
    138 // big problem. As a result, we can't enable setting cursor to the right
    +
    139 // location. It will be displayed at the bottom right corner.
    +
    140 // See:
    +
    141 // https://github.com/microsoft/terminal/issues/1203
    +
    142 // https://github.com/microsoft/terminal/issues/3093
    +
    143 &&
    + +
    145#endif
    +
    146 ) {
    + + + + +
    151 });
    +
    152 } else {
    + +
    154 screen.dimx() - 1,
    +
    155 screen.dimy() - 1,
    + +
    157 });
    +
    158 }
    +
    159
    +
    160 // Step 4: Draw the element.
    +
    161 screen.stencil = box;
    +
    162 node->Render(screen);
    +
    163
    +
    164 // Step 5: Apply shaders
    +
    165 screen.ApplyShader();
    +
    166}
    +
    +
    167
    +
    +
    168std::string GetNodeSelectedContent(Screen& screen,
    +
    169 Node* node,
    +
    170 Selection& selection) {
    +
    171 Box box;
    +
    172 box.x_min = 0;
    +
    173 box.y_min = 0;
    +
    174 box.x_max = screen.dimx() - 1;
    +
    175 box.y_max = screen.dimy() - 1;
    +
    176
    +
    177 Node::Status status;
    +
    178 node->Check(&status);
    +
    179 const int max_iterations = 20;
    +
    180 while (status.need_iteration && status.iteration < max_iterations) {
    +
    181 // Step 1: Find what dimension this elements wants to be.
    +
    182 node->ComputeRequirement();
    +
    183
    +
    184 // Step 2: Assign a dimension to the element.
    +
    185 node->SetBox(box);
    +
    186
    +
    187 // Check if the element needs another iteration of the layout algorithm.
    +
    188 status.need_iteration = false;
    +
    189 status.iteration++;
    +
    190 node->Check(&status);
    +
    191 }
    +
    192
    +
    193 // Step 3: Selection
    +
    194 node->Select(selection);
    +
    195
    +
    196 // Step 4: get the selected content.
    +
    197 return node->GetSelectedContent(selection);
    +
    198}
    +
    +
    199
    +
    200} // namespace ftxui
    + +
    const Box & GetBox() const
    Get the box of the selection.
    +
    virtual void Select(Selection &selection)
    Compute the selection of an element.
    Definition node.cpp:46
    + +
    Elements children_
    Definition node.hpp:79
    +
    virtual std::string GetSelectedContent(Selection &selection)
    Definition node.cpp:72
    +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    Requirement requirement_
    Definition node.hpp:80
    +
    Requirement requirement()
    Definition node.hpp:52
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    virtual void Check(Status *status)
    Definition node.cpp:65
    +
    virtual ~Node()
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    bool IsEmpty() const
    Definition selection.hpp:31
    + +
    Box box_
    Definition node.hpp:81
    +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    Represents a selection in a terminal user interface.
    Definition selection.hpp:22
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    void ApplyShader()
    Definition screen.cpp:507
    +
    int dimy() const
    Definition image.hpp:36
    +
    void SetCursor(Cursor cursor)
    Definition screen.hpp:67
    +
    int x_max
    Definition box.hpp:18
    +
    int y_min
    Definition box.hpp:19
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    Box stencil
    Definition image.hpp:41
    +
    int y_max
    Definition box.hpp:20
    +
    int x_min
    Definition box.hpp:17
    +
    int dimx() const
    Definition image.hpp:35
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::string GetNodeSelectedContent(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:168
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + + + + + +
    Screen::Cursor::Shape cursor_shape
    + + + + +
    +
    + + + + + diff --git a/node_8cppm.html b/node_8cppm.html new file mode 100644 index 000000000..f6e7c2bb0 --- /dev/null +++ b/node_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: node.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    node.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/node_8cppm_source.html b/node_8cppm_source.html new file mode 100644 index 000000000..3cd242bf5 --- /dev/null +++ b/node_8cppm_source.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: node.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    node.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.dom.node
    +
    2/// @brief Module file for the Node class of the Dom module
    +
    3
    +
    4module;
    +
    5
    +
    6#include <ftxui/dom/node.hpp>
    +
    7
    +
    8export module ftxui.dom.node;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::Node;
    +
    16 using ftxui::Screen;
    +
    17
    +
    18 using ftxui::Element;
    +
    19 using ftxui::Elements;
    +
    20
    +
    21 using ftxui::Render;
    +
    22 using ftxui::GetNodeSelectedContent;
    +
    23}
    +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Module file for the Node class of the Dom module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + +
    +
    + + + + + diff --git a/node_8hpp.html b/node_8hpp.html new file mode 100644 index 000000000..84462c831 --- /dev/null +++ b/node_8hpp.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: node.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    node.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Classes

    class  Node
     Node is the base class for all elements in the DOM tree. More...
     
    struct  Node::Status
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + +

    +Functions

    void Render (Screen &screen, const Element &element)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node)
     Display an element on a ftxui::Screen.
     
    void Render (Screen &screen, Node *node, Selection &selection)
     
    std::string GetNodeSelectedContent (Screen &screen, Node *node, Selection &selection)
     
    +
    +
    + + + + + diff --git a/node_8hpp.js b/node_8hpp.js new file mode 100644 index 000000000..fe13d51be --- /dev/null +++ b/node_8hpp.js @@ -0,0 +1,8 @@ +var node_8hpp = +[ + [ "Status", "structftxui_1_1Node_1_1Status.html", "structftxui_1_1Node_1_1Status" ], + [ "Render", "node_8hpp.html#gad4b8aa9392f56ba41e2b421e046a7d83", null ], + [ "Render", "node_8hpp.html#ga32a24db985fa1b37bf686b00f7e1b4ff", null ], + [ "Render", "node_8hpp.html#ab35030b64136afa183d474d11bd1f6dd", null ], + [ "GetNodeSelectedContent", "node_8hpp.html#a1a3d5804148186b3d4bcc07391ba5f30", null ] +]; \ No newline at end of file diff --git a/node_8hpp_source.html b/node_8hpp_source.html new file mode 100644 index 000000000..d91f84050 --- /dev/null +++ b/node_8hpp_source.html @@ -0,0 +1,339 @@ + + + + + + + + +FTXUI: node.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    node.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_NODE_HPP
    +
    5#define FTXUI_DOM_NODE_HPP
    +
    6
    +
    7#include <memory> // for shared_ptr
    +
    8#include <vector> // for vector
    +
    9
    +
    10#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    11#include "ftxui/dom/selection.hpp" // for Selection
    +
    12#include "ftxui/screen/box.hpp" // for Box
    + +
    14
    +
    15namespace ftxui {
    +
    16
    +
    17class Node;
    +
    18class Screen;
    +
    19
    +
    20using Element = std::shared_ptr<Node>;
    +
    21using Elements = std::vector<Element>;
    +
    22
    +
    23/// @brief Node is the base class for all elements in the DOM tree.
    +
    24///
    +
    25/// It represents a single node in the document object model (DOM) and provides
    +
    26/// the basic structure for layout and rendering.
    +
    27/// It contains methods for computing layout requirements, setting the box
    +
    28/// dimensions, selecting content, rendering to the screen, and checking the
    +
    29/// layout status.
    +
    30/// It typically contains child elements, which are also instances of Node.
    +
    31///
    +
    32/// Users are expected to derive from this class to create custom elements.
    +
    33///
    +
    34/// A list of builtin elements can be found in the `elements.hpp` file.
    +
    35///
    +
    36/// @ingroup dom
    +
    +
    37class Node {
    +
    38 public:
    + +
    40 explicit Node(Elements children);
    +
    41 Node(const Node&) = delete;
    +
    42 Node(const Node&&) = delete;
    +
    43 Node& operator=(const Node&) = delete;
    +
    44 Node& operator=(const Node&&) = delete;
    +
    45
    +
    46 virtual ~Node();
    +
    47
    +
    48 // Step 1: Compute layout requirement. Tell parent what dimensions this
    +
    49 // element wants to be.
    +
    50 // Propagated from Children to Parents.
    +
    51 virtual void ComputeRequirement();
    + +
    53
    +
    54 // Step 2: Assign this element its final dimensions.
    +
    55 // Propagated from Parents to Children.
    +
    56 virtual void SetBox(Box box);
    +
    57
    +
    58 // Step 3: (optional) Selection
    +
    59 // Propagated from Parents to Children.
    +
    60 virtual void Select(Selection& selection);
    +
    61
    +
    62 // Step 4: Draw this element.
    +
    63 virtual void Render(Screen& screen);
    +
    64
    +
    65 virtual std::string GetSelectedContent(Selection& selection);
    +
    66
    +
    67 // Layout may not resolve within a single iteration for some elements. This
    +
    68 // allows them to request additionnal iterations. This signal must be
    +
    69 // forwarded to children at least once.
    +
    +
    70 struct Status {
    +
    71 int iteration = 0;
    +
    72 bool need_iteration = false;
    +
    73 };
    +
    +
    74 virtual void Check(Status* status);
    +
    75
    +
    76 friend void Render(Screen& screen, Node* node, Selection& selection);
    +
    77
    +
    78 protected:
    + + + +
    82};
    +
    +
    83
    +
    84void Render(Screen& screen, const Element& element);
    +
    85void Render(Screen& screen, Node* node);
    +
    86void Render(Screen& screen, Node* node, Selection& selection);
    +
    87std::string GetNodeSelectedContent(Screen& screen,
    +
    88 Node* node,
    +
    89 Selection& selection);
    +
    90
    +
    91} // namespace ftxui
    +
    92
    +
    93#endif // FTXUI_DOM_NODE_HPP
    + +
    virtual void Select(Selection &selection)
    Compute the selection of an element.
    Definition node.cpp:46
    + +
    Elements children_
    Definition node.hpp:79
    +
    virtual std::string GetSelectedContent(Selection &selection)
    Definition node.cpp:72
    +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    Requirement requirement_
    Definition node.hpp:80
    +
    Requirement requirement()
    Definition node.hpp:52
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    virtual void Check(Status *status)
    Definition node.cpp:65
    +
    virtual ~Node()
    +
    Node & operator=(const Node &)=delete
    +
    Node(const Node &)=delete
    +
    Box box_
    Definition node.hpp:81
    +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    Node & operator=(const Node &&)=delete
    +
    Node(const Node &&)=delete
    +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    Represents a selection in a terminal user interface.
    Definition selection.hpp:22
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Requirement is a structure that defines the layout requirements for a Node in the terminal user inter...
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::string GetNodeSelectedContent(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:168
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + + + + + +
    +
    + + + + + diff --git a/node__decorator_8cpp.html b/node__decorator_8cpp.html new file mode 100644 index 000000000..cad802131 --- /dev/null +++ b/node__decorator_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: node_decorator.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    node_decorator.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/node__decorator_8cpp_source.html b/node__decorator_8cpp_source.html new file mode 100644 index 000000000..84736225d --- /dev/null +++ b/node__decorator_8cpp_source.html @@ -0,0 +1,247 @@ + + + + + + + + +FTXUI: node_decorator.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    node_decorator.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/node.hpp> // for Node, Elements
    +
    5
    + +
    7#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    8#include "ftxui/screen/box.hpp" // for Box
    +
    9
    +
    10namespace ftxui {
    +
    11
    +
    + + +
    14 requirement_ = children_[0]->requirement();
    +
    15}
    +
    +
    16
    +
    + +
    18 Node::SetBox(box);
    +
    19 children_[0]->SetBox(box);
    +
    20}
    +
    +
    21
    +
    22} // namespace ftxui
    + +
    void SetBox(Box box) override
    Assign a position and a dimension to an element for drawing.
    +
    void ComputeRequirement() override
    Compute how much space an element needs.
    +
    Elements children_
    Definition node.hpp:79
    +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    Requirement requirement_
    Definition node.hpp:80
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + +
    +
    + + + + + diff --git a/node__decorator_8hpp.html b/node__decorator_8hpp.html new file mode 100644 index 000000000..724a58695 --- /dev/null +++ b/node__decorator_8hpp.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: node_decorator.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    node_decorator.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Classes

    class  NodeDecorator
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/node__decorator_8hpp.js b/node__decorator_8hpp.js new file mode 100644 index 000000000..96df9f0b2 --- /dev/null +++ b/node__decorator_8hpp.js @@ -0,0 +1,4 @@ +var node__decorator_8hpp = +[ + [ "NodeDecorator", "classftxui_1_1NodeDecorator.html", "classftxui_1_1NodeDecorator" ] +]; \ No newline at end of file diff --git a/node__decorator_8hpp_source.html b/node__decorator_8hpp_source.html new file mode 100644 index 000000000..0b427b213 --- /dev/null +++ b/node__decorator_8hpp_source.html @@ -0,0 +1,246 @@ + + + + + + + + +FTXUI: node_decorator.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    node_decorator.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_NODE_DECORATOR_H_
    +
    5#define FTXUI_DOM_NODE_DECORATOR_H_
    +
    6
    +
    7#include <utility> // for move
    +
    8
    +
    9#include "ftxui/dom/elements.hpp" // for Element, unpack
    +
    10#include "ftxui/dom/node.hpp" // for Node
    +
    11
    +
    12namespace ftxui {
    +
    13struct Box;
    +
    14
    +
    15// Helper class.
    +
    +
    16class NodeDecorator : public Node {
    +
    17 public:
    +
    18 explicit NodeDecorator(Element child) : Node(unpack(std::move(child))) {}
    +
    19 void ComputeRequirement() override;
    +
    20 void SetBox(Box box) override;
    +
    21};
    +
    +
    22
    +
    23} // namespace ftxui
    +
    24
    +
    25#endif /* end of include guard: FTXUI_DOM_NODE_DECORATOR_H_ */
    + +
    NodeDecorator(Element child)
    +
    void SetBox(Box box) override
    Assign a position and a dimension to an element for drawing.
    +
    void ComputeRequirement() override
    Compute how much space an element needs.
    + +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + +
    +
    + + + + + diff --git a/open.png b/open.png new file mode 100644 index 0000000000000000000000000000000000000000..62bca90728ed68040f9e94efba628422798bb64c GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaGmGk z$vMXut$HW#Y)MiSUujug^TE?jMft$}ExB{VLmu6zZq`3c_mnIQ@^jlt8^&t;ucLK6UI9w@E= literal 0 HcmV?d00001 diff --git a/package__manager_8cpp.html b/package__manager_8cpp.html new file mode 100644 index 000000000..456c41e0d --- /dev/null +++ b/package__manager_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: package_manager.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    package_manager.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 18 of file package_manager.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/package__manager_8cpp.js b/package__manager_8cpp.js new file mode 100644 index 000000000..548cf8f59 --- /dev/null +++ b/package__manager_8cpp.js @@ -0,0 +1,4 @@ +var package__manager_8cpp = +[ + [ "main", "package__manager_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/package__manager_8cpp_source.html b/package__manager_8cpp_source.html new file mode 100644 index 000000000..42ae94bf4 --- /dev/null +++ b/package__manager_8cpp_source.html @@ -0,0 +1,368 @@ + + + + + + + + +FTXUI: package_manager.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    package_manager.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <chrono> // for operator""s, chrono_literals
    +
    5#include <ftxui/dom/elements.hpp> // for operator|, text, Element, hbox, bold, color, filler, separator, vbox, window, gauge, Fit, size, dim, EQUAL, WIDTH
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <iostream> // for cout, endl, ostream
    +
    8#include <list> // for list, operator==, _List_iterator, _List_iterator<>::_Self
    +
    9#include <memory> // for allocator, shared_ptr, allocator_traits<>::value_type
    +
    10#include <string> // for string, operator<<, to_string
    +
    11#include <thread> // for sleep_for
    +
    12#include <utility> // for move
    +
    13#include <vector> // for vector
    +
    14
    +
    15#include "ftxui/dom/node.hpp" // for Render
    +
    16#include "ftxui/screen/color.hpp" // for Color, Color::Green, Color::Red, Color::RedLight, ftxui
    +
    17
    +
    +
    18int main() {
    +
    19 using namespace ftxui;
    +
    20
    +
    21 struct Task {
    +
    22 std::string name;
    +
    23 int number_of_threads;
    +
    24 int downloaded;
    +
    25 int size;
    +
    26 };
    +
    27
    +
    28 std::list<Task> remaining_tasks = {
    +
    29 {"contact server ", 10, 0, 6 * 25},
    +
    30 {"download index.html ", 10, 0, 9 * 25},
    +
    31 {"download script.js ", 1, 0, 3 * 25},
    +
    32 {"download style.js ", 1, 0, 4 * 25},
    +
    33 {"download image.png ", 1, 0, 5 * 25},
    +
    34 {"download big_1.png ", 1, 0, 30 * 25},
    +
    35 {"download icon_1.png ", 1, 0, 7 * 25},
    +
    36 {"download icon_2.png ", 1, 0, 8 * 25},
    +
    37 {"download big_2.png ", 1, 0, 30 * 25},
    +
    38 {"download small_1.png ", 1, 0, 10 * 25},
    +
    39 {"download small_2.png ", 1, 0, 11 * 25},
    +
    40 {"download small_3.png ", 1, 0, 12 * 25},
    +
    41 };
    +
    42
    +
    43 std::list<Task> displayed_task;
    +
    44
    +
    45 int remaining_threads = 12;
    +
    46
    +
    47 int nb_queued = (int)remaining_tasks.size();
    +
    48 int nb_active = 0;
    +
    49 int nb_done = 0;
    +
    50
    +
    51 auto to_text = [](int number) {
    +
    52 return text(std::to_string(number)) | size(WIDTH, EQUAL, 3);
    +
    53 };
    +
    54
    +
    55 auto renderTask = [&](const Task& task) {
    +
    56 auto style = (task.downloaded == task.size) ? dim : bold;
    +
    57 return hbox({
    +
    58 text(task.name) | style,
    +
    59 separator(),
    +
    60 to_text(task.downloaded),
    +
    61 text("/"),
    +
    62 to_text(task.size),
    +
    63 separator(),
    +
    64 gauge(task.downloaded / float(task.size)),
    +
    65 });
    +
    66 };
    +
    67
    +
    68 auto renderSummary = [&]() {
    +
    69 auto summary = vbox({
    +
    70 hbox({
    +
    71 text("- done: "),
    +
    72 to_text(nb_done) | bold,
    +
    73 }) | color(Color::Green),
    +
    74 hbox({
    +
    75 text("- active: "),
    +
    76 to_text(nb_active) | bold,
    +
    77 }) | color(Color::RedLight),
    +
    78 hbox({
    +
    79 text("- queue: "),
    +
    80 to_text(nb_queued) | bold,
    +
    81 }) | color(Color::Red),
    +
    82 });
    +
    83
    +
    84 return window(text(" Summary "), summary);
    +
    85 };
    +
    86
    +
    87 auto render = [&]() {
    +
    88 std::vector<Element> entries;
    +
    89 for (auto& task : displayed_task) {
    +
    90 entries.push_back(renderTask(task));
    +
    91 }
    +
    92
    +
    93 return vbox({
    +
    94 // List of tasks.
    +
    95 window(text(" Task "), vbox(std::move(entries))),
    +
    96
    +
    97 // Summary.
    +
    98 hbox({
    +
    99 renderSummary(),
    +
    100 filler(),
    +
    101 }),
    +
    102 });
    +
    103 };
    +
    104
    +
    105 auto updateModel = [&]() {
    +
    106 for (auto& task : displayed_task) {
    +
    107 if (task.downloaded != task.size) {
    +
    108 task.downloaded++;
    +
    109 } else if (task.number_of_threads) {
    +
    110 remaining_threads += task.number_of_threads;
    +
    111 task.number_of_threads = 0;
    +
    112 nb_active--;
    +
    113 nb_done++;
    +
    114 }
    +
    115 }
    +
    116
    +
    117 if (remaining_tasks.size() &&
    +
    118 remaining_tasks.front().number_of_threads <= remaining_threads) {
    +
    119 remaining_threads -= remaining_tasks.front().number_of_threads;
    +
    120 displayed_task.push_back(remaining_tasks.front());
    +
    121 remaining_tasks.pop_front();
    +
    122 nb_queued--;
    +
    123 nb_active++;
    +
    124 }
    +
    125 };
    +
    126
    +
    127 std::string reset_position;
    +
    128 for (;;) {
    +
    129 // Draw.
    +
    130 auto document = render();
    +
    131 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    132 Render(screen, document);
    +
    133 std::cout << reset_position;
    +
    134 screen.Print();
    +
    135 reset_position = screen.ResetPosition();
    +
    136
    +
    137 // Simulate time.
    +
    138 using namespace std::chrono_literals;
    +
    139 std::this_thread::sleep_for(0.01s);
    +
    140
    +
    141 // Exit
    +
    142 if (nb_active + nb_queued == 0) {
    +
    143 break;
    +
    144 }
    +
    145
    +
    146 // Update the model for the next frame.
    +
    147 updateModel();
    +
    148 }
    +
    149 std::cout << std::endl;
    +
    150}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::variant< Event, Closure, AnimationTask > Task
    Definition task.hpp:14
    + +
    int main()
    + +
    +
    + + + + + diff --git a/pages.html b/pages.html new file mode 100644 index 000000000..f12b5a102 --- /dev/null +++ b/pages.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: Pages + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    +
    + + + + + diff --git a/pixel_8cppm.html b/pixel_8cppm.html new file mode 100644 index 000000000..2c67e7e12 --- /dev/null +++ b/pixel_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: pixel.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    pixel.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/pixel_8cppm_source.html b/pixel_8cppm_source.html new file mode 100644 index 000000000..4c223f2c8 --- /dev/null +++ b/pixel_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: pixel.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    pixel.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen.pixel
    +
    2/// @brief Module file for the Pixel struct of the Screen module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.screen.pixel;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::Pixel;
    +
    16}
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    Module file for the Pixel struct of the Screen module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/pixel_8hpp.html b/pixel_8hpp.html new file mode 100644 index 000000000..840c12ef5 --- /dev/null +++ b/pixel_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: pixel.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    pixel.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    struct  Pixel
     A Unicode character and its associated style. More...
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/pixel_8hpp_source.html b/pixel_8hpp_source.html new file mode 100644 index 000000000..1363fc584 --- /dev/null +++ b/pixel_8hpp_source.html @@ -0,0 +1,285 @@ + + + + + + + + +FTXUI: pixel.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    pixel.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_PIXEL_HPP
    +
    5#define FTXUI_SCREEN_PIXEL_HPP
    +
    6
    +
    7#include <cstdint> // for uint8_t
    +
    8#include <string> // for string, basic_string, allocator
    +
    9#include "ftxui/screen/color.hpp" // for Color, Color::Default
    +
    10
    +
    11namespace ftxui {
    +
    12
    +
    13/// @brief A Unicode character and its associated style.
    +
    14/// @ingroup screen
    +
    +
    15struct Pixel {
    +
    + +
    17 : blink(false),
    +
    18 bold(false),
    +
    19 dim(false),
    +
    20 italic(false),
    +
    21 inverted(false),
    +
    22 underlined(false),
    +
    23 underlined_double(false),
    +
    24 strikethrough(false),
    +
    25 automerge(false) {}
    +
    +
    26
    +
    27 // A bit field representing the style:
    +
    28 bool blink : 1;
    +
    29 bool bold : 1;
    +
    30 bool dim : 1;
    +
    31 bool italic : 1;
    +
    32 bool inverted : 1;
    +
    33 bool underlined : 1;
    + +
    35 bool strikethrough : 1;
    +
    36 bool automerge : 1;
    +
    37
    +
    38 // The hyperlink associated with the pixel.
    +
    39 // 0 is the default value, meaning no hyperlink.
    +
    40 // It's an index for accessing Screen meta data
    +
    41 uint8_t hyperlink = 0;
    +
    42
    +
    43 // The graphemes stored into the pixel. To support combining characters,
    +
    44 // like: a?, this can potentially contain multiple codepoints.
    +
    45 std::string character = "";
    +
    46
    +
    47 // Colors:
    + + +
    50};
    +
    +
    51
    +
    52} // namespace ftxui
    +
    53
    +
    54#endif // FTXUI_SCREEN_PIXEL_HPP
    + +
    bool inverted
    Definition pixel.hpp:32
    +
    bool strikethrough
    Definition pixel.hpp:35
    +
    Color foreground_color
    Definition pixel.hpp:49
    +
    bool blink
    Definition pixel.hpp:28
    +
    Color background_color
    Definition pixel.hpp:48
    +
    std::string character
    Definition pixel.hpp:45
    + + +
    bool bold
    Definition pixel.hpp:29
    +
    bool underlined
    Definition pixel.hpp:33
    + +
    bool italic
    Definition pixel.hpp:31
    +
    bool automerge
    Definition pixel.hpp:36
    +
    bool underlined_double
    Definition pixel.hpp:34
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/plus.svg b/plus.svg new file mode 100644 index 000000000..075201655 --- /dev/null +++ b/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 000000000..0c65bfe94 --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/print__key__press_8cpp.html b/print__key__press_8cpp.html new file mode 100644 index 000000000..7af11a46c --- /dev/null +++ b/print__key__press_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: print_key_press.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    print_key_press.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    std::string Code (Event event)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ Code()

    + +
    +
    + + + + + + + +
    std::string Code (Event event)
    +
    + +

    Definition at line 21 of file print_key_press.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 29 of file print_key_press.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/print__key__press_8cpp.js b/print__key__press_8cpp.js new file mode 100644 index 000000000..9082e2b19 --- /dev/null +++ b/print__key__press_8cpp.js @@ -0,0 +1,5 @@ +var print__key__press_8cpp = +[ + [ "Code", "print__key__press_8cpp.html#a1bbdd0071095abee0e28134bd4ad9213", null ], + [ "main", "print__key__press_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/print__key__press_8cpp_source.html b/print__key__press_8cpp_source.html new file mode 100644 index 000000000..9b81ca58d --- /dev/null +++ b/print__key__press_8cpp_source.html @@ -0,0 +1,299 @@ + + + + + + + + +FTXUI: print_key_press.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    print_key_press.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4
    +
    5#include <stddef.h> // for size_t
    +
    6#include <algorithm> // for max
    +
    7#include <memory> // for allocator, shared_ptr
    +
    8#include <string> // for char_traits, operator+, string, basic_string, to_string
    +
    9#include <utility> // for move
    +
    10#include <vector> // for vector
    +
    11
    +
    12#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    13#include "ftxui/component/component.hpp" // for CatchEvent, Renderer
    +
    14#include "ftxui/component/event.hpp" // for Event
    +
    15#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Middle, Mouse::None, Mouse::Pressed, Mouse::Released, Mouse::Right, Mouse::WheelDown, Mouse::WheelUp
    +
    16#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    17#include "ftxui/dom/elements.hpp" // for text, vbox, window, Element, Elements
    +
    18
    +
    19using namespace ftxui;
    +
    20
    +
    +
    21std::string Code(Event event) {
    +
    22 std::string codes;
    +
    23 for (auto& it : event.input()) {
    +
    24 codes += " " + std::to_string((unsigned int)it);
    +
    25 }
    +
    26 return codes;
    +
    27}
    +
    +
    28
    +
    +
    29int main() {
    + +
    31
    +
    32 std::vector<Event> keys;
    +
    33
    +
    34 auto left_column = Renderer([&] {
    +
    35 Elements children = {
    +
    36 text("Codes"),
    +
    37 separator(),
    +
    38 };
    +
    39 for (size_t i = std::max(0, (int)keys.size() - 20); i < keys.size(); ++i) {
    +
    40 children.push_back(text(Code(keys[i])));
    +
    41 }
    +
    42 return vbox(children);
    +
    43 });
    +
    44
    +
    45 auto right_column = Renderer([&] {
    +
    46 Elements children = {
    +
    47 text("Event"),
    +
    48 separator(),
    +
    49 };
    +
    50 for (size_t i = std::max(0, (int)keys.size() - 20); i < keys.size(); ++i) {
    +
    51 children.push_back(text(keys[i].DebugString()));
    +
    52 }
    +
    53 return vbox(children);
    +
    54 });
    +
    55
    +
    56 int split_size = 40;
    +
    57 auto component = ResizableSplitLeft(left_column, right_column, &split_size);
    +
    58 component |= border;
    +
    59
    +
    60 component |= CatchEvent([&](Event event) {
    +
    61 keys.push_back(event);
    +
    62 return false;
    +
    63 });
    +
    64
    +
    65 screen.Loop(component);
    +
    66}
    +
    + + + + +
    static ScreenInteractive TerminalOutput()
    +
    const std::string & input() const
    Definition event.hpp:104
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component ResizableSplitLeft(Component main, Component back, int *main_size)
    An horizontal split in between two components, configurable using the mouse.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element border(Element)
    Draw a border around the element.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Component CatchEvent(Component child, std::function< bool(Event)>)
    +
    std::string Code(Event event)
    +
    int main()
    + +
    +
    + + + + + diff --git a/radiobox__in__frame_8cpp.html b/radiobox__in__frame_8cpp.html new file mode 100644 index 000000000..058feffc0 --- /dev/null +++ b/radiobox__in__frame_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: radiobox_in_frame.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    radiobox_in_frame.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file radiobox_in_frame.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/radiobox__in__frame_8cpp.js b/radiobox__in__frame_8cpp.js new file mode 100644 index 000000000..15f25dab0 --- /dev/null +++ b/radiobox__in__frame_8cpp.js @@ -0,0 +1,4 @@ +var radiobox__in__frame_8cpp = +[ + [ "main", "radiobox__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/radiobox__in__frame_8cpp_source.html b/radiobox__in__frame_8cpp_source.html new file mode 100644 index 000000000..6d4b7d2cf --- /dev/null +++ b/radiobox__in__frame_8cpp_source.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: radiobox_in_frame.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    radiobox_in_frame.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for shared_ptr, __shared_ptr_access
    +
    5#include <string> // for string, basic_string, operator+, to_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Radiobox, Renderer
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, size, border, frame, HEIGHT, LESS_THAN
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> entries;
    +
    18 int selected = 0;
    +
    19
    +
    20 for (int i = 0; i < 30; ++i) {
    +
    21 entries.push_back("RadioBox " + std::to_string(i));
    +
    22 }
    +
    23 auto radiobox = Radiobox(&entries, &selected);
    +
    24 auto renderer = Renderer(radiobox, [&] {
    +
    25 return radiobox->Render() | vscroll_indicator | frame |
    + +
    27 });
    +
    28
    +
    29 auto screen = ScreenInteractive::FitComponent();
    +
    30 screen.Loop(renderer);
    +
    31
    +
    32 return 0;
    +
    33}
    +
    + + + + +
    static ScreenInteractive FitComponent()
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element border(Element)
    Draw a border around the element.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    @ LESS_THAN
    Definition elements.hpp:162
    +
    int main()
    + +
    +
    + + + + + diff --git a/receiver_8cppm.html b/receiver_8cppm.html new file mode 100644 index 000000000..37546c456 --- /dev/null +++ b/receiver_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: receiver.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    receiver.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/receiver_8cppm_source.html b/receiver_8cppm_source.html new file mode 100644 index 000000000..f4eda3f38 --- /dev/null +++ b/receiver_8cppm_source.html @@ -0,0 +1,242 @@ + + + + + + + + +FTXUI: receiver.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    receiver.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.component.receiver
    +
    2/// @brief Module file for the Receiver class of the Component module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.component.receiver;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 // Deprecated:
    + +
    17 // Deprecated:
    + +
    19 // Deprecated:
    +
    20 using ftxui::Sender;
    +
    21 // Deprecated:
    +
    22 using ftxui::Receiver;
    +
    23 // Deprecated:
    +
    24 using ftxui::MakeReceiver;
    +
    25 // Deprecated:
    +
    26}
    + + +
    Module file for the Receiver class of the Component module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::unique_ptr< ReceiverImpl< T > > Receiver
    Definition receiver.hpp:54
    +
    std::unique_ptr< SenderImpl< T > > Sender
    Definition receiver.hpp:52
    + +
    +
    + + + + + diff --git a/receiver_8hpp.html b/receiver_8hpp.html new file mode 100644 index 000000000..d2cce475f --- /dev/null +++ b/receiver_8hpp.html @@ -0,0 +1,245 @@ + + + + + + + + +FTXUI: receiver.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    receiver.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Classes

    class  SenderImpl< T >
     
    class  ReceiverImpl< T >
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Typedefs

    template<class T >
    using Sender = std::unique_ptr<SenderImpl<T>>
     
    template<class T >
    using Receiver = std::unique_ptr<ReceiverImpl<T>>
     
    + + + + +

    +Functions

    template<class T >
    Receiver< T > MakeReceiver ()
     
    +
    +
    + + + + + diff --git a/receiver_8hpp.js b/receiver_8hpp.js new file mode 100644 index 000000000..284c4ea47 --- /dev/null +++ b/receiver_8hpp.js @@ -0,0 +1,8 @@ +var receiver_8hpp = +[ + [ "SenderImpl< T >", "classftxui_1_1SenderImpl.html", "classftxui_1_1SenderImpl" ], + [ "ReceiverImpl< T >", "classftxui_1_1ReceiverImpl.html", "classftxui_1_1ReceiverImpl" ], + [ "Sender", "receiver_8hpp.html#a8f713c247c551bd416c4697ed9ab871c", null ], + [ "Receiver", "receiver_8hpp.html#a7abbe763f26611fbf3902861863b7659", null ], + [ "MakeReceiver", "receiver_8hpp.html#a57abe3e11733b1d3ebacc56692d3537c", null ] +]; \ No newline at end of file diff --git a/receiver_8hpp_source.html b/receiver_8hpp_source.html new file mode 100644 index 000000000..ca066581e --- /dev/null +++ b/receiver_8hpp_source.html @@ -0,0 +1,402 @@ + + + + + + + + +FTXUI: receiver.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    receiver.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_COMPONENT_RECEIVER_HPP_
    +
    5#define FTXUI_COMPONENT_RECEIVER_HPP_
    +
    6
    + +
    8#include <algorithm> // for copy, max
    +
    9#include <atomic> // for atomic, __atomic_base
    +
    10#include <condition_variable> // for condition_variable
    +
    11#include <memory> // for unique_ptr, make_unique
    +
    12#include <mutex> // for mutex, unique_lock
    +
    13#include <queue> // for queue
    +
    14#include <utility> // for move
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18// Deprecated
    +
    19//
    +
    20// Usage:
    +
    21//
    +
    22// Initialization:
    +
    23// ---------------
    +
    24//
    +
    25// auto receiver = MakeReceiver<std:string>();
    +
    26// auto sender_1= receiver->MakeSender();
    +
    27// auto sender_2 = receiver->MakeSender();
    +
    28//
    +
    29// Then move the senders elsewhere, potentially in a different thread.
    +
    30//
    +
    31// On the producer side:
    +
    32// ----------------------
    +
    33// [thread 1] sender_1->Send("hello");
    +
    34// [thread 2] sender_2->Send("world");
    +
    35//
    +
    36// On the consumer side:
    +
    37// ---------------------
    +
    38// char c;
    +
    39// while(receiver->Receive(&c)) // Return true as long as there is a producer.
    +
    40// print(c)
    +
    41//
    +
    42// Receiver::Receive() returns true when there are no more senders.
    +
    43
    +
    44// clang-format off
    +
    45// Deprecated:
    +
    46template<class T> class SenderImpl;
    +
    47// Deprecated:
    +
    48template<class T> class ReceiverImpl;
    +
    49// Deprecated:
    +
    50
    +
    51// Deprecated:
    +
    52template<class T> using Sender = std::unique_ptr<SenderImpl<T>>;
    +
    53// Deprecated:
    +
    54template<class T> using Receiver = std::unique_ptr<ReceiverImpl<T>>;
    +
    55// Deprecated:
    +
    56template<class T> Receiver<T> MakeReceiver();
    +
    57// clang-format on
    +
    58
    +
    59// ---- Implementation part ----
    +
    60
    +
    61template <class T>
    +
    62// Deprecated:
    +
    + +
    64 public:
    +
    65 SenderImpl(const SenderImpl&) = delete;
    + +
    67 SenderImpl& operator=(const SenderImpl&) = delete;
    + +
    69 void Send(T t) { receiver_->Receive(std::move(t)); }
    +
    70 ~SenderImpl() { receiver_->ReleaseSender(); }
    +
    71
    +
    72 Sender<T> Clone() { return receiver_->MakeSender(); }
    +
    73
    +
    74 private:
    +
    75 friend class ReceiverImpl<T>;
    +
    76 explicit SenderImpl(ReceiverImpl<T>* consumer) : receiver_(consumer) {}
    +
    77 ReceiverImpl<T>* receiver_;
    +
    78};
    +
    +
    79
    +
    80template <class T>
    +
    + +
    82 public:
    +
    + +
    84 std::unique_lock<std::mutex> lock(mutex_);
    +
    85 senders_++;
    +
    86 return std::unique_ptr<SenderImpl<T>>(new SenderImpl<T>(this));
    +
    87 }
    +
    +
    88 ReceiverImpl() = default;
    +
    89
    +
    +
    90 bool Receive(T* t) {
    +
    91 while (senders_ || !queue_.empty()) {
    +
    92 std::unique_lock<std::mutex> lock(mutex_);
    +
    93 if (queue_.empty()) {
    +
    94 notifier_.wait(lock);
    +
    95 }
    +
    96 if (queue_.empty()) {
    +
    97 continue;
    +
    98 }
    +
    99 *t = std::move(queue_.front());
    +
    100 queue_.pop();
    +
    101 return true;
    +
    102 }
    +
    103 return false;
    +
    104 }
    +
    +
    105
    +
    + +
    107 std::unique_lock<std::mutex> lock(mutex_);
    +
    108 if (queue_.empty()) {
    +
    109 return false;
    +
    110 }
    +
    111 *t = queue_.front();
    +
    112 queue_.pop();
    +
    113 return true;
    +
    114 }
    +
    +
    115
    +
    +
    116 bool HasPending() {
    +
    117 std::unique_lock<std::mutex> lock(mutex_);
    +
    118 return !queue_.empty();
    +
    119 }
    +
    +
    120
    +
    +
    121 bool HasQuitted() {
    +
    122 std::unique_lock<std::mutex> lock(mutex_);
    +
    123 return queue_.empty() && !senders_;
    +
    124 }
    +
    +
    125
    +
    126 private:
    +
    127 friend class SenderImpl<T>;
    +
    128
    +
    129 void Receive(T t) {
    +
    130 {
    +
    131 std::unique_lock<std::mutex> lock(mutex_);
    +
    132 queue_.push(std::move(t));
    +
    133 }
    +
    134 notifier_.notify_one();
    +
    135 }
    +
    136
    +
    137 void ReleaseSender() {
    +
    138 senders_--;
    +
    139 notifier_.notify_one();
    +
    140 }
    +
    141
    +
    142 std::mutex mutex_;
    +
    143 std::queue<T> queue_;
    +
    144 std::condition_variable notifier_;
    +
    145 std::atomic<int> senders_{0};
    +
    146};
    +
    +
    147
    +
    148template <class T>
    +
    + +
    150 return std::make_unique<ReceiverImpl<T>>();
    +
    151}
    +
    +
    152
    +
    153} // namespace ftxui
    +
    154
    +
    155#endif // FTXUI_COMPONENT_RECEIVER_HPP_
    + +
    ReceiverImpl()=default
    + +
    bool Receive(T *t)
    Definition receiver.hpp:90
    +
    bool ReceiveNonBlocking(T *t)
    Definition receiver.hpp:106
    + +
    friend class SenderImpl< T >
    Definition receiver.hpp:127
    +
    Sender< T > MakeSender()
    Definition receiver.hpp:83
    + +
    friend class ReceiverImpl< T >
    Definition receiver.hpp:75
    +
    SenderImpl & operator=(const SenderImpl &)=delete
    +
    Sender< T > Clone()
    Definition receiver.hpp:72
    +
    SenderImpl(SenderImpl &&)=delete
    +
    SenderImpl(const SenderImpl &)=delete
    + +
    SenderImpl & operator=(SenderImpl &&)=delete
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Receiver< T > MakeReceiver()
    Definition receiver.hpp:149
    +
    std::unique_ptr< ReceiverImpl< T > > Receiver
    Definition receiver.hpp:54
    +
    std::unique_ptr< SenderImpl< T > > Sender
    Definition receiver.hpp:52
    + +
    +
    + + + + + diff --git a/ref_8cppm.html b/ref_8cppm.html new file mode 100644 index 000000000..0abe8d1de --- /dev/null +++ b/ref_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: ref.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ref.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/ref_8cppm_source.html b/ref_8cppm_source.html new file mode 100644 index 000000000..aefc2502a --- /dev/null +++ b/ref_8cppm_source.html @@ -0,0 +1,237 @@ + + + + + + + + +FTXUI: ref.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ref.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.util.ref
    +
    2/// @brief Module file for the Ref classes of the Util module
    +
    3
    +
    4module;
    +
    5
    +
    6#include <ftxui/util/ref.hpp>
    +
    7
    +
    8export module ftxui.util.ref;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::ConstRef;
    +
    16 using ftxui::Ref;
    +
    17 using ftxui::StringRef;
    + + +
    20}
    +
    An adapter. Own or reference an immutable object.
    Definition ref.hpp:17
    +
    An adapter. Reference a list of strings.
    Definition ref.hpp:116
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    +
    An adapter. Own or reference an mutable object.
    Definition ref.hpp:46
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable ...
    Definition ref.hpp:82
    +
    Module file for the Ref classes of the Util module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/ref_8hpp.html b/ref_8hpp.html new file mode 100644 index 000000000..8f2aa1277 --- /dev/null +++ b/ref_8hpp.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: ref.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ref.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

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

    +Classes

    class  ConstRef< T >
     An adapter. Own or reference an immutable object. More...
     
    class  Ref< T >
     An adapter. Own or reference an mutable object. More...
     
    class  StringRef
     An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation. More...
     
    class  ConstStringRef
     An adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation. More...
     
    class  ConstStringListRef
     An adapter. Reference a list of strings. More...
     
    class  ConstStringListRef::Adapter
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/ref_8hpp.js b/ref_8hpp.js new file mode 100644 index 000000000..1a68c3850 --- /dev/null +++ b/ref_8hpp.js @@ -0,0 +1,9 @@ +var ref_8hpp = +[ + [ "ConstRef< T >", "classftxui_1_1ConstRef.html", "classftxui_1_1ConstRef" ], + [ "Ref< T >", "classftxui_1_1Ref.html", "classftxui_1_1Ref" ], + [ "StringRef", "classftxui_1_1StringRef.html", "classftxui_1_1StringRef" ], + [ "ConstStringRef", "classftxui_1_1ConstStringRef.html", "classftxui_1_1ConstStringRef" ], + [ "ConstStringListRef", "classftxui_1_1ConstStringListRef.html", "classftxui_1_1ConstStringListRef" ], + [ "Adapter", "classftxui_1_1ConstStringListRef_1_1Adapter.html", "classftxui_1_1ConstStringListRef_1_1Adapter" ] +]; \ No newline at end of file diff --git a/ref_8hpp_source.html b/ref_8hpp_source.html new file mode 100644 index 000000000..d0692d865 --- /dev/null +++ b/ref_8hpp_source.html @@ -0,0 +1,516 @@ + + + + + + + + +FTXUI: ref.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ref.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_UTIL_REF_HPP
    +
    5#define FTXUI_UTIL_REF_HPP
    +
    6
    + +
    8#include <memory>
    +
    9#include <string>
    +
    10#include <variant>
    +
    11#include <vector>
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief An adapter. Own or reference an immutable object.
    +
    16template <typename T>
    +
    +
    17class ConstRef {
    +
    18 public:
    +
    19 ConstRef() = default;
    +
    20 ConstRef(T t) : variant_(std::move(t)) {} // NOLINT
    +
    21 ConstRef(const T* t) : variant_(t) {} // NOLINT
    +
    22 ConstRef& operator=(ConstRef&&) noexcept = default;
    +
    23 ConstRef(const ConstRef<T>&) = default;
    +
    24 ConstRef(ConstRef<T>&&) noexcept = default;
    +
    25 ~ConstRef() = default;
    +
    26
    +
    27 // Make a "reseatable" reference
    +
    28 ConstRef<T>& operator=(const ConstRef<T>&) = default;
    +
    29
    +
    30 // Accessors:
    +
    31 const T& operator()() const { return *Address(); }
    +
    32 const T& operator*() const { return *Address(); }
    +
    33 const T* operator->() const { return Address(); }
    +
    34
    +
    35 private:
    +
    36 std::variant<T, const T*> variant_ = T{};
    +
    37
    +
    38 const T* Address() const {
    +
    39 return std::holds_alternative<T>(variant_) ? &std::get<T>(variant_)
    +
    40 : std::get<const T*>(variant_);
    +
    41 }
    +
    42};
    +
    +
    43
    +
    44/// @brief An adapter. Own or reference an mutable object.
    +
    45template <typename T>
    +
    +
    46class Ref {
    +
    47 public:
    +
    48 Ref() = default;
    +
    49 Ref(T t) : variant_(std::move(t)) {} // NOLINT
    +
    50 Ref(T* t) : variant_(t) {} // NOLINT
    +
    51 ~Ref() = default;
    +
    52 Ref& operator=(Ref&&) noexcept = default;
    +
    53 Ref(const Ref<T>&) = default;
    +
    54 Ref(Ref<T>&&) noexcept = default;
    +
    55
    +
    56 // Make a "reseatable" reference.
    +
    57 Ref<T>& operator=(const Ref<T>&) = default;
    +
    58
    +
    59 // Accessors:
    +
    60 T& operator()() { return *Address(); }
    +
    61 T& operator*() { return *Address(); }
    +
    62 T* operator->() { return Address(); }
    +
    63 const T& operator()() const { return *Address(); }
    +
    64 const T& operator*() const { return *Address(); }
    +
    65 const T* operator->() const { return Address(); }
    +
    66
    +
    67 private:
    +
    68 std::variant<T, T*> variant_ = T{};
    +
    69
    +
    70 const T* Address() const {
    +
    71 return std::holds_alternative<T>(variant_) ? &std::get<T>(variant_)
    +
    72 : std::get<T*>(variant_);
    +
    73 }
    +
    74 T* Address() {
    +
    75 return std::holds_alternative<T>(variant_) ? &std::get<T>(variant_)
    +
    76 : std::get<T*>(variant_);
    +
    77 }
    +
    78};
    +
    +
    79
    +
    80/// @brief An adapter. Own or reference a constant string. For convenience, this
    +
    81/// class convert multiple mutable string toward a shared representation.
    +
    +
    82class StringRef : public Ref<std::string> {
    +
    83 public:
    +
    84 using Ref<std::string>::Ref;
    +
    85
    +
    +
    86 StringRef(const wchar_t* ref) // NOLINT
    +
    87 : StringRef(to_string(std::wstring(ref))) {}
    +
    +
    +
    88 StringRef(const char* ref) // NOLINT
    +
    89 : StringRef(std::string(ref)) {}
    +
    +
    90};
    +
    +
    91
    +
    92/// @brief An adapter. Own or reference a constant string. For convenience, this
    +
    93/// class convert multiple immutable string toward a shared representation.
    +
    +
    94class ConstStringRef : public ConstRef<std::string> {
    +
    95 public:
    +
    96 using ConstRef<std::string>::ConstRef;
    +
    97
    +
    +
    98 ConstStringRef(const std::wstring* ref) // NOLINT
    +
    99 : ConstStringRef(to_string(*ref)) {}
    +
    +
    +
    100 ConstStringRef(const std::wstring ref) // NOLINT
    +
    101 : ConstStringRef(to_string(ref)) {}
    +
    +
    +
    102 ConstStringRef(const wchar_t* ref) // NOLINT
    +
    103 : ConstStringRef(to_string(std::wstring(ref))) {}
    +
    +
    +
    104 ConstStringRef(const char* ref) // NOLINT
    +
    105 : ConstStringRef(std::string(ref)) {}
    +
    +
    106};
    +
    +
    107
    +
    108/// @brief An adapter. Reference a list of strings.
    +
    109///
    +
    110/// Supported input:
    +
    111/// - `std::vector<std::string>`
    +
    112/// - `std::vector<std::string>*`
    +
    113/// - `std::vector<std::wstring>*`
    +
    114/// - `Adapter*`
    +
    115/// - `std::unique_ptr<Adapter>`
    +
    + +
    117 public:
    +
    118 // Bring your own adapter:
    +
    +
    119 class Adapter {
    +
    120 public:
    +
    121 Adapter() = default;
    +
    122 Adapter(const Adapter&) = default;
    +
    123 Adapter& operator=(const Adapter&) = default;
    +
    124 Adapter(Adapter&&) = default;
    +
    125 Adapter& operator=(Adapter&&) = default;
    +
    126 virtual ~Adapter() = default;
    +
    127 virtual size_t size() const = 0;
    +
    128 virtual std::string operator[](size_t i) const = 0;
    +
    129 };
    +
    +
    130 using Variant = std::variant<const std::vector<std::string>, //
    +
    131 const std::vector<std::string>*, //
    +
    132 const std::vector<std::wstring>*, //
    +
    133 Adapter*, //
    +
    134 std::unique_ptr<Adapter> //
    +
    135 >;
    +
    136
    + + + + + + +
    143
    +
    +
    144 ConstStringListRef(std::vector<std::string> value) // NOLINT
    +
    145 {
    +
    146 variant_ = std::make_shared<Variant>(value);
    +
    147 }
    +
    +
    +
    148 ConstStringListRef(const std::vector<std::string>* value) // NOLINT
    +
    149 {
    +
    150 variant_ = std::make_shared<Variant>(value);
    +
    151 }
    +
    +
    +
    152 ConstStringListRef(const std::vector<std::wstring>* value) // NOLINT
    +
    153 {
    +
    154 variant_ = std::make_shared<Variant>(value);
    +
    155 }
    +
    +
    +
    156 ConstStringListRef(Adapter* adapter) // NOLINT
    +
    157 {
    +
    158 variant_ = std::make_shared<Variant>(adapter);
    +
    159 }
    +
    +
    160 template <typename AdapterType>
    +
    +
    161 ConstStringListRef(std::unique_ptr<AdapterType> adapter) // NOLINT
    +
    162 {
    +
    163 variant_ = std::make_shared<Variant>(
    +
    164 static_cast<std::unique_ptr<Adapter>>(std::move(adapter)));
    +
    165 }
    +
    +
    166
    +
    +
    167 size_t size() const {
    +
    168 return variant_ ? std::visit(SizeVisitor(), *variant_) : 0;
    +
    169 }
    +
    +
    170
    +
    +
    171 std::string operator[](size_t i) const {
    +
    172 return variant_ ? std::visit(IndexedGetter(i), *variant_) : "";
    +
    173 }
    +
    +
    174
    +
    175 private:
    +
    176 struct SizeVisitor {
    +
    177 size_t operator()(const std::vector<std::string>& v) const {
    +
    178 return v.size();
    +
    179 }
    +
    180 size_t operator()(const std::vector<std::string>* v) const {
    +
    181 return v->size();
    +
    182 }
    +
    183 size_t operator()(const std::vector<std::wstring>* v) const {
    +
    184 return v->size();
    +
    185 }
    +
    186 size_t operator()(const Adapter* v) const { return v->size(); }
    +
    187 size_t operator()(const std::unique_ptr<Adapter>& v) const {
    +
    188 return v->size();
    +
    189 }
    +
    190 };
    +
    191
    +
    192 struct IndexedGetter {
    +
    193 IndexedGetter(size_t index) // NOLINT
    +
    194 : index_(index) {}
    +
    195 size_t index_;
    +
    196 std::string operator()(const std::vector<std::string>& v) const {
    +
    197 return v[index_];
    +
    198 }
    +
    199 std::string operator()(const std::vector<std::string>* v) const {
    +
    200 return (*v)[index_];
    +
    201 }
    +
    202 std::string operator()(const std::vector<std::wstring>* v) const {
    +
    203 return to_string((*v)[index_]);
    +
    204 }
    +
    205 std::string operator()(const Adapter* v) const { return (*v)[index_]; }
    +
    206 std::string operator()(const std::unique_ptr<Adapter>& v) const {
    +
    207 return (*v)[index_];
    +
    208 }
    +
    209 };
    +
    210
    +
    211 std::shared_ptr<Variant> variant_;
    +
    212};
    +
    +
    213
    +
    214} // namespace ftxui
    +
    215
    +
    216#endif /* end of include guard: FTXUI_UTIL_REF_HPP */
    +
    An adapter. Own or reference an immutable object.
    Definition ref.hpp:17
    +
    const T & operator*() const
    Definition ref.hpp:32
    +
    ConstRef()=default
    +
    ConstRef(const T *t)
    Definition ref.hpp:21
    +
    ConstRef(T t)
    Definition ref.hpp:20
    +
    const T * operator->() const
    Definition ref.hpp:33
    +
    ConstRef & operator=(ConstRef &&) noexcept=default
    + +
    Adapter & operator=(Adapter &&)=default
    + +
    Adapter & operator=(const Adapter &)=default
    +
    virtual size_t size() const =0
    +
    virtual std::string operator[](size_t i) const =0
    + + +
    Adapter(const Adapter &)=default
    +
    An adapter. Reference a list of strings.
    Definition ref.hpp:116
    +
    ConstStringListRef(std::vector< std::string > value)
    Definition ref.hpp:144
    +
    ConstStringListRef(const std::vector< std::string > *value)
    Definition ref.hpp:148
    +
    size_t size() const
    Definition ref.hpp:167
    + +
    ConstStringListRef(ConstStringListRef &&)=default
    +
    ConstStringListRef & operator=(ConstStringListRef &&)=default
    + +
    std::variant< const std::vector< std::string >, const std::vector< std::string > *, const std::vector< std::wstring > *, Adapter *, std::unique_ptr< Adapter > > Variant
    Definition ref.hpp:130
    +
    ConstStringListRef & operator=(const ConstStringListRef &)=default
    +
    ConstStringListRef(std::unique_ptr< AdapterType > adapter)
    Definition ref.hpp:161
    +
    ConstStringListRef(const std::vector< std::wstring > *value)
    Definition ref.hpp:152
    +
    ConstStringListRef(const ConstStringListRef &)=default
    +
    ConstStringListRef(Adapter *adapter)
    Definition ref.hpp:156
    +
    std::string operator[](size_t i) const
    Definition ref.hpp:171
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    +
    ConstStringRef(const char *ref)
    Definition ref.hpp:104
    +
    ConstStringRef(const std::wstring ref)
    Definition ref.hpp:100
    +
    ConstStringRef(const std::wstring *ref)
    Definition ref.hpp:98
    +
    ConstStringRef(const wchar_t *ref)
    Definition ref.hpp:102
    +
    An adapter. Own or reference an mutable object.
    Definition ref.hpp:46
    +
    const T & operator*() const
    Definition ref.hpp:64
    +
    ~Ref()=default
    +
    T & operator*()
    Definition ref.hpp:61
    +
    T * operator->()
    Definition ref.hpp:62
    +
    Ref()=default
    +
    Ref(T t)
    Definition ref.hpp:49
    +
    const T * operator->() const
    Definition ref.hpp:65
    +
    Ref & operator=(Ref &&) noexcept=default
    +
    Ref(T *t)
    Definition ref.hpp:50
    +
    const T & operator()() const
    Definition ref.hpp:63
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable ...
    Definition ref.hpp:82
    +
    StringRef(const char *ref)
    Definition ref.hpp:88
    +
    StringRef(const wchar_t *ref)
    Definition ref.hpp:86
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::string to_string(const std::wstring &s)
    Convert a std::wstring into a UTF8 std::string.
    Definition string.cpp:1566
    + +
    +
    + + + + + diff --git a/reflect_8cpp.html b/reflect_8cpp.html new file mode 100644 index 000000000..978eae3dd --- /dev/null +++ b/reflect_8cpp.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: reflect.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    reflect.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + +

    +Functions

    Decorator reflect (Box &box)
     
    +
    +
    + + + + + diff --git a/reflect_8cpp.js b/reflect_8cpp.js new file mode 100644 index 000000000..f526afe91 --- /dev/null +++ b/reflect_8cpp.js @@ -0,0 +1,4 @@ +var reflect_8cpp = +[ + [ "reflect", "reflect_8cpp.html#aaff8245861617a3d9e846e99de582a63", null ] +]; \ No newline at end of file diff --git a/reflect_8cpp_source.html b/reflect_8cpp_source.html new file mode 100644 index 000000000..06b0719ff --- /dev/null +++ b/reflect_8cpp_source.html @@ -0,0 +1,275 @@ + + + + + + + + +FTXUI: reflect.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    reflect.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared, __shared_ptr_access
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, unpack, Decorator, reflect
    +
    8#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    9#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/screen.hpp" // for Screen
    +
    12
    +
    13namespace ftxui {
    +
    14namespace {
    +
    15
    +
    16// Helper class.
    +
    17class Reflect : public Node {
    +
    18 public:
    +
    19 Reflect(Element child, Box& box)
    +
    20 : Node(unpack(std::move(child))), reflected_box_(box) {}
    +
    21
    +
    22 void ComputeRequirement() final {
    + +
    24 requirement_ = children_[0]->requirement();
    +
    25 }
    +
    26
    +
    27 void SetBox(Box box) final {
    +
    28 reflected_box_ = box;
    +
    29 Node::SetBox(box);
    +
    30 children_[0]->SetBox(box);
    +
    31 }
    +
    32
    +
    33 void Render(Screen& screen) final {
    +
    34 reflected_box_ = Box::Intersection(screen.stencil, reflected_box_);
    +
    35 Node::Render(screen);
    +
    36 }
    +
    37
    +
    38 private:
    +
    39 Box& reflected_box_;
    +
    40};
    +
    41} // namespace
    +
    42
    +
    + +
    44 return [&](Element child) -> Element {
    +
    45 return std::make_shared<Reflect>(std::move(child), box);
    +
    46 };
    +
    47}
    +
    +
    48
    +
    49} // namespace ftxui
    + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    + + + +
    +
    + + + + + diff --git a/requirement_8cppm.html b/requirement_8cppm.html new file mode 100644 index 000000000..fb8599570 --- /dev/null +++ b/requirement_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: requirement.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    requirement.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/requirement_8cppm_source.html b/requirement_8cppm_source.html new file mode 100644 index 000000000..31e9a0a02 --- /dev/null +++ b/requirement_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: requirement.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    requirement.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.dom.requirement
    +
    2/// @brief Module file for the Requirement struct of the Dom module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.dom.requirement;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16}
    +
    Requirement is a structure that defines the layout requirements for a Node in the terminal user inter...
    +
    Module file for the Requirement struct of the Dom module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/requirement_8hpp.html b/requirement_8hpp.html new file mode 100644 index 000000000..a680b18a1 --- /dev/null +++ b/requirement_8hpp.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: requirement.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    requirement.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Classes

    struct  Requirement
     Requirement is a structure that defines the layout requirements for a Node in the terminal user interface. More...
     
    struct  Requirement::Focused
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/requirement_8hpp.js b/requirement_8hpp.js new file mode 100644 index 000000000..b41ecddee --- /dev/null +++ b/requirement_8hpp.js @@ -0,0 +1,4 @@ +var requirement_8hpp = +[ + [ "Focused", "structftxui_1_1Requirement_1_1Focused.html", "structftxui_1_1Requirement_1_1Focused" ] +]; \ No newline at end of file diff --git a/requirement_8hpp_source.html b/requirement_8hpp_source.html new file mode 100644 index 000000000..34f41dfd6 --- /dev/null +++ b/requirement_8hpp_source.html @@ -0,0 +1,293 @@ + + + + + + + + +FTXUI: requirement.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    requirement.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_REQUIREMENT_HPP
    +
    5#define FTXUI_DOM_REQUIREMENT_HPP
    +
    6
    + + +
    9
    +
    10namespace ftxui {
    +
    11class Node;
    +
    12
    +
    13/// @brief Requirement is a structure that defines the layout requirements for a
    +
    14/// Node in the terminal user interface.
    +
    15///
    +
    16/// It specifies the minimum size required to fully draw the element,
    +
    17/// @ingroup dom
    +
    + +
    19 // The required size to fully draw the element.
    +
    20 int min_x = 0;
    +
    21 int min_y = 0;
    +
    22
    +
    23 // How much flexibility is given to the component.
    +
    24 int flex_grow_x = 0;
    +
    25 int flex_grow_y = 0;
    + + +
    28
    +
    29 // Focus management to support the frame/focus/select element.
    +
    +
    30 struct Focused {
    +
    31 bool enabled = false;
    + +
    33 Node* node = nullptr;
    + +
    35
    +
    36 // Internal for interactions with components.
    +
    37 bool component_active = false;
    +
    38
    +
    39 // Return whether this requirement should be preferred over the other.
    +
    +
    40 bool Prefer(const Focused& other) const {
    +
    41 if (!other.enabled) {
    +
    42 return false;
    +
    43 }
    +
    44 if (!enabled) {
    +
    45 return true;
    +
    46 }
    +
    47
    +
    48 return other.component_active && !component_active;
    +
    49 }
    +
    +
    50 };
    +
    + +
    52};
    +
    +
    53
    +
    54} // namespace ftxui
    +
    55
    +
    56#endif // FTXUI_DOM_REQUIREMENT_HPP
    + + + + + + + + +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    Requirement is a structure that defines the layout requirements for a Node in the terminal user inter...
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    Screen::Cursor::Shape cursor_shape
    + +
    bool Prefer(const Focused &other) const
    + + + + + +
    +
    + + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 000000000..178d03bcb --- /dev/null +++ b/resize.js @@ -0,0 +1,147 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable(treeview) { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight(treeview) { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + if (treeview) + { + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + } + else + { + contentHeight = windowHeight - headerHeight; + } + content.css({height:contentHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (!treeview) { +// title = $("#titlearea"); +// titleH = $(title).height(); +// let animating = false; +// content.on("scroll", function() { +// slideOpts = { duration: 200, +// step: function() { +// contentHeight = $(window).height() - header.outerHeight(); +// content.css({ height : contentHeight + "px" }); +// }, +// done: function() { animating=false; } +// }; +// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { +// title.slideUp(slideOpts); +// animating=true; +// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { +// title.slideDown(slideOpts); +// animating=true; +// } +// }); + } else { + navtree = $("#nav-tree"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + } + $(window).resize(function() { resizeHeight(treeview); }); + if (treeview) + { + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + } + resizeHeight(treeview); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + if (treeview) + { + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + // workaround for firefox + $("body").css({overflow: "hidden"}); + } + $(window).on('load',function() { resizeHeight(treeview); }); +} +/* @license-end */ diff --git a/screen_2color_8cpp.html b/screen_2color_8cpp.html new file mode 100644 index 000000000..bf55211d2 --- /dev/null +++ b/screen_2color_8cpp.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: color.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    color.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::literals
     
    + + + + +

    +Functions

    Color operator""_rgb (unsigned long long int combined)
     Creates a color from a combined hex RGB representation, e.g. 0x808000_rgb.
     
    +
    +
    + + + + + diff --git a/screen_2color_8cpp.js b/screen_2color_8cpp.js new file mode 100644 index 000000000..11393ef5a --- /dev/null +++ b/screen_2color_8cpp.js @@ -0,0 +1,4 @@ +var screen_2color_8cpp = +[ + [ "operator\"\"_rgb", "screen_2color_8cpp.html#a66d988ecc082819b1671ee2bbadebccd", null ] +]; \ No newline at end of file diff --git a/screen_2color_8cpp_source.html b/screen_2color_8cpp_source.html new file mode 100644 index 000000000..1e3d6a3c4 --- /dev/null +++ b/screen_2color_8cpp_source.html @@ -0,0 +1,552 @@ + + + + + + + + +FTXUI: color.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen/color.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6#include <array> // for array
    +
    7#include <cmath>
    +
    8#include <cstdint>
    +
    9#include <string>
    +
    10
    +
    11#include "ftxui/screen/color_info.hpp" // for GetColorInfo, ColorInfo
    +
    12#include "ftxui/screen/terminal.hpp" // for ColorSupport, Color, Palette256, TrueColor
    +
    13
    +
    14namespace ftxui {
    +
    15namespace {
    +
    16const std::array<const char*, 33> palette16code = {
    +
    17 "30", "40", //
    +
    18 "31", "41", //
    +
    19 "32", "42", //
    +
    20 "33", "43", //
    +
    21 "34", "44", //
    +
    22 "35", "45", //
    +
    23 "36", "46", //
    +
    24 "37", "47", //
    +
    25 "90", "100", //
    +
    26 "91", "101", //
    +
    27 "92", "102", //
    +
    28 "93", "103", //
    +
    29 "94", "104", //
    +
    30 "95", "105", //
    +
    31 "96", "106", //
    +
    32 "97", "107", //
    +
    33};
    +
    34
    +
    35} // namespace
    +
    36
    +
    +
    37bool Color::operator==(const Color& rhs) const {
    +
    38 return red_ == rhs.red_ && green_ == rhs.green_ && blue_ == rhs.blue_ &&
    +
    39 type_ == rhs.type_;
    +
    40}
    +
    +
    41
    +
    +
    42bool Color::operator!=(const Color& rhs) const {
    +
    43 return !operator==(rhs);
    +
    44}
    +
    +
    45
    +
    +
    46std::string Color::Print(bool is_background_color) const {
    +
    47 if (is_background_color) {
    +
    48 switch (type_) {
    +
    49 case ColorType::Palette1:
    +
    50 return "49";
    +
    51 case ColorType::Palette16:
    +
    52 return palette16code[2 * red_ + 1]; // NOLINT
    +
    53 case ColorType::Palette256:
    +
    54 return "48;5;" + std::to_string(red_);
    +
    55 case ColorType::TrueColor:
    +
    56 return "48;2;" + std::to_string(red_) + ";" + std::to_string(green_) +
    +
    57 ";" + std::to_string(blue_);
    +
    58 }
    +
    59 } else {
    +
    60 switch (type_) {
    +
    61 case ColorType::Palette1:
    +
    62 return "39";
    +
    63 case ColorType::Palette16:
    +
    64 return palette16code[2 * red_]; // NOLINT
    +
    65 case ColorType::Palette256:
    +
    66 return "38;5;" + std::to_string(red_);
    +
    67 case ColorType::TrueColor:
    +
    68 return "38;2;" + std::to_string(red_) + ";" + std::to_string(green_) +
    +
    69 ";" + std::to_string(blue_);
    +
    70 }
    +
    71 }
    +
    72 // NOTREACHED();
    +
    73 return "";
    +
    74}
    +
    +
    75
    +
    76/// @brief Build a transparent color.
    +
    77Color::Color() = default;
    +
    78
    +
    79/// @brief Build a transparent color.
    +
    80Color::Color(Palette1 /*value*/) : Color() {}
    +
    81
    +
    82/// @brief Build a color using the Palette16 colors.
    +
    + +
    84 : type_(ColorType::Palette16), red_(index), alpha_(255) {}
    +
    +
    85
    +
    86/// @brief Build a color using Palette256 colors.
    +
    + +
    88 : type_(ColorType::Palette256), red_(index), alpha_(255) {
    +
    89 if (Terminal::ColorSupport() >= Terminal::Color::Palette256) {
    +
    90 return;
    +
    91 }
    +
    92 type_ = ColorType::Palette16;
    + +
    94}
    +
    +
    95
    +
    96/// @brief Build a Color from its RGB representation.
    +
    97/// https://en.wikipedia.org/wiki/RGB_color_model
    +
    98///
    +
    99/// @param red The quantity of red [0,255]
    +
    100/// @param green The quantity of green [0,255]
    +
    101/// @param blue The quantity of blue [0,255]
    +
    102/// @param alpha The quantity of alpha [0,255]
    +
    +
    103Color::Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
    +
    104 : type_(ColorType::TrueColor),
    +
    105 red_(red),
    +
    106 green_(green),
    +
    107 blue_(blue),
    +
    108 alpha_(alpha) {
    +
    109 if (Terminal::ColorSupport() == Terminal::Color::TrueColor) {
    +
    110 return;
    +
    111 }
    +
    112
    +
    113 // Find the closest Color from the database:
    +
    114 const int max_distance = 256 * 256 * 3;
    +
    115 int closest = max_distance;
    +
    116 int best = 0;
    +
    117 const int database_begin = 16;
    +
    118 const int database_end = 256;
    +
    119 for (int i = database_begin; i < database_end; ++i) {
    +
    120 const ColorInfo color_info = GetColorInfo(Color::Palette256(i));
    +
    121 const int dr = color_info.red - red;
    +
    122 const int dg = color_info.green - green;
    +
    123 const int db = color_info.blue - blue;
    +
    124 const int dist = dr * dr + dg * dg + db * db;
    +
    125 if (closest > dist) {
    +
    126 closest = dist;
    +
    127 best = i;
    +
    128 }
    +
    129 }
    +
    130
    +
    131 if (Terminal::ColorSupport() == Terminal::Color::Palette256) {
    +
    132 type_ = ColorType::Palette256;
    +
    133 red_ = best;
    +
    134 } else {
    +
    135 type_ = ColorType::Palette16;
    + +
    137 }
    +
    138}
    +
    +
    139
    +
    140/// @brief Build a Color from its RGB representation.
    +
    141/// https://en.wikipedia.org/wiki/RGB_color_model
    +
    142///
    +
    143/// @param red The quantity of red [0,255]
    +
    144/// @param green The quantity of green [0,255]
    +
    145/// @param blue The quantity of blue [0,255]
    +
    146// static
    +
    +
    147Color Color::RGB(uint8_t red, uint8_t green, uint8_t blue) {
    +
    148 return RGBA(red, green, blue, 255);
    +
    149}
    +
    +
    150
    +
    151/// @brief Build a Color from its RGBA representation.
    +
    152/// https://en.wikipedia.org/wiki/RGB_color_model
    +
    153/// @param red The quantity of red [0,255]
    +
    154/// @param green The quantity of green [0,255]
    +
    155/// @param blue The quantity of blue [0,255]
    +
    156/// @param alpha The quantity of alpha [0,255]
    +
    157/// @see Color::RGB
    +
    158// static
    +
    +
    159Color Color::RGBA(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha) {
    +
    160 return {red, green, blue, alpha};
    +
    161}
    +
    +
    162
    +
    163/// @brief Build a Color from its HSV representation.
    +
    164/// https://en.wikipedia.org/wiki/HSL_and_HSV
    +
    165///
    +
    166/// @param h The hue of the color [0,255]
    +
    167/// @param s The "colorfulness" [0,255].
    +
    168/// @param v The "Lightness" [0,255]
    +
    169/// @param alpha The quantity of alpha [0,255]
    +
    170// static
    +
    +
    171Color Color::HSVA(uint8_t h, uint8_t s, uint8_t v, uint8_t alpha) {
    +
    172 uint8_t region = h / 43; // NOLINT
    +
    173 uint8_t remainder = (h - (region * 43)) * 6; // NOLINT
    +
    174 uint8_t p = (v * (255 - s)) >> 8; // NOLINT
    +
    175 uint8_t q = (v * (255 - ((s * remainder) >> 8))) >> 8; // NOLINT
    +
    176 uint8_t t = (v * (255 - ((s * (255 - remainder)) >> 8))) >> 8; // NOLINT
    +
    177
    +
    178 // clang-format off
    +
    179 switch (region) { // NOLINT
    +
    180 case 0: return Color(v,t,p, alpha); // NOLINT
    +
    181 case 1: return Color(q,v,p, alpha); // NOLINT
    +
    182 case 2: return Color(p,v,t, alpha); // NOLINT
    +
    183 case 3: return Color(p,q,v, alpha); // NOLINT
    +
    184 case 4: return Color(t,p,v, alpha); // NOLINT
    +
    185 case 5: return Color(v,p,q, alpha); // NOLINT
    +
    186 } // NOLINT
    +
    187 // clang-format on
    +
    188 return {0, 0, 0, alpha};
    +
    189}
    +
    +
    190
    +
    191/// @brief Build a Color from its HSV representation.
    +
    192/// https://en.wikipedia.org/wiki/HSL_and_HSV
    +
    193///
    +
    194/// @param h The hue of the color [0,255]
    +
    195/// @param s The "colorfulness" [0,255].
    +
    196/// @param v The "Lightness" [0,255]
    +
    197// static
    +
    +
    198Color Color::HSV(uint8_t h, uint8_t s, uint8_t v) {
    +
    199 return HSVA(h, s, v, 255);
    +
    200}
    +
    +
    201
    +
    202// static
    +
    +
    203Color Color::Interpolate(float t, const Color& a, const Color& b) {
    +
    204 if (a.type_ == ColorType::Palette1 || //
    +
    205 b.type_ == ColorType::Palette1) {
    +
    206 if (t < 0.5F) { // NOLINT
    +
    207 return a;
    +
    208 } else {
    +
    209 return b;
    +
    210 }
    +
    211 }
    +
    212
    +
    213 auto get_color = [](const Color& color, //
    +
    214 uint8_t* red, uint8_t* green, uint8_t* blue) {
    +
    215 switch (color.type_) {
    +
    216 case ColorType::Palette1: {
    +
    217 return;
    +
    218 }
    +
    219
    +
    220 case ColorType::Palette16: {
    +
    221 const ColorInfo info = GetColorInfo(Color::Palette16(color.red_));
    +
    222 *red = info.red;
    +
    223 *green = info.green;
    +
    224 *blue = info.blue;
    +
    225 return;
    +
    226 }
    +
    227
    +
    228 case ColorType::Palette256: {
    +
    229 const ColorInfo info = GetColorInfo(Color::Palette256(color.red_));
    +
    230 *red = info.red;
    +
    231 *green = info.green;
    +
    232 *blue = info.blue;
    +
    233 return;
    +
    234 }
    +
    235
    +
    236 case ColorType::TrueColor:
    +
    237 default: {
    +
    238 *red = color.red_;
    +
    239 *green = color.green_;
    +
    240 *blue = color.blue_;
    +
    241 return;
    +
    242 }
    +
    243 }
    +
    244 };
    +
    245
    +
    246 uint8_t a_r = 0;
    +
    247 uint8_t a_g = 0;
    +
    248 uint8_t a_b = 0;
    +
    249 uint8_t b_r = 0;
    +
    250 uint8_t b_g = 0;
    +
    251 uint8_t b_b = 0;
    +
    252 get_color(a, &a_r, &a_g, &a_b);
    +
    253 get_color(b, &b_r, &b_g, &b_b);
    +
    254
    +
    255 // Gamma correction:
    +
    256 // https://en.wikipedia.org/wiki/Gamma_correction
    +
    257 auto interp = [t](uint8_t a_u, uint8_t b_u) {
    +
    258 constexpr float gamma = 2.2F;
    +
    259 const float a_f = powf(a_u, gamma);
    +
    260 const float b_f = powf(b_u, gamma);
    +
    261 const float c_f = a_f * (1.0F - t) + //
    +
    262 b_f * t;
    +
    263 return static_cast<uint8_t>(powf(c_f, 1.F / gamma));
    +
    264 };
    +
    265 return Color::RGB(interp(a_r, b_r), //
    +
    266 interp(a_g, b_g), //
    +
    267 interp(a_b, b_b)); //
    +
    268}
    +
    +
    269
    +
    270/// @brief Blend two colors together using the alpha channel.
    +
    271// static
    +
    +
    272Color Color::Blend(const Color& lhs, const Color& rhs) {
    +
    273 Color out = Interpolate(float(rhs.alpha_) / 255.F, lhs, rhs);
    +
    274 out.alpha_ = lhs.alpha_ + rhs.alpha_ - lhs.alpha_ * rhs.alpha_ / 255;
    +
    275 return out;
    +
    276}
    +
    +
    277
    +
    278inline namespace literals {
    +
    279
    +
    +
    280Color operator""_rgb(unsigned long long int combined) {
    +
    281 // assert(combined <= 0xffffffU);
    +
    282 auto const red = static_cast<uint8_t>(combined >> 16U);
    +
    283 auto const green = static_cast<uint8_t>(combined >> 8U);
    +
    284 auto const blue = static_cast<uint8_t>(combined);
    +
    285 return {red, green, blue};
    +
    286}
    +
    +
    287
    +
    288} // namespace literals
    +
    289
    +
    290} // namespace ftxui
    + + +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Color()
    Build a transparent color.
    +
    static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value)
    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
    +
    static Color RGBA(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
    Build a Color from its RGBA representation. https://en.wikipedia.org/wiki/RGB_color_model.
    + +
    static Color Blend(const Color &lhs, const Color &rhs)
    Blend two colors together using the alpha channel.
    +
    bool operator!=(const Color &rhs) const
    + +
    bool operator==(const Color &rhs) const
    + + +
    static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
    Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
    + +
    std::string Print(bool is_background_color) const
    + + +
    static Color Interpolate(float t, const Color &a, const Color &b)
    +
    static Color HSVA(uint8_t hue, uint8_t saturation, uint8_t value, uint8_t alpha)
    Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    + + +
    ColorInfo is a structure that contains information about the terminal color palette.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    ColorInfo GetColorInfo(Color::Palette256 index)
    + +
    +
    + + + + + diff --git a/screen_2deprecated_8cppm.html b/screen_2deprecated_8cppm.html new file mode 100644 index 000000000..f471b2691 --- /dev/null +++ b/screen_2deprecated_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: deprecated.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    deprecated.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/screen_2deprecated_8cppm_source.html b/screen_2deprecated_8cppm_source.html new file mode 100644 index 000000000..fa0989bf1 --- /dev/null +++ b/screen_2deprecated_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: deprecated.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen/deprecated.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen.deprecated
    +
    2/// @brief Module file for the deprecated parts of the Screen module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.screen.deprecated;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::wchar_width;
    +
    16 using ftxui::wstring_width;
    +
    17}
    +
    Module file for the deprecated parts of the Screen module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/screen_2deprecated_8hpp.html b/screen_2deprecated_8hpp.html new file mode 100644 index 000000000..3fa237368 --- /dev/null +++ b/screen_2deprecated_8hpp.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: deprecated.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    deprecated.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + +

    +Functions

    int wchar_width (wchar_t)
     
    int wstring_width (const std::wstring &)
     
    +
    +
    + + + + + diff --git a/screen_2deprecated_8hpp.js b/screen_2deprecated_8hpp.js new file mode 100644 index 000000000..ce5765e44 --- /dev/null +++ b/screen_2deprecated_8hpp.js @@ -0,0 +1,5 @@ +var screen_2deprecated_8hpp = +[ + [ "wchar_width", "screen_2deprecated_8hpp.html#a1bb4947f62228380f5c415f69b34021f", null ], + [ "wstring_width", "screen_2deprecated_8hpp.html#adedb4aa528ad2aef48177dea69ca7a9d", null ] +]; \ No newline at end of file diff --git a/screen_2deprecated_8hpp_source.html b/screen_2deprecated_8hpp_source.html new file mode 100644 index 000000000..9471d2742 --- /dev/null +++ b/screen_2deprecated_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: deprecated.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen/deprecated.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_DEPRECATED_HPP
    +
    5#define FTXUI_SCREEN_DEPRECATED_HPP
    +
    6
    +
    7#include <string>
    +
    8
    +
    9namespace ftxui {
    +
    10int wchar_width(wchar_t);
    +
    11int wstring_width(const std::wstring&);
    +
    12} // namespace ftxui
    +
    13
    +
    14#endif // FTXUI_SCREEN_DEPRECATED_HPP
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    int wchar_width(wchar_t)
    Definition string.cpp:1314
    +
    int wstring_width(const std::wstring &)
    Definition string.cpp:1318
    +
    +
    + + + + + diff --git a/screen_2screen_8cppm.html b/screen_2screen_8cppm.html new file mode 100644 index 000000000..e3d530344 --- /dev/null +++ b/screen_2screen_8cppm.html @@ -0,0 +1,223 @@ + + + + + + + + +FTXUI: screen.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    screen.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::Dimension
     Define how the Screen's dimensions should look like.
     
    +
    +
    + + + + + diff --git a/screen_2screen_8cppm_source.html b/screen_2screen_8cppm_source.html new file mode 100644 index 000000000..97a42f8ad --- /dev/null +++ b/screen_2screen_8cppm_source.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: screen.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen/screen.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen.screen
    +
    2/// @brief Module file for the Screen class of the Screen module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.screen.screen;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 namespace Dimension {
    +
    16 using ftxui::Dimension::Fixed;
    +
    17 using ftxui::Dimension::Full;
    +
    18 }
    +
    19
    +
    20 using ftxui::Image;
    +
    21 using ftxui::Screen;
    +
    22}
    +
    A rectangular grid of Pixel.
    Definition image.hpp:17
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Module file for the Screen class of the Screen module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/screen_8cpp.html b/screen_8cpp.html new file mode 100644 index 000000000..20c7f8293 --- /dev/null +++ b/screen_8cpp.html @@ -0,0 +1,350 @@ + + + + + + + + +FTXUI: screen.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    screen.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + +

    +Macros

    #define FTXUI_UNLIKELY(x)
     
    #define FTXUI_LIKELY(x)
     
    +

    Macro Definition Documentation

    + +

    ◆ FTXUI_UNLIKELY

    + +
    +
    + + + + + + + +
    #define FTXUI_UNLIKELY( x)
    +
    +Value:
    (x)
    +
    +

    Definition at line 31 of file screen.cpp.

    + +
    +
    + +

    ◆ FTXUI_LIKELY

    + +
    +
    + + + + + + + +
    #define FTXUI_LIKELY( x)
    +
    +Value:
    (x)
    +
    +

    Definition at line 39 of file screen.cpp.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ left

    + +
    +
    + + + + +
    std::uint8_t left
    +
    + +

    Definition at line 130 of file screen.cpp.

    + +
    +
    + +

    ◆ top

    + +
    +
    + + + + +
    std::uint8_t top
    +
    + +

    Definition at line 131 of file screen.cpp.

    + +
    +
    + +

    ◆ right

    + +
    +
    + + + + +
    std::uint8_t right
    +
    + +

    Definition at line 132 of file screen.cpp.

    + +
    +
    + +

    ◆ down

    + +
    +
    + + + + +
    std::uint8_t down
    +
    + +

    Definition at line 133 of file screen.cpp.

    + +
    +
    + +

    ◆ round

    + +
    +
    + + + + +
    std::uint8_t round
    +
    + +

    Definition at line 134 of file screen.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/screen_8cpp.js b/screen_8cpp.js new file mode 100644 index 000000000..cec967ec1 --- /dev/null +++ b/screen_8cpp.js @@ -0,0 +1,10 @@ +var screen_8cpp = +[ + [ "FTXUI_UNLIKELY", "screen_8cpp.html#a6048239c71b0f0be5c9d01ba721d7dd9", null ], + [ "FTXUI_LIKELY", "screen_8cpp.html#a3350a75634f7952b2795de433b111f0e", null ], + [ "left", "screen_8cpp.html#a972107f15f3c0c099eb9fd605e7f51c6", null ], + [ "top", "screen_8cpp.html#a495e1456dc6a7df7638b2c507c756a24", null ], + [ "right", "screen_8cpp.html#aa4b74e56e675912bbc06504407fc7a46", null ], + [ "down", "screen_8cpp.html#a9cdd0454d64ec151b59fdd7d22ed505a", null ], + [ "round", "screen_8cpp.html#ad20ff2177c37ddb2e308815c71d4be81", null ] +]; \ No newline at end of file diff --git a/screen_8cpp_source.html b/screen_8cpp_source.html new file mode 100644 index 000000000..7d7543d92 --- /dev/null +++ b/screen_8cpp_source.html @@ -0,0 +1,842 @@ + + + + + + + + +FTXUI: screen.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <cstddef> // for size_t
    +
    5#include <cstdint>
    +
    6#include <iostream> // for operator<<, stringstream, basic_ostream, flush, cout, ostream
    +
    7#include <limits>
    +
    8#include <map> // for _Rb_tree_const_iterator, map, operator!=, operator==
    +
    9#include <sstream> // IWYU pragma: keep
    +
    10#include <utility> // for pair
    +
    11
    +
    12#include "ftxui/screen/image.hpp" // for Image
    +
    13#include "ftxui/screen/pixel.hpp" // for Pixel
    + +
    15#include "ftxui/screen/string.hpp" // for string_width
    +
    16#include "ftxui/screen/terminal.hpp" // for Dimensions, Size
    +
    17
    +
    18#if defined(_WIN32)
    +
    19#define WIN32_LEAN_AND_MEAN
    +
    20#ifndef NOMINMAX
    +
    21#define NOMINMAX
    +
    22#endif
    +
    23#include <windows.h>
    +
    24#endif
    +
    25
    +
    26// Macro for hinting that an expression is likely to be false.
    +
    27#if !defined(FTXUI_UNLIKELY)
    +
    28#if defined(COMPILER_GCC) || defined(__clang__)
    +
    29#define FTXUI_UNLIKELY(x) __builtin_expect(!!(x), 0)
    +
    30#else
    +
    31#define FTXUI_UNLIKELY(x) (x)
    +
    32#endif // defined(COMPILER_GCC)
    +
    33#endif // !defined(FTXUI_UNLIKELY)
    +
    34
    +
    35#if !defined(FTXUI_LIKELY)
    +
    36#if defined(COMPILER_GCC) || defined(__clang__)
    +
    37#define FTXUI_LIKELY(x) __builtin_expect(!!(x), 1)
    +
    38#else
    +
    39#define FTXUI_LIKELY(x) (x)
    +
    40#endif // defined(COMPILER_GCC)
    +
    41#endif // !defined(FTXUI_LIKELY)
    +
    42
    +
    43namespace ftxui {
    +
    44
    +
    45namespace {
    +
    46
    +
    47#if defined(_WIN32)
    +
    48void WindowsEmulateVT100Terminal() {
    +
    49 static bool done = false;
    +
    50 if (done) {
    +
    51 return;
    +
    52 }
    +
    53 done = true;
    +
    54
    +
    55 // Enable VT processing on stdout and stdin
    +
    56 auto stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE);
    +
    57
    +
    58 DWORD out_mode = 0;
    +
    59 GetConsoleMode(stdout_handle, &out_mode);
    +
    60
    +
    61 // https://docs.microsoft.com/en-us/windows/console/setconsolemode
    +
    62 const int enable_virtual_terminal_processing = 0x0004;
    +
    63 const int disable_newline_auto_return = 0x0008;
    +
    64 out_mode |= enable_virtual_terminal_processing;
    +
    65 out_mode |= disable_newline_auto_return;
    +
    66
    +
    67 SetConsoleMode(stdout_handle, out_mode);
    +
    68}
    +
    69#endif
    +
    70
    +
    71// NOLINTNEXTLINE(readability-function-cognitive-complexity)
    +
    72void UpdatePixelStyle(const Screen* screen,
    +
    73 std::stringstream& ss,
    +
    74 const Pixel& prev,
    +
    75 const Pixel& next) {
    +
    76 // See https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
    +
    77 if (FTXUI_UNLIKELY(next.hyperlink != prev.hyperlink)) {
    +
    78 ss << "\x1B]8;;" << screen->Hyperlink(next.hyperlink) << "\x1B\\";
    +
    79 }
    +
    80
    +
    81 // Bold
    +
    82 if (FTXUI_UNLIKELY((next.bold ^ prev.bold) | (next.dim ^ prev.dim))) {
    +
    83 // BOLD_AND_DIM_RESET:
    +
    84 ss << ((prev.bold && !next.bold) || (prev.dim && !next.dim) ? "\x1B[22m"
    +
    85 : "");
    +
    86 ss << (next.bold ? "\x1B[1m" : ""); // BOLD_SET
    +
    87 ss << (next.dim ? "\x1B[2m" : ""); // DIM_SET
    +
    88 }
    +
    89
    +
    90 // Underline
    +
    91 if (FTXUI_UNLIKELY(next.underlined != prev.underlined ||
    +
    92 next.underlined_double != prev.underlined_double)) {
    +
    93 ss << (next.underlined ? "\x1B[4m" // UNDERLINE
    +
    94 : next.underlined_double ? "\x1B[21m" // UNDERLINE_DOUBLE
    +
    95 : "\x1B[24m"); // UNDERLINE_RESET
    +
    96 }
    +
    97
    +
    98 // Blink
    +
    99 if (FTXUI_UNLIKELY(next.blink != prev.blink)) {
    +
    100 ss << (next.blink ? "\x1B[5m" // BLINK_SET
    +
    101 : "\x1B[25m"); // BLINK_RESET
    +
    102 }
    +
    103
    +
    104 // Inverted
    +
    105 if (FTXUI_UNLIKELY(next.inverted != prev.inverted)) {
    +
    106 ss << (next.inverted ? "\x1B[7m" // INVERTED_SET
    +
    107 : "\x1B[27m"); // INVERTED_RESET
    +
    108 }
    +
    109
    +
    110 // Italics
    +
    111 if (FTXUI_UNLIKELY(next.italic != prev.italic)) {
    +
    112 ss << (next.italic ? "\x1B[3m" // ITALIC_SET
    +
    113 : "\x1B[23m"); // ITALIC_RESET
    +
    114 }
    +
    115
    +
    116 // StrikeThrough
    +
    117 if (FTXUI_UNLIKELY(next.strikethrough != prev.strikethrough)) {
    +
    118 ss << (next.strikethrough ? "\x1B[9m" // CROSSED_OUT
    +
    119 : "\x1B[29m"); // CROSSED_OUT_RESET
    +
    120 }
    +
    121
    +
    122 if (FTXUI_UNLIKELY(next.foreground_color != prev.foreground_color ||
    +
    123 next.background_color != prev.background_color)) {
    +
    124 ss << "\x1B[" + next.foreground_color.Print(false) + "m";
    +
    125 ss << "\x1B[" + next.background_color.Print(true) + "m";
    +
    126 }
    +
    127}
    +
    128
    +
    129struct TileEncoding {
    +
    130 std::uint8_t left : 2;
    +
    131 std::uint8_t top : 2;
    +
    132 std::uint8_t right : 2;
    +
    133 std::uint8_t down : 2;
    +
    134 std::uint8_t round : 1;
    +
    135
    +
    136 // clang-format off
    +
    137 bool operator<(const TileEncoding& other) const {
    +
    138 if (left < other.left) { return true; }
    +
    139 if (left > other.left) { return false; }
    +
    140 if (top < other.top) { return true; }
    +
    141 if (top > other.top) { return false; }
    +
    142 if (right < other.right) { return true; }
    +
    143 if (right > other.right) { return false; }
    +
    144 if (down < other.down) { return true; }
    +
    145 if (down > other.down) { return false; }
    +
    146 if (round < other.round) { return true; }
    +
    147 if (round > other.round) { return false; }
    +
    148 return false;
    +
    149 }
    +
    150 // clang-format on
    +
    151};
    +
    152
    +
    153// clang-format off
    +
    154const std::map<std::string, TileEncoding> tile_encoding = { // NOLINT
    +
    155 {"─", {1, 0, 1, 0, 0}},
    +
    156 {"━", {2, 0, 2, 0, 0}},
    +
    157 {"╍", {2, 0, 2, 0, 0}},
    +
    158
    +
    159 {"│", {0, 1, 0, 1, 0}},
    +
    160 {"┃", {0, 2, 0, 2, 0}},
    +
    161 {"╏", {0, 2, 0, 2, 0}},
    +
    162
    +
    163 {"┌", {0, 0, 1, 1, 0}},
    +
    164 {"┍", {0, 0, 2, 1, 0}},
    +
    165 {"┎", {0, 0, 1, 2, 0}},
    +
    166 {"┏", {0, 0, 2, 2, 0}},
    +
    167
    +
    168 {"┐", {1, 0, 0, 1, 0}},
    +
    169 {"┑", {2, 0, 0, 1, 0}},
    +
    170 {"┒", {1, 0, 0, 2, 0}},
    +
    171 {"┓", {2, 0, 0, 2, 0}},
    +
    172
    +
    173 {"└", {0, 1, 1, 0, 0}},
    +
    174 {"┕", {0, 1, 2, 0, 0}},
    +
    175 {"┖", {0, 2, 1, 0, 0}},
    +
    176 {"┗", {0, 2, 2, 0, 0}},
    +
    177
    +
    178 {"┘", {1, 1, 0, 0, 0}},
    +
    179 {"┙", {2, 1, 0, 0, 0}},
    +
    180 {"┚", {1, 2, 0, 0, 0}},
    +
    181 {"┛", {2, 2, 0, 0, 0}},
    +
    182
    +
    183 {"├", {0, 1, 1, 1, 0}},
    +
    184 {"┝", {0, 1, 2, 1, 0}},
    +
    185 {"┞", {0, 2, 1, 1, 0}},
    +
    186 {"┟", {0, 1, 1, 2, 0}},
    +
    187 {"┠", {0, 2, 1, 2, 0}},
    +
    188 {"┡", {0, 2, 2, 1, 0}},
    +
    189 {"┢", {0, 1, 2, 2, 0}},
    +
    190 {"┣", {0, 2, 2, 2, 0}},
    +
    191
    +
    192 {"┤", {1, 1, 0, 1, 0}},
    +
    193 {"┥", {2, 1, 0, 1, 0}},
    +
    194 {"┦", {1, 2, 0, 1, 0}},
    +
    195 {"┧", {1, 1, 0, 2, 0}},
    +
    196 {"┨", {1, 2, 0, 2, 0}},
    +
    197 {"┩", {2, 2, 0, 1, 0}},
    +
    198 {"┪", {2, 1, 0, 2, 0}},
    +
    199 {"┫", {2, 2, 0, 2, 0}},
    +
    200
    +
    201 {"┬", {1, 0, 1, 1, 0}},
    +
    202 {"┭", {2, 0, 1, 1, 0}},
    +
    203 {"┮", {1, 0, 2, 1, 0}},
    +
    204 {"┯", {2, 0, 2, 1, 0}},
    +
    205 {"┰", {1, 0, 1, 2, 0}},
    +
    206 {"┱", {2, 0, 1, 2, 0}},
    +
    207 {"┲", {1, 0, 2, 2, 0}},
    +
    208 {"┳", {2, 0, 2, 2, 0}},
    +
    209
    +
    210 {"┴", {1, 1, 1, 0, 0}},
    +
    211 {"┵", {2, 1, 1, 0, 0}},
    +
    212 {"┶", {1, 1, 2, 0, 0}},
    +
    213 {"┷", {2, 1, 2, 0, 0}},
    +
    214 {"┸", {1, 2, 1, 0, 0}},
    +
    215 {"┹", {2, 2, 1, 0, 0}},
    +
    216 {"┺", {1, 2, 2, 0, 0}},
    +
    217 {"┻", {2, 2, 2, 0, 0}},
    +
    218
    +
    219 {"┼", {1, 1, 1, 1, 0}},
    +
    220 {"┽", {2, 1, 1, 1, 0}},
    +
    221 {"┾", {1, 1, 2, 1, 0}},
    +
    222 {"┿", {2, 1, 2, 1, 0}},
    +
    223 {"╀", {1, 2, 1, 1, 0}},
    +
    224 {"╁", {1, 1, 1, 2, 0}},
    +
    225 {"╂", {1, 2, 1, 2, 0}},
    +
    226 {"╃", {2, 2, 1, 1, 0}},
    +
    227 {"╄", {1, 2, 2, 1, 0}},
    +
    228 {"╅", {2, 1, 1, 2, 0}},
    +
    229 {"╆", {1, 1, 2, 2, 0}},
    +
    230 {"╇", {2, 2, 2, 1, 0}},
    +
    231 {"╈", {2, 1, 2, 2, 0}},
    +
    232 {"╉", {2, 2, 1, 2, 0}},
    +
    233 {"╊", {1, 2, 2, 2, 0}},
    +
    234 {"╋", {2, 2, 2, 2, 0}},
    +
    235
    +
    236 {"═", {3, 0, 3, 0, 0}},
    +
    237 {"║", {0, 3, 0, 3, 0}},
    +
    238
    +
    239 {"╒", {0, 0, 3, 1, 0}},
    +
    240 {"╓", {0, 0, 1, 3, 0}},
    +
    241 {"╔", {0, 0, 3, 3, 0}},
    +
    242
    +
    243 {"╕", {3, 0, 0, 1, 0}},
    +
    244 {"╖", {1, 0, 0, 3, 0}},
    +
    245 {"╗", {3, 0, 0, 3, 0}},
    +
    246
    +
    247 {"╘", {0, 1, 3, 0, 0}},
    +
    248 {"╙", {0, 3, 1, 0, 0}},
    +
    249 {"╚", {0, 3, 3, 0, 0}},
    +
    250
    +
    251 {"╛", {3, 1, 0, 0, 0}},
    +
    252 {"╜", {1, 3, 0, 0, 0}},
    +
    253 {"╝", {3, 3, 0, 0, 0}},
    +
    254
    +
    255 {"╞", {0, 1, 3, 1, 0}},
    +
    256 {"╟", {0, 3, 1, 3, 0}},
    +
    257 {"╠", {0, 3, 3, 3, 0}},
    +
    258
    +
    259 {"╡", {3, 1, 0, 1, 0}},
    +
    260 {"╢", {1, 3, 0, 3, 0}},
    +
    261 {"╣", {3, 3, 0, 3, 0}},
    +
    262
    +
    263 {"╤", {3, 0, 3, 1, 0}},
    +
    264 {"╥", {1, 0, 1, 3, 0}},
    +
    265 {"╦", {3, 0, 3, 3, 0}},
    +
    266
    +
    267 {"╧", {3, 1, 3, 0, 0}},
    +
    268 {"╨", {1, 3, 1, 0, 0}},
    +
    269 {"╩", {3, 3, 3, 0, 0}},
    +
    270
    +
    271 {"╪", {3, 1, 3, 1, 0}},
    +
    272 {"╫", {1, 3, 1, 3, 0}},
    +
    273 {"╬", {3, 3, 3, 3, 0}},
    +
    274
    +
    275 {"╭", {0, 0, 1, 1, 1}},
    +
    276 {"╮", {1, 0, 0, 1, 1}},
    +
    277 {"╯", {1, 1, 0, 0, 1}},
    +
    278 {"╰", {0, 1, 1, 0, 1}},
    +
    279
    +
    280 {"╴", {1, 0, 0, 0, 0}},
    +
    281 {"╵", {0, 1, 0, 0, 0}},
    +
    282 {"╶", {0, 0, 1, 0, 0}},
    +
    283 {"╷", {0, 0, 0, 1, 0}},
    +
    284
    +
    285 {"╸", {2, 0, 0, 0, 0}},
    +
    286 {"╹", {0, 2, 0, 0, 0}},
    +
    287 {"╺", {0, 0, 2, 0, 0}},
    +
    288 {"╻", {0, 0, 0, 2, 0}},
    +
    289
    +
    290 {"╼", {1, 0, 2, 0, 0}},
    +
    291 {"╽", {0, 1, 0, 2, 0}},
    +
    292 {"╾", {2, 0, 1, 0, 0}},
    +
    293 {"╿", {0, 2, 0, 1, 0}},
    +
    294};
    +
    295// clang-format on
    +
    296
    +
    297template <class A, class B>
    +
    298std::map<B, A> InvertMap(const std::map<A, B> input) {
    +
    299 std::map<B, A> output;
    +
    300 for (const auto& it : input) {
    +
    301 output[it.second] = it.first;
    +
    302 }
    +
    303 return output;
    +
    304}
    +
    305
    +
    306const std::map<TileEncoding, std::string> tile_encoding_inverse = // NOLINT
    +
    307 InvertMap(tile_encoding);
    +
    308
    +
    309void UpgradeLeftRight(std::string& left, std::string& right) {
    +
    310 const auto it_left = tile_encoding.find(left);
    +
    311 if (it_left == tile_encoding.end()) {
    +
    312 return;
    +
    313 }
    +
    314 const auto it_right = tile_encoding.find(right);
    +
    315 if (it_right == tile_encoding.end()) {
    +
    316 return;
    +
    317 }
    +
    318
    +
    319 if (it_left->second.right == 0 && it_right->second.left != 0) {
    +
    320 TileEncoding encoding_left = it_left->second;
    +
    321 encoding_left.right = it_right->second.left;
    +
    322 const auto it_left_upgrade = tile_encoding_inverse.find(encoding_left);
    +
    323 if (it_left_upgrade != tile_encoding_inverse.end()) {
    +
    324 left = it_left_upgrade->second;
    +
    325 }
    +
    326 }
    +
    327
    +
    328 if (it_right->second.left == 0 && it_left->second.right != 0) {
    +
    329 TileEncoding encoding_right = it_right->second;
    +
    330 encoding_right.left = it_left->second.right;
    +
    331 const auto it_right_upgrade = tile_encoding_inverse.find(encoding_right);
    +
    332 if (it_right_upgrade != tile_encoding_inverse.end()) {
    +
    333 right = it_right_upgrade->second;
    +
    334 }
    +
    335 }
    +
    336}
    +
    337
    +
    338void UpgradeTopDown(std::string& top, std::string& down) {
    +
    339 const auto it_top = tile_encoding.find(top);
    +
    340 if (it_top == tile_encoding.end()) {
    +
    341 return;
    +
    342 }
    +
    343 const auto it_down = tile_encoding.find(down);
    +
    344 if (it_down == tile_encoding.end()) {
    +
    345 return;
    +
    346 }
    +
    347
    +
    348 if (it_top->second.down == 0 && it_down->second.top != 0) {
    +
    349 TileEncoding encoding_top = it_top->second;
    +
    350 encoding_top.down = it_down->second.top;
    +
    351 const auto it_top_down = tile_encoding_inverse.find(encoding_top);
    +
    352 if (it_top_down != tile_encoding_inverse.end()) {
    +
    353 top = it_top_down->second;
    +
    354 }
    +
    355 }
    +
    356
    +
    357 if (it_down->second.top == 0 && it_top->second.down != 0) {
    +
    358 TileEncoding encoding_down = it_down->second;
    +
    359 encoding_down.top = it_top->second.down;
    +
    360 const auto it_down_top = tile_encoding_inverse.find(encoding_down);
    +
    361 if (it_down_top != tile_encoding_inverse.end()) {
    +
    362 down = it_down_top->second;
    +
    363 }
    +
    364 }
    +
    365}
    +
    366
    +
    367bool ShouldAttemptAutoMerge(Pixel& pixel) {
    +
    368 return pixel.automerge && pixel.character.size() == 3;
    +
    369}
    +
    370
    +
    371} // namespace
    +
    372
    +
    373/// A fixed dimension.
    +
    374/// @see Fit
    +
    375/// @see Full
    +
    376Dimensions Dimension::Fixed(int v) {
    +
    377 return {v, v};
    +
    378}
    +
    379
    +
    380/// Use the terminal dimensions.
    +
    381/// @see Fixed
    +
    382/// @see Fit
    +
    383Dimensions Dimension::Full() {
    +
    384 return Terminal::Size();
    +
    385}
    +
    386
    +
    387// static
    +
    388/// Create a screen with the given dimension along the x-axis and y-axis.
    +
    + +
    390 return {width.dimx, height.dimy};
    +
    391}
    +
    +
    392
    +
    393// static
    +
    394/// Create a screen with the given dimension.
    +
    + +
    396 return {dimension.dimx, dimension.dimy};
    +
    397}
    +
    +
    398
    +
    +
    399Screen::Screen(int dimx, int dimy) : Image{dimx, dimy} {
    +
    400#if defined(_WIN32)
    +
    401 // The placement of this call is a bit weird, however we can assume that
    +
    402 // anybody who instantiates a Screen object eventually wants to output
    +
    403 // something to the console. If that is not the case, use an instance of Image
    +
    404 // instead. As we require UTF8 for all input/output operations we will just
    +
    405 // switch to UTF8 encoding here
    +
    406 SetConsoleOutputCP(CP_UTF8);
    +
    407 SetConsoleCP(CP_UTF8);
    +
    408 WindowsEmulateVT100Terminal();
    +
    409#endif
    +
    410}
    +
    +
    411
    +
    412/// Produce a std::string that can be used to print the Screen on the
    +
    413/// terminal.
    +
    414/// @note Don't forget to flush stdout. Alternatively, you can use
    +
    415/// Screen::Print();
    +
    +
    416std::string Screen::ToString() const {
    +
    417 std::stringstream ss;
    +
    418
    +
    419 const Pixel default_pixel;
    +
    420 const Pixel* previous_pixel_ref = &default_pixel;
    +
    421
    +
    422 for (int y = 0; y < dimy_; ++y) {
    +
    423 // New line in between two lines.
    +
    424 if (y != 0) {
    +
    425 UpdatePixelStyle(this, ss, *previous_pixel_ref, default_pixel);
    +
    426 previous_pixel_ref = &default_pixel;
    +
    427 ss << "\r\n";
    +
    428 }
    +
    429
    +
    430 // After printing a fullwith character, we need to skip the next cell.
    +
    431 bool previous_fullwidth = false;
    +
    432 for (const auto& pixel : pixels_[y]) {
    +
    433 if (!previous_fullwidth) {
    +
    434 UpdatePixelStyle(this, ss, *previous_pixel_ref, pixel);
    +
    435 previous_pixel_ref = &pixel;
    +
    436 if (pixel.character.empty()) {
    +
    437 ss << " ";
    +
    438 } else {
    +
    439 ss << pixel.character;
    +
    440 }
    +
    441 }
    +
    442 previous_fullwidth = (string_width(pixel.character) == 2);
    +
    443 }
    +
    444 }
    +
    445
    +
    446 // Reset the style to default:
    +
    447 UpdatePixelStyle(this, ss, *previous_pixel_ref, default_pixel);
    +
    448
    +
    449 return ss.str();
    +
    450}
    +
    +
    451
    +
    452// Print the Screen to the terminal.
    +
    +
    453void Screen::Print() const {
    +
    454 std::cout << ToString() << '\0' << std::flush;
    +
    455}
    +
    +
    456
    +
    457/// @brief Return a string to be printed in order to reset the cursor position
    +
    458/// to the beginning of the screen.
    +
    459///
    +
    460/// ```cpp
    +
    461/// std::string reset_position;
    +
    462/// while(true) {
    +
    463/// auto document = render();
    +
    464/// auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    465/// Render(screen, document);
    +
    466/// std::cout << reset_position << screen.ToString() << std::flush;
    +
    467/// reset_position = screen.ResetPosition();
    +
    468///
    +
    469/// using namespace std::chrono_literals;
    +
    470/// std::this_thread::sleep_for(0.01s);
    +
    471/// }
    +
    472/// ```
    +
    473///
    +
    474/// @return The string to print in order to reset the cursor position to the
    +
    475/// beginning.
    +
    +
    476std::string Screen::ResetPosition(bool clear) const {
    +
    477 std::stringstream ss;
    +
    478 if (clear) {
    +
    479 ss << "\r"; // MOVE_LEFT;
    +
    480 ss << "\x1b[2K"; // CLEAR_SCREEN;
    +
    481 for (int y = 1; y < dimy_; ++y) {
    +
    482 ss << "\x1B[1A"; // MOVE_UP;
    +
    483 ss << "\x1B[2K"; // CLEAR_LINE;
    +
    484 }
    +
    485 } else {
    +
    486 ss << "\r"; // MOVE_LEFT;
    +
    487 for (int y = 1; y < dimy_; ++y) {
    +
    488 ss << "\x1B[1A"; // MOVE_UP;
    +
    489 }
    +
    490 }
    +
    491 return ss.str();
    +
    492}
    +
    +
    493
    +
    494/// @brief Clear all the pixel from the screen.
    +
    + +
    496 Image::Clear();
    +
    497
    +
    498 cursor_.x = dimx_ - 1;
    +
    499 cursor_.y = dimy_ - 1;
    +
    500
    +
    501 hyperlinks_ = {
    +
    502 "",
    +
    503 };
    +
    504}
    +
    +
    505
    +
    506// clang-format off
    +
    + +
    508 // Merge box characters togethers.
    +
    509 for (int y = 0; y < dimy_; ++y) {
    +
    510 for (int x = 0; x < dimx_; ++x) {
    +
    511 // Box drawing character uses exactly 3 byte.
    +
    512 Pixel& cur = pixels_[y][x];
    +
    513 if (!ShouldAttemptAutoMerge(cur)) {
    +
    514 continue;
    +
    515 }
    +
    516
    +
    517 if (x > 0) {
    +
    518 Pixel& left = pixels_[y][x-1];
    +
    519 if (ShouldAttemptAutoMerge(left)) {
    +
    520 UpgradeLeftRight(left.character, cur.character);
    +
    521 }
    +
    522 }
    +
    523 if (y > 0) {
    +
    524 Pixel& top = pixels_[y-1][x];
    +
    525 if (ShouldAttemptAutoMerge(top)) {
    +
    526 UpgradeTopDown(top.character, cur.character);
    +
    527 }
    +
    528 }
    +
    529 }
    +
    530 }
    +
    531}
    +
    +
    532// clang-format on
    +
    533
    +
    +
    534std::uint8_t Screen::RegisterHyperlink(const std::string& link) {
    +
    535 for (std::size_t i = 0; i < hyperlinks_.size(); ++i) {
    +
    536 if (hyperlinks_[i] == link) {
    +
    537 return i;
    +
    538 }
    +
    539 }
    +
    540 if (hyperlinks_.size() == std::numeric_limits<std::uint8_t>::max()) {
    +
    541 return 0;
    +
    542 }
    +
    543 hyperlinks_.push_back(link);
    +
    544 return hyperlinks_.size() - 1;
    +
    545}
    +
    +
    546
    +
    +
    547const std::string& Screen::Hyperlink(std::uint8_t id) const {
    +
    548 if (id >= hyperlinks_.size()) {
    +
    549 return hyperlinks_[0];
    +
    550 }
    +
    551 return hyperlinks_[id];
    +
    552}
    +
    +
    553
    +
    554/// @brief Return the current selection style.
    +
    555/// @see SetSelectionStyle
    + +
    559
    +
    560/// @brief Set the current selection style.
    +
    561/// @see GetSelectionStyle
    +
    + +
    563 selection_style_ = std::move(decorator);
    +
    564}
    +
    +
    565
    +
    566} // namespace ftxui
    +
    std::function< void(Pixel &)> SelectionStyle
    Definition screen.hpp:74
    +
    void ApplyShader()
    Definition screen.cpp:507
    +
    const SelectionStyle & GetSelectionStyle() const
    Return the current selection style.
    Definition screen.cpp:556
    +
    const std::string & Hyperlink(uint8_t id) const
    Definition screen.cpp:547
    +
    std::string ToString() const
    Definition screen.cpp:416
    + +
    static Screen Create(Dimensions dimension)
    Create a screen with the given dimension.
    Definition screen.cpp:395
    +
    uint8_t RegisterHyperlink(const std::string &link)
    Definition screen.cpp:534
    + +
    std::string character
    Definition pixel.hpp:45
    +
    Screen(int dimx, int dimy)
    Definition screen.cpp:399
    + +
    std::string ResetPosition(bool clear=false) const
    Return a string to be printed in order to reset the cursor position to the beginning of the screen.
    Definition screen.cpp:476
    +
    Cursor cursor_
    Definition screen.hpp:79
    + +
    void Clear()
    Clear all the pixel from the screen.
    Definition screen.cpp:495
    +
    SelectionStyle selection_style_
    Definition screen.hpp:83
    +
    void SetSelectionStyle(SelectionStyle decorator)
    Set the current selection style.
    Definition screen.cpp:562
    +
    std::vector< std::string > hyperlinks_
    Definition screen.hpp:80
    +
    void Print() const
    Definition screen.cpp:453
    +
    std::vector< std::vector< Pixel > > pixels_
    Definition image.hpp:46
    +
    A rectangular grid of Pixel.
    Definition image.hpp:17
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Dimensions Size()
    Get the terminal size.
    Definition terminal.cpp:94
    +
    Dimensions is a structure that represents the size of the terminal.
    Definition terminal.hpp:11
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    + +
    Dimensions Fixed(int)
    +
    Dimensions Full()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    int string_width(const std::string &)
    Definition string.cpp:1331
    + +
    std::uint8_t top
    Definition screen.cpp:131
    +
    #define FTXUI_UNLIKELY(x)
    Definition screen.cpp:31
    +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t down
    Definition screen.cpp:133
    +
    std::uint8_t right
    Definition screen.cpp:132
    +
    std::uint8_t round
    Definition screen.cpp:134
    + + + + + +
    +
    + + + + + diff --git a/screen_8cppm.html b/screen_8cppm.html new file mode 100644 index 000000000..c554a23c8 --- /dev/null +++ b/screen_8cppm.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: screen.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen.cppm File Reference
    +
    + +
    + + + + + diff --git a/screen_8cppm_source.html b/screen_8cppm_source.html new file mode 100644 index 000000000..91f2777cf --- /dev/null +++ b/screen_8cppm_source.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: screen.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen
    +
    2/// @brief Module file for FTXUI screen operations.
    +
    3
    +
    4export module ftxui.screen;
    +
    5
    +
    6export import ftxui.screen.box;
    +
    7export import ftxui.screen.color;
    +
    8export import ftxui.screen.color_info;
    +
    9export import ftxui.screen.deprecated;
    +
    10export import ftxui.screen.image;
    +
    11export import ftxui.screen.pixel;
    +
    12export import ftxui.screen.screen;
    +
    13export import ftxui.screen.string;
    +
    14export import ftxui.screen.terminal;
    +
    Module file for the Box struct of the Screen module.
    +
    Module file for the ColorInfo struct of the Screen module.
    +
    Module file for the Color class of the Screen module.
    +
    Module file for the deprecated parts of the Screen module.
    +
    Module file for the Image class of the Screen module.
    +
    Module file for the Pixel struct of the Screen module.
    +
    Module file for the Screen class of the Screen module.
    +
    Module file for string functions of the Screen module.
    +
    Module file for the Terminal namespace of the Screen module.
    +
    Module file for FTXUI screen operations.
    +
    +
    + + + + + diff --git a/screen_8hpp.html b/screen_8hpp.html new file mode 100644 index 000000000..1ca42f1d5 --- /dev/null +++ b/screen_8hpp.html @@ -0,0 +1,240 @@ + + + + + + + + +FTXUI: screen.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    screen.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Classes

    class  Screen
     A rectangular grid of Pixel. More...
     
    struct  Screen::Cursor
     
    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::Dimension
     Define how the Screen's dimensions should look like.
     
    + + + + + +

    +Functions

    Dimensions Fixed (int)
     
    Dimensions Full ()
     
    +
    +
    + + + + + diff --git a/screen_8hpp.js b/screen_8hpp.js new file mode 100644 index 000000000..16cf97843 --- /dev/null +++ b/screen_8hpp.js @@ -0,0 +1,6 @@ +var screen_8hpp = +[ + [ "Cursor", "structftxui_1_1Screen_1_1Cursor.html", "structftxui_1_1Screen_1_1Cursor" ], + [ "Fixed", "screen_8hpp.html#a36e539ed36f88d7f01233974da485937", null ], + [ "Full", "screen_8hpp.html#af795790b995132f62de607ddfd07f9fa", null ] +]; \ No newline at end of file diff --git a/screen_8hpp_source.html b/screen_8hpp_source.html new file mode 100644 index 000000000..0a82be04f --- /dev/null +++ b/screen_8hpp_source.html @@ -0,0 +1,348 @@ + + + + + + + + +FTXUI: screen.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_SCREEN_HPP
    +
    5#define FTXUI_SCREEN_SCREEN_HPP
    +
    6
    +
    7#include <cstdint> // for uint8_t
    +
    8#include <functional> // for function
    +
    9#include <string> // for string, basic_string, allocator
    +
    10#include <vector> // for vector
    +
    11
    +
    12#include "ftxui/screen/image.hpp" // for Pixel, Image
    +
    13#include "ftxui/screen/terminal.hpp" // for Dimensions
    +
    14
    +
    15namespace ftxui {
    +
    16
    +
    17/// @brief Define how the Screen's dimensions should look like.
    +
    18/// @ingroup screen
    +
    19namespace Dimension {
    + + +
    22} // namespace Dimension
    +
    23
    +
    24/// @brief A rectangular grid of Pixel.
    +
    25/// @ingroup screen
    +
    +
    26class Screen : public Image {
    +
    27 public:
    +
    28 // Constructors:
    +
    29 Screen(int dimx, int dimy);
    +
    30 static Screen Create(Dimensions dimension);
    +
    31 static Screen Create(Dimensions width, Dimensions height);
    +
    32
    +
    33 // Destructor:
    +
    34 ~Screen() override = default;
    +
    35
    +
    36 std::string ToString() const;
    +
    37
    +
    38 // Print the Screen on to the terminal.
    +
    39 void Print() const;
    +
    40
    +
    41 // Fill the screen with space and reset any screen state, like hyperlinks, and
    +
    42 // cursor
    +
    43 void Clear();
    +
    44
    +
    45 // Move the terminal cursor n-lines up with n = dimy().
    +
    46 std::string ResetPosition(bool clear = false) const;
    +
    47
    +
    48 void ApplyShader();
    +
    49
    +
    +
    50 struct Cursor {
    +
    51 int x = 0;
    +
    52 int y = 0;
    +
    53
    +
    +
    54 enum Shape {
    +
    55 Hidden = 0,
    + +
    57 Block = 2,
    + + + +
    61 Bar = 6,
    +
    62 };
    +
    + +
    64 };
    +
    +
    65
    +
    66 Cursor cursor() const { return cursor_; }
    + +
    68
    +
    69 // Store an hyperlink in the screen. Return the id of the hyperlink. The id is
    +
    70 // used to identify the hyperlink when the user click on it.
    +
    71 uint8_t RegisterHyperlink(const std::string& link);
    +
    72 const std::string& Hyperlink(uint8_t id) const;
    +
    73
    +
    74 using SelectionStyle = std::function<void(Pixel&)>;
    +
    75 const SelectionStyle& GetSelectionStyle() const;
    +
    76 void SetSelectionStyle(SelectionStyle decorator);
    +
    77
    +
    78 protected:
    + +
    80 std::vector<std::string> hyperlinks_ = {""};
    +
    81
    +
    82 // The current selection style. This is overridden by various dom elements.
    +
    + +
    84 pixel.inverted ^= true;
    +
    85 };
    +
    +
    86};
    +
    +
    87
    +
    88} // namespace ftxui
    +
    89
    +
    90#endif // FTXUI_SCREEN_SCREEN_HPP
    +
    std::function< void(Pixel &)> SelectionStyle
    Definition screen.hpp:74
    +
    void ApplyShader()
    Definition screen.cpp:507
    +
    const SelectionStyle & GetSelectionStyle() const
    Return the current selection style.
    Definition screen.cpp:556
    +
    const std::string & Hyperlink(uint8_t id) const
    Definition screen.cpp:547
    +
    int dimy() const
    Definition image.hpp:36
    +
    std::string ToString() const
    Definition screen.cpp:416
    +
    void SetCursor(Cursor cursor)
    Definition screen.hpp:67
    +
    ~Screen() override=default
    +
    static Screen Create(Dimensions dimension)
    Create a screen with the given dimension.
    Definition screen.cpp:395
    +
    uint8_t RegisterHyperlink(const std::string &link)
    Definition screen.cpp:534
    +
    Screen(int dimx, int dimy)
    Definition screen.cpp:399
    +
    Cursor cursor() const
    Definition screen.hpp:66
    +
    std::string ResetPosition(bool clear=false) const
    Return a string to be printed in order to reset the cursor position to the beginning of the screen.
    Definition screen.cpp:476
    +
    Cursor cursor_
    Definition screen.hpp:79
    +
    void Clear()
    Clear all the pixel from the screen.
    Definition screen.cpp:495
    +
    SelectionStyle selection_style_
    Definition screen.hpp:83
    +
    void SetSelectionStyle(SelectionStyle decorator)
    Set the current selection style.
    Definition screen.cpp:562
    +
    std::vector< std::string > hyperlinks_
    Definition screen.hpp:80
    +
    void Print() const
    Definition screen.cpp:453
    +
    int dimx() const
    Definition image.hpp:35
    +
    A rectangular grid of Pixel.
    Definition image.hpp:17
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Dimensions is a structure that represents the size of the terminal.
    Definition terminal.hpp:11
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    + +
    Dimensions Fixed(int)
    +
    Dimensions Full()
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + + + + + + + + + + + +
    +
    + + + + + diff --git a/screen__interactive_8cpp.html b/screen__interactive_8cpp.html new file mode 100644 index 000000000..be6f1fa9d --- /dev/null +++ b/screen__interactive_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: screen_interactive.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    screen_interactive.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::animation
     The FTXUI ftxui::animation:: namespace.
     
    + + + + +

    +Functions

    void RequestAnimationFrame ()
     RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle.
     
    +
    +
    + + + + + diff --git a/screen__interactive_8cpp.js b/screen__interactive_8cpp.js new file mode 100644 index 000000000..57cc9383b --- /dev/null +++ b/screen__interactive_8cpp.js @@ -0,0 +1,4 @@ +var screen__interactive_8cpp = +[ + [ "RequestAnimationFrame", "screen__interactive_8cpp.html#gad94d3d42aba3359550759aae5bcffbe9", null ] +]; \ No newline at end of file diff --git a/screen__interactive_8cpp_source.html b/screen__interactive_8cpp_source.html new file mode 100644 index 000000000..74512227d --- /dev/null +++ b/screen__interactive_8cpp_source.html @@ -0,0 +1,1476 @@ + + + + + + + + +FTXUI: screen_interactive.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen_interactive.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5#include <algorithm> // for copy, max, min
    +
    6#include <array> // for array
    +
    7#include <atomic>
    +
    8#include <chrono> // for operator-, milliseconds, operator>=, duration, common_type<>::type, time_point
    +
    9#include <csignal> // for signal, SIGTSTP, SIGABRT, SIGWINCH, raise, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, __sighandler_t, size_t
    +
    10#include <cstdint>
    +
    11#include <cstdio> // for fileno, stdin
    +
    12#include <ftxui/component/task.hpp> // for Task, Closure, AnimationTask
    +
    13#include <ftxui/screen/screen.hpp> // for Pixel, Screen::Cursor, Screen, Screen::Cursor::Hidden
    +
    14#include <functional> // for function
    +
    15#include <initializer_list> // for initializer_list
    +
    16#include <iostream> // for cout, ostream, operator<<, basic_ostream, endl, flush
    +
    17#include <memory>
    +
    18#include <stack> // for stack
    +
    19#include <string>
    +
    20#include <thread> // for thread, sleep_for
    +
    21#include <tuple> // for _Swallow_assign, ignore
    +
    22#include <utility> // for move, swap
    +
    23#include <variant> // for visit, variant
    +
    24#include <vector> // for vector
    +
    25#include "ftxui/component/animation.hpp" // for TimePoint, Clock, Duration, Params, RequestAnimationFrame
    +
    26#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse, CapturedMouseInterface
    +
    27#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    28#include "ftxui/component/event.hpp" // for Event
    +
    29#include "ftxui/component/loop.hpp" // for Loop
    + +
    31#include "ftxui/component/terminal_input_parser.hpp" // for TerminalInputParser
    +
    32#include "ftxui/dom/node.hpp" // for Node, Render
    +
    33#include "ftxui/screen/terminal.hpp" // for Dimensions, Size
    +
    34#include "ftxui/screen/util.hpp" // for util::clamp
    +
    35#include "ftxui/util/autoreset.hpp" // for AutoReset
    +
    36
    +
    37#if defined(_WIN32)
    +
    38#define DEFINE_CONSOLEV2_PROPERTIES
    +
    39#define WIN32_LEAN_AND_MEAN
    +
    40#ifndef NOMINMAX
    +
    41#define NOMINMAX
    +
    42#endif
    +
    43#include <windows.h>
    +
    44#ifndef UNICODE
    +
    45#error Must be compiled in UNICODE mode
    +
    46#endif
    +
    47#else
    +
    48#include <fcntl.h>
    +
    49#include <sys/select.h> // for select, FD_ISSET, FD_SET, FD_ZERO, fd_set, timeval
    +
    50#include <termios.h> // for tcsetattr, termios, tcgetattr, TCSANOW, cc_t, ECHO, ICANON, VMIN, VTIME
    +
    51#include <unistd.h> // for STDIN_FILENO, read
    +
    52#include <cerrno>
    +
    53#endif
    +
    54
    +
    55// Quick exit is missing in standard CLang headers
    +
    56#if defined(__clang__) && defined(__APPLE__)
    +
    57#define quick_exit(a) exit(a)
    +
    58#endif
    +
    59
    +
    60namespace ftxui {
    +
    61
    +
    62struct ScreenInteractive::Internal {
    +
    63 // Convert char to Event.
    +
    64 TerminalInputParser terminal_input_parser;
    +
    65
    +
    66 task::TaskRunner task_runner;
    +
    67
    +
    68 // The last time a character was received.
    +
    69 std::chrono::time_point<std::chrono::steady_clock> last_char_time =
    +
    70 std::chrono::steady_clock::now();
    +
    71
    +
    72 explicit Internal(std::function<void(Event)> out)
    +
    73 : terminal_input_parser(std::move(out)) {}
    +
    74};
    +
    75
    +
    76namespace animation {
    +
    + +
    78 auto* screen = ScreenInteractive::Active();
    +
    79 if (screen) {
    +
    80 screen->RequestAnimationFrame();
    +
    81 }
    +
    82}
    +
    +
    83} // namespace animation
    +
    84
    +
    85namespace {
    +
    86
    +
    87ScreenInteractive* g_active_screen = nullptr; // NOLINT
    +
    88
    +
    89void Flush() {
    +
    90 // Emscripten doesn't implement flush. We interpret zero as flush.
    +
    91 std::cout << '\0' << std::flush;
    +
    92}
    +
    93
    +
    94constexpr int timeout_milliseconds = 20;
    +
    95[[maybe_unused]] constexpr int timeout_microseconds =
    +
    96 timeout_milliseconds * 1000;
    +
    97#if defined(_WIN32)
    +
    98
    +
    99#elif defined(__EMSCRIPTEN__)
    +
    100#include <emscripten.h>
    +
    101
    +
    102extern "C" {
    +
    103EMSCRIPTEN_KEEPALIVE
    +
    104void ftxui_on_resize(int columns, int rows) {
    + +
    106 columns,
    +
    107 rows,
    +
    108 });
    +
    109 std::raise(SIGWINCH);
    +
    110}
    +
    111}
    +
    112
    +
    113#else // POSIX (Linux & Mac)
    +
    114
    +
    115int CheckStdinReady() {
    +
    116 timeval tv = {0, 0}; // NOLINT
    +
    117 fd_set fds;
    +
    118 FD_ZERO(&fds); // NOLINT
    +
    119 FD_SET(STDIN_FILENO, &fds); // NOLINT
    +
    120 select(STDIN_FILENO + 1, &fds, nullptr, nullptr, &tv); // NOLINT
    +
    121 return FD_ISSET(STDIN_FILENO, &fds); // NOLINT
    +
    122}
    +
    123
    +
    124#endif
    +
    125
    +
    126std::stack<Closure> on_exit_functions; // NOLINT
    +
    127void OnExit() {
    +
    128 while (!on_exit_functions.empty()) {
    +
    129 on_exit_functions.top()();
    +
    130 on_exit_functions.pop();
    +
    131 }
    +
    132}
    +
    133
    +
    134std::atomic<int> g_signal_exit_count = 0; // NOLINT
    +
    135#if !defined(_WIN32)
    +
    136std::atomic<int> g_signal_stop_count = 0; // NOLINT
    +
    137std::atomic<int> g_signal_resize_count = 0; // NOLINT
    +
    138#endif
    +
    139
    +
    140// Async signal safe function
    +
    141void RecordSignal(int signal) {
    +
    142 switch (signal) {
    +
    143 case SIGABRT:
    +
    144 case SIGFPE:
    +
    145 case SIGILL:
    +
    146 case SIGINT:
    +
    147 case SIGSEGV:
    +
    148 case SIGTERM:
    +
    149 g_signal_exit_count++;
    +
    150 break;
    +
    151
    +
    152#if !defined(_WIN32)
    +
    153 case SIGTSTP: // NOLINT
    +
    154 g_signal_stop_count++;
    +
    155 break;
    +
    156
    +
    157 case SIGWINCH: // NOLINT
    +
    158 g_signal_resize_count++;
    +
    159 break;
    +
    160#endif
    +
    161
    +
    162 default:
    +
    163 break;
    +
    164 }
    +
    165}
    +
    166
    +
    167void ExecuteSignalHandlers() {
    +
    168 int signal_exit_count = g_signal_exit_count.exchange(0);
    +
    169 while (signal_exit_count--) {
    +
    170 ScreenInteractive::Private::Signal(*g_active_screen, SIGABRT);
    +
    171 }
    +
    172
    +
    173#if !defined(_WIN32)
    +
    174 int signal_stop_count = g_signal_stop_count.exchange(0);
    +
    175 while (signal_stop_count--) {
    +
    176 ScreenInteractive::Private::Signal(*g_active_screen, SIGTSTP);
    +
    177 }
    +
    178
    +
    179 int signal_resize_count = g_signal_resize_count.exchange(0);
    +
    180 while (signal_resize_count--) {
    +
    181 ScreenInteractive::Private::Signal(*g_active_screen, SIGWINCH);
    +
    182 }
    +
    183#endif
    +
    184}
    +
    185
    +
    186void InstallSignalHandler(int sig) {
    +
    187 auto old_signal_handler = std::signal(sig, RecordSignal);
    +
    188 on_exit_functions.emplace(
    +
    189 [=] { std::ignore = std::signal(sig, old_signal_handler); });
    +
    190}
    +
    191
    +
    192// CSI: Control Sequence Introducer
    +
    193const std::string CSI = "\x1b["; // NOLINT
    +
    194 //
    +
    195// DCS: Device Control String
    +
    196const std::string DCS = "\x1bP"; // NOLINT
    +
    197// ST: String Terminator
    +
    198const std::string ST = "\x1b\\"; // NOLINT
    +
    199
    +
    200// DECRQSS: Request Status String
    +
    201// DECSCUSR: Set Cursor Style
    +
    202const std::string DECRQSS_DECSCUSR = DCS + "$q q" + ST; // NOLINT
    +
    203
    +
    204// DEC: Digital Equipment Corporation
    +
    205enum class DECMode : std::uint16_t {
    +
    206 kLineWrap = 7,
    +
    207 kCursor = 25,
    +
    208
    +
    209 kMouseX10 = 9,
    +
    210 kMouseVt200 = 1000,
    +
    211 kMouseVt200Highlight = 1001,
    +
    212
    +
    213 kMouseBtnEventMouse = 1002,
    +
    214 kMouseAnyEvent = 1003,
    +
    215
    +
    216 kMouseUtf8 = 1005,
    +
    217 kMouseSgrExtMode = 1006,
    +
    218 kMouseUrxvtMode = 1015,
    +
    219 kMouseSgrPixelsMode = 1016,
    +
    220 kAlternateScreen = 1049,
    +
    221};
    +
    222
    +
    223// Device Status Report (DSR) {
    +
    224enum class DSRMode : std::uint8_t {
    +
    225 kCursor = 6,
    +
    226};
    +
    227
    +
    228std::string Serialize(const std::vector<DECMode>& parameters) {
    +
    229 bool first = true;
    +
    230 std::string out;
    +
    231 for (const DECMode parameter : parameters) {
    +
    232 if (!first) {
    +
    233 out += ";";
    +
    234 }
    +
    235 out += std::to_string(int(parameter));
    +
    236 first = false;
    +
    237 }
    +
    238 return out;
    +
    239}
    +
    240
    +
    241// DEC Private Mode Set (DECSET)
    +
    242std::string Set(const std::vector<DECMode>& parameters) {
    +
    243 return CSI + "?" + Serialize(parameters) + "h";
    +
    244}
    +
    245
    +
    246// DEC Private Mode Reset (DECRST)
    +
    247std::string Reset(const std::vector<DECMode>& parameters) {
    +
    248 return CSI + "?" + Serialize(parameters) + "l";
    +
    249}
    +
    250
    +
    251// Device Status Report (DSR)
    +
    252std::string DeviceStatusReport(DSRMode ps) {
    +
    253 return CSI + std::to_string(int(ps)) + "n";
    +
    254}
    +
    255
    +
    256class CapturedMouseImpl : public CapturedMouseInterface {
    +
    257 public:
    +
    258 explicit CapturedMouseImpl(std::function<void(void)> callback)
    +
    259 : callback_(std::move(callback)) {}
    +
    260 ~CapturedMouseImpl() override { callback_(); }
    +
    261 CapturedMouseImpl(const CapturedMouseImpl&) = delete;
    +
    262 CapturedMouseImpl(CapturedMouseImpl&&) = delete;
    +
    263 CapturedMouseImpl& operator=(const CapturedMouseImpl&) = delete;
    +
    264 CapturedMouseImpl& operator=(CapturedMouseImpl&&) = delete;
    +
    265
    +
    266 private:
    +
    267 std::function<void(void)> callback_;
    +
    268};
    +
    269
    +
    270} // namespace
    +
    271
    +
    272ScreenInteractive::ScreenInteractive(Dimension dimension,
    +
    273 int dimx,
    +
    274 int dimy,
    +
    275 bool use_alternative_screen)
    +
    276 : Screen(dimx, dimy),
    +
    277 dimension_(dimension),
    +
    278 use_alternative_screen_(use_alternative_screen) {
    +
    279 internal_ = std::make_unique<Internal>(
    +
    280 [&](Event event) { PostEvent(std::move(event)); });
    +
    281}
    +
    282
    +
    283// static
    +
    + +
    285 return {
    +
    286 Dimension::Fixed,
    +
    287 dimx,
    +
    288 dimy,
    +
    289 /*use_alternative_screen=*/false,
    +
    290 };
    +
    291}
    +
    +
    292
    +
    293/// Create a ScreenInteractive taking the full terminal size. This is using the
    +
    294/// alternate screen buffer to avoid messing with the terminal content.
    +
    295/// @note This is the same as `ScreenInteractive::FullscreenAlternateScreen()`
    +
    296// static
    + +
    300
    +
    301/// Create a ScreenInteractive taking the full terminal size. The primary screen
    +
    302/// buffer is being used. It means if the terminal is resized, the previous
    +
    303/// content might mess up with the terminal content.
    +
    304// static
    +
    + +
    306 auto terminal = Terminal::Size();
    +
    307 return {
    +
    308 Dimension::Fullscreen,
    +
    309 terminal.dimx,
    +
    310 terminal.dimy,
    +
    311 /*use_alternative_screen=*/false,
    +
    312 };
    +
    313}
    +
    +
    314
    +
    315/// Create a ScreenInteractive taking the full terminal size. This is using the
    +
    316/// alternate screen buffer to avoid messing with the terminal content.
    +
    317// static
    +
    + +
    319 auto terminal = Terminal::Size();
    +
    320 return {
    +
    321 Dimension::Fullscreen,
    +
    322 terminal.dimx,
    +
    323 terminal.dimy,
    +
    324 /*use_alternative_screen=*/true,
    +
    325 };
    +
    326}
    +
    +
    327
    +
    328/// Create a ScreenInteractive whose width match the terminal output width and
    +
    329/// the height matches the component being drawn.
    +
    330// static
    +
    + +
    332 auto terminal = Terminal::Size();
    +
    333 return {
    +
    334 Dimension::TerminalOutput,
    +
    335 terminal.dimx,
    +
    336 terminal.dimy, // Best guess.
    +
    337 /*use_alternative_screen=*/false,
    +
    338 };
    +
    339}
    +
    +
    340
    + +
    342
    +
    343/// Create a ScreenInteractive whose width and height match the component being
    +
    344/// drawn.
    +
    345// static
    +
    + +
    347 auto terminal = Terminal::Size();
    +
    348 return {
    +
    349 Dimension::FitComponent,
    +
    350 terminal.dimx, // Best guess.
    +
    351 terminal.dimy, // Best guess.
    +
    352 false,
    +
    353 };
    +
    354}
    +
    +
    355
    +
    356/// @brief Set whether mouse is tracked and events reported.
    +
    357/// called outside of the main loop. E.g `ScreenInteractive::Loop(...)`.
    +
    358/// @param enable Whether to enable mouse event tracking.
    +
    359/// @note This muse be called outside of the main loop. E.g. before calling
    +
    360/// `ScreenInteractive::Loop`.
    +
    361/// @note Mouse tracking is enabled by default.
    +
    362/// @note Mouse tracking is only supported on terminals that supports it.
    +
    363///
    +
    364/// ### Example
    +
    365///
    +
    366/// ```cpp
    +
    367/// auto screen = ScreenInteractive::TerminalOutput();
    +
    368/// screen.TrackMouse(false);
    +
    369/// screen.Loop(component);
    +
    370/// ```
    +
    + +
    372 track_mouse_ = enable;
    +
    373}
    +
    +
    374
    +
    375/// @brief Add a task to the main loop.
    +
    376/// It will be executed later, after every other scheduled tasks.
    +
    + +
    378 internal_->task_runner.PostTask([this, task = std::move(task)]() mutable {
    +
    379 HandleTask(component_, task);
    +
    380 });
    +
    381}
    +
    +
    382
    +
    383/// @brief Add an event to the main loop.
    +
    384/// It will be executed later, after every other scheduled events.
    +
    + +
    386 Post(event);
    +
    387}
    +
    +
    388
    +
    389/// @brief Add a task to draw the screen one more time, until all the animations
    +
    390/// are done.
    +
    + +
    392 if (animation_requested_) {
    +
    393 return;
    +
    394 }
    +
    395 animation_requested_ = true;
    +
    396 auto now = animation::Clock::now();
    +
    397 const auto time_histeresis = std::chrono::milliseconds(33);
    +
    398 if (now - previous_animation_time_ >= time_histeresis) {
    +
    399 previous_animation_time_ = now;
    +
    400 }
    +
    401}
    +
    +
    402
    +
    403/// @brief Try to get the unique lock about behing able to capture the mouse.
    +
    404/// @return A unique lock if the mouse is not already captured, otherwise a
    +
    405/// null.
    +
    + +
    407 if (mouse_captured) {
    +
    408 return nullptr;
    +
    409 }
    +
    410 mouse_captured = true;
    +
    411 return std::make_unique<CapturedMouseImpl>(
    +
    412 [this] { mouse_captured = false; });
    +
    413}
    +
    +
    414
    +
    415/// @brief Execute the main loop.
    +
    416/// @param component The component to draw.
    +
    +
    417void ScreenInteractive::Loop(Component component) { // NOLINT
    +
    418 class Loop loop(this, std::move(component));
    +
    419 loop.Run();
    +
    420}
    +
    +
    421
    +
    422/// @brief Return whether the main loop has been quit.
    +
    423bool ScreenInteractive::HasQuitted() {
    +
    424 return quit_;
    +
    425}
    +
    426
    +
    427// private
    +
    428void ScreenInteractive::PreMain() {
    +
    429 // Suspend previously active screen:
    +
    430 if (g_active_screen) {
    +
    431 std::swap(suspended_screen_, g_active_screen);
    +
    432 // Reset cursor position to the top of the screen and clear the screen.
    +
    433 suspended_screen_->ResetCursorPosition();
    +
    434 std::cout << suspended_screen_->ResetPosition(/*clear=*/true);
    +
    435 suspended_screen_->dimx_ = 0;
    +
    436 suspended_screen_->dimy_ = 0;
    +
    437
    +
    438 // Reset dimensions to force drawing the screen again next time:
    +
    439 suspended_screen_->Uninstall();
    +
    440 }
    +
    441
    +
    442 // This screen is now active:
    +
    443 g_active_screen = this;
    +
    444 g_active_screen->Install();
    +
    445
    +
    446 previous_animation_time_ = animation::Clock::now();
    +
    447}
    +
    448
    +
    449// private
    +
    450void ScreenInteractive::PostMain() {
    +
    451 // Put cursor position at the end of the drawing.
    +
    452 ResetCursorPosition();
    +
    453
    +
    454 g_active_screen = nullptr;
    +
    455
    +
    456 // Restore suspended screen.
    +
    457 if (suspended_screen_) {
    +
    458 // Clear screen, and put the cursor at the beginning of the drawing.
    +
    459 std::cout << ResetPosition(/*clear=*/true);
    +
    460 dimx_ = 0;
    +
    461 dimy_ = 0;
    +
    462 Uninstall();
    +
    463 std::swap(g_active_screen, suspended_screen_);
    +
    464 g_active_screen->Install();
    +
    465 } else {
    +
    466 Uninstall();
    +
    467
    +
    468 std::cout << '\r';
    +
    469 // On final exit, keep the current drawing and reset cursor position one
    +
    470 // line after it.
    +
    471 if (!use_alternative_screen_) {
    +
    472 std::cout << '\n';
    +
    473 std::cout << std::flush;
    +
    474 }
    +
    475 }
    +
    476}
    +
    477
    +
    478/// @brief Decorate a function. It executes the same way, but with the currently
    +
    479/// active screen terminal hooks temporarilly uninstalled during its execution.
    +
    480/// @param fn The function to decorate.
    +
    + +
    482 return [this, fn] {
    +
    483 Uninstall();
    +
    484 fn();
    +
    485 Install();
    +
    486 };
    +
    487}
    +
    +
    488
    +
    489/// @brief Force FTXUI to handle or not handle Ctrl-C, even if the component
    +
    490/// catches the Event::CtrlC.
    +
    + +
    492 force_handle_ctrl_c_ = force;
    +
    493}
    +
    +
    494
    +
    495/// @brief Force FTXUI to handle or not handle Ctrl-Z, even if the component
    +
    496/// catches the Event::CtrlZ.
    +
    + +
    498 force_handle_ctrl_z_ = force;
    +
    499}
    +
    +
    500
    +
    501/// @brief Returns the content of the current selection
    +
    + +
    503 if (!selection_) {
    +
    504 return "";
    +
    505 }
    +
    506 return selection_->GetParts();
    +
    507}
    +
    +
    508
    +
    +
    509void ScreenInteractive::SelectionChange(std::function<void()> callback) {
    +
    510 selection_on_change_ = std::move(callback);
    +
    511}
    +
    +
    512
    +
    513/// @brief Return the currently active screen, or null if none.
    +
    514// static
    +
    + +
    516 return g_active_screen;
    +
    517}
    +
    +
    518
    +
    519// private
    +
    520void ScreenInteractive::Install() {
    +
    521 frame_valid_ = false;
    +
    522
    +
    523 // Flush the buffer for stdout to ensure whatever the user has printed before
    +
    524 // is fully applied before we start modifying the terminal configuration. This
    +
    525 // is important, because we are using two different channels (stdout vs
    +
    526 // termios/WinAPI) to communicate with the terminal emulator below. See
    +
    527 // https://github.com/ArthurSonzogni/FTXUI/issues/846
    +
    528 Flush();
    +
    529
    +
    530 // After uninstalling the new configuration, flush it to the terminal to
    +
    531 // ensure it is fully applied:
    +
    532 on_exit_functions.emplace([] { Flush(); });
    +
    533
    +
    534 on_exit_functions.emplace([this] { ExitLoopClosure()(); });
    +
    535
    +
    536 // Request the terminal to report the current cursor shape. We will restore it
    +
    537 // on exit.
    +
    538 std::cout << DECRQSS_DECSCUSR;
    +
    539 on_exit_functions.emplace([this] {
    +
    540 std::cout << "\033[?25h"; // Enable cursor.
    +
    541 std::cout << "\033[" + std::to_string(cursor_reset_shape_) + " q";
    +
    542 });
    +
    543
    +
    544 // Install signal handlers to restore the terminal state on exit. The default
    +
    545 // signal handlers are restored on exit.
    +
    546 for (const int signal : {SIGTERM, SIGSEGV, SIGINT, SIGILL, SIGABRT, SIGFPE}) {
    +
    547 InstallSignalHandler(signal);
    +
    548 }
    +
    549
    +
    550// Save the old terminal configuration and restore it on exit.
    +
    551#if defined(_WIN32)
    +
    552 // Enable VT processing on stdout and stdin
    +
    553 auto stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE);
    +
    554 auto stdin_handle = GetStdHandle(STD_INPUT_HANDLE);
    +
    555
    +
    556 DWORD out_mode = 0;
    +
    557 DWORD in_mode = 0;
    +
    558 GetConsoleMode(stdout_handle, &out_mode);
    +
    559 GetConsoleMode(stdin_handle, &in_mode);
    +
    560 on_exit_functions.push([=] { SetConsoleMode(stdout_handle, out_mode); });
    +
    561 on_exit_functions.push([=] { SetConsoleMode(stdin_handle, in_mode); });
    +
    562
    +
    563 // https://docs.microsoft.com/en-us/windows/console/setconsolemode
    +
    564 const int enable_virtual_terminal_processing = 0x0004;
    +
    565 const int disable_newline_auto_return = 0x0008;
    +
    566 out_mode |= enable_virtual_terminal_processing;
    +
    567 out_mode |= disable_newline_auto_return;
    +
    568
    +
    569 // https://docs.microsoft.com/en-us/windows/console/setconsolemode
    +
    570 const int enable_line_input = 0x0002;
    +
    571 const int enable_echo_input = 0x0004;
    +
    572 const int enable_virtual_terminal_input = 0x0200;
    +
    573 const int enable_window_input = 0x0008;
    +
    574 in_mode &= ~enable_echo_input;
    +
    575 in_mode &= ~enable_line_input;
    +
    576 in_mode |= enable_virtual_terminal_input;
    +
    577 in_mode |= enable_window_input;
    +
    578
    +
    579 SetConsoleMode(stdin_handle, in_mode);
    +
    580 SetConsoleMode(stdout_handle, out_mode);
    +
    581#else // POSIX (Linux & Mac)
    +
    582 // #if defined(__EMSCRIPTEN__)
    +
    583 //// Reading stdin isn't blocking.
    +
    584 // int flags = fcntl(0, F_GETFL, 0);
    +
    585 // fcntl(0, F_SETFL, flags | O_NONBLOCK);
    +
    586
    +
    587 //// Restore the terminal configuration on exit.
    +
    588 // on_exit_functions.emplace([flags] { fcntl(0, F_SETFL, flags); });
    +
    589 // #endif
    +
    590 for (const int signal : {SIGWINCH, SIGTSTP}) {
    +
    591 InstallSignalHandler(signal);
    +
    592 }
    +
    593
    +
    594 struct termios terminal; // NOLINT
    +
    595 tcgetattr(STDIN_FILENO, &terminal);
    +
    596 on_exit_functions.emplace(
    +
    597 [=] { tcsetattr(STDIN_FILENO, TCSANOW, &terminal); });
    +
    598
    +
    599 // Enabling raw terminal input mode
    +
    600 terminal.c_iflag &= ~IGNBRK; // Disable ignoring break condition
    +
    601 terminal.c_iflag &= ~BRKINT; // Disable break causing input and output to be
    +
    602 // flushed
    +
    603 terminal.c_iflag &= ~PARMRK; // Disable marking parity errors.
    +
    604 terminal.c_iflag &= ~ISTRIP; // Disable striping 8th bit off characters.
    +
    605 terminal.c_iflag &= ~INLCR; // Disable mapping NL to CR.
    +
    606 terminal.c_iflag &= ~IGNCR; // Disable ignoring CR.
    +
    607 terminal.c_iflag &= ~ICRNL; // Disable mapping CR to NL.
    +
    608 terminal.c_iflag &= ~IXON; // Disable XON/XOFF flow control on output
    +
    609
    +
    610 terminal.c_lflag &= ~ECHO; // Disable echoing input characters.
    +
    611 terminal.c_lflag &= ~ECHONL; // Disable echoing new line characters.
    +
    612 terminal.c_lflag &= ~ICANON; // Disable Canonical mode.
    +
    613 terminal.c_lflag &= ~ISIG; // Disable sending signal when hitting:
    +
    614 // - => DSUSP
    +
    615 // - C-Z => SUSP
    +
    616 // - C-C => INTR
    +
    617 // - C-d => QUIT
    +
    618 terminal.c_lflag &= ~IEXTEN; // Disable extended input processing
    +
    619 terminal.c_cflag |= CS8; // 8 bits per byte
    +
    620
    +
    621 terminal.c_cc[VMIN] = 0; // Minimum number of characters for non-canonical
    +
    622 // read.
    +
    623 terminal.c_cc[VTIME] = 0; // Timeout in deciseconds for non-canonical read.
    +
    624
    +
    625 tcsetattr(STDIN_FILENO, TCSANOW, &terminal);
    +
    626
    +
    627#endif
    +
    628
    +
    629 auto enable = [&](const std::vector<DECMode>& parameters) {
    +
    630 std::cout << Set(parameters);
    +
    631 on_exit_functions.emplace([=] { std::cout << Reset(parameters); });
    +
    632 };
    +
    633
    +
    634 auto disable = [&](const std::vector<DECMode>& parameters) {
    +
    635 std::cout << Reset(parameters);
    +
    636 on_exit_functions.emplace([=] { std::cout << Set(parameters); });
    +
    637 };
    +
    638
    +
    639 if (use_alternative_screen_) {
    +
    640 enable({
    +
    641 DECMode::kAlternateScreen,
    +
    642 });
    +
    643 }
    +
    644
    +
    645 disable({
    +
    646 // DECMode::kCursor,
    +
    647 DECMode::kLineWrap,
    +
    648 });
    +
    649
    +
    650 if (track_mouse_) {
    +
    651 enable({DECMode::kMouseVt200});
    +
    652 enable({DECMode::kMouseAnyEvent});
    +
    653 enable({DECMode::kMouseUrxvtMode});
    +
    654 enable({DECMode::kMouseSgrExtMode});
    +
    655 }
    +
    656
    +
    657 // After installing the new configuration, flush it to the terminal to
    +
    658 // ensure it is fully applied:
    +
    659 Flush();
    +
    660
    +
    661 quit_ = false;
    +
    662
    +
    663 PostAnimationTask();
    +
    664}
    +
    665
    +
    666// private
    +
    667void ScreenInteractive::Uninstall() {
    +
    668 ExitNow();
    +
    669 OnExit();
    +
    670}
    +
    671
    +
    672// private
    +
    673// NOLINTNEXTLINE
    +
    674void ScreenInteractive::RunOnceBlocking(Component component) {
    +
    675 // Set FPS to 60 at most.
    +
    676 const auto time_per_frame = std::chrono::microseconds(16666); // 1s / 60fps
    +
    677
    +
    678 auto time = std::chrono::steady_clock::now();
    +
    679 size_t executed_task = internal_->task_runner.ExecutedTasks();
    +
    680
    +
    681 // Wait for at least one task to execute.
    +
    682 while (executed_task == internal_->task_runner.ExecutedTasks() &&
    +
    683 !HasQuitted()) {
    +
    684 RunOnce(component);
    +
    685
    +
    686 const auto now = std::chrono::steady_clock::now();
    +
    687 const auto delta = now - time;
    +
    688 time = now;
    +
    689
    +
    690 if (delta < time_per_frame) {
    +
    691 const auto sleep_duration = time_per_frame - delta;
    +
    692 std::this_thread::sleep_for(sleep_duration);
    +
    693 }
    +
    694 }
    +
    695}
    +
    696
    +
    697// private
    +
    698void ScreenInteractive::RunOnce(Component component) {
    +
    699 AutoReset set_component(&component_, component);
    +
    700 ExecuteSignalHandlers();
    +
    701 FetchTerminalEvents();
    +
    702
    +
    703 // Execute the pending tasks from the queue.
    +
    704 const size_t executed_task = internal_->task_runner.ExecutedTasks();
    +
    705 internal_->task_runner.RunUntilIdle();
    +
    706 // If no executed task, we can return early without redrawing the screen.
    +
    707 if (executed_task == internal_->task_runner.ExecutedTasks()) {
    +
    708 return;
    +
    709 }
    +
    710
    +
    711 ExecuteSignalHandlers();
    +
    712 Draw(component);
    +
    713
    +
    714 if (selection_data_previous_ != selection_data_) {
    +
    715 selection_data_previous_ = selection_data_;
    +
    716 if (selection_on_change_) {
    +
    717 selection_on_change_();
    + +
    719 }
    +
    720 }
    +
    721}
    +
    722
    +
    723// private
    +
    724// NOLINTNEXTLINE
    +
    725void ScreenInteractive::HandleTask(Component component, Task& task) {
    +
    726 std::visit(
    +
    727 [&](auto&& arg) {
    +
    728 using T = std::decay_t<decltype(arg)>;
    +
    729
    +
    730 // clang-format off
    +
    731 // Handle Event.
    +
    732 if constexpr (std::is_same_v<T, Event>) {
    +
    733
    +
    734 if (arg.is_cursor_position()) {
    +
    735 cursor_x_ = arg.cursor_x();
    +
    736 cursor_y_ = arg.cursor_y();
    +
    737 return;
    +
    738 }
    +
    739
    +
    740 if (arg.is_cursor_shape()) {
    +
    741 cursor_reset_shape_= arg.cursor_shape();
    +
    742 return;
    +
    743 }
    +
    744
    +
    745 if (arg.is_mouse()) {
    +
    746 arg.mouse().x -= cursor_x_;
    +
    747 arg.mouse().y -= cursor_y_;
    +
    748 }
    +
    749
    +
    750 arg.screen_ = this;
    +
    751
    +
    752 bool handled = component->OnEvent(arg);
    +
    753
    +
    754 handled = HandleSelection(handled, arg);
    +
    755
    +
    756 if (arg == Event::CtrlC && (!handled || force_handle_ctrl_c_)) {
    +
    757 RecordSignal(SIGABRT);
    +
    758 }
    +
    759
    +
    760#if !defined(_WIN32)
    +
    761 if (arg == Event::CtrlZ && (!handled || force_handle_ctrl_z_)) {
    +
    762 RecordSignal(SIGTSTP);
    +
    763 }
    +
    764#endif
    +
    765
    +
    766 frame_valid_ = false;
    +
    767 return;
    +
    768 }
    +
    769
    +
    770 // Handle callback
    +
    771 if constexpr (std::is_same_v<T, Closure>) {
    +
    772 arg();
    +
    773 return;
    +
    774 }
    +
    775
    +
    776 // Handle Animation
    +
    777 if constexpr (std::is_same_v<T, AnimationTask>) {
    +
    778 if (!animation_requested_) {
    +
    779 return;
    +
    780 }
    +
    781
    +
    782 animation_requested_ = false;
    +
    783 const animation::TimePoint now = animation::Clock::now();
    +
    784 const animation::Duration delta = now - previous_animation_time_;
    +
    785 previous_animation_time_ = now;
    +
    786
    +
    787 animation::Params params(delta);
    +
    788 component->OnAnimation(params);
    +
    789 frame_valid_ = false;
    +
    790 return;
    +
    791 }
    +
    792 },
    +
    793 task);
    +
    794 // clang-format on
    +
    795}
    +
    796
    +
    797// private
    +
    798bool ScreenInteractive::HandleSelection(bool handled, Event event) {
    +
    799 if (handled) {
    +
    800 selection_pending_ = nullptr;
    +
    801 selection_data_.empty = true;
    +
    802 selection_ = nullptr;
    +
    803 return true;
    +
    804 }
    +
    805
    +
    806 if (!event.is_mouse()) {
    +
    807 return false;
    +
    808 }
    +
    809
    +
    810 auto& mouse = event.mouse();
    +
    811 if (mouse.button != Mouse::Left) {
    +
    812 return false;
    +
    813 }
    +
    814
    +
    815 if (mouse.motion == Mouse::Pressed) {
    +
    816 selection_pending_ = CaptureMouse();
    +
    817 selection_data_.start_x = mouse.x;
    +
    818 selection_data_.start_y = mouse.y;
    +
    819 selection_data_.end_x = mouse.x;
    +
    820 selection_data_.end_y = mouse.y;
    +
    821 return false;
    +
    822 }
    +
    823
    +
    824 if (!selection_pending_) {
    +
    825 return false;
    +
    826 }
    +
    827
    +
    828 if (mouse.motion == Mouse::Moved) {
    +
    829 if ((mouse.x != selection_data_.end_x) ||
    +
    830 (mouse.y != selection_data_.end_y)) {
    +
    831 selection_data_.end_x = mouse.x;
    +
    832 selection_data_.end_y = mouse.y;
    +
    833 selection_data_.empty = false;
    +
    834 }
    +
    835
    +
    836 return true;
    +
    837 }
    +
    838
    +
    839 if (mouse.motion == Mouse::Released) {
    +
    840 selection_pending_ = nullptr;
    +
    841 selection_data_.end_x = mouse.x;
    +
    842 selection_data_.end_y = mouse.y;
    +
    843 selection_data_.empty = false;
    +
    844 return true;
    +
    845 }
    +
    846
    +
    847 return false;
    +
    848}
    +
    849
    +
    850// private
    +
    851// NOLINTNEXTLINE
    +
    852void ScreenInteractive::Draw(Component component) {
    +
    853 if (frame_valid_) {
    +
    854 return;
    +
    855 }
    +
    856 auto document = component->Render();
    +
    857 int dimx = 0;
    +
    858 int dimy = 0;
    +
    859 auto terminal = Terminal::Size();
    +
    860 document->ComputeRequirement();
    +
    861 switch (dimension_) {
    +
    862 case Dimension::Fixed:
    +
    863 dimx = dimx_;
    +
    864 dimy = dimy_;
    +
    865 break;
    +
    866 case Dimension::TerminalOutput:
    +
    867 dimx = terminal.dimx;
    +
    868 dimy = util::clamp(document->requirement().min_y, 0, terminal.dimy);
    +
    869 break;
    +
    870 case Dimension::Fullscreen:
    +
    871 dimx = terminal.dimx;
    +
    872 dimy = terminal.dimy;
    +
    873 break;
    +
    874 case Dimension::FitComponent:
    +
    875 dimx = util::clamp(document->requirement().min_x, 0, terminal.dimx);
    +
    876 dimy = util::clamp(document->requirement().min_y, 0, terminal.dimy);
    +
    877 break;
    +
    878 }
    +
    879
    +
    880 const bool resized = frame_count_ == 0 || (dimx != dimx_) || (dimy != dimy_);
    +
    881 ResetCursorPosition();
    +
    882 std::cout << ResetPosition(/*clear=*/resized);
    +
    883
    +
    884 // If the terminal width decrease, the terminal emulator will start wrapping
    +
    885 // lines and make the display dirty. We should clear it completely.
    +
    886 if ((dimx < dimx_) && !use_alternative_screen_) {
    +
    887 std::cout << "\033[J"; // clear terminal output
    +
    888 std::cout << "\033[H"; // move cursor to home position
    +
    889 }
    +
    890
    +
    891 // Resize the screen if needed.
    +
    892 if (resized) {
    +
    893 dimx_ = dimx;
    +
    894 dimy_ = dimy;
    +
    895 pixels_ = std::vector<std::vector<Pixel>>(dimy, std::vector<Pixel>(dimx));
    +
    896 cursor_.x = dimx_ - 1;
    +
    897 cursor_.y = dimy_ - 1;
    +
    898 }
    +
    899
    +
    900 // Periodically request the terminal emulator the frame position relative to
    +
    901 // the screen. This is useful for converting mouse position reported in
    +
    902 // screen's coordinates to frame's coordinates.
    +
    903#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
    +
    904 // Microsoft's terminal suffers from a [bug]. When reporting the cursor
    +
    905 // position, several output sequences are mixed together into garbage.
    +
    906 // This causes FTXUI user to see some "1;1;R" sequences into the Input
    +
    907 // component. See [issue]. Solution is to request cursor position less
    +
    908 // often. [bug]: https://github.com/microsoft/terminal/pull/7583 [issue]:
    +
    909 // https://github.com/ArthurSonzogni/FTXUI/issues/136
    +
    910 static int i = -3;
    +
    911 ++i;
    +
    912 if (!use_alternative_screen_ && (i % 150 == 0)) { // NOLINT
    +
    913 std::cout << DeviceStatusReport(DSRMode::kCursor);
    +
    914 }
    +
    915#else
    +
    916 static int i = -3;
    +
    917 ++i;
    +
    918 if (!use_alternative_screen_ &&
    +
    919 (previous_frame_resized_ || i % 40 == 0)) { // NOLINT
    +
    920 std::cout << DeviceStatusReport(DSRMode::kCursor);
    +
    921 }
    +
    922#endif
    +
    923 previous_frame_resized_ = resized;
    +
    924
    +
    925 selection_ = selection_data_.empty
    +
    926 ? std::make_unique<Selection>()
    +
    927 : std::make_unique<Selection>(
    +
    928 selection_data_.start_x, selection_data_.start_y, //
    +
    929 selection_data_.end_x, selection_data_.end_y);
    +
    930 Render(*this, document.get(), *selection_);
    +
    931
    +
    932 // Set cursor position for user using tools to insert CJK characters.
    +
    933 {
    +
    934 const int dx = dimx_ - 1 - cursor_.x + int(dimx_ != terminal.dimx);
    +
    935 const int dy = dimy_ - 1 - cursor_.y;
    +
    936
    +
    937 set_cursor_position.clear();
    +
    938 reset_cursor_position.clear();
    +
    939
    +
    940 if (dy != 0) {
    +
    941 set_cursor_position += "\x1B[" + std::to_string(dy) + "A";
    +
    942 reset_cursor_position += "\x1B[" + std::to_string(dy) + "B";
    +
    943 }
    +
    944
    +
    945 if (dx != 0) {
    +
    946 set_cursor_position += "\x1B[" + std::to_string(dx) + "D";
    +
    947 reset_cursor_position += "\x1B[" + std::to_string(dx) + "C";
    +
    948 }
    +
    949
    +
    950 if (cursor_.shape == Cursor::Hidden) {
    +
    951 set_cursor_position += "\033[?25l";
    +
    952 } else {
    +
    953 set_cursor_position += "\033[?25h";
    +
    954 set_cursor_position +=
    +
    955 "\033[" + std::to_string(int(cursor_.shape)) + " q";
    +
    956 }
    +
    957 }
    +
    958
    +
    959 std::cout << ToString() << set_cursor_position;
    +
    960 Flush();
    +
    961 Clear();
    +
    962 frame_valid_ = true;
    +
    963 frame_count_++;
    +
    964}
    +
    965
    +
    966// private
    +
    967void ScreenInteractive::ResetCursorPosition() {
    +
    968 std::cout << reset_cursor_position;
    +
    969 reset_cursor_position = "";
    +
    970}
    +
    971
    +
    972/// @brief Return a function to exit the main loop.
    +
    + +
    974 return [this] { Exit(); };
    +
    975}
    +
    +
    976
    +
    977/// @brief Exit the main loop.
    +
    + +
    979 Post([this] { ExitNow(); });
    +
    980}
    +
    +
    981
    +
    982// private:
    +
    983void ScreenInteractive::ExitNow() {
    +
    984 quit_ = true;
    +
    985}
    +
    986
    +
    987// private:
    +
    988void ScreenInteractive::Signal(int signal) {
    +
    989 if (signal == SIGABRT) {
    +
    990 Exit();
    +
    991 return;
    +
    992 }
    +
    993
    +
    994// Windows do no support SIGTSTP / SIGWINCH
    +
    995#if !defined(_WIN32)
    +
    996 if (signal == SIGTSTP) {
    +
    997 Post([&] {
    +
    998 ResetCursorPosition();
    +
    999 std::cout << ResetPosition(/*clear*/ true); // Cursor to the beginning
    +
    1000 Uninstall();
    +
    1001 dimx_ = 0;
    +
    1002 dimy_ = 0;
    +
    1003 Flush();
    +
    1004 std::ignore = std::raise(SIGTSTP);
    +
    1005 Install();
    +
    1006 });
    +
    1007 return;
    +
    1008 }
    +
    1009
    +
    1010 if (signal == SIGWINCH) {
    +
    1011 Post(Event::Special({0}));
    +
    1012 return;
    +
    1013 }
    +
    1014#endif
    +
    1015}
    +
    1016
    +
    1017void ScreenInteractive::FetchTerminalEvents() {
    +
    1018#if defined(_WIN32)
    +
    1019 auto get_input_records = [&]() -> std::vector<INPUT_RECORD> {
    +
    1020 // Check if there is input in the console.
    +
    1021 auto console = GetStdHandle(STD_INPUT_HANDLE);
    +
    1022 DWORD number_of_events = 0;
    +
    1023 if (!GetNumberOfConsoleInputEvents(console, &number_of_events)) {
    +
    1024 return std::vector<INPUT_RECORD>();
    +
    1025 }
    +
    1026 if (number_of_events <= 0) {
    +
    1027 // No input, return.
    +
    1028 return std::vector<INPUT_RECORD>();
    +
    1029 }
    +
    1030 // Read the input events.
    +
    1031 std::vector<INPUT_RECORD> records(number_of_events);
    +
    1032 DWORD number_of_events_read = 0;
    +
    1033 if (!ReadConsoleInput(console, records.data(), (DWORD)records.size(),
    +
    1034 &number_of_events_read)) {
    +
    1035 return std::vector<INPUT_RECORD>();
    +
    1036 }
    +
    1037 records.resize(number_of_events_read);
    +
    1038 return records;
    +
    1039 };
    +
    1040
    +
    1041 auto records = get_input_records();
    +
    1042 if (records.size() == 0) {
    +
    1043 const auto timeout =
    +
    1044 std::chrono::steady_clock::now() - internal_->last_char_time;
    +
    1045 const size_t timeout_microseconds =
    +
    1046 std::chrono::duration_cast<std::chrono::microseconds>(timeout).count();
    +
    1047 internal_->terminal_input_parser.Timeout(timeout_microseconds);
    +
    1048 return;
    +
    1049 }
    +
    1050 internal_->last_char_time = std::chrono::steady_clock::now();
    +
    1051
    +
    1052 // Convert the input events to FTXUI events.
    +
    1053 // For each event, we call the terminal input parser to convert it to
    +
    1054 // Event.
    +
    1055 for (const auto& r : records) {
    +
    1056 switch (r.EventType) {
    +
    1057 case KEY_EVENT: {
    +
    1058 auto key_event = r.Event.KeyEvent;
    +
    1059 // ignore UP key events
    +
    1060 if (key_event.bKeyDown == FALSE) {
    +
    1061 continue;
    +
    1062 }
    +
    1063 std::wstring wstring;
    +
    1064 wstring += key_event.uChar.UnicodeChar;
    +
    1065 for (auto it : to_string(wstring)) {
    +
    1066 internal_->terminal_input_parser.Add(it);
    +
    1067 }
    +
    1068 } break;
    +
    1069 case WINDOW_BUFFER_SIZE_EVENT:
    +
    1070 Post(Event::Special({0}));
    +
    1071 break;
    +
    1072 case MENU_EVENT:
    +
    1073 case FOCUS_EVENT:
    +
    1074 case MOUSE_EVENT:
    +
    1075 // TODO(mauve): Implement later.
    +
    1076 break;
    +
    1077 }
    +
    1078 }
    +
    1079#elif defined(__EMSCRIPTEN__)
    +
    1080 // Read chars from the terminal.
    +
    1081 // We configured it to be non blocking.
    +
    1082 std::array<char, 128> out{};
    +
    1083 size_t l = read(STDIN_FILENO, out.data(), out.size());
    +
    1084 if (l == 0) {
    +
    1085 const auto timeout =
    +
    1086 std::chrono::steady_clock::now() - internal_->last_char_time;
    +
    1087 const size_t timeout_microseconds =
    +
    1088 std::chrono::duration_cast<std::chrono::microseconds>(timeout).count();
    +
    1089 internal_->terminal_input_parser.Timeout(timeout_microseconds);
    +
    1090 return;
    +
    1091 }
    +
    1092 internal_->last_char_time = std::chrono::steady_clock::now();
    +
    1093
    +
    1094 // Convert the chars to events.
    +
    1095 for (size_t i = 0; i < l; ++i) {
    +
    1096 internal_->terminal_input_parser.Add(out[i]);
    +
    1097 }
    +
    1098#else // POSIX (Linux & Mac)
    +
    1099 if (!CheckStdinReady()) {
    +
    1100 const auto timeout =
    +
    1101 std::chrono::steady_clock::now() - internal_->last_char_time;
    +
    1102 const size_t timeout_ms =
    +
    1103 std::chrono::duration_cast<std::chrono::milliseconds>(timeout).count();
    +
    1104 internal_->terminal_input_parser.Timeout(timeout_ms);
    +
    1105 return;
    +
    1106 }
    +
    1107 internal_->last_char_time = std::chrono::steady_clock::now();
    +
    1108
    +
    1109 // Read chars from the terminal.
    +
    1110 std::array<char, 128> out{};
    +
    1111 size_t l = read(fileno(stdin), out.data(), out.size());
    +
    1112
    +
    1113 // Convert the chars to events.
    +
    1114 for (size_t i = 0; i < l; ++i) {
    +
    1115 internal_->terminal_input_parser.Add(out[i]);
    +
    1116 }
    +
    1117#endif
    +
    1118}
    +
    1119
    +
    1120void ScreenInteractive::PostAnimationTask() {
    +
    1121 Post(AnimationTask());
    +
    1122
    +
    1123 // Repeat the animation task every 15ms. This correspond to a frame rate
    +
    1124 // of around 66fps.
    +
    1125 internal_->task_runner.PostDelayedTask([this] { PostAnimationTask(); },
    +
    1126 std::chrono::milliseconds(15));
    +
    1127}
    +
    1128
    +
    1129bool ScreenInteractive::SelectionData::operator==(
    +
    1130 const ScreenInteractive::SelectionData& other) const {
    +
    1131 if (empty && other.empty) {
    +
    1132 return true;
    +
    1133 }
    +
    1134 if (empty || other.empty) {
    +
    1135 return false;
    +
    1136 }
    +
    1137 return start_x == other.start_x && start_y == other.start_y &&
    +
    1138 end_x == other.end_x && end_y == other.end_y;
    +
    1139}
    +
    1140
    +
    1141bool ScreenInteractive::SelectionData::operator!=(
    +
    1142 const ScreenInteractive::SelectionData& other) const {
    +
    1143 return !(*this == other);
    +
    1144}
    +
    1145
    +
    1146} // namespace ftxui.
    + + + +
    static void Signal(ScreenInteractive &s, int signal)
    + + +
    auto PostTask(Task task) -> void
    Schedules a task to be executed immediately.
    +
    auto RunUntilIdle() -> std::optional< std::chrono::steady_clock::duration >
    Runs the tasks in the queue.
    +
    auto PostDelayedTask(Task task, std::chrono::steady_clock::duration duration) -> void
    Schedules a task to be executed after a certain duration.
    +
    size_t ExecutedTasks() const
    + + +
    static const Event CtrlC
    Definition event.hpp:71
    + + + + +
    static ScreenInteractive TerminalOutput()
    +
    void Exit()
    Exit the main loop.
    +
    static const Event CtrlZ
    Definition event.hpp:94
    +
    static ScreenInteractive FixedSize(int dimx, int dimy)
    +
    void PostEvent(Event event)
    Add an event to the main loop. It will be executed later, after every other scheduled events.
    + +
    void Post(Task task)
    Add a task to the main loop. It will be executed later, after every other scheduled tasks.
    +
    static ScreenInteractive FitComponent()
    +
    static ScreenInteractive Fullscreen()
    +
    static const Event Custom
    Definition event.hpp:97
    +
    static ScreenInteractive FullscreenPrimaryScreen()
    + +
    static ScreenInteractive * Active()
    Return the currently active screen, or null if none.
    +
    CapturedMouse CaptureMouse()
    Try to get the unique lock about behing able to capture the mouse.
    +
    std::string GetSelection()
    Returns the content of the current selection.
    +
    static ScreenInteractive FullscreenAlternateScreen()
    +
    void TrackMouse(bool enable=true)
    Set whether mouse is tracked and events reported. called outside of the main loop....
    +
    void SelectionChange(std::function< void()> callback)
    +
    void RequestAnimationFrame()
    Add a task to draw the screen one more time, until all the animations are done.
    +
    Closure ExitLoopClosure()
    Return a function to exit the main loop.
    +
    void ForceHandleCtrlC(bool force)
    Force FTXUI to handle or not handle Ctrl-C, even if the component catches the Event::CtrlC.
    +
    void ForceHandleCtrlZ(bool force)
    Force FTXUI to handle or not handle Ctrl-Z, even if the component catches the Event::CtrlZ.
    +
    Closure WithRestoredIO(Closure)
    Decorate a function. It executes the same way, but with the currently active screen terminal hooks te...
    +
    static Event Special(std::string)
    An custom event whose meaning is defined by the user of the library.
    Definition event.cpp:74
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
    +
    void RequestAnimationFrame()
    RequestAnimationFrame is a function that requests a new frame to be drawn in the next animation cycle...
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    int dimy() const
    Definition image.hpp:36
    +
    std::string ToString() const
    Definition screen.cpp:416
    + +
    std::string ResetPosition(bool clear=false) const
    Return a string to be printed in order to reset the cursor position to the beginning of the screen.
    Definition screen.cpp:476
    +
    Cursor cursor_
    Definition screen.hpp:79
    + +
    void Clear()
    Clear all the pixel from the screen.
    Definition screen.cpp:495
    +
    int dimx() const
    Definition image.hpp:35
    +
    std::vector< std::vector< Pixel > > pixels_
    Definition image.hpp:46
    +
    Dimensions Size()
    Get the terminal size.
    Definition terminal.cpp:94
    + +
    void SetFallbackSize(const Dimensions &fallbackSize)
    Override terminal size in case auto-detection fails.
    Definition terminal.cpp:124
    +
    std::chrono::duration< float > Duration
    Definition animation.hpp:30
    +
    std::chrono::time_point< Clock > TimePoint
    Definition animation.hpp:29
    +
    constexpr const T & clamp(const T &v, const T &lo, const T &hi)
    Definition util.hpp:11
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::unique_ptr< CapturedMouseInterface > CapturedMouse
    +
    std::string to_string(const std::wstring &s)
    Convert a std::wstring into a UTF8 std::string.
    Definition string.cpp:1566
    +
    Element select(Element e)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:108
    +
    std::variant< Event, Closure, AnimationTask > Task
    Definition task.hpp:14
    +
    std::function< void()> Closure
    Definition task.hpp:13
    +
    std::shared_ptr< ComponentBase > Component
    + + + + + + + + + + + +
    +
    + + + + + diff --git a/screen__interactive_8cppm.html b/screen__interactive_8cppm.html new file mode 100644 index 000000000..a82ce3aa5 --- /dev/null +++ b/screen__interactive_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: screen_interactive.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    screen_interactive.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/screen__interactive_8cppm_source.html b/screen__interactive_8cppm_source.html new file mode 100644 index 000000000..42784753f --- /dev/null +++ b/screen__interactive_8cppm_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: screen_interactive.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen_interactive.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.component.screen_interactive
    +
    2/// @brief Module file for the ScreenInteractive class of the Component module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    + +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16 using ftxui::Loop;
    +
    17 using ftxui::Event;
    +
    18 using ftxui::Component;
    +
    19
    +
    20 using ftxui::Screen;
    +
    21 using ftxui::ScreenInteractivePrivate;
    + +
    23}
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Module file for the ScreenInteractive class of the Component module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/screen__interactive_8hpp.html b/screen__interactive_8hpp.html new file mode 100644 index 000000000..3aabecd20 --- /dev/null +++ b/screen__interactive_8hpp.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: screen_interactive.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    screen_interactive.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Classes

    class  ScreenInteractive
     ScreenInteractive is a Screen that can handle events, run a main loop, and manage components. More...
     
    class  ScreenInteractive::Private
     
    + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    +
    +
    + + + + + diff --git a/screen__interactive_8hpp.js b/screen__interactive_8hpp.js new file mode 100644 index 000000000..a9f06f01d --- /dev/null +++ b/screen__interactive_8hpp.js @@ -0,0 +1,4 @@ +var screen__interactive_8hpp = +[ + [ "Private", "classftxui_1_1ScreenInteractive_1_1Private.html", null ] +]; \ No newline at end of file diff --git a/screen__interactive_8hpp_source.html b/screen__interactive_8hpp_source.html new file mode 100644 index 000000000..65ca0aaf1 --- /dev/null +++ b/screen__interactive_8hpp_source.html @@ -0,0 +1,439 @@ + + + + + + + + +FTXUI: screen_interactive.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    screen_interactive.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_COMPONENT_SCREEN_INTERACTIVE_HPP
    +
    5#define FTXUI_COMPONENT_SCREEN_INTERACTIVE_HPP
    +
    6
    +
    7#include <atomic> // for atomic
    +
    8#include <functional> // for function
    +
    9#include <memory> // for shared_ptr
    +
    10#include <string> // for string
    +
    11
    +
    12#include "ftxui/component/animation.hpp" // for TimePoint
    +
    13#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
    +
    14#include "ftxui/component/event.hpp" // for Event
    +
    15#include "ftxui/component/task.hpp" // for Task, Closure
    +
    16#include "ftxui/dom/selection.hpp" // for SelectionOption
    +
    17#include "ftxui/screen/screen.hpp" // for Screen
    +
    18
    +
    19namespace ftxui {
    +
    20class ComponentBase;
    +
    21class Loop;
    +
    22struct Event;
    +
    23
    +
    24using Component = std::shared_ptr<ComponentBase>;
    +
    25class ScreenInteractivePrivate;
    +
    26
    +
    +
    27namespace task {
    +
    28class TaskRunner;
    +
    29}
    +
    +
    30
    +
    31/// @brief ScreenInteractive is a `Screen` that can handle events, run a main
    +
    32/// loop, and manage components.
    +
    33///
    +
    34/// @ingroup component
    +
    +
    35class ScreenInteractive : public Screen {
    +
    36 public:
    +
    37 // Constructors:
    +
    38 static ScreenInteractive FixedSize(int dimx, int dimy);
    + + + + + +
    44
    +
    45 // Destructor.
    + +
    47
    +
    48 // Options. Must be called before Loop().
    +
    49 void TrackMouse(bool enable = true);
    +
    50
    +
    51 // Return the currently active screen, nullptr if none.
    +
    52 static ScreenInteractive* Active();
    +
    53
    +
    54 // Start/Stop the main loop.
    +
    55 void Loop(Component);
    +
    56 void Exit();
    + +
    58
    +
    59 // Post tasks to be executed by the loop.
    +
    60 void Post(Task task);
    +
    61 void PostEvent(Event event);
    + +
    63
    + +
    65
    +
    66 // Decorate a function. The outputted one will execute similarly to the
    +
    67 // inputted one, but with the currently active screen terminal hooks
    +
    68 // temporarily uninstalled.
    + +
    70
    +
    71 // FTXUI implements handlers for Ctrl-C and Ctrl-Z. By default, these handlers
    +
    72 // are executed, even if the component catches the event. This avoid users
    +
    73 // handling every event to be trapped in the application. However, in some
    +
    74 // cases, the application may want to handle these events itself. In this
    +
    75 // case, the application can force FTXUI to not handle these events by calling
    +
    76 // the following functions with force=true.
    +
    77 void ForceHandleCtrlC(bool force);
    +
    78 void ForceHandleCtrlZ(bool force);
    +
    79
    +
    80 // Selection API.
    +
    81 std::string GetSelection();
    +
    82 void SelectionChange(std::function<void()> callback);
    +
    83
    +
    84 private:
    +
    85 void ExitNow();
    +
    86
    +
    87 void Install();
    +
    88 void Uninstall();
    +
    89
    +
    90 void PreMain();
    +
    91 void PostMain();
    +
    92
    +
    93 bool HasQuitted();
    +
    94 void RunOnce(Component component);
    +
    95 void RunOnceBlocking(Component component);
    +
    96
    +
    97 void HandleTask(Component component, Task& task);
    +
    98 bool HandleSelection(bool handled, Event event);
    +
    99 void RefreshSelection();
    +
    100 void Draw(Component component);
    +
    101 void ResetCursorPosition();
    +
    102
    +
    103 void Signal(int signal);
    +
    104
    +
    105 void FetchTerminalEvents();
    +
    106
    +
    107 void PostAnimationTask();
    +
    108
    +
    109 ScreenInteractive* suspended_screen_ = nullptr;
    +
    110 enum class Dimension {
    + +
    112 Fixed,
    + + +
    115 };
    +
    116 ScreenInteractive(Dimension dimension,
    +
    117 int dimx,
    +
    118 int dimy,
    +
    119 bool use_alternative_screen);
    +
    120 const Dimension dimension_;
    +
    121 const bool use_alternative_screen_;
    +
    122
    +
    123 bool track_mouse_ = true;
    +
    124
    +
    125 std::string set_cursor_position;
    +
    126 std::string reset_cursor_position;
    +
    127
    +
    128 std::atomic<bool> quit_{false};
    +
    129 bool animation_requested_ = false;
    +
    130 animation::TimePoint previous_animation_time_;
    +
    131
    +
    132 int cursor_x_ = 1;
    +
    133 int cursor_y_ = 1;
    +
    134
    +
    135 std::uint64_t frame_count_ = 0;
    +
    136 bool mouse_captured = false;
    +
    137 bool previous_frame_resized_ = false;
    +
    138
    +
    139 bool frame_valid_ = false;
    +
    140
    +
    141 bool force_handle_ctrl_c_ = true;
    +
    142 bool force_handle_ctrl_z_ = true;
    +
    143
    +
    144 // The style of the cursor to restore on exit.
    +
    145 int cursor_reset_shape_ = 1;
    +
    146
    +
    147 // Selection API:
    +
    148 CapturedMouse selection_pending_;
    +
    149 struct SelectionData {
    +
    150 int start_x = -1;
    +
    151 int start_y = -1;
    +
    152 int end_x = -2;
    +
    153 int end_y = -2;
    +
    154 bool empty = true;
    +
    155 bool operator==(const SelectionData& other) const;
    +
    156 bool operator!=(const SelectionData& other) const;
    +
    157 };
    +
    158 SelectionData selection_data_;
    +
    159 SelectionData selection_data_previous_;
    +
    160 std::unique_ptr<Selection> selection_;
    +
    161 std::function<void()> selection_on_change_;
    +
    162
    +
    163 // PIMPL private implementation idiom (Pimpl).
    +
    164 struct Internal;
    +
    165 std::unique_ptr<Internal> internal_;
    +
    166
    +
    167 friend class Loop;
    +
    168
    +
    169 Component component_;
    +
    170
    +
    171 public:
    +
    +
    172 class Private {
    +
    173 public:
    +
    174 static void Signal(ScreenInteractive& s, int signal) { s.Signal(signal); }
    +
    175 };
    +
    +
    176 friend Private;
    +
    177};
    +
    +
    178
    +
    179} // namespace ftxui
    +
    180
    +
    181#endif /* end of include guard: FTXUI_COMPONENT_SCREEN_INTERACTIVE_HPP */
    + + + +
    static void Signal(ScreenInteractive &s, int signal)
    + + +
    static ScreenInteractive TerminalOutput()
    +
    void Exit()
    Exit the main loop.
    +
    static ScreenInteractive FixedSize(int dimx, int dimy)
    +
    void PostEvent(Event event)
    Add an event to the main loop. It will be executed later, after every other scheduled events.
    + +
    void Post(Task task)
    Add a task to the main loop. It will be executed later, after every other scheduled tasks.
    +
    static ScreenInteractive FitComponent()
    +
    static ScreenInteractive Fullscreen()
    + +
    static ScreenInteractive FullscreenPrimaryScreen()
    + +
    static ScreenInteractive * Active()
    Return the currently active screen, or null if none.
    +
    CapturedMouse CaptureMouse()
    Try to get the unique lock about behing able to capture the mouse.
    +
    std::string GetSelection()
    Returns the content of the current selection.
    +
    static ScreenInteractive FullscreenAlternateScreen()
    +
    void TrackMouse(bool enable=true)
    Set whether mouse is tracked and events reported. called outside of the main loop....
    +
    void SelectionChange(std::function< void()> callback)
    +
    void RequestAnimationFrame()
    Add a task to draw the screen one more time, until all the animations are done.
    +
    Closure ExitLoopClosure()
    Return a function to exit the main loop.
    +
    void ForceHandleCtrlC(bool force)
    Force FTXUI to handle or not handle Ctrl-C, even if the component catches the Event::CtrlC.
    +
    void ForceHandleCtrlZ(bool force)
    Force FTXUI to handle or not handle Ctrl-Z, even if the component catches the Event::CtrlZ.
    +
    Closure WithRestoredIO(Closure)
    Decorate a function. It executes the same way, but with the currently active screen terminal hooks te...
    +
    Loop is a class that manages the event loop for a component.
    Definition loop.hpp:56
    +
    ScreenInteractive is a Screen that can handle events, run a main loop, and manage components.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    int dimy() const
    Definition image.hpp:36
    +
    int dimx() const
    Definition image.hpp:35
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    std::chrono::time_point< Clock > TimePoint
    Definition animation.hpp:29
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::unique_ptr< CapturedMouseInterface > CapturedMouse
    +
    std::variant< Event, Closure, AnimationTask > Task
    Definition task.hpp:14
    +
    std::function< void()> Closure
    Definition task.hpp:13
    +
    std::shared_ptr< ComponentBase > Component
    + + + +
    +
    + + + + + diff --git a/scroll__indicator_8cpp.html b/scroll__indicator_8cpp.html new file mode 100644 index 000000000..59bf9020a --- /dev/null +++ b/scroll__indicator_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: scroll_indicator.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    scroll_indicator.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Element vscroll_indicator (Element child)
     Display a vertical scrollbar on the right. Colors follow the content.
     
    Element hscroll_indicator (Element child)
     Display a horizontal scrollbar at the bottom. Colors follow the content.
     
    +
    +
    + + + + + diff --git a/scroll__indicator_8cpp.js b/scroll__indicator_8cpp.js new file mode 100644 index 000000000..e1ee0d6e8 --- /dev/null +++ b/scroll__indicator_8cpp.js @@ -0,0 +1,5 @@ +var scroll__indicator_8cpp = +[ + [ "vscroll_indicator", "scroll__indicator_8cpp.html#ga1974176e676afdb96d203e8e0f579219", null ], + [ "hscroll_indicator", "scroll__indicator_8cpp.html#ga7f48136f949ccbde722dd93a6de4d0de", null ] +]; \ No newline at end of file diff --git a/scroll__indicator_8cpp_source.html b/scroll__indicator_8cpp_source.html new file mode 100644 index 000000000..15e654c83 --- /dev/null +++ b/scroll__indicator_8cpp_source.html @@ -0,0 +1,365 @@ + + + + + + + + +FTXUI: scroll_indicator.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    scroll_indicator.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max
    +
    5#include <memory> // for make_shared, __shared_ptr_access
    +
    6#include <string> // for string
    +
    7#include <utility> // for move
    +
    8
    +
    9#include "ftxui/dom/elements.hpp" // for Element, vscroll_indicator, hscroll_indicator
    +
    10#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    11#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    12#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    13#include "ftxui/screen/box.hpp" // for Box
    +
    14#include "ftxui/screen/screen.hpp" // for Screen, Pixel
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18/// @brief Display a vertical scrollbar on the right.
    +
    19/// Colors follow the content.
    +
    20/// @ingroup dom
    +
    + +
    22 class Impl : public NodeDecorator {
    +
    23 using NodeDecorator::NodeDecorator;
    +
    24
    +
    25 void ComputeRequirement() override {
    +
    26 NodeDecorator::ComputeRequirement();
    +
    27 requirement_ = children_[0]->requirement();
    +
    28 requirement_.min_x++;
    +
    29 }
    +
    30
    +
    31 void SetBox(Box box) override {
    +
    32 box_ = box;
    +
    33 box.x_max--;
    +
    34 children_[0]->SetBox(box);
    +
    35 }
    +
    36
    +
    37 void Render(Screen& screen) final {
    +
    38 NodeDecorator::Render(screen);
    +
    39
    +
    40 const Box& stencil = screen.stencil;
    +
    41
    +
    42 const int size_inner = box_.y_max - box_.y_min;
    +
    43 if (size_inner <= 0) {
    +
    44 return;
    +
    45 }
    +
    46 const int size_outter = stencil.y_max - stencil.y_min + 1;
    +
    47 if (size_outter >= size_inner) {
    +
    48 return;
    +
    49 }
    +
    50
    +
    51 int size = 2 * size_outter * size_outter / size_inner;
    +
    52 size = std::max(size, 1);
    +
    53
    +
    54 const int start_y =
    +
    55 2 * stencil.y_min + //
    +
    56 2 * (stencil.y_min - box_.y_min) * size_outter / size_inner;
    +
    57
    +
    58 const int x = stencil.x_max;
    +
    59 for (int y = stencil.y_min; y <= stencil.y_max; ++y) {
    +
    60 const int y_up = 2 * y + 0;
    +
    61 const int y_down = 2 * y + 1;
    +
    62 const bool up = (start_y <= y_up) && (y_up <= start_y + size);
    +
    63 const bool down = (start_y <= y_down) && (y_down <= start_y + size);
    +
    64
    +
    65 const char* c = up ? (down ? "┃" : "╹") : (down ? "╻" : " "); // NOLINT
    +
    66 screen.PixelAt(x, y).character = c;
    +
    67 }
    +
    68 }
    +
    69 };
    +
    70 return std::make_shared<Impl>(std::move(child));
    +
    71}
    +
    +
    72
    +
    73/// @brief Display a horizontal scrollbar at the bottom.
    +
    74/// Colors follow the content.
    +
    75/// @ingroup dom
    +
    + +
    77 class Impl : public NodeDecorator {
    +
    78 using NodeDecorator::NodeDecorator;
    +
    79
    +
    80 void ComputeRequirement() override {
    +
    81 NodeDecorator::ComputeRequirement();
    +
    82 requirement_ = children_[0]->requirement();
    +
    83 requirement_.min_y++;
    +
    84 }
    +
    85
    +
    86 void SetBox(Box box) override {
    +
    87 box_ = box;
    +
    88 box.y_max--;
    +
    89 children_[0]->SetBox(box);
    +
    90 }
    +
    91
    +
    92 void Render(Screen& screen) final {
    +
    93 NodeDecorator::Render(screen);
    +
    94
    +
    95 const Box& stencil = screen.stencil;
    +
    96
    +
    97 const int size_inner = box_.x_max - box_.x_min;
    +
    98 if (size_inner <= 0) {
    +
    99 return;
    +
    100 }
    +
    101 const int size_outter = stencil.x_max - stencil.x_min + 1;
    +
    102 if (size_outter >= size_inner) {
    +
    103 return;
    +
    104 }
    +
    105
    +
    106 int size = 2 * size_outter * size_outter / size_inner;
    +
    107 size = std::max(size, 1);
    +
    108
    +
    109 const int start_x =
    +
    110 2 * stencil.x_min + //
    +
    111 2 * (stencil.x_min - box_.x_min) * size_outter / size_inner;
    +
    112
    +
    113 const int y = stencil.y_max;
    +
    114 for (int x = stencil.x_min; x <= stencil.x_max; ++x) {
    +
    115 const int x_left = 2 * x + 0;
    +
    116 const int x_right = 2 * x + 1;
    +
    117 const bool left = (start_x <= x_left) && (x_left <= start_x + size);
    +
    118 const bool right = (start_x <= x_right) && (x_right <= start_x + size);
    +
    119
    +
    120 const char* c =
    +
    121 left ? (right ? "─" : "╴") : (right ? "╶" : " "); // NOLINT
    +
    122 screen.PixelAt(x, y).character = c;
    +
    123 }
    +
    124 }
    +
    125 };
    +
    126 return std::make_shared<Impl>(std::move(child));
    +
    127}
    +
    +
    128
    +
    129} // namespace ftxui
    + + + +
    Element vscroll_indicator(Element)
    Display a vertical scrollbar on the right. Colors follow the content.
    +
    Element hscroll_indicator(Element)
    Display a horizontal scrollbar at the bottom. Colors follow the content.
    +
    std::string character
    Definition pixel.hpp:45
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    int x_max
    Definition box.hpp:18
    +
    int y_min
    Definition box.hpp:19
    +
    Box stencil
    Definition image.hpp:41
    +
    int y_max
    Definition box.hpp:20
    +
    int x_min
    Definition box.hpp:17
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t down
    Definition screen.cpp:133
    +
    std::uint8_t right
    Definition screen.cpp:132
    + +
    +
    + + + + + diff --git a/scrollbar_8cpp.html b/scrollbar_8cpp.html new file mode 100644 index 000000000..f3035ab47 --- /dev/null +++ b/scrollbar_8cpp.html @@ -0,0 +1,260 @@ + + + + + + + + +FTXUI: scrollbar.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    scrollbar.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + +

    +Functions

    Component DummyWindowContent ()
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ DummyWindowContent()

    + +
    +
    + + + + + + + +
    Component DummyWindowContent ()
    +
    + +

    Definition at line 10 of file scrollbar.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 87 of file scrollbar.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/scrollbar_8cpp.js b/scrollbar_8cpp.js new file mode 100644 index 000000000..87b3ef2a4 --- /dev/null +++ b/scrollbar_8cpp.js @@ -0,0 +1,5 @@ +var scrollbar_8cpp = +[ + [ "DummyWindowContent", "scrollbar_8cpp.html#a83db372d294b69185f7a26148935cfc3", null ], + [ "main", "scrollbar_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/scrollbar_8cpp_source.html b/scrollbar_8cpp_source.html new file mode 100644 index 000000000..97bfb0404 --- /dev/null +++ b/scrollbar_8cpp_source.html @@ -0,0 +1,359 @@ + + + + + + + + +FTXUI: scrollbar.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    scrollbar.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + + +
    6#include <string>
    +
    7
    +
    8using namespace ftxui;
    +
    9
    +
    + +
    11 class Impl : public ComponentBase {
    +
    12 private:
    +
    13 float scroll_x = 0.1;
    +
    14 float scroll_y = 0.1;
    +
    15
    +
    16 public:
    +
    17 Impl() {
    +
    18 auto content = Renderer([=] {
    +
    19 const std::string lorem =
    +
    20 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed "
    +
    21 "do eiusmod tempor incididunt ut labore et dolore magna "
    +
    22 "aliqua. Ut enim ad minim veniam, quis nostrud exercitation "
    +
    23 "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis "
    +
    24 "aute irure dolor in reprehenderit in voluptate velit esse "
    +
    25 "cillum dolore eu fugiat nulla pariatur. Excepteur sint "
    +
    26 "occaecat cupidatat non proident, sunt in culpa qui officia "
    +
    27 "deserunt mollit anim id est laborum.";
    +
    28 return vbox({
    +
    29 text(lorem.substr(0, -1)), text(lorem.substr(5, -1)), text(""),
    +
    30 text(lorem.substr(10, -1)), text(lorem.substr(15, -1)), text(""),
    +
    31 text(lorem.substr(20, -1)), text(lorem.substr(25, -1)), text(""),
    +
    32 text(lorem.substr(30, -1)), text(lorem.substr(35, -1)), text(""),
    +
    33 text(lorem.substr(40, -1)), text(lorem.substr(45, -1)), text(""),
    +
    34 text(lorem.substr(50, -1)), text(lorem.substr(55, -1)), text(""),
    +
    35 text(lorem.substr(60, -1)), text(lorem.substr(65, -1)), text(""),
    +
    36 text(lorem.substr(70, -1)), text(lorem.substr(75, -1)), text(""),
    +
    37 text(lorem.substr(80, -1)), text(lorem.substr(85, -1)), text(""),
    +
    38 text(lorem.substr(90, -1)), text(lorem.substr(95, -1)), text(""),
    +
    39 text(lorem.substr(100, -1)), text(lorem.substr(105, -1)), text(""),
    +
    40 text(lorem.substr(110, -1)), text(lorem.substr(115, -1)), text(""),
    +
    41 text(lorem.substr(120, -1)), text(lorem.substr(125, -1)), text(""),
    +
    42 text(lorem.substr(130, -1)), text(lorem.substr(135, -1)), text(""),
    +
    43 text(lorem.substr(140, -1)),
    +
    44 });
    +
    45 });
    +
    46
    +
    47 auto scrollable_content = Renderer(content, [&, content] {
    +
    48 return content->Render() | focusPositionRelative(scroll_x, scroll_y) |
    +
    49 frame | flex;
    +
    50 });
    +
    51
    +
    52 SliderOption<float> option_x;
    +
    53 option_x.value = &scroll_x;
    +
    54 option_x.min = 0.f;
    +
    55 option_x.max = 1.f;
    +
    56 option_x.increment = 0.1f;
    +
    57 option_x.direction = Direction::Right;
    +
    58 option_x.color_active = Color::Blue;
    +
    59 option_x.color_inactive = Color::BlueLight;
    +
    60 auto scrollbar_x = Slider(option_x);
    +
    61
    +
    62 SliderOption<float> option_y;
    +
    63 option_y.value = &scroll_y;
    +
    64 option_y.min = 0.f;
    +
    65 option_y.max = 1.f;
    +
    66 option_y.increment = 0.1f;
    +
    67 option_y.direction = Direction::Down;
    +
    68 option_y.color_active = Color::Yellow;
    + +
    70 auto scrollbar_y = Slider(option_y);
    +
    71
    +
    72 Add(Container::Vertical({
    + +
    74 scrollable_content,
    +
    75 scrollbar_y,
    +
    76 }) | flex,
    +
    77 Container::Horizontal({
    +
    78 scrollbar_x,
    +
    79 Renderer([] { return text(L"x"); }),
    +
    80 }),
    +
    81 }));
    +
    82 }
    +
    83 };
    +
    84 return Make<Impl>();
    +
    85}
    +
    +
    86
    +
    +
    87int main() {
    +
    88 auto window_1 = Window({
    +
    89 .inner = DummyWindowContent(),
    +
    90 .title = "First window",
    +
    91 .width = 80,
    +
    92 .height = 30,
    +
    93 });
    +
    94
    +
    95 auto window_2 = Window({
    +
    96 .inner = DummyWindowContent(),
    +
    97 .title = "My window",
    +
    98 .left = 40,
    +
    99 .top = 20,
    +
    100 .width = 80,
    +
    101 .height = 30,
    +
    102 });
    +
    103
    +
    104 auto window_container = Container::Stacked({
    +
    105 window_1,
    +
    106 window_2,
    +
    107 });
    +
    108
    +
    109 auto screen = ScreenInteractive::Fullscreen();
    +
    110 screen.Loop(window_container);
    +
    111
    +
    112 return EXIT_SUCCESS;
    +
    113}
    +
    + +
    void Add(Component children)
    Add a child. @param child The child to be attached.
    Definition component.cpp:70
    +
    static ScreenInteractive Fullscreen()
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Window(WindowOptions option)
    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
    +
    Component Stacked(Components children)
    A list of components to be stacked on top of each other. Events are propagated to the first component...
    +
    Decorator focusPositionRelative(float x, float y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    std::shared_ptr< ComponentBase > Component
    + +
    Component DummyWindowContent()
    Definition scrollbar.cpp:10
    +
    int main()
    Definition scrollbar.cpp:87
    + + + + + + + + +
    +
    + + + + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 000000000..e4388f31c --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['20_20modules_0',['C++20 Modules',['../cpp20-modules.html',1,'']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 000000000..297594340 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,79 @@ +var searchData= +[ + ['a_0',['A',['../group__component.html#a6a0fe62e2e45aa9516d3d774dc405b0c',1,'ftxui::Event']]], + ['a_1',['a',['../group__component.html#a0dd476cbdcf3ab0b9bba76b7eb51dd18',1,'ftxui::Event']]], + ['a_20dependency_2',['Use as a Dependency',['../installation_nix.html#use-as-a-dependency',1,'']]], + ['a_20frame_20redraw_3',['Force a frame redraw.',['../module-component.html#component-force-redraw',1,'']]], + ['active_4',['Active',['../group__component.html#a52beef6d7a687d4d109e6cec1606e32e',1,'ftxui::ComponentBase::Active()'],['../group__component.html#a9dc30615370889030396a239ceee2a77',1,'ftxui::ScreenInteractive::Active()']]], + ['active_5',['active',['../structftxui_1_1EntryState.html#a03c996f9fcf0e10baeb3e700be0c409a',1,'ftxui::EntryState::active'],['../group__component.html#a5c04e41d802330270ae14a9861c1e2df',1,'ftxui::AnimatedColorOption::active'],['../group__component.html#a03c996f9fcf0e10baeb3e700be0c409a',1,'ftxui::WindowRenderState::active']]], + ['activechild_6',['ActiveChild',['../group__component.html#a5c421f00a2a7f50c542c5c286d2e696c',1,'ftxui::ComponentBase']]], + ['adapter_7',['Adapter',['../classftxui_1_1ConstStringListRef_1_1Adapter.html',1,'ConstStringListRef::Adapter'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#aeeff28a487da7a74856b51e966773246',1,'ftxui::ConstStringListRef::Adapter::Adapter()=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#afaf35b0fc91e998543942da0b2b9a3ee',1,'ftxui::ConstStringListRef::Adapter::Adapter(const Adapter &)=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#a5bcc41e3dec29c90da901ab45c95774a',1,'ftxui::ConstStringListRef::Adapter::Adapter(Adapter &&)=default']]], + ['add_8',['Add',['../group__component.html#a21f040bec9104e164bfa6c3ad45be3a1',1,'ftxui::ComponentBase::Add()'],['../classftxui_1_1TerminalInputParser.html#a4b2f1e271dd6ebbf5bad2418d960832a',1,'ftxui::TerminalInputParser::Add()']]], + ['addpart_9',['AddPart',['../group__dom.html#a9887e25feddebbf840876824cb3cbf61',1,'ftxui::Selection']]], + ['aletter_10',['ALetter',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aab1bb481a6d76de94d35e1d67cb85d966',1,'ftxui']]], + ['align_5fcontent_11',['align_content',['../group__dom.html#a103275cb09167852e469450cf8471256',1,'ftxui::FlexboxConfig']]], + ['align_5fitems_12',['align_items',['../group__dom.html#a1514fd3d64965c521555fdc2cf2002ce',1,'ftxui::FlexboxConfig']]], + ['align_5fright_13',['align_right',['../group__dom.html#ga778e52afe28f1978f1f7ef065ed92d6d',1,'ftxui']]], + ['aligncontent_14',['AlignContent',['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420',1,'ftxui::FlexboxConfig']]], + ['alignitems_15',['AlignItems',['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7',1,'ftxui::FlexboxConfig']]], + ['alta_16',['AltA',['../group__component.html#a9afff79ad622a8deab0c1106610bd635',1,'ftxui::Event']]], + ['altb_17',['AltB',['../group__component.html#ab72b86bd630ac23d469394b4f115d388',1,'ftxui::Event']]], + ['altc_18',['AltC',['../group__component.html#a527184b90a16487888d646d44e0e8a6b',1,'ftxui::Event']]], + ['altd_19',['AltD',['../group__component.html#aaeed8e5d3503dc5418978329168cc455',1,'ftxui::Event']]], + ['alte_20',['AltE',['../group__component.html#adbc22b402e7e8e7a25ea8da614e84082',1,'ftxui::Event']]], + ['altf_21',['AltF',['../group__component.html#a13f05bbf8f71e0ecd73bca163018e2b5',1,'ftxui::Event']]], + ['altg_22',['AltG',['../group__component.html#a6e26660f8ded2ee68c00bbd09247f007',1,'ftxui::Event']]], + ['alth_23',['AltH',['../group__component.html#a1365e5d1a530aca80da90dfe10b48cbc',1,'ftxui::Event']]], + ['alti_24',['AltI',['../group__component.html#ac728998d6c0e0a9b59e31987e9292c1e',1,'ftxui::Event']]], + ['altj_25',['AltJ',['../group__component.html#ab2b4e0ee4d2db65374b1111553dc96f9',1,'ftxui::Event']]], + ['altk_26',['AltK',['../group__component.html#a4d2a42120ce47e7fa7cd5237d61cf9c5',1,'ftxui::Event']]], + ['altl_27',['AltL',['../group__component.html#a2d0b55c600a1ae7c0406dfad3c31c591',1,'ftxui::Event']]], + ['altm_28',['AltM',['../group__component.html#a59dc4d656241c7f76433d0103e8e6934',1,'ftxui::Event']]], + ['altn_29',['AltN',['../group__component.html#a9a6e150b0940479d2dd24f039f91675c',1,'ftxui::Event']]], + ['alto_30',['AltO',['../group__component.html#a76c653ab37318c4bb6a2832c9cf1d612',1,'ftxui::Event']]], + ['altp_31',['AltP',['../group__component.html#acabec40a30b5854999e774d0a1f3342e',1,'ftxui::Event']]], + ['altq_32',['AltQ',['../group__component.html#a26ff1602105cf0df822f8b370be63fdd',1,'ftxui::Event']]], + ['altr_33',['AltR',['../group__component.html#a7edddb7c159929157b0bf0b0deb7e4e0',1,'ftxui::Event']]], + ['alts_34',['AltS',['../group__component.html#ad1becc889768aafe7e452bc529f3bc4c',1,'ftxui::Event']]], + ['altt_35',['AltT',['../group__component.html#a06b17875059c0e92f716c0463ca60e86',1,'ftxui::Event']]], + ['altu_36',['AltU',['../group__component.html#a95b1b6528a78575ca07954600c45f805',1,'ftxui::Event']]], + ['altv_37',['AltV',['../group__component.html#ae5063b138286493e68fa140af2c3e4e6',1,'ftxui::Event']]], + ['altw_38',['AltW',['../group__component.html#a35ad37bd8fb24e3ce38df9c3b61ef4e5',1,'ftxui::Event']]], + ['altx_39',['AltX',['../group__component.html#aec5dcc79e3d6c86ce71306a57b49b48c',1,'ftxui::Event']]], + ['alty_40',['AltY',['../group__component.html#a2a7b9d5b6dc8ce1529bd58b5f196cf91',1,'ftxui::Event']]], + ['altz_41',['AltZ',['../group__component.html#aaac4eb7051d6901cf79fa32b46bface9',1,'ftxui::Event']]], + ['and_20ubuntu_20packages_20unofficial_42',['Debian and Ubuntu Packages (Unofficial)',['../installation_debian.html#debian-and-ubuntu-packages-unofficial',1,'']]], + ['angle_43',['Angle',['../group__dom.html#a251d447c54f49914a2cbf5dc16fc8b5b',1,'ftxui::LinearGradient']]], + ['angle_44',['angle',['../group__dom.html#ab8ef1bf8a70cc07c6d55823c390a7e76',1,'ftxui::LinearGradient::angle'],['../src_2ftxui_2dom_2linear__gradient_8cpp.html#ab8ef1bf8a70cc07c6d55823c390a7e76',1,'angle: linear_gradient.cpp']]], + ['animated_45',['Animated',['../group__component.html#a008018822835ed0f3758af3c6e72837d',1,'ftxui::ButtonOption::Animated()'],['../group__component.html#a1a78fe7bb802251805a3867ba1a31e15',1,'ftxui::ButtonOption::Animated(Color color)'],['../group__component.html#a0295430ca4a317b0cbba9ee5faa4a324',1,'ftxui::ButtonOption::Animated(Color background, Color foreground)'],['../group__component.html#adf705e582d884e89211b540a97f2e090',1,'ftxui::ButtonOption::Animated(Color background, Color foreground, Color background_active, Color foreground_active)']]], + ['animated_5fcolors_46',['animated_colors',['../group__component.html#ab7131557fbe84a6b4b2f2ffcff7d44f0',1,'ftxui::MenuEntryOption::animated_colors'],['../group__component.html#ab7131557fbe84a6b4b2f2ffcff7d44f0',1,'ftxui::ButtonOption::animated_colors']]], + ['animatedcoloroption_47',['AnimatedColorOption',['../group__component.html#structftxui_1_1AnimatedColorOption',1,'ftxui']]], + ['animatedcolorsoption_48',['AnimatedColorsOption',['../structftxui_1_1AnimatedColorsOption.html',1,'ftxui']]], + ['animation_2ecpp_49',['animation.cpp',['../animation_8cpp.html',1,'']]], + ['animation_2ecppm_50',['animation.cppm',['../animation_8cppm.html',1,'']]], + ['animation_2ehpp_51',['animation.hpp',['../animation_8hpp.html',1,'']]], + ['animationtask_52',['AnimationTask',['../classftxui_1_1AnimationTask.html',1,'ftxui']]], + ['animator_53',['Animator',['../classftxui_1_1animation_1_1Animator.html',1,'Animator'],['../classftxui_1_1animation_1_1Animator.html#a03909a0243b559e18e21996ccacdc8b6',1,'ftxui::animation::Animator::Animator()']]], + ['applyshader_54',['ApplyShader',['../group__screen.html#a04d18c0cb0df3ed7a01ca5c3b8711ff7',1,'ftxui::Screen']]], + ['aquamarine1_55',['Aquamarine1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf54d1112226e67ee67339a050ae1b352',1,'ftxui::Color']]], + ['aquamarine1bis_56',['Aquamarine1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4db1324d99372274e2414031d1773151',1,'ftxui::Color']]], + ['aquamarine3_57',['Aquamarine3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfadc172e17e6f05d6e2b0e48c85803a85a',1,'ftxui::Color']]], + ['arch_20linux_58',['Arch Linux',['../installation_arch.html',1,'installation']]], + ['arrowdown_59',['ArrowDown',['../group__component.html#a9d2a831cf68bf2185a3c56c2e09b2f23',1,'ftxui::Event']]], + ['arrowdownctrl_60',['ArrowDownCtrl',['../group__component.html#aeb40ca3ed1e25a8a02cec6e94f20cd01',1,'ftxui::Event']]], + ['arrowleft_61',['ArrowLeft',['../group__component.html#ae1b59315a513c99ac3095bc42dff0d94',1,'ftxui::Event']]], + ['arrowleftctrl_62',['ArrowLeftCtrl',['../group__component.html#a05941a0e87f230113219319b1ce8a6b2',1,'ftxui::Event']]], + ['arrowright_63',['ArrowRight',['../group__component.html#afed9a747f55d4564e4f749bea1de4022',1,'ftxui::Event']]], + ['arrowrightctrl_64',['ArrowRightCtrl',['../group__component.html#af7861733aa43e55da68824c10e164dd1',1,'ftxui::Event']]], + ['arrowup_65',['ArrowUp',['../group__component.html#a916bd0ae3c86941b660d9a07980bb0c9',1,'ftxui::Event']]], + ['arrowupctrl_66',['ArrowUpCtrl',['../group__component.html#abcf6d1b9fe64b9a6376e1d6c486d802b',1,'ftxui::Event']]], + ['as_20a_20dependency_67',['Use as a Dependency',['../installation_nix.html#use-as-a-dependency',1,'']]], + ['ascii_68',['Ascii',['../group__component.html#a66e244b326f3cdc7b80ea836c391c34b',1,'ftxui::ButtonOption']]], + ['asked_5f_69',['asked_',['../flexbox_8cpp.html#a020ee158f0c398a7ffd442a82bb878d0',1,'flexbox.cpp']]], + ['at_70',['at',['../group__screen.html#a55b0a995463c6936efb33391f29565bc',1,'ftxui::Image::at(int x, int y)'],['../group__screen.html#a0882d58bb8ca1be9953135338456cf9e',1,'ftxui::Image::at(int x, int y) const']]], + ['automerge_71',['automerge',['../group__screen.html#ada8b6dbd466ba5b6c4b240f229bd627f',1,'ftxui::Pixel::automerge'],['../group__dom.html#gaca42bd6c44d8d366d5c1014330402086',1,'ftxui::automerge()']]], + ['automerge_2ecpp_72',['automerge.cpp',['../automerge_8cpp.html',1,'']]], + ['autoreset_73',['AutoReset',['../classftxui_1_1AutoReset.html',1,'AutoReset< T >'],['../classftxui_1_1AutoReset.html#ae393855d753027bcb3d4d1e1514e6ad4',1,'ftxui::AutoReset::AutoReset(T *variable, T new_value)'],['../classftxui_1_1AutoReset.html#a5280cdbbbecce1de0ae69bfdca10d7ed',1,'ftxui::AutoReset::AutoReset(const AutoReset &)=delete'],['../classftxui_1_1AutoReset.html#aaef5fed3c034c065dfc218244e112a4e',1,'ftxui::AutoReset::AutoReset(AutoReset &&)=delete']]], + ['autoreset_2ecppm_74',['autoreset.cppm',['../autoreset_8cppm.html',1,'']]], + ['autoreset_2ehpp_75',['autoreset.hpp',['../autoreset_8hpp.html',1,'']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 000000000..a301ca2c5 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,64 @@ +var searchData= +[ + ['p_0',['P',['../group__component.html#adbe5783b3283110278f68e58bb286b9f',1,'ftxui::Event']]], + ['p_1',['p',['../group__component.html#a6e9d231eb7f1a65490a68e31131c945b',1,'ftxui::Event']]], + ['package_2',['Vcpkg Package',['../installation_vcpkg.html#vcpkg-package',1,'']]], + ['package_20unofficial_3',['Package Unofficial',['../installation_opensuse.html#opensuse-package-unofficial',1,'openSUSE Package (Unofficial)'],['../installation_xmake.html#xmake-package-unofficial',1,'XMake Package (Unofficial)']]], + ['package_5fmanager_2ecpp_4',['package_manager.cpp',['../package__manager_8cpp.html',1,'']]], + ['packages_20unofficial_5',['Debian and Ubuntu Packages (Unofficial)',['../installation_debian.html#debian-and-ubuntu-packages-unofficial',1,'']]], + ['pagedown_6',['PageDown',['../group__component.html#acc3462fea2a9b2085734ff87dc881b4c',1,'ftxui::Event']]], + ['pageup_7',['PageUp',['../group__component.html#a21ae13b6dcbc80ed6549a5afab248477',1,'ftxui::Event']]], + ['palegreen1_8',['PaleGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa37e5d9f46ab5a7952f9cdf0a3cc8925',1,'ftxui::Color']]], + ['palegreen1bis_9',['PaleGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa115628c4a676f43dc9a5791c927e7048',1,'ftxui::Color']]], + ['palegreen3_10',['PaleGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa73f2e82908260a1c80e9cdffd7c80b05',1,'ftxui::Color']]], + ['palegreen3bis_11',['PaleGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa05657d514246de9444d35bfd78da177d',1,'ftxui::Color']]], + ['palette1_12',['Palette1',['../group__screen.html#aa4be56f94fc180d7b070df23c235b0c7',1,'ftxui::Color::Palette1'],['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1caf8fee1420fe204b3dafbacf27a545c41',1,'ftxui::Terminal::Palette1']]], + ['palette16 _13',['Palette16 ',['../module-dom.html#dom-colors-palette-16',1,'']]], + ['palette16_14',['Palette16',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802f',1,'ftxui::Color::Palette16'],['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1cae5a76102d821ec8233fee04273c60349',1,'ftxui::Terminal::Palette16']]], + ['palette256 _15',['Palette256 ',['../module-dom.html#dom-colors-palette-256',1,'']]], + ['palette256_16',['Palette256',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcf',1,'ftxui::Color::Palette256'],['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1ca7b88ab2a5c8fe8866c96ea4acb623876',1,'ftxui::Terminal::Palette256']]], + ['palette256_17',['palette256',['../namespaceftxui.html#acc77ce2876ca75e8d5fe8925a45592d1',1,'ftxui']]], + ['paleturquoise1_18',['PaleTurquoise1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c1b8b84117604af63923758665c0762',1,'ftxui::Color']]], + ['paleturquoise4_19',['PaleTurquoise4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfafebf48dd9c5efb72a880db1800b70cb4',1,'ftxui::Color']]], + ['palevioletred1_20',['PaleVioletRed1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b52566a531a122cc807cd5698659f6f',1,'ftxui::Color']]], + ['paragraph _21',['paragraph ',['../module-dom.html#dom-paragraph',1,'']]], + ['paragraph_22',['paragraph',['../namespaceftxui.html#ac54cdd05db30871ce082a8fa650545da',1,'ftxui::paragraph(std::wstring text)'],['../group__dom.html#ga3f9093ae1a2790d396fc2cff9990fbbd',1,'ftxui::paragraph(const std::string &the_text)']]], + ['paragraphaligncenter_23',['paragraphAlignCenter',['../group__dom.html#ga6a105f6b0d07d7933379ff1ae9282fb8',1,'ftxui']]], + ['paragraphalignjustify_24',['paragraphAlignJustify',['../group__dom.html#gae4de548aa67ab77cb345e4ddec6b248b',1,'ftxui']]], + ['paragraphalignleft_25',['paragraphAlignLeft',['../group__dom.html#gaa334a836eccc573e1137a1ba29d07d8a',1,'ftxui']]], + ['paragraphalignright_26',['paragraphAlignRight',['../group__dom.html#ga28a69f06a88c89fe7a507e33ab486411',1,'ftxui']]], + ['params_27',['Params',['../classftxui_1_1animation_1_1Params.html',1,'Params'],['../classftxui_1_1animation_1_1Params.html#a27854a0925475df9b926b03808cc8d8c',1,'ftxui::animation::Params::Params()']]], + ['parent_28',['Parent',['../group__component.html#aaf284a408631f31558694973a04186c2',1,'ftxui::ComponentBase']]], + ['password_29',['password',['../group__component.html#a927bd46792ffe38c7545a764d847d066',1,'ftxui::InputOption']]], + ['pendingtask_30',['PendingTask',['../structftxui_1_1task_1_1PendingTask.html',1,'PendingTask'],['../structftxui_1_1task_1_1PendingTask.html#afc8e67df1a9259a50e7afa49765cb7c8',1,'ftxui::task::PendingTask::PendingTask(Task t)'],['../structftxui_1_1task_1_1PendingTask.html#a5e36044e86c7936eee25d0ff222b7235',1,'ftxui::task::PendingTask::PendingTask(Task t, std::chrono::steady_clock::duration duration)']]], + ['pink1_31',['Pink1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab1b14b4665532f810353fbd89ba7bf69',1,'ftxui::Color']]], + ['pink3_32',['Pink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18d97cfab35116e2049378e4410b0563',1,'ftxui::Color']]], + ['pixel_33',['Pixel',['../group__screen.html#structftxui_1_1Pixel',1,'Pixel'],['../group__screen.html#a3d22dc2630f1c1c69ec973cd4648b5d5',1,'ftxui::Pixel::Pixel()']]], + ['pixel_2ecppm_34',['pixel.cppm',['../pixel_8cppm.html',1,'']]], + ['pixel_2ehpp_35',['pixel.hpp',['../pixel_8hpp.html',1,'']]], + ['pixelat_36',['PixelAt',['../group__screen.html#a483f8ee1967e200cfc9e277b3ce00174',1,'ftxui::Image::PixelAt(int x, int y)'],['../group__screen.html#a03b2b39bb8f4d72068744776093125b3',1,'ftxui::Image::PixelAt(int x, int y) const']]], + ['pixels_5f_37',['pixels_',['../group__screen.html#aeab8c1788b3f2c7403749c3be95a68ae',1,'ftxui::Image']]], + ['placeholder_38',['placeholder',['../group__component.html#aaca8e18f9fe70089d8fd4165f4b518e1',1,'ftxui::InputOption']]], + ['platforms_39',['Supported Platforms',['../index.html#supported-platforms',1,'']]], + ['plum1_40',['Plum1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3c254e3ced4cbe2836a246270317ac1',1,'ftxui::Color']]], + ['plum2_41',['Plum2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa383cc742bb6efae64c17af4b0159f2f1',1,'ftxui::Color']]], + ['plum3_42',['Plum3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab2b302d3a548112c82dbe295f1cace40',1,'ftxui::Color']]], + ['plum4_43',['Plum4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa69b6a24bf00f2a9278f12241e176106c',1,'ftxui::Color']]], + ['position_44',['position',['../structftxui_1_1LinearGradient_1_1Stop.html#a2f3c9e83b473a71f2882ee1ec4fb88de',1,'ftxui::LinearGradient::Stop']]], + ['positions_45',['positions',['../src_2ftxui_2dom_2linear__gradient_8cpp.html#af3fd42b7427cb742f96e7ec3244fb7cf',1,'linear_gradient.cpp']]], + ['post_46',['Post',['../group__component.html#a49209b09dcf8bc540f79e2bfd0a7ee88',1,'ftxui::ScreenInteractive']]], + ['postdelayedtask_47',['PostDelayedTask',['../classftxui_1_1task_1_1TaskRunner.html#a9ed72fa10b2d44bb1af7bd8af64dd28b',1,'ftxui::task::TaskRunner']]], + ['postevent_48',['PostEvent',['../group__component.html#a29e75bdaa1d5465518787ec014b2c3bf',1,'ftxui::ScreenInteractive']]], + ['posttask_49',['PostTask',['../structftxui_1_1task_1_1TaskQueue.html#ada41a34871c48f856bf3659e0b0c4f81',1,'ftxui::task::TaskQueue::PostTask()'],['../classftxui_1_1task_1_1TaskRunner.html#a6265a2d99ef09d491365c21a4a703c71',1,'ftxui::task::TaskRunner::PostTask()']]], + ['prefer_50',['Prefer',['../structftxui_1_1Requirement_1_1Focused.html#a8a204963959c73e971c7d030cbc34134',1,'ftxui::Requirement::Focused']]], + ['pressed_51',['Pressed',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25',1,'ftxui::Mouse']]], + ['print_52',['Print',['../group__screen.html#acfe358aa128835387b6c2b7ffe22bab5',1,'ftxui::Color::Print()'],['../group__screen.html#ad93edbe885499a712129356f1ffd506b',1,'ftxui::Screen::Print()']]], + ['print_5fkey_5fpress_2ecpp_53',['print_key_press.cpp',['../print__key__press_8cpp.html',1,'']]], + ['private_54',['Private',['../classftxui_1_1ScreenInteractive_1_1Private.html',1,'ScreenInteractive::Private'],['../group__component.html#a55bfcd8369da28d548069f2761d2c39f',1,'ftxui::ScreenInteractive::Private']]], + ['project_55',['Starter Project',['../installation_bazel.html#starter-project',1,'']]], + ['purple_56',['Purple',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0102772e56e7f068bdb57bf2905f7c09',1,'ftxui::Color']]], + ['purple3_57',['Purple3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3ba6254f6df4ad7c05ee0be4ccd4bce0',1,'ftxui::Color']]], + ['purple4_58',['Purple4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb508ce5a099dbfa4e04cd59530f7f0c',1,'ftxui::Color']]], + ['purple4bis_59',['Purple4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1dfe93e583d4f1a3538c40ce29208e64',1,'ftxui::Color']]], + ['purplebis_60',['PurpleBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae855e26440338753abef27e7b999ce5b',1,'ftxui::Color']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 000000000..193fd5240 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['q_0',['Q',['../group__component.html#a1ff5f6b99205a10c360cd51ec758ac5c',1,'ftxui::Event']]], + ['q_1',['q',['../group__component.html#aa636a5e07d605ae7bf53b02f8b17b4bf',1,'ftxui::Event']]], + ['quadraticin_2',['QuadraticIn',['../namespaceftxui_1_1animation_1_1easing.html#ab0b9303e7f956c36960e601f158e488f',1,'ftxui::animation::easing']]], + ['quadraticinout_3',['QuadraticInOut',['../namespaceftxui_1_1animation_1_1easing.html#a8155757f48a6e85e27da99c0a93f7e8d',1,'ftxui::animation::easing']]], + ['quadraticout_4',['QuadraticOut',['../namespaceftxui_1_1animation_1_1easing.html#aa1618a8f59ae7bae191d0ab36bf90e66',1,'ftxui::animation::easing']]], + ['quarticin_5',['QuarticIn',['../namespaceftxui_1_1animation_1_1easing.html#af60268bac4059d32b3f7680042dba350',1,'ftxui::animation::easing']]], + ['quarticinout_6',['QuarticInOut',['../namespaceftxui_1_1animation_1_1easing.html#a72dd2cb5c7ffddfe3a3d8b455f68d37e',1,'ftxui::animation::easing']]], + ['quarticout_7',['QuarticOut',['../namespaceftxui_1_1animation_1_1easing.html#a8878f359f37551ae64eb183af3ca93b8',1,'ftxui::animation::easing']]], + ['quinticin_8',['QuinticIn',['../namespaceftxui_1_1animation_1_1easing.html#ab4eae8c5808cc6ab161037659e761a50',1,'ftxui::animation::easing']]], + ['quinticinout_9',['QuinticInOut',['../namespaceftxui_1_1animation_1_1easing.html#afcbc9e6b461fe3418a59faf4a5f9284d',1,'ftxui::animation::easing']]], + ['quinticout_10',['QuinticOut',['../namespaceftxui_1_1animation_1_1easing.html#aae2598b1aa6a2fc944f52edbf0453fd5',1,'ftxui::animation::easing']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 000000000..ffc472fe0 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,75 @@ +var searchData= +[ + ['r_0',['R',['../group__component.html#a587f0654c3c66dc8739b421c29dbe8a7',1,'ftxui::Event']]], + ['r_1',['r',['../group__component.html#a953b41738801a5ec92b15681aed4a3a9',1,'ftxui::Event']]], + ['radiobox_2',['RadioBox',['../module-component.html#component-radiobox',1,'']]], + ['radiobox_3',['Radiobox',['../group__component.html#ga3e7a44f321fa910f07aef5879e67af95',1,'ftxui::Radiobox(RadioboxOption option)'],['../group__component.html#gac73eebf15ff6b5386b7ee6c6cb4a4890',1,'ftxui::Radiobox(ConstStringListRef entries, int *selected, RadioboxOption option)']]], + ['radiobox_4',['radiobox',['../group__component.html#a83288bb2ebb6ca0eef0651285a71291e',1,'ftxui::DropdownOption']]], + ['radiobox_5fin_5fframe_2ecpp_5',['radiobox_in_frame.cpp',['../radiobox__in__frame_8cpp.html',1,'']]], + ['radioboxoption_6',['RadioboxOption',['../group__component.html#structftxui_1_1RadioboxOption',1,'ftxui']]], + ['receive_7',['Receive',['../classftxui_1_1ReceiverImpl.html#a2d2bc6945a964ecb739002cc58291bee',1,'ftxui::ReceiverImpl']]], + ['receivenonblocking_8',['ReceiveNonBlocking',['../classftxui_1_1ReceiverImpl.html#a3afe67ce4b9296787d4133866e0b2b00',1,'ftxui::ReceiverImpl']]], + ['receiver_9',['Receiver',['../namespaceftxui.html#a7abbe763f26611fbf3902861863b7659',1,'ftxui']]], + ['receiver_2ecppm_10',['receiver.cppm',['../receiver_8cppm.html',1,'']]], + ['receiver_2ehpp_11',['receiver.hpp',['../receiver_8hpp.html',1,'']]], + ['receiverimpl_12',['ReceiverImpl',['../classftxui_1_1ReceiverImpl.html',1,'ReceiverImpl< T >'],['../classftxui_1_1ReceiverImpl.html#a06cce9969ba99f4e42c24dbce9662a3a',1,'ftxui::ReceiverImpl::ReceiverImpl()']]], + ['red_13',['Red',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad3163c1fcda01965b692ec2c3122b743',1,'ftxui::Color']]], + ['red_14',['red',['../group__screen.html#ad47d918910aaa51c73160ac85999d09c',1,'ftxui::ColorInfo']]], + ['red1_15',['Red1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa62acd44726f02a17ba2a17c1cf253639',1,'ftxui::Color']]], + ['red3_16',['Red3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa37bd25cf1e1fe1eeb8e4840dbc863dac',1,'ftxui::Color']]], + ['red3bis_17',['Red3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2925c3081d309e0d11612a0dcd564379',1,'ftxui::Color']]], + ['redlight_18',['RedLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa0a04dda6f997cd48c0ca74203c501d27',1,'ftxui::Color']]], + ['redraw_19',['Force a frame redraw.',['../module-component.html#component-force-redraw',1,'']]], + ['ref_20',['Ref',['../classftxui_1_1Ref.html',1,'Ref< T >'],['../classftxui_1_1Ref.html#a6170df9accd9f47736e97385233017b3',1,'ftxui::Ref::Ref()=default'],['../classftxui_1_1Ref.html#ab19bb3d5a2b0867c790f00f339915c56',1,'ftxui::Ref::Ref(T t)'],['../classftxui_1_1Ref.html#ae16b183b63cb1d7ef3d11ff47c158a8b',1,'ftxui::Ref::Ref(T *t)'],['../classftxui_1_1Ref.html#aec110a549f4e384fb89896bd013cc8fe',1,'ftxui::Ref::Ref(const Ref< T > &)=default'],['../classftxui_1_1Ref.html#af37c209213693451d05f4b089402ee07',1,'ftxui::Ref::Ref(Ref< T > &&) noexcept=default']]], + ['ref_2ecppm_21',['ref.cppm',['../ref_8cppm.html',1,'']]], + ['ref_2ehpp_22',['ref.hpp',['../ref_8hpp.html',1,'']]], + ['ref_3c_20bool_20_3e_23',['Ref< bool >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20direction_20_3e_24',['Ref< Direction >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20int_20_3e_25',['Ref< int >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20std_3a_3astring_20_3e_26',['Ref< std::string >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['reflect_27',['reflect',['../namespaceftxui.html#aaff8245861617a3d9e846e99de582a63',1,'ftxui']]], + ['reflect_2ecpp_28',['reflect.cpp',['../reflect_8cpp.html',1,'']]], + ['regional_5findicator_29',['Regional_Indicator',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa7f219844b91c2bb3bdb5fb7ffbdfca72',1,'ftxui']]], + ['registerhyperlink_30',['RegisterHyperlink',['../group__screen.html#a38015a8bc3dda474354ec8a374a6e2de',1,'ftxui::Screen']]], + ['released_31',['Released',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6ad9417ac74f0134b9577d1d85cf422c25',1,'ftxui::Mouse']]], + ['render_32',['Render',['../group__component.html#a28d41d6113c5b29c8dd45846582b3299',1,'ftxui::ComponentBase::Render()'],['../group__dom.html#a7e286fe14880614686ceeec84a9a9702',1,'ftxui::Node::Render(Screen &screen)'],['../group__dom.html#ab35030b64136afa183d474d11bd1f6dd',1,'ftxui::Node::Render'],['../group__dom.html#a28d41d6113c5b29c8dd45846582b3299',1,'ftxui::Table::Render()'],['../group__dom.html#gad4b8aa9392f56ba41e2b421e046a7d83',1,'ftxui::Render(Screen &screen, const Element &element)'],['../group__dom.html#ga32a24db985fa1b37bf686b00f7e1b4ff',1,'ftxui::Render(Screen &screen, Node *node)'],['../namespaceftxui.html#ab35030b64136afa183d474d11bd1f6dd',1,'ftxui::Render(Screen &screen, Node *node, Selection &selection)']]], + ['render_33',['render',['../structftxui_1_1WindowOptions.html#aa3858f495756090a379c564844eaf342',1,'ftxui::WindowOptions']]], + ['renderer_34',['Renderer',['../group__component.html#ga533e883e2aeea28de2b60564fcaf0361',1,'ftxui::Renderer(Component child, std::function< Element()> render)'],['../group__component.html#gaf03d3df7243bf71bb1a73686628f7f2b',1,'ftxui::Renderer(std::function< Element()> render)'],['../group__component.html#ga099cb57274a99396ee10f38acbfe62a7',1,'ftxui::Renderer(std::function< Element(bool)> render)'],['../group__component.html#ga41d63b7af41dee1570b54915821abd30',1,'ftxui::Renderer(ElementDecorator decorator)'],['../module-component.html#component-renderer',1,'Renderer']]], + ['requestanimationframe_35',['RequestAnimationFrame',['../group__component.html#ad94d3d42aba3359550759aae5bcffbe9',1,'ftxui::ScreenInteractive::RequestAnimationFrame()'],['../group__component.html#gad94d3d42aba3359550759aae5bcffbe9',1,'ftxui::animation::RequestAnimationFrame()']]], + ['requirement_36',['Requirement',['../group__dom.html#structftxui_1_1Requirement',1,'ftxui']]], + ['requirement_37',['requirement',['../group__dom.html#a39a263e8c8786dc62fcb4d734aad7fe6',1,'ftxui::Node']]], + ['requirement_2ecppm_38',['requirement.cppm',['../requirement_8cppm.html',1,'']]], + ['requirement_2ehpp_39',['requirement.hpp',['../requirement_8hpp.html',1,'']]], + ['requirement_5f_40',['requirement_',['../group__dom.html#a3530d99687053ce0d0006b9dee9a1ca7',1,'ftxui::Node']]], + ['resetposition_41',['ResetPosition',['../group__screen.html#a9677c078c4270afdb7451cdc0b0871d4',1,'ftxui::Screen']]], + ['resizablesplit_42',['ResizableSplit',['../namespaceftxui.html#a5ce41caeafc35dedc5c7da5347386e80',1,'ftxui::ResizableSplit()'],['../module-component.html#component-resizable-split',1,'ResizableSplit']]], + ['resizablesplitbottom_43',['ResizableSplitBottom',['../group__component.html#gacb75e6e61a021829893f7b57aeb7e3a2',1,'ftxui']]], + ['resizablesplitleft_44',['ResizableSplitLeft',['../group__component.html#gae2205fc172615b43e1e3307bb614be4c',1,'ftxui']]], + ['resizablesplitoption_45',['ResizableSplitOption',['../structftxui_1_1ResizableSplitOption.html',1,'ftxui']]], + ['resizablesplitright_46',['ResizableSplitRight',['../group__component.html#ga9030d0beb64f653603cab382b02750a8',1,'ftxui']]], + ['resizablesplittop_47',['ResizableSplitTop',['../group__component.html#ga238b4b650aca14716b82b2198695e008',1,'ftxui']]], + ['resize_48',['resize',['../group__component.html#a47beb6819c84c39255cb60f5710714ce',1,'ftxui::WindowRenderState']]], + ['resize_5fdown_49',['resize_down',['../structftxui_1_1WindowOptions.html#a0e28320aa6145db8201aebb07162d461',1,'ftxui::WindowOptions']]], + ['resize_5fdown_5f_50',['resize_down_',['../src_2ftxui_2component_2window_8cpp.html#abb5820730ee5ac08f5623d866a8b6777',1,'window.cpp']]], + ['resize_5fleft_51',['resize_left',['../structftxui_1_1WindowOptions.html#a17b2004b29ac06ad2b486d923fad0dbb',1,'ftxui::WindowOptions']]], + ['resize_5fleft_5f_52',['resize_left_',['../src_2ftxui_2component_2window_8cpp.html#a11cd63ba8957337034d3351d3b416030',1,'window.cpp']]], + ['resize_5fright_53',['resize_right',['../structftxui_1_1WindowOptions.html#abaa0c8009acea8039e5b6f5bab86c4dc',1,'ftxui::WindowOptions']]], + ['resize_5fright_5f_54',['resize_right_',['../src_2ftxui_2component_2window_8cpp.html#a435bdeaeaea854a80f574fbfda91032f',1,'window.cpp']]], + ['resize_5ftop_55',['resize_top',['../structftxui_1_1WindowOptions.html#a8885b0a965d3975426bd615b2fef3542',1,'ftxui::WindowOptions']]], + ['resize_5ftop_5f_56',['resize_top_',['../src_2ftxui_2component_2window_8cpp.html#a12f0c5cd8f00f860d8fb47550f0af746',1,'window.cpp']]], + ['return_57',['Return',['../group__component.html#ad3ab0b5bcc923c4b994080d45b97e36b',1,'ftxui::Event']]], + ['rgb_58',['RGB',['../group__screen.html#aacec69e0aa1063fbec2cc305e7b076dd',1,'ftxui::Color']]], + ['rgba_59',['RGBA',['../group__screen.html#a2649c83ca263094811d2c537d44b59b4',1,'ftxui::Color']]], + ['right_60',['Right',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ad48f7af8c070184f3774c8e85854eb66',1,'ftxui::Mouse::Right'],['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c',1,'ftxui::Right']]], + ['right_61',['right',['../screen_8cpp.html#aa4b74e56e675912bbc06504407fc7a46',1,'screen.cpp']]], + ['rosybrown_62',['RosyBrown',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa5104c5c0a54bc5ac1dc83e20c75dbea',1,'ftxui::Color']]], + ['round_63',['round',['../screen_8cpp.html#ad20ff2177c37ddb2e308815c71d4be81',1,'screen.cpp']]], + ['rounded_64',['ROUNDED',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca655074b92b285adff7d18a45748bf493',1,'ftxui']]], + ['row_65',['Row',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaaa70367aa7cb74e510f4f9413ccf059d3',1,'ftxui::FlexboxConfig']]], + ['rowinversed_66',['RowInversed',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaabba4d6f3a9cec9c96600e3e0d17b9f6a',1,'ftxui::FlexboxConfig']]], + ['royalblue1_67',['RoyalBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0dbe4adc6031521d77fc91e09f8d3fbf',1,'ftxui::Color']]], + ['run_68',['Run',['../group__component.html#aa3eca255b6be227d7d901cc2a72017a5',1,'ftxui::Loop::Run()'],['../classftxui_1_1task_1_1TaskRunner.html#a58f2f0e6ed3d38c3e6a081f7c99a544f',1,'ftxui::task::TaskRunner::Run()']]], + ['runonce_69',['RunOnce',['../group__component.html#ad638ec512bc0d9876c2bf1c15913e9d3',1,'ftxui::Loop']]], + ['runonceblocking_70',['RunOnceBlocking',['../group__component.html#afe89c4e52cb64cd7271c3fa8a04e7b61',1,'ftxui::Loop']]], + ['rununtilidle_71',['RunUntilIdle',['../classftxui_1_1task_1_1TaskRunner.html#a7865ea610276e71d61633de0aab71753',1,'ftxui::task::TaskRunner']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 000000000..be117f97d --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,185 @@ +var searchData= +[ + ['s_0',['S',['../group__component.html#ad3a8ae79497cbfa7cd88230b8fef68bb',1,'ftxui::Event']]], + ['s_1',['s',['../group__component.html#ac09c6206315a7cd54fb467bc7760dfae',1,'ftxui::Event']]], + ['salmon1_2',['Salmon1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa664067df16558f65cc3d46609a03dfab',1,'ftxui::Color']]], + ['sandybrown_3',['SandyBrown',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64269c060a2fc56cb77c12360cd3a28e',1,'ftxui::Color']]], + ['saturatehorizontal_4',['SaturateHorizontal',['../group__dom.html#af3f2674604d907fbce26d4217cfa9324',1,'ftxui::Selection']]], + ['saturatevertical_5',['SaturateVertical',['../group__dom.html#ace69e1e7c6e64b7ae0c4402e0e1e3336',1,'ftxui::Selection']]], + ['saturation_6',['saturation',['../group__screen.html#a4769b22557e2bcd3edbc69f2caaf691f',1,'ftxui::ColorInfo']]], + ['screen_7',['Screen',['../group__screen.html#classftxui_1_1Screen',1,'Screen'],['../group__screen.html#a7ecf7c5fb3d90a1620098a60cfafc215',1,'ftxui::Screen::Screen()']]], + ['screen_8',['screen',['../module-screen.html',1,'ftxui / screen'],['../group__screen.html',1,'ftxui/screen'],['../ftxui.html#ftxuiscreen',1,'ftxui/screen']]], + ['screen_2ecpp_9',['screen.cpp',['../screen_8cpp.html',1,'']]], + ['screen_2ecppm_10',['screen.cppm',['../screen_8cppm.html',1,'']]], + ['screen_2ehpp_11',['screen.hpp',['../screen_8hpp.html',1,'']]], + ['screen_2fcolor_2ecpp_12',['color.cpp',['../screen_2color_8cpp.html',1,'']]], + ['screen_2fdeprecated_2ecppm_13',['deprecated.cppm',['../screen_2deprecated_8cppm.html',1,'']]], + ['screen_2fdeprecated_2ehpp_14',['deprecated.hpp',['../screen_2deprecated_8hpp.html',1,'']]], + ['screen_2fscreen_2ecppm_15',['screen.cppm',['../screen_2screen_8cppm.html',1,'']]], + ['screen_5f_16',['screen_',['../group__component.html#a57ae65156ecf0f469cc559a49e6c4f2f',1,'ftxui::Event']]], + ['screen_5finteractive_2ecpp_17',['screen_interactive.cpp',['../screen__interactive_8cpp.html',1,'']]], + ['screen_5finteractive_2ecppm_18',['screen_interactive.cppm',['../screen__interactive_8cppm.html',1,'']]], + ['screen_5finteractive_2ehpp_19',['screen_interactive.hpp',['../screen__interactive_8hpp.html',1,'']]], + ['screeninteractive_20',['ScreenInteractive',['../group__component.html#classftxui_1_1ScreenInteractive',1,'ftxui']]], + ['scroll_5findicator_2ecpp_21',['scroll_indicator.cpp',['../scroll__indicator_8cpp.html',1,'']]], + ['scrollbar_2ecpp_22',['scrollbar.cpp',['../scrollbar_8cpp.html',1,'']]], + ['seagreen1_23',['SeaGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e2c9e620d6245638b27d9c1fa2d0545',1,'ftxui::Color']]], + ['seagreen1bis_24',['SeaGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7819209c8bfe13fbfcb2cde9a296f7b6',1,'ftxui::Color']]], + ['seagreen2_25',['SeaGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b69dc4c281a32346b8d2bab20dd1aef',1,'ftxui::Color']]], + ['seagreen3_26',['SeaGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b862c5164d4597b28fba03335a834cf',1,'ftxui::Color']]], + ['select_27',['Select',['../group__dom.html#a05352f5a353f1e86630a978060e77305',1,'ftxui::Node']]], + ['select_28',['select',['../namespaceftxui.html#a9e3e2988ed61a129d82d634ad66f7eb1',1,'ftxui']]], + ['selectall_29',['SelectAll',['../group__dom.html#ad5f50927f54334b84514bc4b11a14d71',1,'ftxui::Table']]], + ['selectcell_30',['SelectCell',['../group__dom.html#a3c2f178ef9f94da293a53b467ef8643b',1,'ftxui::Table']]], + ['selectcolumn_31',['SelectColumn',['../group__dom.html#a4ee8ddbab36f592fba81c6430d26545e',1,'ftxui::Table']]], + ['selectcolumns_32',['SelectColumns',['../group__dom.html#a79109565fe65710f725eb474778cae36',1,'ftxui::Table']]], + ['selected_33',['selected',['../group__component.html#ac42a32c3439d08be9c5626a5fbc3a0c4',1,'ftxui::MenuOption::selected'],['../group__component.html#ac42a32c3439d08be9c5626a5fbc3a0c4',1,'ftxui::RadioboxOption::selected']]], + ['selection_34',['Selection',['../group__dom.html#classftxui_1_1Selection',1,'Selection'],['../group__dom.html#ade00d4039f147221b9fd6b6b402b43b1',1,'ftxui::Selection::Selection()'],['../group__dom.html#a76eafd8bc098ec9f0405e3b1f6fb42c4',1,'ftxui::Selection::Selection(int start_x, int start_y, int end_x, int end_y)']]], + ['selection_2ecppm_35',['selection.cppm',['../selection_8cppm.html',1,'']]], + ['selection_2ehpp_36',['selection.hpp',['../selection_8hpp.html',1,'']]], + ['selection_5fstyle_2ecpp_37',['selection_style.cpp',['../selection__style_8cpp.html',1,'']]], + ['selection_5fstyle_5f_38',['selection_style_',['../group__screen.html#ab9f757d5d67255f61e27950be4131be1',1,'ftxui::Screen']]], + ['selectionbackgroundcolor_39',['selectionBackgroundColor',['../namespaceftxui.html#a6c965b8f6450a50a938120b5f6ddea96',1,'ftxui']]], + ['selectionchange_40',['SelectionChange',['../group__component.html#ad6daabb2df61b6be6f0b2a8950ac3281',1,'ftxui::ScreenInteractive']]], + ['selectioncolor_41',['selectionColor',['../namespaceftxui.html#a925a73b7f0eb4b5bc11af23f4ca18019',1,'ftxui']]], + ['selectionforegroundcolor_42',['selectionForegroundColor',['../namespaceftxui.html#a5d98498c51cfbc03f37e46d46ec8acf5',1,'ftxui']]], + ['selectionstyle_43',['SelectionStyle',['../group__screen.html#a0424ec9a980000671f12bfa39fc32273',1,'ftxui::Screen']]], + ['selectionstyle_44',['selectionStyle',['../namespaceftxui.html#a4080865d947eea48cf695531f66a5160',1,'ftxui']]], + ['selectionstylereset_45',['selectionStyleReset',['../namespaceftxui.html#aa7e1317c76cefc5018503de4f6e09ea3',1,'ftxui']]], + ['selectrectangle_46',['SelectRectangle',['../group__dom.html#af0021915d0cbda394077929601b8ab8f',1,'ftxui::Table']]], + ['selectrow_47',['SelectRow',['../group__dom.html#a64435bbfbdefd7408241c69b6b8283e7',1,'ftxui::Table']]], + ['selectrows_48',['SelectRows',['../group__dom.html#ab36d32e3675a9353ee79e84405cd7a44',1,'ftxui::Table']]], + ['send_49',['Send',['../classftxui_1_1SenderImpl.html#af3a961fb9b4025671b6122a392a5bc3f',1,'ftxui::SenderImpl']]], + ['sender_50',['Sender',['../namespaceftxui.html#a8f713c247c551bd416c4697ed9ab871c',1,'ftxui']]], + ['senderimpl_51',['SenderImpl',['../classftxui_1_1SenderImpl.html',1,'SenderImpl< T >'],['../classftxui_1_1SenderImpl.html#a7770521e8bff392402a1539bf4eb8ff4',1,'ftxui::SenderImpl::SenderImpl(const SenderImpl &)=delete'],['../classftxui_1_1SenderImpl.html#a61b3d68c26b829848661ca875b0cdb13',1,'ftxui::SenderImpl::SenderImpl(SenderImpl &&)=delete']]], + ['separator_52',['Separator',['../classftxui_1_1TableSelection.html#ab1c6e11d86131eddb095c8211b824b18',1,'ftxui::TableSelection']]], + ['separator_53',['separator',['../group__dom.html#gac1ef1cf6bf7cd0759ffa195071edb2a0',1,'ftxui::separator()'],['../group__dom.html#ga71d9a6a32f65b6d172f9696b3b9579b4',1,'ftxui::separator(Pixel pixel)'],['../module-dom.html#dom-separator',1,'separator']]], + ['separator_5ffunc_54',['separator_func',['../structftxui_1_1ResizableSplitOption.html#a237a29bec11c71ee14c9b36ae94a1dbf',1,'ftxui::ResizableSplitOption']]], + ['separator_5fstyle_2ecpp_55',['separator_style.cpp',['../separator__style_8cpp.html',1,'']]], + ['separatorcharacter_56',['separatorCharacter',['../group__dom.html#ga97a10482d591aade2958da0f2f19b371',1,'ftxui']]], + ['separatordashed_57',['separatorDashed',['../group__dom.html#ga81f2d3256c0cfbc70f820129286f08c6',1,'ftxui']]], + ['separatordouble_58',['separatorDouble',['../group__dom.html#gadd376830fdb51b0bf52672ef17515989',1,'ftxui']]], + ['separatorempty_59',['separatorEmpty',['../group__dom.html#ga1934703e56ab66f6f259b9f8da331f1b',1,'ftxui']]], + ['separatorheavy_60',['separatorHeavy',['../group__dom.html#gaf0649e89a9960f1c2703e48c1817645b',1,'ftxui']]], + ['separatorhorizontal_61',['SeparatorHorizontal',['../classftxui_1_1TableSelection.html#affd2ab7143cb388fdedad3bd51995802',1,'ftxui::TableSelection']]], + ['separatorhselector_62',['separatorHSelector',['../namespaceftxui.html#a50413065cee4757447b35c3a500667d3',1,'ftxui']]], + ['separatorlight_63',['separatorLight',['../group__dom.html#ga37c2b93daf557f68064bc9fbf93ebde0',1,'ftxui']]], + ['separatorstyled_64',['separatorStyled',['../group__dom.html#ga13cb559cfc7e409b3f211f0bb35ea7fa',1,'ftxui']]], + ['separatorvertical_65',['SeparatorVertical',['../classftxui_1_1TableSelection.html#a2334aed76610138905c96dc298b7e9df',1,'ftxui::TableSelection']]], + ['separatorvselector_66',['separatorVSelector',['../namespaceftxui.html#a1a0211233bacd4eb4d31a8e3d58b5f48',1,'ftxui']]], + ['set_67',['Set',['../group__component.html#ad186d5a36e45174bbc7c50df85c2e91e',1,'ftxui::AnimatedColorOption::Set()'],['../group__dom.html#ae47b5b0d793d0c2312e4805a1f40012a',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::Direction)'],['../group__dom.html#a5afe52066ea76ddc7948b77ac155a011',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::Wrap)'],['../group__dom.html#a3de11197951ee3c9037ba7f2a2586a06',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::JustifyContent)'],['../group__dom.html#a07ef12f61272636369543b34932614f3',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::AlignItems)'],['../group__dom.html#a6df4ec3da7d3d2cd0b216f5d2c72cbd6',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::AlignContent)']]], + ['setactivechild_68',['SetActiveChild',['../group__component.html#a8cbf27680c6154e15c8b32d6601340de',1,'ftxui::ComponentBase::SetActiveChild(ComponentBase *child)'],['../group__component.html#a50ad32ad14dd7912e681fab0ee294be2',1,'ftxui::ComponentBase::SetActiveChild(Component child)']]], + ['setanimation_69',['SetAnimation',['../group__component.html#a754d89398aac6051ced26fd452c62589',1,'ftxui::UnderlineOption']]], + ['setanimationduration_70',['SetAnimationDuration',['../group__component.html#a798360474be7511364b8171f0c62f6d5',1,'ftxui::UnderlineOption']]], + ['setanimationfunction_71',['SetAnimationFunction',['../group__component.html#a34e6222dbf10e899074054160870816c',1,'ftxui::UnderlineOption::SetAnimationFunction(animation::easing::Function f)'],['../group__component.html#a7d978b34c37e9d08c57a22477016204c',1,'ftxui::UnderlineOption::SetAnimationFunction(animation::easing::Function f_leader, animation::easing::Function f_follower)']]], + ['setbox_72',['SetBox',['../group__dom.html#a2ed318aaadb07efc50e76fce1ccf9637',1,'ftxui::Node::SetBox()'],['../classftxui_1_1NodeDecorator.html#aafcc9bd6538ccb37babf4d56c4c1c238',1,'ftxui::NodeDecorator::SetBox()']]], + ['setcolorsupport_73',['SetColorSupport',['../group__dom.html#ga65945a706131f407a47a1b9960dc1a4a',1,'ftxui::Terminal']]], + ['setcursor_74',['SetCursor',['../group__screen.html#a1aa24862a3d050b3aea2ade1300d51a7',1,'ftxui::Screen']]], + ['setfallbacksize_75',['SetFallbackSize',['../namespaceftxui_1_1Terminal.html#a765662bcabb59dc93884674ee2fcc9fc',1,'ftxui::Terminal']]], + ['setgap_76',['SetGap',['../group__dom.html#a98d9a43033c09c7f967cdec791408bad',1,'ftxui::FlexboxConfig']]], + ['setselectionstyle_77',['SetSelectionStyle',['../group__screen.html#aba0d30b90db17d6b7561f704ed63b5e6',1,'ftxui::Screen']]], + ['shape_78',['Shape',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37c',1,'ftxui::Screen::Cursor']]], + ['shape_79',['shape',['../structftxui_1_1Screen_1_1Cursor.html#a8b9f7758a8bd2bef680aeecc40bcfe04',1,'ftxui::Screen::Cursor']]], + ['shift_80',['Shift',['../group__screen.html#a507dad970b4732caab79e5922bdc5fb5',1,'ftxui::Box']]], + ['shift_81',['shift',['../group__component.html#ace78b37abb3d96740735fd8eb41235e6',1,'ftxui::Mouse']]], + ['signal_82',['Signal',['../classftxui_1_1ScreenInteractive_1_1Private.html#aa831d3b9234cd15d4bcb5a42dec43943',1,'ftxui::ScreenInteractive::Private']]], + ['simple_83',['Simple',['../group__component.html#a553fe18f102e8e62aec516d4d3213eac',1,'ftxui::ButtonOption::Simple()'],['../group__component.html#a41b17a916980353033366c01b15d3cb1',1,'ftxui::CheckboxOption::Simple()'],['../group__component.html#af2b048773665961fae6c104762533908',1,'ftxui::RadioboxOption::Simple()']]], + ['sinein_84',['SineIn',['../namespaceftxui_1_1animation_1_1easing.html#af48c179e363c6656e904045b33756aeb',1,'ftxui::animation::easing']]], + ['sineinout_85',['SineInOut',['../namespaceftxui_1_1animation_1_1easing.html#a0eddac1c5f32c9f874ed1c6687a3c830',1,'ftxui::animation::easing']]], + ['sineout_86',['SineOut',['../namespaceftxui_1_1animation_1_1easing.html#a92e397623fa5a607f64ba58d5c3dc56a',1,'ftxui::animation::easing']]], + ['single_5fquote_87',['Single_Quote',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aab6f9a00a0255e4da280686c4640c7671',1,'ftxui']]], + ['size_88',['Size',['../group__screen.html#gad890c37601448c82ed0d5051c29e2f0c',1,'ftxui::Terminal']]], + ['size_89',['size',['../structftxui_1_1box__helper_1_1Element.html#a439227feff9d7f55384e8780cfc2eb82',1,'ftxui::box_helper::Element::size'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#aa983ddaeded5756189f46428be79c631',1,'ftxui::ConstStringListRef::Adapter::size()'],['../classftxui_1_1ConstStringListRef.html#a259cb5a711406a8c3e5d937eb9350cca',1,'ftxui::ConstStringListRef::size()'],['../group__dom.html#ga201220986fbdc539e42efe067985cbdb',1,'ftxui::size()']]], + ['size_5fx_90',['size_x',['../structftxui_1_1flexbox__helper_1_1Global.html#aec1dee03c858e0d3910c40c209890ab0',1,'ftxui::flexbox_helper::Global']]], + ['size_5fy_91',['size_y',['../structftxui_1_1flexbox__helper_1_1Global.html#a22aeb82e7a98517be5f90c810e423af0',1,'ftxui::flexbox_helper::Global']]], + ['skyblue1_92',['SkyBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac47bacbed84298fdf72215fe2312ce64',1,'ftxui::Color']]], + ['skyblue2_93',['SkyBlue2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1172e54ed7e62aa4ebcea4b453f5dcc',1,'ftxui::Color']]], + ['skyblue3_94',['SkyBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2dfa52861bc8b2a870e5166e969db2c7',1,'ftxui::Color']]], + ['slateblue1_95',['SlateBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa97807edc577e1d5d3bc271c3a4ced7f4',1,'ftxui::Color']]], + ['slateblue3_96',['SlateBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae53ce2149f6b9e7da24472b5112f7963',1,'ftxui::Color']]], + ['slateblue3bis_97',['SlateBlue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad477f91096f698a2b266a1bf26cd456b',1,'ftxui::Color']]], + ['slider_98',['Slider',['../namespaceftxui.html#aa3558d992a72679e5e9c9c7b67abd727',1,'ftxui::Slider(SliderOption< T > options)'],['../group__component.html#gafdce74ff1421c2f1bda336c8dacefcbd',1,'ftxui::Slider(ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)'],['../namespaceftxui.html#a8bfa2757905a4fb50e0ec263976d1f96',1,'ftxui::Slider(ConstStringRef label, Ref< float > value, ConstRef< float > min=0.f, ConstRef< float > max=100.f, ConstRef< float > increment=5.f)'],['../namespaceftxui.html#aba34419b025c881c07808816c81c5230',1,'ftxui::Slider(ConstStringRef label, Ref< long > value, ConstRef< long > min=0L, ConstRef< long > max=100L, ConstRef< long > increment=5L)'],['../namespaceftxui.html#a877bf1673c86ac33e24facf81068e693',1,'ftxui::Slider(SliderOption< int8_t >)'],['../namespaceftxui.html#a551dff4f473bdb27fde654341d08c618',1,'ftxui::Slider(SliderOption< int16_t >)'],['../namespaceftxui.html#a8d1ae475487cb22769f127449380925e',1,'ftxui::Slider(SliderOption< int32_t >)'],['../namespaceftxui.html#a217d120bd78c7e5fbe21c60d58f411ba',1,'ftxui::Slider(SliderOption< int64_t >)'],['../namespaceftxui.html#a83667b04778e0206c7c9f05652c9110a',1,'ftxui::Slider(SliderOption< uint8_t >)'],['../namespaceftxui.html#a41e0cb91026c84d8767958a6c3d65d88',1,'ftxui::Slider(SliderOption< uint16_t >)'],['../namespaceftxui.html#a17babf521947301435a4f7c47835032c',1,'ftxui::Slider(SliderOption< uint32_t >)'],['../namespaceftxui.html#a69e9803a9d52936adf22dabd14df4289',1,'ftxui::Slider(SliderOption< uint64_t >)'],['../namespaceftxui.html#a453d7fc2e7bd34b00775062018daf96d',1,'ftxui::Slider(SliderOption< float >)'],['../namespaceftxui.html#a9d64c6ad8cbbae0735eac76e4f4f5811',1,'ftxui::Slider(SliderOption< double >)'],['../module-component.html#component-slider',1,'Slider']]], + ['slider_5fdirection_2ecpp_99',['slider_direction.cpp',['../slider__direction_8cpp.html',1,'']]], + ['slider_5frgb_2ecpp_100',['slider_rgb.cpp',['../slider__rgb_8cpp.html',1,'']]], + ['slideroption_101',['SliderOption',['../structftxui_1_1SliderOption.html',1,'ftxui']]], + ['source_20official_102',['Building from Source (Official)',['../installation_manual.html#building-from-source-official',1,'']]], + ['spacearound_103',['SpaceAround',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2aa711fff5f720542ab104aab0805e2565',1,'ftxui::FlexboxConfig::SpaceAround'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420aa711fff5f720542ab104aab0805e2565',1,'ftxui::FlexboxConfig::SpaceAround']]], + ['spacebetween_104',['SpaceBetween',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afa2f3f8f296dcb6e5c287d69eae1c119',1,'ftxui::FlexboxConfig::SpaceBetween'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afa2f3f8f296dcb6e5c287d69eae1c119',1,'ftxui::FlexboxConfig::SpaceBetween']]], + ['spaceevenly_105',['SpaceEvenly',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a34ad3eaf7ee60a45210ad60bd731e235',1,'ftxui::FlexboxConfig::SpaceEvenly'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a34ad3eaf7ee60a45210ad60bd731e235',1,'ftxui::FlexboxConfig::SpaceEvenly']]], + ['spacious_106',['Spacious',['../group__component.html#a36c56131167eaaae707f64bbb9d07ef2',1,'ftxui::InputOption']]], + ['special_107',['Special',['../group__component.html#afe901de476c29382cc358333f10e5ee7',1,'ftxui::Event']]], + ['spinner_108',['spinner',['../group__dom.html#ga3b08e0030a0831d3ec3e2a505908273b',1,'ftxui']]], + ['springgreen1_109',['SpringGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e70ae2a69a90e87e679685d6461b6e8',1,'ftxui::Color']]], + ['springgreen2_110',['SpringGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac85363887f660b5879e353bac03dab49',1,'ftxui::Color']]], + ['springgreen2bis_111',['SpringGreen2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad038ac30c015021853f183054c51c0c5',1,'ftxui::Color']]], + ['springgreen3_112',['SpringGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5a87a3e9a8af9561a373ff63e740223e',1,'ftxui::Color']]], + ['springgreen3bis_113',['SpringGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf19e26246ad6f4e4de44efb6d2b4e1c6',1,'ftxui::Color']]], + ['springgreen4_114',['SpringGreen4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf3817720cb5b18b16b8d6c520a61748e',1,'ftxui::Color']]], + ['src_2fftxui_2fcomponent_2fbutton_2ecpp_115',['button.cpp',['../src_2ftxui_2component_2button_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fcheckbox_2ecpp_116',['checkbox.cpp',['../src_2ftxui_2component_2checkbox_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fcollapsible_2ecpp_117',['collapsible.cpp',['../src_2ftxui_2component_2collapsible_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fdropdown_2ecpp_118',['dropdown.cpp',['../src_2ftxui_2component_2dropdown_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2finput_2ecpp_119',['input.cpp',['../src_2ftxui_2component_2input_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fmaybe_2ecpp_120',['maybe.cpp',['../src_2ftxui_2component_2maybe_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fmenu_2ecpp_121',['menu.cpp',['../src_2ftxui_2component_2menu_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fradiobox_2ecpp_122',['radiobox.cpp',['../src_2ftxui_2component_2radiobox_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2frenderer_2ecpp_123',['renderer.cpp',['../src_2ftxui_2component_2renderer_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fresizable_5fsplit_2ecpp_124',['resizable_split.cpp',['../src_2ftxui_2component_2resizable__split_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fslider_2ecpp_125',['slider.cpp',['../src_2ftxui_2component_2slider_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fwindow_2ecpp_126',['window.cpp',['../src_2ftxui_2component_2window_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fborder_2ecpp_127',['border.cpp',['../src_2ftxui_2dom_2border_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fcanvas_2ecpp_128',['canvas.cpp',['../src_2ftxui_2dom_2canvas_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fdbox_2ecpp_129',['dbox.cpp',['../src_2ftxui_2dom_2dbox_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2ffocus_2ecpp_130',['focus.cpp',['../src_2ftxui_2dom_2focus_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fgauge_2ecpp_131',['gauge.cpp',['../src_2ftxui_2dom_2gauge_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fgraph_2ecpp_132',['graph.cpp',['../src_2ftxui_2dom_2graph_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fgridbox_2ecpp_133',['gridbox.cpp',['../src_2ftxui_2dom_2gridbox_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2flinear_5fgradient_2ecpp_134',['linear_gradient.cpp',['../src_2ftxui_2dom_2linear__gradient_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fparagraph_2ecpp_135',['paragraph.cpp',['../src_2ftxui_2dom_2paragraph_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fselection_2ecpp_136',['selection.cpp',['../src_2ftxui_2dom_2selection_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fseparator_2ecpp_137',['separator.cpp',['../src_2ftxui_2dom_2separator_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fsize_2ecpp_138',['size.cpp',['../src_2ftxui_2dom_2size_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fspinner_2ecpp_139',['spinner.cpp',['../src_2ftxui_2dom_2spinner_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2ftable_2ecpp_140',['table.cpp',['../src_2ftxui_2dom_2table_8cpp.html',1,'']]], + ['stacked_141',['Stacked',['../group__component.html#gaafd394665b0c231380a143b810339d8e',1,'ftxui::Container']]], + ['started_142',['Getting Started',['../getting-started.html',1,'']]], + ['starter_20project_143',['Starter Project',['../installation_bazel.html#starter-project',1,'']]], + ['starter_20template_144',['Starter Template',['../getting-started.html#starter-template',1,'']]], + ['state_145',['state',['../structftxui_1_1EntryState.html#ab30ba07e2a0bd07a15e45a92c32db9c5',1,'ftxui::EntryState']]], + ['status_146',['Status',['../structftxui_1_1Node_1_1Status.html',1,'ftxui::Node']]], + ['steelblue_147',['SteelBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9224e340e6d918555c68ac2f1dc80b04',1,'ftxui::Color']]], + ['steelblue1_148',['SteelBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa050bb4a5d79a1dac6aae25ce8734c973',1,'ftxui::Color']]], + ['steelblue1bis_149',['SteelBlue1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf400af64197a052be4d59c521104cb2a',1,'ftxui::Color']]], + ['steelblue3_150',['SteelBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0a49900e5a03f7545262d90592bfba92',1,'ftxui::Color']]], + ['stencil_151',['stencil',['../group__screen.html#a92cacd07ba30909855f19edc01192ff0',1,'ftxui::Image']]], + ['steps_152',['Next Steps',['../installation.html#next-steps',1,'']]], + ['stop_153',['Stop',['../structftxui_1_1LinearGradient_1_1Stop.html',1,'LinearGradient::Stop'],['../group__dom.html#a03b10012f78e1c731616ce760d28df40',1,'ftxui::LinearGradient::Stop(Color color, float position)'],['../group__dom.html#ab85b009cd214d3bd1b3bb7f704af0da6',1,'ftxui::LinearGradient::Stop(Color color)']]], + ['stops_154',['stops',['../group__dom.html#a9c56e5fb8075d8a48b1b0c3b4ea31831',1,'ftxui::LinearGradient']]], + ['stretch_155',['Stretch',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afbb09a82eafab60150d0996e8fe46560',1,'ftxui::FlexboxConfig::Stretch'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7afbb09a82eafab60150d0996e8fe46560',1,'ftxui::FlexboxConfig::Stretch'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afbb09a82eafab60150d0996e8fe46560',1,'ftxui::FlexboxConfig::Stretch']]], + ['strikethrough_156',['strikethrough',['../group__screen.html#a21fbeba389ccf8f76447c7a73ead8db2',1,'ftxui::Pixel::strikethrough'],['../group__dom.html#ga8594d70f0491def903370e86132fbf01',1,'ftxui::strikethrough()']]], + ['strikethrough_2ecpp_157',['strikethrough.cpp',['../strikethrough_8cpp.html',1,'']]], + ['string_2ecpp_158',['string.cpp',['../string_8cpp.html',1,'']]], + ['string_2ecppm_159',['string.cppm',['../string_8cppm.html',1,'']]], + ['string_2ehpp_160',['string.hpp',['../string_8hpp.html',1,'']]], + ['string_5finternal_2ehpp_161',['string_internal.hpp',['../string__internal_8hpp.html',1,'']]], + ['string_5fwidth_162',['string_width',['../namespaceftxui.html#a517b35c7721e632812d8b3a7697c4099',1,'ftxui']]], + ['stringref_163',['StringRef',['../classftxui_1_1StringRef.html',1,'StringRef'],['../classftxui_1_1StringRef.html#ad3cfa31525e075cbd5f50c2476e665ce',1,'ftxui::StringRef::StringRef(const wchar_t *ref)'],['../classftxui_1_1StringRef.html#a9133717e5c00b480a4a4a120ba7fb886',1,'ftxui::StringRef::StringRef(const char *ref)']]], + ['style_164',['Style',['../group__dom.html#ae9e7d3f5b753cf2650057623960d4cb4',1,'ftxui::Canvas::Style()'],['../examples_2component_2button_8cpp.html#a98e3b8d17caf902b7bf0fe47562cea08',1,'Style(): button.cpp'],['../module-dom.html#dom-style',1,'Style']]], + ['style_5f_165',['style_',['../selection__style_8cpp.html#a4e933ebfcd587caa8c7a7c518ee9e4f6',1,'style_: selection_style.cpp'],['../src_2ftxui_2dom_2separator_8cpp.html#ac30a0a0ed81dc58d609a872c58242761',1,'style_: separator.cpp']]], + ['style_5fblink_2ecpp_166',['style_blink.cpp',['../style__blink_8cpp.html',1,'']]], + ['style_5fbold_2ecpp_167',['style_bold.cpp',['../style__bold_8cpp.html',1,'']]], + ['style_5fcolor_2ecpp_168',['style_color.cpp',['../style__color_8cpp.html',1,'']]], + ['style_5fdim_2ecpp_169',['style_dim.cpp',['../style__dim_8cpp.html',1,'']]], + ['style_5fgallery_2ecpp_170',['style_gallery.cpp',['../style__gallery_8cpp.html',1,'']]], + ['style_5fhyperlink_2ecpp_171',['style_hyperlink.cpp',['../style__hyperlink_8cpp.html',1,'']]], + ['style_5finverted_2ecpp_172',['style_inverted.cpp',['../style__inverted_8cpp.html',1,'']]], + ['style_5fitalic_2ecpp_173',['style_italic.cpp',['../style__italic_8cpp.html',1,'']]], + ['style_5fstrikethrough_2ecpp_174',['style_strikethrough.cpp',['../style__strikethrough_8cpp.html',1,'']]], + ['style_5funderlined_2ecpp_175',['style_underlined.cpp',['../style__underlined_8cpp.html',1,'']]], + ['style_5funderlined_5fdouble_2ecpp_176',['style_underlined_double.cpp',['../style__underlined__double_8cpp.html',1,'']]], + ['stylizer_177',['Stylizer',['../group__dom.html#a407f299e079846ce6169f2a709ad4aae',1,'ftxui::Canvas']]], + ['submodule_178',['Using git submodule',['../installation_cmake.html#using-git-submodule',1,'']]], + ['supported_20methods_179',['Supported Methods',['../installation.html#supported-methods',1,'']]], + ['supported_20platforms_180',['Supported Platforms',['../index.html#supported-platforms',1,'']]], + ['system_181',['Configure your build system.',['../installation_vcpkg.html#configure-your-build-system',1,'']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 000000000..1a6f874a5 --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,62 @@ +var searchData= +[ + ['t_0',['T',['../group__component.html#a1b87f3fb451131290d27cff5a1bbf496',1,'ftxui::Event']]], + ['t_1',['t',['../group__component.html#ab9a908cfd0d53fbf65e22a961074b86d',1,'ftxui::Event']]], + ['tab_2',['Tab',['../group__component.html#a94bd9090f8bf9eea776c867113afb86c',1,'ftxui::Event::Tab'],['../group__component.html#gaea9fe244eeeb420276bcc5760b46953d',1,'ftxui::Container::Tab()'],['../module-component.html#component-tab',1,'Tab']]], + ['tab_5fhorizontal_2ecpp_3',['tab_horizontal.cpp',['../tab__horizontal_8cpp.html',1,'']]], + ['tab_5fvertical_2ecpp_4',['tab_vertical.cpp',['../tab__vertical_8cpp.html',1,'']]], + ['table_5',['Table',['../group__dom.html#classftxui_1_1Table',1,'Table'],['../group__dom.html#a2a7f82c625b00a53f710b2ed305248d2',1,'ftxui::Table::Table()'],['../group__dom.html#a2055337c538a82ae13d92db1838fc454',1,'ftxui::Table::Table(std::vector< std::vector< std::string > >)'],['../group__dom.html#acbd904dfec77b46b257e33f9c7d1e71d',1,'ftxui::Table::Table(std::vector< std::vector< Element > >)'],['../group__dom.html#a22a1b5a5b90feb5ebbfe20d7dec5c650',1,'ftxui::Table::Table(std::initializer_list< std::vector< std::string > > init)'],['../module-dom.html#dom-table',1,'Table']]], + ['table_2ecppm_6',['table.cppm',['../table_8cppm.html',1,'']]], + ['table_2ehpp_7',['table.hpp',['../table_8hpp.html',1,'']]], + ['tableselection_8',['TableSelection',['../classftxui_1_1TableSelection.html',1,'ftxui']]], + ['tabreverse_9',['TabReverse',['../group__component.html#a00f063998a734c338531f38c5e3d6428',1,'ftxui::Event']]], + ['takefocus_10',['TakeFocus',['../group__component.html#a2cf27e9d7128a6a4b3263ecd34c19105',1,'ftxui::ComponentBase']]], + ['tan_11',['Tan',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab492a96cd2b9bb37c81b8451a42889d9',1,'ftxui::Color']]], + ['task_12',['Task',['../namespaceftxui.html#aaa92a82e968c721805c62787cd000534',1,'ftxui::Task'],['../namespaceftxui_1_1task.html#a8cb97ed7903b5e83d45d0a985e629185',1,'ftxui::task::Task']]], + ['task_13',['task',['../structftxui_1_1task_1_1PendingTask.html#a8bcc572b9d73774627be66dd46aa61a8',1,'ftxui::task::PendingTask']]], + ['task_2ecpp_14',['task.cpp',['../task_8cpp.html',1,'']]], + ['task_2ecppm_15',['task.cppm',['../task_8cppm.html',1,'']]], + ['task_2ehpp_16',['task.hpp',['../task_8hpp.html',1,'']]], + ['task_5finternal_2ehpp_17',['task_internal.hpp',['../task__internal_8hpp.html',1,'']]], + ['task_5fqueue_2ecpp_18',['task_queue.cpp',['../task__queue_8cpp.html',1,'']]], + ['task_5fqueue_2ehpp_19',['task_queue.hpp',['../task__queue_8hpp.html',1,'']]], + ['task_5frunner_2ecpp_20',['task_runner.cpp',['../task__runner_8cpp.html',1,'']]], + ['task_5frunner_2ehpp_21',['task_runner.hpp',['../task__runner_8hpp.html',1,'']]], + ['taskqueue_22',['TaskQueue',['../structftxui_1_1task_1_1TaskQueue.html',1,'ftxui::task']]], + ['taskrunner_23',['TaskRunner',['../classftxui_1_1task_1_1TaskRunner.html',1,'TaskRunner'],['../classftxui_1_1task_1_1TaskRunner.html#aa2a63894916e321a8a93add257aad2c7',1,'ftxui::task::TaskRunner::TaskRunner()']]], + ['template_24',['Starter Template',['../getting-started.html#starter-template',1,'']]], + ['terminal_2ecpp_25',['terminal.cpp',['../terminal_8cpp.html',1,'']]], + ['terminal_2ecppm_26',['terminal.cppm',['../terminal_8cppm.html',1,'']]], + ['terminal_2ehpp_27',['terminal.hpp',['../terminal_8hpp.html',1,'']]], + ['terminal_5finput_5fparser_2ecpp_28',['terminal_input_parser.cpp',['../terminal__input__parser_8cpp.html',1,'']]], + ['terminal_5finput_5fparser_2ehpp_29',['terminal_input_parser.hpp',['../terminal__input__parser_8hpp.html',1,'']]], + ['terminal_5finput_5fparser_5ftest_5ffuzzer_2ecpp_30',['terminal_input_parser_test_fuzzer.cpp',['../terminal__input__parser__test__fuzzer_8cpp.html',1,'']]], + ['terminalinputparser_31',['TerminalInputParser',['../classftxui_1_1TerminalInputParser.html',1,'TerminalInputParser'],['../classftxui_1_1TerminalInputParser.html#acbc8ed784fd28db571aece82b20c9855',1,'ftxui::TerminalInputParser::TerminalInputParser()']]], + ['terminaloutput_32',['TerminalOutput',['../group__component.html#a0b7de0467b4e57ce5f337ba8634d8d13',1,'ftxui::ScreenInteractive']]], + ['text_33',['Text',['../menu__underline__animated__gallery_8cpp.html#abd88e1b2ce2a860c64bbcd44c0e0282b',1,'menu_underline_animated_gallery.cpp']]], + ['text_34',['text',['../group__dom.html#ga75baaa2734ed76a9f478beaafa87ae57',1,'ftxui::text(std::wstring text)'],['../group__dom.html#ga366051704fd333c23460f7932598a5e3',1,'ftxui::text(std::string text)'],['../module-dom.html#dom-text',1,'text']]], + ['text_2ecpp_35',['text.cpp',['../text_8cpp.html',1,'']]], + ['textarea_2ecpp_36',['textarea.cpp',['../textarea_8cpp.html',1,'']]], + ['the_20library_37',['Build the Library',['../installation_nix.html#build-the-library',1,'']]], + ['thistle1_38',['Thistle1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaa1937f76b1f6c26f042a5cea129d661',1,'ftxui::Color']]], + ['thistle3_39',['Thistle3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7e48d71618f8e50aed23876c3103859b',1,'ftxui::Color']]], + ['time_40',['time',['../structftxui_1_1task_1_1PendingTask.html#aae372ed4494e3631e9cac889d7384795',1,'ftxui::task::PendingTask']]], + ['timeout_41',['Timeout',['../classftxui_1_1TerminalInputParser.html#a9e4aeeff8f55e0b1c7a8f9c282a77823',1,'ftxui::TerminalInputParser']]], + ['timepoint_42',['TimePoint',['../namespaceftxui_1_1animation.html#a97ee0a9619acebafade22a9b7b0de667',1,'ftxui::animation']]], + ['title_43',['title',['../group__component.html#a32309346e2ae5546e342e991d0a53b37',1,'ftxui::WindowRenderState::title'],['../structftxui_1_1WindowOptions.html#ab923eb70f0f480c7104ee696bd790a36',1,'ftxui::WindowOptions::title']]], + ['to_44',['to',['../classftxui_1_1animation_1_1Animator.html#a5d3b8db14f3f21f9169cfbebf247d854',1,'ftxui::animation::Animator']]], + ['to_5fstring_45',['to_string',['../namespaceftxui.html#a757b345f73bb6cde5165a4d7f0c0a298',1,'ftxui']]], + ['to_5fwstring_46',['to_wstring',['../namespaceftxui.html#a57429a83a46c643a81dee81e49384439',1,'ftxui::to_wstring(const std::string &s)'],['../namespaceftxui.html#a24ea52e8ef70889ef1da986837e0ff34',1,'ftxui::to_wstring(T s)']]], + ['todo_20list_47',['Todo List',['../todo.html',1,'']]], + ['toggle _48',['Toggle ',['../module-component.html#component-toggle',1,'']]], + ['toggle_49',['Toggle',['../group__component.html#a133a8caaf0246db0902f7abce37a9b6d',1,'ftxui::MenuOption::Toggle()'],['../group__component.html#ga3537fccac66b07cd792874c9a6086811',1,'ftxui::Toggle()']]], + ['toggle_2ecpp_50',['toggle.cpp',['../toggle_8cpp.html',1,'']]], + ['top_51',['top',['../structftxui_1_1WindowOptions.html#ae4390982a6943bb299f8626ffea0c8e5',1,'ftxui::WindowOptions::top'],['../screen_8cpp.html#a495e1456dc6a7df7638b2c507c756a24',1,'top: screen.cpp']]], + ['tostring_52',['ToString',['../group__screen.html#a19c380b03cea21d7ac7325136a131ff0',1,'ftxui::Screen']]], + ['trackmouse_53',['TrackMouse',['../group__component.html#ad5961c1d4caf0ba9a030e5675162a164',1,'ftxui::ScreenInteractive']]], + ['transform_54',['transform',['../group__component.html#a5641c45021a8cc20bdd21498563825a0',1,'ftxui::MenuEntryOption::transform'],['../group__component.html#afe14c161494dad905597e75661c7b6a0',1,'ftxui::ButtonOption::transform'],['../group__component.html#afe14c161494dad905597e75661c7b6a0',1,'ftxui::CheckboxOption::transform'],['../group__component.html#a93721d00aaf44f42cc0399024514b628',1,'ftxui::InputOption::transform'],['../group__component.html#afe14c161494dad905597e75661c7b6a0',1,'ftxui::RadioboxOption::transform'],['../group__component.html#ae2d438a2693c6279aba8a2549a161601',1,'ftxui::DropdownOption::transform']]], + ['triangle_55',['triangle',['../examples_2dom_2graph_8cpp.html#a5ab45e2cb218468666c7dc7b2b957396',1,'graph.cpp']]], + ['truecolor_56',['TrueColor',['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1ca7afd9568e82d523c91b2bfe0cc47be29',1,'ftxui::Terminal::TrueColor'],['../module-dom.html#dom-colors-true-color',1,'TrueColor']]], + ['turquoise2_57',['Turquoise2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0514acacf99b53570d7a2ee25dde1f5a',1,'ftxui::Color']]], + ['turquoise4_58',['Turquoise4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac0d913fe38afad9dad5a51083ebc1e86',1,'ftxui::Color']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 000000000..02aa3fba7 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['u_0',['U',['../group__component.html#ab3ddf4540df2c9979a183e3cdf86681f',1,'ftxui::Event']]], + ['u_1',['u',['../group__component.html#a20b16b312cbcd41d7adbe561b4e08759',1,'ftxui::Event']]], + ['ubuntu_2',['Debian/Ubuntu',['../installation_debian.html',1,'installation']]], + ['ubuntu_20packages_20unofficial_3',['Debian and Ubuntu Packages (Unofficial)',['../installation_debian.html#debian-and-ubuntu-packages-unofficial',1,'']]], + ['underline_4',['Underline',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa909c5f2b588ba35fcc40b3b504ad2ed',1,'ftxui::Screen::Cursor']]], + ['underline_5',['underline',['../group__component.html#a55b558727e02acce3f5259811b2dfe5b',1,'ftxui::MenuOption']]], + ['underlineblinking_6',['UnderlineBlinking',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cad7df11ee39d53d4ee2da1b22b2238abc',1,'ftxui::Screen::Cursor']]], + ['underlined_7',['underlined',['../group__screen.html#a7c8849e8321ea248cd4991ea8ef198eb',1,'ftxui::Pixel::underlined'],['../group__dom.html#ga5ad450c97c4d084b64ffb5b5ca942664',1,'ftxui::underlined()']]], + ['underlined_2ecpp_8',['underlined.cpp',['../underlined_8cpp.html',1,'']]], + ['underlined_5fdouble_9',['underlined_double',['../group__screen.html#afe0ea73f380e746092213b879003afd6',1,'ftxui::Pixel']]], + ['underlined_5fdouble_2ecpp_10',['underlined_double.cpp',['../underlined__double_8cpp.html',1,'']]], + ['underlineddouble_11',['underlinedDouble',['../group__dom.html#ga16d1b74107610750276499ddb3dde8da',1,'ftxui']]], + ['underlineoption_12',['UnderlineOption',['../group__component.html#structftxui_1_1UnderlineOption',1,'ftxui']]], + ['union_13',['Union',['../group__screen.html#adbc0a2693f6a78124076ef53bfd4207e',1,'ftxui::Box']]], + ['unofficial_14',['Unofficial',['../installation_debian.html#debian-and-ubuntu-packages-unofficial',1,'Debian and Ubuntu Packages (Unofficial)'],['../installation_opensuse.html#opensuse-package-unofficial',1,'openSUSE Package (Unofficial)'],['../installation_xmake.html#xmake-package-unofficial',1,'XMake Package (Unofficial)']]], + ['up_15',['Up',['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa',1,'ftxui']]], + ['use_20as_20a_20dependency_16',['Use as a Dependency',['../installation_nix.html#use-as-a-dependency',1,'']]], + ['using_20fetchcontent_17',['Using FetchContent',['../installation_cmake.html#using-fetchcontent',1,'']]], + ['using_20find_5fpackage_18',['Using find_package',['../installation_cmake.html#using-find_package',1,'']]], + ['using_20git_20submodule_19',['Using git submodule',['../installation_cmake.html#using-git-submodule',1,'']]], + ['using_20vcpkg_20',['Install FTXUI using Vcpkg',['../installation_vcpkg.html#install-ftxui-using-vcpkg',1,'']]], + ['utf8toglyphs_21',['Utf8ToGlyphs',['../namespaceftxui.html#a389c58d385e861cd2ef109b53fc6ef96',1,'ftxui']]], + ['utf8towordbreakproperty_22',['Utf8ToWordBreakProperty',['../namespaceftxui.html#ad15724e497f0001e146da530183ca552',1,'ftxui']]], + ['util_2ecppm_23',['util.cppm',['../util_8cppm.html',1,'']]], + ['util_2ehpp_24',['util.hpp',['../util_8hpp.html',1,'']]] +]; diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 000000000..cae7b199e --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['v_0',['V',['../group__component.html#ad5fb499039d0bcd88f478ff1dbd8a729',1,'ftxui::Event']]], + ['v_1',['v',['../group__component.html#ae520ce70c694e5be3aee7a8dffa36fa2',1,'ftxui::Event']]], + ['value_2',['value',['../structftxui_1_1SliderOption.html#ab256d6c86a100045ed2329da289dce3a',1,'ftxui::SliderOption::value'],['../group__screen.html#a638e4503e0ae6ce655b7ad2e17e8f0ad',1,'ftxui::ColorInfo::value']]], + ['value_5f_3',['value_',['../src_2ftxui_2dom_2separator_8cpp.html#ad84db3d1db4de4af9935d2d361626bdb',1,'separator.cpp']]], + ['variant_4',['Variant',['../classftxui_1_1ConstStringListRef.html#a5385a19678ef154eb13e9c8428e4d19c',1,'ftxui::ConstStringListRef']]], + ['vbox_5',['vbox',['../group__dom.html#gafd28058f0ccbbdf34691a85a7cc9b2e3',1,'ftxui']]], + ['vbox_2ecpp_6',['vbox.cpp',['../vbox_8cpp.html',1,'']]], + ['vbox_5fhbox_2ecpp_7',['vbox_hbox.cpp',['../vbox__hbox_8cpp.html',1,'']]], + ['vcenter_8',['vcenter',['../group__dom.html#gad907a8a48bb9f9dfdb06402e9fc12316',1,'ftxui']]], + ['vcpkg_9',['Vcpkg',['../installation_vcpkg.html#install-ftxui-using-vcpkg',1,'Install FTXUI using Vcpkg'],['../installation_vcpkg.html',1,'Vcpkg']]], + ['vcpkg_20package_10',['Vcpkg Package',['../installation_vcpkg.html#vcpkg-package',1,'']]], + ['verifying_20integration_11',['Verifying Integration',['../installation_cmake.html#verifying-integration',1,'']]], + ['vertical_12',['Vertical',['../group__component.html#a617c59fdb94db99100d0e7a569c31d75',1,'ftxui::MenuOption::Vertical()'],['../group__component.html#ga6471e39f5664d059144746c5801d37e6',1,'ftxui::Container::Vertical(Components children)'],['../group__component.html#ga25099e2d2ead8a46c8d9a899982070b7',1,'ftxui::Container::Vertical(Components children, int *selector)'],['../module-component.html#component-vertical',1,'Vertical']]], + ['verticalanimated_13',['VerticalAnimated',['../group__component.html#a6079a7637256d70b30aacb92d2034205',1,'ftxui::MenuOption']]], + ['vflow_14',['vflow',['../namespaceftxui.html#ae0da51b614e95a0687727644b5898a23',1,'ftxui']]], + ['vflow_2ecpp_15',['vflow.cpp',['../vflow_8cpp.html',1,'']]], + ['violet_16',['Violet',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa94a3ee3884eb2af70a2d764a4f06e79d',1,'ftxui::Color']]], + ['vmenu1_17',['VMenu1',['../menu__style_8cpp.html#abc833415e917ac2a93b5a4f35df2f0fb',1,'menu_style.cpp']]], + ['vmenu2_18',['VMenu2',['../menu__style_8cpp.html#ab1c7204fedc90016a50553cdcdc9b58b',1,'menu_style.cpp']]], + ['vmenu3_19',['VMenu3',['../menu__style_8cpp.html#aec99d3a88e71643df15281e0041e44a2',1,'menu_style.cpp']]], + ['vmenu4_20',['VMenu4',['../menu__style_8cpp.html#afc540158e9fcd015af9e24d4ef072214',1,'menu_style.cpp']]], + ['vmenu5_21',['VMenu5',['../menu__style_8cpp.html#a62669e7b3cf3a388a714910a16cce19b',1,'menu_style.cpp']]], + ['vmenu6_22',['VMenu6',['../menu__style_8cpp.html#aeeb06101b3a771616149626f203be146',1,'menu_style.cpp']]], + ['vmenu7_23',['VMenu7',['../menu__style_8cpp.html#af07f6b560af2a9d723b3e53360d280b5',1,'menu_style.cpp']]], + ['vmenu8_24',['VMenu8',['../menu__style_8cpp.html#afade922e195c0cda670066485469de56',1,'menu_style.cpp']]], + ['vscroll_5findicator_25',['vscroll_indicator',['../group__dom.html#ga1974176e676afdb96d203e8e0f579219',1,'ftxui']]], + ['vtext_26',['vtext',['../group__dom.html#ga9f9f7485a45aa9d432726ca9845d1eac',1,'ftxui::vtext(std::wstring text)'],['../group__dom.html#ga64172a43b4b526afeb6313e6e1a6d5a1',1,'ftxui::vtext(std::string text)'],['../module-dom.html#dom-vtext',1,'vtext']]] +]; diff --git a/search/all_17.js b/search/all_17.js new file mode 100644 index 000000000..5a00ccbe0 --- /dev/null +++ b/search/all_17.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['w_0',['W',['../group__component.html#af220c9f0599cf10469883c7c23cf4a8f',1,'ftxui::Event']]], + ['w_1',['w',['../group__component.html#a072a3690c998e6dbe13ca87b9174b596',1,'ftxui::Event']]], + ['warn_5fwindows_5fmacro_2ehpp_2',['warn_windows_macro.hpp',['../warn__windows__macro_8hpp.html',1,'']]], + ['wchar_5fwidth_3',['wchar_width',['../namespaceftxui.html#a1bb4947f62228380f5c415f69b34021f',1,'ftxui']]], + ['wheat1_4',['Wheat1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2919dbb2ef2f19e560ee2a4f21874373',1,'ftxui::Color']]], + ['wheat4_5',['Wheat4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3fee165b16150ce4df5f4fcecca7407',1,'ftxui::Color']]], + ['wheeldown_6',['WheelDown',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db',1,'ftxui::Mouse']]], + ['wheelleft_7',['WheelLeft',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0a160e671a76bd0d1f424a8b9700275375',1,'ftxui::Mouse']]], + ['wheelright_8',['WheelRight',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ae73184b2d38af984b5cda75057471adc',1,'ftxui::Mouse']]], + ['wheelup_9',['WheelUp',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6',1,'ftxui::Mouse']]], + ['white_10',['White',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab548046646b36c12aa6ba841de500094',1,'ftxui::Color']]], + ['width_11',['WIDTH',['../namespaceftxui.html#a04711c04f28aabfa0e5928a35baaec53a73c0818986b7c462c2977f57afd00522',1,'ftxui']]], + ['width_12',['width',['../structftxui_1_1WindowOptions.html#a9fb534b72660dd8bb6f17ce5d090a94a',1,'ftxui::WindowOptions::width'],['../group__dom.html#ad72663daf610f2a0833a2fc3d78e4fdf',1,'ftxui::Canvas::width()']]], + ['widthorheight_13',['WidthOrHeight',['../namespaceftxui.html#a04711c04f28aabfa0e5928a35baaec53',1,'ftxui']]], + ['window_14',['Window',['../group__component.html#ga638693abef9289912f5fa39606390b20',1,'ftxui::Window()'],['../menu__multiple_8cpp.html#ac2013764d7f0c7eb57876c3755e98bb3',1,'Window(): menu_multiple.cpp']]], + ['window_15',['window',['../group__dom.html#ga03049def08fa7a5eaa4d5e897152bc1a',1,'ftxui::window()'],['../module-dom.html#dom-window',1,'window']]], + ['windowoptions_16',['WindowOptions',['../structftxui_1_1WindowOptions.html',1,'ftxui']]], + ['windowrenderstate_17',['WindowRenderState',['../group__component.html#structftxui_1_1WindowRenderState',1,'ftxui']]], + ['with_5frestored_5fio_2ecpp_18',['with_restored_io.cpp',['../with__restored__io_8cpp.html',1,'']]], + ['withrestoredio_19',['WithRestoredIO',['../group__component.html#af9df2de690486078fea4a7151b83b089',1,'ftxui::ScreenInteractive']]], + ['wordbreakproperty_20',['WordBreakProperty',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968a',1,'ftxui']]], + ['wrap_21',['Wrap',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72ab',1,'ftxui::FlexboxConfig::Wrap'],['../group__dom.html#a6c844a611650cf7e956dbe269a0e72abaa212b19ef5f2fb30acf92e6cbccc1f2d',1,'ftxui::FlexboxConfig::Wrap'],['../gallery_8cpp.html#a0a320000c5a485508c57030f605b800a',1,'Wrap(): gallery.cpp']]], + ['wrap_22',['wrap',['../group__dom.html#a68b5470ece4f0a492cc1d2057c9bd5e0',1,'ftxui::FlexboxConfig']]], + ['wrapinversed_23',['WrapInversed',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72abad639e613e3589af04e39135707dbc642',1,'ftxui::FlexboxConfig']]], + ['wsegspace_24',['WSegSpace',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3ddc36a0c4e381a754fb00548d567d09',1,'ftxui']]], + ['wstring_5fwidth_25',['wstring_width',['../namespaceftxui.html#adedb4aa528ad2aef48177dea69ca7a9d',1,'ftxui']]] +]; diff --git a/search/all_18.js b/search/all_18.js new file mode 100644 index 000000000..a31ce11cc --- /dev/null +++ b/search/all_18.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['x_0',['X',['../group__component.html#a1e97cb57e166a02a12536507200689cd',1,'ftxui::Event']]], + ['x_1',['x',['../group__component.html#a8ea38b427ac031b90f864b64d04fb386',1,'ftxui::Event::x'],['../group__component.html#a6150e0515f7202e2fb518f7206ed97dc',1,'ftxui::Mouse::x'],['../structftxui_1_1Screen_1_1Cursor.html#a6150e0515f7202e2fb518f7206ed97dc',1,'ftxui::Screen::Cursor::x'],['../structftxui_1_1flexbox__helper_1_1Block.html#a6150e0515f7202e2fb518f7206ed97dc',1,'ftxui::flexbox_helper::Block::x'],['../structftxui_1_1flexbox__helper_1_1Line.html#a6150e0515f7202e2fb518f7206ed97dc',1,'ftxui::flexbox_helper::Line::x']]], + ['x_5fmax_2',['x_max',['../group__screen.html#a5f0bb6d8a3e66525c3e6264cb8288e43',1,'ftxui::Box']]], + ['x_5fmin_3',['x_min',['../group__screen.html#ae0951dcafafdc96ac1d8361c672d47e2',1,'ftxui::Box']]], + ['x_5fsize_4',['x_size',['../src_2ftxui_2dom_2gridbox_8cpp.html#aa84601b56e801ce086fd86309a13e695',1,'gridbox.cpp']]], + ['xflex_5',['xflex',['../group__dom.html#ga0dbba98e14f63f1dd5163cbdc4f42da8',1,'ftxui']]], + ['xflex_5fgrow_6',['xflex_grow',['../group__dom.html#ga1618cb15307f29eb3d531e7b44c280d3',1,'ftxui']]], + ['xflex_5fshrink_7',['xflex_shrink',['../group__dom.html#ga95275a9271934cf76e970c6650cc224d',1,'ftxui']]], + ['xframe_8',['xframe',['../namespaceftxui.html#a2d0617c0912b732f059cf360ac951c49',1,'ftxui']]], + ['xmake_9',['XMake',['../installation_xmake.html',1,'installation']]], + ['xmake_20package_20unofficial_10',['XMake Package (Unofficial)',['../installation_xmake.html#xmake-package-unofficial',1,'']]] +]; diff --git a/search/all_19.js b/search/all_19.js new file mode 100644 index 000000000..c9b26fbec --- /dev/null +++ b/search/all_19.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['y_0',['Y',['../group__component.html#acd3caeaaff59d57221f62ea89e279c40',1,'ftxui::Event']]], + ['y_1',['y',['../group__component.html#abcbf2b29725cb4c562ff3e460934b7e3',1,'ftxui::Event::y'],['../group__component.html#a0a2f84ed7838f07779ae24c5a9086d33',1,'ftxui::Mouse::y'],['../structftxui_1_1Screen_1_1Cursor.html#a0a2f84ed7838f07779ae24c5a9086d33',1,'ftxui::Screen::Cursor::y'],['../structftxui_1_1flexbox__helper_1_1Block.html#a0a2f84ed7838f07779ae24c5a9086d33',1,'ftxui::flexbox_helper::Block::y'],['../structftxui_1_1flexbox__helper_1_1Line.html#a0a2f84ed7838f07779ae24c5a9086d33',1,'ftxui::flexbox_helper::Line::y']]], + ['y_5fmax_2',['y_max',['../group__screen.html#ad033aea530fbbcf5bcd6cd98d882e3a5',1,'ftxui::Box']]], + ['y_5fmin_3',['y_min',['../group__screen.html#a7941ddc7e35fffb8864af1e922814401',1,'ftxui::Box']]], + ['y_5fsize_4',['y_size',['../src_2ftxui_2dom_2gridbox_8cpp.html#a99e442a053babaa64367447a56138823',1,'gridbox.cpp']]], + ['yellow_5',['Yellow',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fabf28513245738599d13e3ce36bd16c82',1,'ftxui::Color']]], + ['yellow1_6',['Yellow1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18f6dad40423c7708a467fb630f59048',1,'ftxui::Color']]], + ['yellow2_7',['Yellow2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac571c9dd674c4e7301b11cee12715bdf',1,'ftxui::Color']]], + ['yellow3_8',['Yellow3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64545058cba31bf28f7cc75072664ec2',1,'ftxui::Color']]], + ['yellow3bis_9',['Yellow3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67ae91aade6999e17c552ebe197c3a7f',1,'ftxui::Color']]], + ['yellow4_10',['Yellow4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab60ac0c6b49456d0de7ca3388f19862a',1,'ftxui::Color']]], + ['yellow4bis_11',['Yellow4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaf28e9bd6542c570b963f36620b181f7',1,'ftxui::Color']]], + ['yellowlight_12',['YellowLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa7948fe5f055329af04798409b7ac37b5',1,'ftxui::Color']]], + ['yflex_13',['yflex',['../group__dom.html#ga42c7a33df6d890de30fc1ebb2d1b3ca6',1,'ftxui']]], + ['yflex_5fgrow_14',['yflex_grow',['../group__dom.html#ga7eac3f709e905af8f583aed52093b7ce',1,'ftxui']]], + ['yflex_5fshrink_15',['yflex_shrink',['../group__dom.html#gaf7d0757f5965aa579bccc125ff909256',1,'ftxui']]], + ['yframe_16',['yframe',['../namespaceftxui.html#a7ea9d3ceb2a977955125c6e4a6072325',1,'ftxui']]], + ['your_20build_20system_17',['Configure your build system.',['../installation_vcpkg.html#configure-your-build-system',1,'']]] +]; diff --git a/search/all_1a.js b/search/all_1a.js new file mode 100644 index 000000000..9809d4463 --- /dev/null +++ b/search/all_1a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['z_0',['Z',['../group__component.html#a7ea819ebc3e828cab8618738b13bf7e4',1,'ftxui::Event']]], + ['z_1',['z',['../group__component.html#a495d2bd0a6d4ef68721d142f78394303',1,'ftxui::Event']]], + ['zwj_2',['ZWJ',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aacb4adf7b93435bdfbae8f32d5bcda514',1,'ftxui']]] +]; diff --git a/search/all_1b.js b/search/all_1b.js new file mode 100644 index 000000000..fc9b8c4d1 --- /dev/null +++ b/search/all_1b.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['_7eadapter_0',['~Adapter',['../classftxui_1_1ConstStringListRef_1_1Adapter.html#acc343e0991b39fbf9b66f2faf7cb7f11',1,'ftxui::ConstStringListRef::Adapter']]], + ['_7eautoreset_1',['~AutoReset',['../classftxui_1_1AutoReset.html#ad7e022164fb38a279cca7c6cf478f379',1,'ftxui::AutoReset']]], + ['_7ecapturedmouseinterface_2',['~CapturedMouseInterface',['../classftxui_1_1CapturedMouseInterface.html#af35148d7f798953f8d7e8c1a0e2b2ef0',1,'ftxui::CapturedMouseInterface']]], + ['_7ecomponentbase_3',['~ComponentBase',['../group__component.html#ae490d465a018a9d81bb4e30604708fba',1,'ftxui::ComponentBase']]], + ['_7econstref_4',['~ConstRef',['../classftxui_1_1ConstRef.html#a4ab7aed14f1e68d9be361d5ccfcd4e0f',1,'ftxui::ConstRef']]], + ['_7econststringlistref_5',['~ConstStringListRef',['../classftxui_1_1ConstStringListRef.html#a517a6924cc5fa2fff3e6c08bc504f0fa',1,'ftxui::ConstStringListRef']]], + ['_7eimage_6',['~Image',['../group__screen.html#af7348fef7a61244855ed83dfb1fcbfa1',1,'ftxui::Image']]], + ['_7eloop_7',['~Loop',['../group__component.html#a84c72a09400ffc01ce3257d2109453a2',1,'ftxui::Loop']]], + ['_7enode_8',['~Node',['../group__dom.html#a6fa6bf60f34f1e3efb0e59333428c9c8',1,'ftxui::Node']]], + ['_7eref_9',['~Ref',['../classftxui_1_1Ref.html#a3950a05eee649724ae206d5dd33355f5',1,'ftxui::Ref']]], + ['_7escreen_10',['~Screen',['../group__screen.html#a20d80448fe5bd4ce01dcd821d4d67a5b',1,'ftxui::Screen']]], + ['_7escreeninteractive_11',['~ScreenInteractive',['../group__component.html#a2c4f2d0819fb7afa3ce40cc0e3107053',1,'ftxui::ScreenInteractive']]], + ['_7esenderimpl_12',['~SenderImpl',['../classftxui_1_1SenderImpl.html#ac23f2c8d2bf8c021dcce059afd2c3405',1,'ftxui::SenderImpl']]], + ['_7etaskrunner_13',['~TaskRunner',['../classftxui_1_1task_1_1TaskRunner.html#afab0128a700661663463c90c9a33d71d',1,'ftxui::task::TaskRunner']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 000000000..d08bb0c6f --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,70 @@ +var searchData= +[ + ['b_0',['B',['../group__component.html#a4dd738a967d95833e57bd94580c03d08',1,'ftxui::Event']]], + ['b_1',['b',['../group__component.html#a27d7cfd7232d069c045ca18db3523093',1,'ftxui::Event']]], + ['back_2',['back',['../structftxui_1_1ResizableSplitOption.html#a591ffd25e449a214855e0dfd78dab766',1,'ftxui::ResizableSplitOption']]], + ['background_3',['background',['../structftxui_1_1AnimatedColorsOption.html#a550692ff465684652d29385a6b24304d',1,'ftxui::AnimatedColorsOption']]], + ['background_5fcolor_4',['background_color',['../group__screen.html#a3af4612678da78558adccf47e17164bb',1,'ftxui::Pixel']]], + ['backin_5',['BackIn',['../namespaceftxui_1_1animation_1_1easing.html#ae9cca3240dd9f14a807364e322bbdf79',1,'ftxui::animation::easing']]], + ['backinout_6',['BackInOut',['../namespaceftxui_1_1animation_1_1easing.html#a4dfa1e95971ff8e4d0f7539f2e8ae577',1,'ftxui::animation::easing']]], + ['backout_7',['BackOut',['../namespaceftxui_1_1animation_1_1easing.html#a440085789f25b7f3ffa1391f09e154f3',1,'ftxui::animation::easing']]], + ['backspace_8',['Backspace',['../group__component.html#a87cb6a8c09564342227afc71c7f76c82',1,'ftxui::Event']]], + ['bar_9',['Bar',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca6424dbda22da2f105580d1c8095600d3',1,'ftxui::Screen::Cursor']]], + ['barblinking_10',['BarBlinking',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cae7dfc08d4e90b88e0cb1cea7a54796c1',1,'ftxui::Screen::Cursor']]], + ['bazel_11',['Bazel',['../installation_bazel.html',1,'installation']]], + ['bgcolor_12',['bgcolor',['../group__dom.html#ga01d4c5aaf0447e862246849111782245',1,'ftxui::bgcolor(Color color)'],['../group__dom.html#gaee41f3eaff28a123214e81231f8f4593',1,'ftxui::bgcolor(const LinearGradient &gradient)'],['../group__dom.html#gaae86eacae0a0626b41e9964ac7f4f532',1,'ftxui::bgcolor(Color color, Element child)'],['../group__dom.html#gaaac1622d43662a6a02113d9230a4fdd4',1,'ftxui::bgcolor(const LinearGradient &gradient, Element child)']]], + ['black_13',['Black',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fac1e9bce8242f443c54c7405223d616cd',1,'ftxui::Color']]], + ['blend_14',['Blend',['../group__screen.html#a3422660268648b5a260ac94336e7e405',1,'ftxui::Color']]], + ['blink_15',['blink',['../group__screen.html#a399ff0c757d88aeaa2439212f073f380',1,'ftxui::Pixel::blink'],['../group__dom.html#gad57613de5895e774218d91dea48d074b',1,'ftxui::blink()']]], + ['blink_2ecpp_16',['blink.cpp',['../blink_8cpp.html',1,'']]], + ['block_17',['Block',['../structftxui_1_1flexbox__helper_1_1Block.html',1,'Block'],['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa00f801460e81f86eab56d86fe627551',1,'ftxui::Screen::Cursor::Block']]], + ['blockblinking_18',['BlockBlinking',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca2f4a0b3cacb4468d8467dc0746ea23aa',1,'ftxui::Screen::Cursor']]], + ['blocks_19',['blocks',['../structftxui_1_1flexbox__helper_1_1Line.html#acb3eeab6f2ab1007cacd9f72caf9cdb8',1,'ftxui::flexbox_helper::Line::blocks'],['../structftxui_1_1flexbox__helper_1_1Global.html#ac91f06264613997a325271ce8e35d840',1,'ftxui::flexbox_helper::Global::blocks']]], + ['blue_20',['Blue',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf5e09dd1da4088464f264b7a3118bff8',1,'ftxui::Color']]], + ['blue_21',['blue',['../group__screen.html#a287b397e90d7b995c81ff54e741f96b2',1,'ftxui::ColorInfo']]], + ['blue1_22',['Blue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9eafa8db807f9452108cd02b80cd4adc',1,'ftxui::Color']]], + ['blue3_23',['Blue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa910d98e6c6282c1c8133f53438beb7ca',1,'ftxui::Color']]], + ['blue3bis_24',['Blue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabb8f8ef3f352a8a9c884fadff1576b13',1,'ftxui::Color']]], + ['bluelight_25',['BlueLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf7cc79a56a740e9c59a156b0b3b93cbd',1,'ftxui::Color']]], + ['blueviolet_26',['BlueViolet',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd3fa02524f2597996333516267c773',1,'ftxui::Color']]], + ['bold_27',['bold',['../group__screen.html#a7a210a24d67146bd143c013d1da0f2dd',1,'ftxui::Pixel::bold'],['../group__dom.html#ga353c769068e25303eb41fa2da565c604',1,'ftxui::bold()']]], + ['bold_2ecpp_28',['bold.cpp',['../bold_8cpp.html',1,'']]], + ['border_29',['Border',['../group__component.html#a2f8ead79a770376a36e9b9b7fa6bc966',1,'ftxui::ButtonOption::Border()'],['../classftxui_1_1TableSelection.html#af47b05e5a3f01cafc419ce94388cae51',1,'ftxui::TableSelection::Border()']]], + ['border_30',['border',['../group__dom.html#gae8537acd423d47cf07e61bd774fb1098',1,'ftxui::border()'],['../module-dom.html#dom-border',1,'border']]], + ['border_5fcolored_2ecpp_31',['border_colored.cpp',['../border__colored_8cpp.html',1,'']]], + ['border_5fstyle_2ecpp_32',['border_style.cpp',['../border__style_8cpp.html',1,'']]], + ['borderbottom_33',['BorderBottom',['../classftxui_1_1TableSelection.html#ab3efbe517730170703eba50cf23b150d',1,'ftxui::TableSelection']]], + ['borderdashed_34',['borderDashed',['../group__dom.html#ga181c80f8ada12d1356f6bfa0ebb7219f',1,'ftxui']]], + ['borderdouble_35',['borderDouble',['../group__dom.html#ga052b504344f3bc1ff86b3493cd934215',1,'ftxui']]], + ['borderempty_36',['borderEmpty',['../group__dom.html#gaf20f7d6fb275d109f0bdc01a2e4d3f3e',1,'ftxui']]], + ['borderheavy_37',['borderHeavy',['../group__dom.html#ga666c31419cc31cdadc9f8178ed63529e',1,'ftxui']]], + ['borderleft_38',['BorderLeft',['../classftxui_1_1TableSelection.html#a5b822ad80ff44922a9d6551743f64259',1,'ftxui::TableSelection']]], + ['borderlight_39',['borderLight',['../group__dom.html#gaa074cdab57eeb47b99f1699bcc8addd8',1,'ftxui']]], + ['borderright_40',['BorderRight',['../classftxui_1_1TableSelection.html#af36f1d9893a26293f24da431c5a344cc',1,'ftxui::TableSelection']]], + ['borderrounded_41',['borderRounded',['../group__dom.html#ga3cf2db223a5efaa370f0ca6bb405b80e',1,'ftxui']]], + ['borderstyle_42',['BorderStyle',['../group__dom.html#gafe3103dd0b8240c5443892484ef5af9c',1,'ftxui']]], + ['borderstyled_43',['borderStyled',['../group__dom.html#gabc9db79957d4dd36deb8ca79938e4c41',1,'ftxui::borderStyled(BorderStyle style)'],['../group__dom.html#ga5aab98b289d2e7b2ce8ca0eeee51ce78',1,'ftxui::borderStyled(BorderStyle style, Color foreground_color)'],['../group__dom.html#gad1dbf36194dcb77674085df9e11c1e22',1,'ftxui::borderStyled(Color foreground_color)']]], + ['bordertop_44',['BorderTop',['../classftxui_1_1TableSelection.html#aa9002be87d1fc0c5c6416b8006a902e4',1,'ftxui::TableSelection']]], + ['borderwith_45',['borderWith',['../group__dom.html#gaa97cfcfbe6df92dac085454395ec7b2f',1,'ftxui']]], + ['bouncein_46',['BounceIn',['../namespaceftxui_1_1animation_1_1easing.html#a3a136fc5aedb4e99e08e5bea138463cb',1,'ftxui::animation::easing']]], + ['bounceinout_47',['BounceInOut',['../namespaceftxui_1_1animation_1_1easing.html#a1a048fdae839f9493331cf1745767519',1,'ftxui::animation::easing']]], + ['bounceout_48',['BounceOut',['../namespaceftxui_1_1animation_1_1easing.html#aba7f60496f13f39385d9a47349e97c09',1,'ftxui::animation::easing']]], + ['box_49',['Box',['../group__screen.html#structftxui_1_1Box',1,'ftxui']]], + ['box_50',['box',['../structftxui_1_1Requirement_1_1Focused.html#ab19e728e80bc2fc43d8e82c3602f8333',1,'ftxui::Requirement::Focused']]], + ['box_2ecpp_51',['box.cpp',['../box_8cpp.html',1,'']]], + ['box_2ecppm_52',['box.cppm',['../box_8cppm.html',1,'']]], + ['box_2ehpp_53',['box.hpp',['../box_8hpp.html',1,'']]], + ['box_5f_54',['box_',['../group__dom.html#aa7e7d30102945911407723a5cbcdfabc',1,'ftxui::Node']]], + ['box_5fhelper_2ecpp_55',['box_helper.cpp',['../box__helper_8cpp.html',1,'']]], + ['box_5fhelper_2ehpp_56',['box_helper.hpp',['../box__helper_8hpp.html',1,'']]], + ['build_20system_57',['Configure your build system.',['../installation_vcpkg.html#configure-your-build-system',1,'']]], + ['build_20the_20library_58',['Build the Library',['../installation_nix.html#build-the-library',1,'']]], + ['building_20from_20source_20official_59',['Building from Source (Official)',['../installation_manual.html#building-from-source-official',1,'']]], + ['button_60',['Button',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0',1,'ftxui::Mouse::Button'],['../group__component.html#ga4e8295ec77dd31b0acc5063b134473e7',1,'ftxui::Button(ButtonOption option)'],['../group__component.html#ga0488e28ee9388e0ddca26f1d03d827d1',1,'ftxui::Button(ConstStringRef label, std::function< void()> on_click, ButtonOption option)']]], + ['button_61',['button',['../group__component.html#aa56e877ca6a7524cf1e891c7435c3ace',1,'ftxui::Mouse']]], + ['button_5fanimated_2ecpp_62',['button_animated.cpp',['../button__animated_8cpp.html',1,'']]], + ['button_5fin_5fframe_2ecpp_63',['button_in_frame.cpp',['../button__in__frame_8cpp.html',1,'']]], + ['button_5fstyle_64',['button_style',['../modal__dialog_8cpp.html#a1a0df261e66f85913256ea3d321b3e87',1,'modal_dialog.cpp']]], + ['button_5fstyle_2ecpp_65',['button_style.cpp',['../button__style_8cpp.html',1,'']]], + ['buttonoption_66',['ButtonOption',['../group__component.html#structftxui_1_1ButtonOption',1,'ftxui']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 000000000..5974d8935 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,197 @@ +var searchData= +[ + ['c_0',['C',['../group__component.html#aad99c99d06c8b90edc409743b4c23efb',1,'ftxui::Event']]], + ['c_1',['c',['../group__component.html#af8a909c0d59f212fdf1e79af33888d53',1,'ftxui::Event']]], + ['c_2020_20modules_2',['C++20 Modules',['../cpp20-modules.html',1,'']]], + ['cadetblue_3',['CadetBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa76906c6e4ac2ee22b81bda5a59e335f1',1,'ftxui::Color']]], + ['cadetbluebis_4',['CadetBlueBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb5d4e2aebcd3abba4c91d055f07513b',1,'ftxui::Color']]], + ['canvas_5',['Canvas',['../group__dom.html#structftxui_1_1Canvas',1,'Canvas'],['../group__dom.html#a3cbcd839ac8597df2e0f351850ec4735',1,'ftxui::Canvas::Canvas()=default'],['../group__dom.html#a6a78dda2095054ffa03f215f0153bdbb',1,'ftxui::Canvas::Canvas(int width, int height)'],['../module-dom.html#dom-canvas',1,'Canvas']]], + ['canvas_6',['canvas',['../namespaceftxui.html#a57d7bdf155e190de514a689abb4e9a35',1,'ftxui::canvas(ConstRef< Canvas > canvas)'],['../namespaceftxui.html#ac781c6530fb74b861af7d52c03ffb2b9',1,'ftxui::canvas(int width, int height, std::function< void(Canvas &)> fn)'],['../namespaceftxui.html#a8bef154e558868d259c52380e1e5ead9',1,'ftxui::canvas(std::function< void(Canvas &)> fn)']]], + ['canvas_2ecppm_7',['canvas.cppm',['../canvas_8cppm.html',1,'']]], + ['canvas_2ehpp_8',['canvas.hpp',['../canvas_8hpp.html',1,'']]], + ['canvas_5fanimated_2ecpp_9',['canvas_animated.cpp',['../canvas__animated_8cpp.html',1,'']]], + ['captured_5fmouse_2ecppm_10',['captured_mouse.cppm',['../captured__mouse_8cppm.html',1,'']]], + ['captured_5fmouse_2ehpp_11',['captured_mouse.hpp',['../captured__mouse_8hpp.html',1,'']]], + ['capturedmouse_12',['CapturedMouse',['../namespaceftxui.html#a24b663cb6b0b262055c94d3a03bdd274',1,'ftxui']]], + ['capturedmouseinterface_13',['CapturedMouseInterface',['../classftxui_1_1CapturedMouseInterface.html',1,'CapturedMouseInterface'],['../classftxui_1_1CapturedMouseInterface.html#abc72c038150d1866199c28dffe7ace7b',1,'ftxui::CapturedMouseInterface::CapturedMouseInterface()=default'],['../classftxui_1_1CapturedMouseInterface.html#abb21b580f6362d9f5f4d25c6b8ca54cb',1,'ftxui::CapturedMouseInterface::CapturedMouseInterface(const CapturedMouseInterface &)=default'],['../classftxui_1_1CapturedMouseInterface.html#a2f92bdd8e2c098ade383916b8e47b7e0',1,'ftxui::CapturedMouseInterface::CapturedMouseInterface(CapturedMouseInterface &&)=delete']]], + ['capturemouse_14',['CaptureMouse',['../group__component.html#a164d10a2cf367bdd4ae14318a6c7d769',1,'ftxui::ComponentBase::CaptureMouse()'],['../group__component.html#aad61519d291dcc216d2ac618618a45a2',1,'ftxui::ScreenInteractive::CaptureMouse()']]], + ['catch_5fevent_2ecpp_15',['catch_event.cpp',['../catch__event_8cpp.html',1,'']]], + ['catchevent_16',['CatchEvent',['../namespaceftxui.html#afa5872ba3f9889c7487e57e745e56857',1,'ftxui::CatchEvent(Component child, std::function< bool(Event)>)'],['../group__component.html#gad2948235799c010c76c6de861c050c59',1,'ftxui::CatchEvent(std::function< bool(Event)> on_event)'],['../group__component.html#ga0bfd67a2815807dc6fc9bc0f79bce29e',1,'ftxui::CatchEvent(Component child, std::function< bool(Event event)> on_event)'],['../module-component.html#component-catchevent',1,'CatchEvent']]], + ['celltoglyphindex_17',['CellToGlyphIndex',['../namespaceftxui.html#a9769a28baa6a84d5de6a8bd624a29294',1,'ftxui']]], + ['center_18',['Center',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a4f1f6016fc9f3f2353c0cc7c67b292bd',1,'ftxui::FlexboxConfig::Center'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a4f1f6016fc9f3f2353c0cc7c67b292bd',1,'ftxui::FlexboxConfig::Center'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a4f1f6016fc9f3f2353c0cc7c67b292bd',1,'ftxui::FlexboxConfig::Center']]], + ['center_19',['center',['../group__dom.html#ga5b11656305fce8427b81daf1c35883f1',1,'ftxui']]], + ['character_20',['Character',['../group__component.html#a769519ed730b72a53a2e770d6ee44365',1,'ftxui::Event::Character(std::string)'],['../group__component.html#a9970fcb99b3c5ed50753111edf1d2cae',1,'ftxui::Event::Character(char)'],['../group__component.html#a2f33d5ea7fca5423861773f891f5ba07',1,'ftxui::Event::Character(wchar_t)']]], + ['character_21',['character',['../group__screen.html#a3bbcd6a381555ea201dbe4251a9aafb3',1,'ftxui::Pixel::character'],['../group__component.html#a07022c6e92b9144a0e5b337b562f9892',1,'ftxui::Event::character()']]], + ['charset_5f_22',['charset_',['../src_2ftxui_2dom_2border_8cpp.html#a108d200440dbd1759a7b025709c2d321',1,'border.cpp']]], + ['chartreuse1_23',['Chartreuse1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7d2d4cc3af6756a4eac7d12fbe4775d4',1,'ftxui::Color']]], + ['chartreuse2_24',['Chartreuse2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa353575e36d1260652eb3d18e73f04cfe',1,'ftxui::Color']]], + ['chartreuse2bis_25',['Chartreuse2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6338086ae05e58041188d89165d87c1a',1,'ftxui::Color']]], + ['chartreuse3_26',['Chartreuse3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2f3df27b5ed05a3e040deec31c684003',1,'ftxui::Color']]], + ['chartreuse3bis_27',['Chartreuse3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2087d90de0840d3f15fad878ba4b4fc4',1,'ftxui::Color']]], + ['chartreuse4_28',['Chartreuse4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa734cd2fab3e94385552fc745665bcc98',1,'ftxui::Color']]], + ['check_29',['Check',['../group__dom.html#a5b71d891a102197f2856f53702425581',1,'ftxui::Node']]], + ['checkbox_30',['CheckBox',['../module-component.html#component-checkbox',1,'']]], + ['checkbox_31',['Checkbox',['../group__component.html#gae0d441d2c83740f187f62db566bbefcd',1,'ftxui::Checkbox(CheckboxOption option)'],['../group__component.html#ga5e9dbb03c44d549f10c96f134269366f',1,'ftxui::Checkbox(ConstStringRef label, bool *checked, CheckboxOption option)']]], + ['checkbox_32',['checkbox',['../group__component.html#a0797deb307cd89059137a4ca6075fcbf',1,'ftxui::DropdownOption']]], + ['checkbox_5fin_5fframe_2ecpp_33',['checkbox_in_frame.cpp',['../checkbox__in__frame_8cpp.html',1,'']]], + ['checkboxoption_34',['CheckboxOption',['../group__component.html#structftxui_1_1CheckboxOption',1,'ftxui']]], + ['checked_35',['checked',['../group__component.html#ab7741e52624c0d7906159d77edffe27e',1,'ftxui::CheckboxOption']]], + ['childat_36',['ChildAt',['../group__component.html#aceb41a98abe10fb0b521ff8b65529b7f',1,'ftxui::ComponentBase']]], + ['childcount_37',['ChildCount',['../group__component.html#a9ae5f77e923e2f0f8b0e26dcd4affb5b',1,'ftxui::ComponentBase']]], + ['children_5f_38',['children_',['../group__component.html#a22b4fa4d6aa4c9c2eef275cd25aa8ab9',1,'ftxui::ComponentBase::children_'],['../group__dom.html#a2aeb117dade3254694355ab90e9fc566',1,'ftxui::Node::children_']]], + ['circularin_39',['CircularIn',['../namespaceftxui_1_1animation_1_1easing.html#a9af9e9dc6ba657b5ab681eb8be39ddb5',1,'ftxui::animation::easing']]], + ['circularinout_40',['CircularInOut',['../namespaceftxui_1_1animation_1_1easing.html#a0d1df50c1810db4a8b16416b62ac7db0',1,'ftxui::animation::easing']]], + ['circularout_41',['CircularOut',['../namespaceftxui_1_1animation_1_1easing.html#a4188d3f98b876d0e0f181f9fd707f476',1,'ftxui::animation::easing']]], + ['clamp_42',['clamp',['../namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3',1,'ftxui::util']]], + ['clear_43',['Clear',['../group__screen.html#aa71d36872f416feaa853788a7a7a7ef8',1,'ftxui::Image::Clear()'],['../group__screen.html#aa71d36872f416feaa853788a7a7a7ef8',1,'ftxui::Screen::Clear()']]], + ['clear_5funder_44',['clear_under',['../group__dom.html#ga17a89519e6b87e12b1e5811a702f7847',1,'ftxui']]], + ['clear_5funder_2ecpp_45',['clear_under.cpp',['../clear__under_8cpp.html',1,'']]], + ['clock_46',['Clock',['../namespaceftxui_1_1animation.html#a19bfb27380067c74ae297dd7dad5fb37',1,'ftxui::animation']]], + ['clone_47',['Clone',['../classftxui_1_1SenderImpl.html#a575817a7bf1afd8bc9af4973e4f38481',1,'ftxui::SenderImpl']]], + ['closure_48',['Closure',['../namespaceftxui.html#adc2f3bfa69ce99c596a1ff1b69b04d33',1,'ftxui']]], + ['cmake_49',['CMake',['../installation_cmake.html',1,'installation']]], + ['cmake_20flags_50',['Optional CMake Flags',['../installation_cmake.html#optional-cmake-flags',1,'']]], + ['code_51',['Code',['../print__key__press_8cpp.html#a1bbdd0071095abee0e28134bd4ad9213',1,'print_key_press.cpp']]], + ['codepointtowordbreakproperty_52',['CodepointToWordBreakProperty',['../namespaceftxui.html#a191b3278846ceb6ac35d2e4eb26db759',1,'ftxui']]], + ['collapsible_53',['Collapsible',['../namespaceftxui.html#a760cd5eb9a72c008ca18f1e6b366c796',1,'ftxui::Collapsible()'],['../module-component.html#component-collapsible',1,'Collapsible']]], + ['color_54',['Color',['../group__screen.html#classftxui_1_1Color',1,'Color'],['../group__screen.html#a1589b83974b42a2f3315624f14c3c92c',1,'ftxui::Color::Color()'],['../group__screen.html#a3c93cb793b88256235f17235c9359b35',1,'ftxui::Color::Color(Palette1 index)'],['../group__screen.html#a55decaa0b2ab846729582f5f7b6acb49',1,'ftxui::Color::Color(Palette16 index)'],['../group__screen.html#a4f2602aacaf27a6482580fea0f7de0d2',1,'ftxui::Color::Color(Palette256 index)'],['../group__screen.html#a92d70d7572b7a07d2af4ff650e272e08',1,'ftxui::Color::Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=255)'],['../group__screen.html#gab87bacfdad76e61b9412d7124be44c1c',1,'ftxui::Terminal::Color']]], + ['color_55',['color',['../structftxui_1_1LinearGradient_1_1Stop.html#aa5f4d1eda21c196bd8401ff73f105073',1,'ftxui::LinearGradient::Stop::color'],['../group__dom.html#gaf61b489da39ca5e24b68e6e1a2b09c0d',1,'ftxui::color(Color c)'],['../group__dom.html#ga8af6b5a06b03fd53bf30a6b050b96968',1,'ftxui::color(const LinearGradient &gradient)'],['../group__dom.html#gadef6e6e66199153de6d3b21b14dcf868',1,'ftxui::color(Color color, Element child)'],['../group__dom.html#ga050df9c8ed04eec13309d6c0542c636d',1,'ftxui::color(const LinearGradient &gradient, Element child)']]], + ['color_2ecppm_56',['color.cppm',['../color_8cppm.html',1,'']]], + ['color_2ehpp_57',['color.hpp',['../color_8hpp.html',1,'']]], + ['color_5f_58',['color_',['../src_2ftxui_2component_2window_8cpp.html#af75802a6553b2b23639f23d3c4b94217',1,'color_: window.cpp'],['../dom_2color_8cpp.html#af75802a6553b2b23639f23d3c4b94217',1,'color_: color.cpp']]], + ['color_5factive_59',['color_active',['../group__component.html#a593f1ba15add21d1972c01372db369df',1,'ftxui::UnderlineOption::color_active'],['../structftxui_1_1SliderOption.html#a593f1ba15add21d1972c01372db369df',1,'ftxui::SliderOption::color_active']]], + ['color_5fgallery_2ecpp_60',['color_gallery.cpp',['../color__gallery_8cpp.html',1,'']]], + ['color_5finactive_61',['color_inactive',['../group__component.html#ad5a77e0bc0ce649271a13949a7a0a635',1,'ftxui::UnderlineOption::color_inactive'],['../structftxui_1_1SliderOption.html#ad5a77e0bc0ce649271a13949a7a0a635',1,'ftxui::SliderOption::color_inactive']]], + ['color_5finfo_2ecpp_62',['color_info.cpp',['../color__info_8cpp.html',1,'']]], + ['color_5finfo_2ecppm_63',['color_info.cppm',['../color__info_8cppm.html',1,'']]], + ['color_5finfo_2ehpp_64',['color_info.hpp',['../color__info_8hpp.html',1,'']]], + ['color_5finfo_5fpalette256_2ecpp_65',['color_info_palette256.cpp',['../color__info__palette256_8cpp.html',1,'']]], + ['color_5finfo_5fsorted_5f2d_2eipp_66',['color_info_sorted_2d.ipp',['../color__info__sorted__2d_8ipp.html',1,'']]], + ['color_5ftruecolor_5fhsv_2ecpp_67',['color_truecolor_HSV.cpp',['../color__truecolor__HSV_8cpp.html',1,'']]], + ['color_5ftruecolor_5frgb_2ecpp_68',['color_truecolor_RGB.cpp',['../color__truecolor__RGB_8cpp.html',1,'']]], + ['colored_69',['Colored',['../menu__entries_8cpp.html#a12f3ca405f8238e1d03dff81d4cf6997',1,'Colored(ftxui::Color c): menu_entries.cpp'],['../menu__entries__animated_8cpp.html#a12f3ca405f8238e1d03dff81d4cf6997',1,'Colored(ftxui::Color c): menu_entries_animated.cpp']]], + ['colorinfo_70',['ColorInfo',['../group__screen.html#structftxui_1_1ColorInfo',1,'ftxui']]], + ['colorinfosorted2d_71',['ColorInfoSorted2D',['../color__info__sorted__2d_8ipp.html#a0f08918d6064cd2a0e56cb9ec74033ca',1,'color_info_sorted_2d.ipp']]], + ['colors_72',['Colors',['../module-dom.html#dom-colors',1,'']]], + ['colors_73',['colors',['../src_2ftxui_2dom_2linear__gradient_8cpp.html#ac3290ba0758760ac0d6df01f7707dd94',1,'linear_gradient.cpp']]], + ['colorstring_74',['ColorString',['../slider__rgb_8cpp.html#acfbf512737b012658b0c3b6997da144e',1,'slider_rgb.cpp']]], + ['colorsupport_75',['ColorSupport',['../group__screen.html#gae6e034f37aa66cfe4458a8cb6e8fc526',1,'ftxui::Terminal']]], + ['colortile_76',['ColorTile',['../slider__rgb_8cpp.html#ac5038fb3740e7d9137dfb4969a9a8035',1,'slider_rgb.cpp']]], + ['column_77',['Column',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa1976d7f704de389d9fe064e08ea35b2d',1,'ftxui::FlexboxConfig']]], + ['columninversed_78',['ColumnInversed',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa338df815740895b690c7b07716acda20',1,'ftxui::FlexboxConfig']]], + ['component_79',['Component',['../namespaceftxui.html#af1479ede01dbf087342534ab4ada11d3',1,'ftxui']]], + ['component_80',['component',['../module-component.html',1,'ftxui / component'],['../group__component.html',1,'ftxui/component'],['../ftxui.html#ftxuicomponent',1,'ftxui/component']]], + ['component_2ecpp_81',['component.cpp',['../component_8cpp.html',1,'']]], + ['component_2ecppm_82',['component.cppm',['../component_8cppm.html',1,'']]], + ['component_2ehpp_83',['component.hpp',['../component_8hpp.html',1,'']]], + ['component_2fcomponent_2ecppm_84',['component.cppm',['../component_2component_8cppm.html',1,'']]], + ['component_2futil_2ecpp_85',['util.cpp',['../component_2util_8cpp.html',1,'']]], + ['component_5factive_86',['component_active',['../structftxui_1_1Requirement_1_1Focused.html#ac3226c18ed017dd81566f593d1257ce1',1,'ftxui::Requirement::Focused']]], + ['component_5fbase_2ecppm_87',['component_base.cppm',['../component__base_8cppm.html',1,'']]], + ['component_5fbase_2ehpp_88',['component_base.hpp',['../component__base_8hpp.html',1,'']]], + ['component_5fexamples_2emd_89',['component_examples.md',['../component__examples_8md.html',1,'']]], + ['component_5ffuzzer_2ecpp_90',['component_fuzzer.cpp',['../component__fuzzer_8cpp.html',1,'']]], + ['component_5foptions_2ecpp_91',['component_options.cpp',['../component__options_8cpp.html',1,'']]], + ['component_5foptions_2ecppm_92',['component_options.cppm',['../component__options_8cppm.html',1,'']]], + ['component_5foptions_2ehpp_93',['component_options.hpp',['../component__options_8hpp.html',1,'']]], + ['componentbase_94',['ComponentBase',['../group__component.html#classftxui_1_1ComponentBase',1,'ComponentBase'],['../group__component.html#ad2a5b6ce11bc7a8ce1150cf0ba9144c0',1,'ftxui::ComponentBase::ComponentBase(Components children)'],['../group__component.html#acda4c8b63ffbc2e9e2e28f056edbf01c',1,'ftxui::ComponentBase::ComponentBase()=default'],['../group__component.html#abd8cf6a9df5eb4678fb9925b686c7aea',1,'ftxui::ComponentBase::ComponentBase(const ComponentBase &)=delete'],['../group__component.html#a9b3cf357cf150023641969d5fcb7d08f',1,'ftxui::ComponentBase::ComponentBase(ComponentBase &&)=delete']]], + ['componentdecorator_95',['ComponentDecorator',['../namespaceftxui.html#af07b496fe512e3a4863ee546f19e9a6c',1,'ftxui']]], + ['components_96',['Components',['../namespaceftxui.html#a3d4ccad0c8a07d5b0cb4b2e690ffc90c',1,'ftxui']]], + ['composite_5fdecorator_2ecpp_97',['composite_decorator.cpp',['../composite__decorator_8cpp.html',1,'']]], + ['composition_2ecpp_98',['composition.cpp',['../composition_8cpp.html',1,'']]], + ['compute_99',['Compute',['../namespaceftxui_1_1box__helper.html#aede4ed6e71fbe0689a500ff8db06f3a3',1,'ftxui::box_helper::Compute()'],['../namespaceftxui_1_1flexbox__helper.html#aaf9df834cf83e439dd0e74cb1999c83d',1,'ftxui::flexbox_helper::Compute()']]], + ['computerequirement_100',['ComputeRequirement',['../group__dom.html#a40bd818c5de23bb2d208360d275ae59d',1,'ftxui::Node::ComputeRequirement()'],['../classftxui_1_1NodeDecorator.html#ac68a91492bfe8a6dd7ea2b3f7f295720',1,'ftxui::NodeDecorator::ComputeRequirement()']]], + ['conan_101',['Conan',['../installation_conan.html',1,'installation']]], + ['config_102',['config',['../structftxui_1_1flexbox__helper_1_1Global.html#ae1dac1dbfb99211895f88d2c4b609849',1,'ftxui::flexbox_helper::Global']]], + ['config_5f_103',['config_',['../flexbox_8cpp.html#a85d583fe20f57cb4f383cba6eae3d073',1,'flexbox.cpp']]], + ['config_5fnormalized_5f_104',['config_normalized_',['../flexbox_8cpp.html#a8a92e22645479418ed4d290ebf4b51c3',1,'flexbox.cpp']]], + ['configure_20your_20build_20system_105',['Configure your build system.',['../installation_vcpkg.html#configure-your-build-system',1,'']]], + ['constraint_106',['Constraint',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926',1,'ftxui']]], + ['constref_107',['ConstRef',['../classftxui_1_1ConstRef.html',1,'ConstRef< T >'],['../classftxui_1_1ConstRef.html#a2949426897a0bd427771597c7cc34f08',1,'ftxui::ConstRef::ConstRef()=default'],['../classftxui_1_1ConstRef.html#aa33f2e3c9020518540c2850c7ad2669f',1,'ftxui::ConstRef::ConstRef(T t)'],['../classftxui_1_1ConstRef.html#a7dde5cd8bdbcd4c83a7b3bbddfc31bd9',1,'ftxui::ConstRef::ConstRef(const T *t)'],['../classftxui_1_1ConstRef.html#a184e14dab2e9bca47f7d172ca7126c60',1,'ftxui::ConstRef::ConstRef(const ConstRef< T > &)=default'],['../classftxui_1_1ConstRef.html#aa89dd79143a428e57480cda1cc7b675e',1,'ftxui::ConstRef::ConstRef(ConstRef< T > &&) noexcept=default']]], + ['constref_3c_20std_3a_3astring_20_3e_108',['ConstRef< std::string >',['../classftxui_1_1ConstRef.html',1,'ftxui']]], + ['conststringlistref_109',['ConstStringListRef',['../classftxui_1_1ConstStringListRef.html',1,'ConstStringListRef'],['../classftxui_1_1ConstStringListRef.html#a425bc6a013bf3a539794b7a874fc722f',1,'ftxui::ConstStringListRef::ConstStringListRef()=default'],['../classftxui_1_1ConstStringListRef.html#a4d5f9a6302f997c4ef51b36370b84042',1,'ftxui::ConstStringListRef::ConstStringListRef(ConstStringListRef &&)=default'],['../classftxui_1_1ConstStringListRef.html#abfb65b9a4a2648e7b9f110cecefa57a4',1,'ftxui::ConstStringListRef::ConstStringListRef(const ConstStringListRef &)=default'],['../classftxui_1_1ConstStringListRef.html#a143d850d76c8d8f8b4f8750c94ce1a52',1,'ftxui::ConstStringListRef::ConstStringListRef(std::vector< std::string > value)'],['../classftxui_1_1ConstStringListRef.html#a1dea39816b5515bb126f980ed0839d63',1,'ftxui::ConstStringListRef::ConstStringListRef(const std::vector< std::string > *value)'],['../classftxui_1_1ConstStringListRef.html#a8f2ca283f552f4cdd835401e3b177b4a',1,'ftxui::ConstStringListRef::ConstStringListRef(const std::vector< std::wstring > *value)'],['../classftxui_1_1ConstStringListRef.html#ae1af1937e833f81fe7013261ec0ee1ef',1,'ftxui::ConstStringListRef::ConstStringListRef(Adapter *adapter)'],['../classftxui_1_1ConstStringListRef.html#a79bb658d6bae69e91da078978d5ded33',1,'ftxui::ConstStringListRef::ConstStringListRef(std::unique_ptr< AdapterType > adapter)']]], + ['conststringref_110',['ConstStringRef',['../classftxui_1_1ConstStringRef.html',1,'ConstStringRef'],['../classftxui_1_1ConstStringRef.html#a9a4560dc18026ec3753e87d569fa5103',1,'ftxui::ConstStringRef::ConstStringRef(const std::wstring *ref)'],['../classftxui_1_1ConstStringRef.html#a1e8c54776eada9969ebbadb21d8e689a',1,'ftxui::ConstStringRef::ConstStringRef(const std::wstring ref)'],['../classftxui_1_1ConstStringRef.html#ad8b24bac5669d8787ac2109068094938',1,'ftxui::ConstStringRef::ConstStringRef(const wchar_t *ref)'],['../classftxui_1_1ConstStringRef.html#a013cd384d028ab8f67fa4cf8e9c521cd',1,'ftxui::ConstStringRef::ConstStringRef(const char *ref)']]], + ['contain_111',['Contain',['../group__screen.html#a2f31c89738607b84e65992a7005d35a9',1,'ftxui::Box']]], + ['container_112',['Container',['../module-component.html#component-container',1,'']]], + ['container_2ecpp_113',['container.cpp',['../container_8cpp.html',1,'']]], + ['content_114',['content',['../group__component.html#ac9f6c2acd72d74eeb3a18baf32b02932',1,'ftxui::InputOption']]], + ['contributions_115',['Contributions',['../installation.html#contributions',1,'']]], + ['control_116',['control',['../group__component.html#ad155fe5a68eb888a7e0eb897a3dfc015',1,'ftxui::Mouse']]], + ['cornflowerblue_117',['CornflowerBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab4dcc712554f602559b3f9b7662ea4dd',1,'ftxui::Color']]], + ['cornsilk1_118',['Cornsilk1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9d7dd269922a0e2fac6366c623ed3d45',1,'ftxui::Color']]], + ['cpp20_2dmodules_2emd_119',['cpp20-modules.md',['../cpp20-modules_8md.html',1,'']]], + ['cr_120',['CR',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa1d7b33fc26ca22c2011aaa97fecc43d8',1,'ftxui']]], + ['create_121',['Create',['../group__screen.html#a32b98be0603ace46d6dc9d05b330a9fd',1,'ftxui::Screen::Create(Dimensions dimension)'],['../group__screen.html#a29a8d230cd1913d26626158fc4fc0a0c',1,'ftxui::Screen::Create(Dimensions width, Dimensions height)']]], + ['ctrla_122',['CtrlA',['../group__component.html#acf7817ed11559c82a26322521f390d6e',1,'ftxui::Event']]], + ['ctrlalta_123',['CtrlAltA',['../group__component.html#adb198f3baf944a55bcfa46107615d359',1,'ftxui::Event']]], + ['ctrlaltb_124',['CtrlAltB',['../group__component.html#ae44c243b858cb3400fdbfa0175c489e4',1,'ftxui::Event']]], + ['ctrlaltc_125',['CtrlAltC',['../group__component.html#a1cd1b6ca37581db00ee5ad5d44e94e3f',1,'ftxui::Event']]], + ['ctrlaltd_126',['CtrlAltD',['../group__component.html#aec5fdc15c18b77c8ca74d1f077754916',1,'ftxui::Event']]], + ['ctrlalte_127',['CtrlAltE',['../group__component.html#a459c4f925ed72d9ebdd5caa74be905f8',1,'ftxui::Event']]], + ['ctrlaltf_128',['CtrlAltF',['../group__component.html#a22ee0cd5fb9dbb1ff5fe2b249d9de1fc',1,'ftxui::Event']]], + ['ctrlaltg_129',['CtrlAltG',['../group__component.html#acf6ba80979dddb644d8a06ddc8b32a43',1,'ftxui::Event']]], + ['ctrlalth_130',['CtrlAltH',['../group__component.html#a54b56653957ef7a339f0659e6c4f826f',1,'ftxui::Event']]], + ['ctrlalti_131',['CtrlAltI',['../group__component.html#a2bf197114604fe111bd01a5ad64b0576',1,'ftxui::Event']]], + ['ctrlaltj_132',['CtrlAltJ',['../group__component.html#a48019246646c62005152941069919bf2',1,'ftxui::Event']]], + ['ctrlaltk_133',['CtrlAltK',['../group__component.html#ace12bff4272d8e0c85db12524e42f7b0',1,'ftxui::Event']]], + ['ctrlaltl_134',['CtrlAltL',['../group__component.html#ab37accf33aab3cd7187bb7f589bc3c5b',1,'ftxui::Event']]], + ['ctrlaltm_135',['CtrlAltM',['../group__component.html#a7866574be02fec611b5aca5d333ccccf',1,'ftxui::Event']]], + ['ctrlaltn_136',['CtrlAltN',['../group__component.html#a0bcae083304c682e85f1e18be85dc141',1,'ftxui::Event']]], + ['ctrlalto_137',['CtrlAltO',['../group__component.html#a62641366fdaffa002aca0087af45297a',1,'ftxui::Event']]], + ['ctrlaltp_138',['CtrlAltP',['../group__component.html#a44bc2e6312cd6e9eda4d4778e88052f0',1,'ftxui::Event']]], + ['ctrlaltq_139',['CtrlAltQ',['../group__component.html#af8bec3764c43c08d08c0bffdcf9b4255',1,'ftxui::Event']]], + ['ctrlaltr_140',['CtrlAltR',['../group__component.html#a8aecef2c60fd63f3cbc7c16b7b5d804b',1,'ftxui::Event']]], + ['ctrlalts_141',['CtrlAltS',['../group__component.html#abf589677d9c6463e97519567c3d1b021',1,'ftxui::Event']]], + ['ctrlaltt_142',['CtrlAltT',['../group__component.html#adad452726bfb3d523b19299bf8017a41',1,'ftxui::Event']]], + ['ctrlaltu_143',['CtrlAltU',['../group__component.html#ad4e4ff7f9a534882d7e5adc29235d761',1,'ftxui::Event']]], + ['ctrlaltv_144',['CtrlAltV',['../group__component.html#ae7afc70b1bc9d4e5c046bcbaf7767c19',1,'ftxui::Event']]], + ['ctrlaltw_145',['CtrlAltW',['../group__component.html#a5d6ebbe9bdb0b7fe28104a58602bcc37',1,'ftxui::Event']]], + ['ctrlaltx_146',['CtrlAltX',['../group__component.html#a07a380297456b42f4929d47ece5517a0',1,'ftxui::Event']]], + ['ctrlalty_147',['CtrlAltY',['../group__component.html#ab001073b99625145403adbbd3a3e21e8',1,'ftxui::Event']]], + ['ctrlaltz_148',['CtrlAltZ',['../group__component.html#a98f8350cb5499a5432506ac732d495ec',1,'ftxui::Event']]], + ['ctrlb_149',['CtrlB',['../group__component.html#a52c5a6db246fce616cf8d6408af8e3a3',1,'ftxui::Event']]], + ['ctrlc_150',['CtrlC',['../group__component.html#a038a33c469a2e4474d08d637e37f660d',1,'ftxui::Event']]], + ['ctrld_151',['CtrlD',['../group__component.html#ae0d493f520768be24d4e9508eb3f263d',1,'ftxui::Event']]], + ['ctrle_152',['CtrlE',['../group__component.html#a1fbae80d9ab6f7c72f07f1a84da7de64',1,'ftxui::Event']]], + ['ctrlf_153',['CtrlF',['../group__component.html#a46651cd420861328dff49c5651ac853c',1,'ftxui::Event']]], + ['ctrlg_154',['CtrlG',['../group__component.html#aa221be42071500650486cc199f26b072',1,'ftxui::Event']]], + ['ctrlh_155',['CtrlH',['../group__component.html#a72c30a2cd1d2309f4e81aad7163e24ca',1,'ftxui::Event']]], + ['ctrli_156',['CtrlI',['../group__component.html#af5df3d152c8ea5303cc2d5c9bb8c5747',1,'ftxui::Event']]], + ['ctrlj_157',['CtrlJ',['../group__component.html#a76d3ea748f24c9c8d55a8f563616de3f',1,'ftxui::Event']]], + ['ctrlk_158',['CtrlK',['../group__component.html#a8deeb92abd293c7a0750b6891cc217bd',1,'ftxui::Event']]], + ['ctrll_159',['CtrlL',['../group__component.html#a0608ea347cb61c04bf7f1e89d215d1c3',1,'ftxui::Event']]], + ['ctrlm_160',['CtrlM',['../group__component.html#a86af858198ebfedc83ada8f775a1b4bc',1,'ftxui::Event']]], + ['ctrln_161',['CtrlN',['../group__component.html#a85966b9d428df487e2b896596e90f4ed',1,'ftxui::Event']]], + ['ctrlo_162',['CtrlO',['../group__component.html#ae7915261b9c6d8e844933bd1f68ed120',1,'ftxui::Event']]], + ['ctrlp_163',['CtrlP',['../group__component.html#a043bd0f01364983076c98ebf2fd6f503',1,'ftxui::Event']]], + ['ctrlq_164',['CtrlQ',['../group__component.html#a97bdebeccfd100f5e8f5df3b4e04b62e',1,'ftxui::Event']]], + ['ctrlr_165',['CtrlR',['../group__component.html#a5cca4aa809fa07d3ea1992ebef011a19',1,'ftxui::Event']]], + ['ctrls_166',['CtrlS',['../group__component.html#a7c7ffc28a2d2d1eb67444edb7a44e575',1,'ftxui::Event']]], + ['ctrlt_167',['CtrlT',['../group__component.html#ac1e7d6a13cfa09a29e2c735e01463598',1,'ftxui::Event']]], + ['ctrlu_168',['CtrlU',['../group__component.html#a26730fa452c79611f5aa6ca0e157e217',1,'ftxui::Event']]], + ['ctrlv_169',['CtrlV',['../group__component.html#a053eca96c74722632b0a1e53f3af2978',1,'ftxui::Event']]], + ['ctrlw_170',['CtrlW',['../group__component.html#a8520a7531235eb2ff76f2de1704e7e1c',1,'ftxui::Event']]], + ['ctrlx_171',['CtrlX',['../group__component.html#a50ef26ee285d63d0a805f59eed52239f',1,'ftxui::Event']]], + ['ctrly_172',['CtrlY',['../group__component.html#a697c813972ac5d83b75f65e81acd5cff',1,'ftxui::Event']]], + ['ctrlz_173',['CtrlZ',['../group__component.html#a22ef83103e0443ba82acc19f24f729bc',1,'ftxui::Event']]], + ['cubicin_174',['CubicIn',['../namespaceftxui_1_1animation_1_1easing.html#a2288ba740a847ea0e565017cb16c24f2',1,'ftxui::animation::easing']]], + ['cubicinout_175',['CubicInOut',['../namespaceftxui_1_1animation_1_1easing.html#a2aa1d45766fe10c3b16b7dd4f65db859',1,'ftxui::animation::easing']]], + ['cubicout_176',['CubicOut',['../namespaceftxui_1_1animation_1_1easing.html#acd3c619812de25f3613b36735a5cdc91',1,'ftxui::animation::easing']]], + ['current_177',['Current',['../classftxui_1_1task_1_1TaskRunner.html#a4e90ab04a37a29bb0e3432d1290a4565',1,'ftxui::task::TaskRunner']]], + ['cursor_178',['Cursor',['../structftxui_1_1Screen_1_1Cursor.html',1,'ftxui::Screen']]], + ['cursor_179',['cursor',['../group__component.html#a9d8d873964fd143f113fce55e15c37fb',1,'ftxui::Event::cursor'],['../group__screen.html#a94febaac347b83267ff6a10b7837d612',1,'ftxui::Screen::cursor() const']]], + ['cursor_5f_180',['cursor_',['../group__screen.html#a9df9d1ae7ed66857ca987963b2365904',1,'ftxui::Screen']]], + ['cursor_5fposition_181',['cursor_position',['../group__component.html#a699547942204afa70864e0e6df94c96c',1,'ftxui::InputOption']]], + ['cursor_5fshape_182',['cursor_shape',['../group__component.html#a25a0efbff7ae0393c695f6d720cb5542',1,'ftxui::Event::cursor_shape'],['../structftxui_1_1Requirement_1_1Focused.html#a21f4c5c8f6862a204f795d4f0cb6d479',1,'ftxui::Requirement::Focused::cursor_shape'],['../group__component.html#a022c841864c305d5e3ef69f6957dc367',1,'ftxui::Event::cursor_shape() const']]], + ['cursor_5fx_183',['cursor_x',['../group__component.html#a1ef75084a5f2a9d26df8cafcf048526e',1,'ftxui::Event']]], + ['cursor_5fy_184',['cursor_y',['../group__component.html#a1a24372c00e6485f2648350df4301ae3',1,'ftxui::Event']]], + ['cursorposition_185',['CursorPosition',['../group__component.html#acef096fb0273c844877408912445988c',1,'ftxui::Event']]], + ['cursorshape_186',['CursorShape',['../group__component.html#a0e2ede93a1146707a4f5e540056e13bc',1,'ftxui::Event']]], + ['custom_187',['Custom',['../group__component.html#a699872f2a6d8607d714be174e9435290',1,'ftxui::Event']]], + ['custom_5floop_2ecpp_188',['custom_loop.cpp',['../custom__loop_8cpp.html',1,'']]], + ['cyan_189',['Cyan',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab0d4738f9c7f12049e52aa4e868bdc8b',1,'ftxui::Color']]], + ['cyan1_190',['Cyan1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa35e9559f51c82a7adda45276bbedb0f4',1,'ftxui::Color']]], + ['cyan2_191',['Cyan2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacc49853d1836ecf3b66c4b8c568aba3f',1,'ftxui::Color']]], + ['cyan3_192',['Cyan3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a36fc7d64942362d706fad5544517d1',1,'ftxui::Color']]], + ['cyanlight_193',['CyanLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa61bd7f1290cc0a24e565539a61ba5839',1,'ftxui::Color']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 000000000..3032e86fc --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,126 @@ +var searchData= +[ + ['d_0',['D',['../group__component.html#a0885c6b998110e03e7e24799d6845fe0',1,'ftxui::Event']]], + ['d_1',['d',['../group__component.html#a880f64e789647bba6c1e0140fb306c8c',1,'ftxui::Event']]], + ['darkblue_2',['DarkBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa4d5c4dd6c3cf0fe617dec801025bd76',1,'ftxui::Color']]], + ['darkcyan_3',['DarkCyan',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa180097c82c1863b9c2f94b41d341c529',1,'ftxui::Color']]], + ['darkgoldenrod_4',['DarkGoldenrod',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab5d8a9760923e3357c167fc19de8a914',1,'ftxui::Color']]], + ['darkgreen_5',['DarkGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6c1a381d726d9c383c05b9ca12682e4f',1,'ftxui::Color']]], + ['darkkhaki_6',['DarkKhaki',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa480194578592f6fc90b8b6a1a1f66e8b',1,'ftxui::Color']]], + ['darkmagenta_7',['DarkMagenta',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ba5febce0999080bcfe1ef92192fe12',1,'ftxui::Color']]], + ['darkmagentabis_8',['DarkMagentaBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0e32b2f735ea792ab1d5253d3e631241',1,'ftxui::Color']]], + ['darkolivegreen1_9',['DarkOliveGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a1641f09fbb37751ade39859adbcfaa',1,'ftxui::Color']]], + ['darkolivegreen1bis_10',['DarkOliveGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4e0500dd80f0e6f0a2a1a93de953cf86',1,'ftxui::Color']]], + ['darkolivegreen2_11',['DarkOliveGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaad55a68e83744f717a7f83f7a8fd265f',1,'ftxui::Color']]], + ['darkolivegreen3_12',['DarkOliveGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeca91c2f996796b37a2123515356ded3',1,'ftxui::Color']]], + ['darkolivegreen3bis_13',['DarkOliveGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad6dc23b32b2396e59cfc48238fd05bd8',1,'ftxui::Color']]], + ['darkolivegreen3ter_14',['DarkOliveGreen3Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a607c03adbcbd4b210fc095272a76a0',1,'ftxui::Color']]], + ['darkorange_15',['DarkOrange',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2458c6f4cddf4f28bf1285975975b987',1,'ftxui::Color']]], + ['darkorange3_16',['DarkOrange3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa08efc0d59d20277a3c2f01473250108c',1,'ftxui::Color']]], + ['darkorange3bis_17',['DarkOrange3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3def467cbbb99502637734c3bd2ce456',1,'ftxui::Color']]], + ['darkred_18',['DarkRed',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa556650aa9f007ea0239e66d3ddf26759',1,'ftxui::Color']]], + ['darkredbis_19',['DarkRedBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3bcdc58abc2165b0032a207e9d6883d',1,'ftxui::Color']]], + ['darkseagreen_20',['DarkSeaGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa380e1f43f086bd475d720c459fcff2a8',1,'ftxui::Color']]], + ['darkseagreen1_21',['DarkSeaGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaded95d3c0d616d9658b034e9ae705bf5',1,'ftxui::Color']]], + ['darkseagreen1bis_22',['DarkSeaGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa691f28c053f9d2a12db86b8aa396374b',1,'ftxui::Color']]], + ['darkseagreen2_23',['DarkSeaGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad5089e0939bbe16ed485053e771e8a68',1,'ftxui::Color']]], + ['darkseagreen2bis_24',['DarkSeaGreen2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac388011f4493d875983a3c7264e7ded5',1,'ftxui::Color']]], + ['darkseagreen3_25',['DarkSeaGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa02af538b8573bc9c037822273620864f',1,'ftxui::Color']]], + ['darkseagreen3bis_26',['DarkSeaGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b2765271febec45b933598f18a7ca98',1,'ftxui::Color']]], + ['darkseagreen4_27',['DarkSeaGreen4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabda195126fea1b4f0aa6d25513820ca0',1,'ftxui::Color']]], + ['darkseagreen4bis_28',['DarkSeaGreen4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa393410b62bd90565aa0c25e61c92d999',1,'ftxui::Color']]], + ['darkslategray1_29',['DarkSlateGray1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfafb40765294d1d25a5ec1ec17d3ee4ae8',1,'ftxui::Color']]], + ['darkslategray2_30',['DarkSlateGray2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa29221856aecf72cfe57d5ca2e6d41b42',1,'ftxui::Color']]], + ['darkslategray3_31',['DarkSlateGray3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0621f3f774389bc57973bbed3c78b9f7',1,'ftxui::Color']]], + ['darkturquoise_32',['DarkTurquoise',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6a5df4f33663381387285b54ee22ab78',1,'ftxui::Color']]], + ['darkviolet_33',['DarkViolet',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0c92c7e17edeca09b7c63c8a783a562f',1,'ftxui::Color']]], + ['darkvioletbis_34',['DarkVioletBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9870a3dcf46498ca4a10be946521097d',1,'ftxui::Color']]], + ['dashed_35',['DASHED',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca830310bdfd296d7cd00c59773579b892',1,'ftxui']]], + ['dbox_36',['dbox',['../group__dom.html#ga901ab1b6b2e0e8c295552168ab206441',1,'ftxui']]], + ['debian_20and_20ubuntu_20packages_20unofficial_37',['Debian and Ubuntu Packages (Unofficial)',['../installation_debian.html#debian-and-ubuntu-packages-unofficial',1,'']]], + ['debian_20ubuntu_38',['Debian/Ubuntu',['../installation_debian.html',1,'installation']]], + ['debugstring_39',['DebugString',['../group__component.html#a764be64f3029f8b8e23511061d8de355',1,'ftxui::Event']]], + ['decorate_40',['Decorate',['../classftxui_1_1TableSelection.html#a8e7e9329ee7f557eef6d037fef8003e0',1,'ftxui::TableSelection']]], + ['decoratealternatecolumn_41',['DecorateAlternateColumn',['../classftxui_1_1TableSelection.html#a00b7d84571ed47043e55cd879ed851a3',1,'ftxui::TableSelection']]], + ['decoratealternaterow_42',['DecorateAlternateRow',['../classftxui_1_1TableSelection.html#a9cadee0ff95e66e2ca90e15648ad592d',1,'ftxui::TableSelection']]], + ['decoratecells_43',['DecorateCells',['../classftxui_1_1TableSelection.html#a335808a6c8beb4744bfe91b359ebf0bb',1,'ftxui::TableSelection']]], + ['decoratecellsalternatecolumn_44',['DecorateCellsAlternateColumn',['../classftxui_1_1TableSelection.html#a751593eb3bc2e704eb6667ed518f614e',1,'ftxui::TableSelection']]], + ['decoratecellsalternaterow_45',['DecorateCellsAlternateRow',['../classftxui_1_1TableSelection.html#ac2810f38a5f722916f364f354c204cb7',1,'ftxui::TableSelection']]], + ['decorator_46',['Decorator',['../namespaceftxui.html#a164021903e9ac6f1357e4186582891e3',1,'ftxui']]], + ['deeppink1_47',['DeepPink1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad05d6a1937a822876238056c449d358a',1,'ftxui::Color']]], + ['deeppink1bis_48',['DeepPink1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa65e73df447238ae75a0d07efb65dbe9e',1,'ftxui::Color']]], + ['deeppink2_49',['DeepPink2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeef51aafc2cd821d225e0da0c53f8e20',1,'ftxui::Color']]], + ['deeppink3_50',['DeepPink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfafe2c78801538b191a773d879ce8ef205',1,'ftxui::Color']]], + ['deeppink3bis_51',['DeepPink3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabff5bbcace3282974cfa06467832cb79',1,'ftxui::Color']]], + ['deeppink4_52',['DeepPink4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf13fb129c07396292da1f7530914f07d',1,'ftxui::Color']]], + ['deeppink4bis_53',['DeepPink4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa26e5234f400791a8e9e7850ba7cf6df8',1,'ftxui::Color']]], + ['deeppink4ter_54',['DeepPink4Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac8deabe72bda5e1baf1db1ffc1edf966',1,'ftxui::Color']]], + ['deepskyblue1_55',['DeepSkyBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa601eba969cf1007265ed79e626d49be7',1,'ftxui::Color']]], + ['deepskyblue2_56',['DeepSkyBlue2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa932fa24051e9217b181a71e7491bb214',1,'ftxui::Color']]], + ['deepskyblue3_57',['DeepSkyBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99066355a2c8a3d09741cc7318a41dbc',1,'ftxui::Color']]], + ['deepskyblue3bis_58',['DeepSkyBlue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8986a4db4b9a9e78822a35345484d23a',1,'ftxui::Color']]], + ['deepskyblue4_59',['DeepSkyBlue4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0bedec2878fd084bb46dcd7f7dd3b9aa',1,'ftxui::Color']]], + ['deepskyblue4bis_60',['DeepSkyBlue4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad0cc3282e3ba7e9d833052832a54fdc3',1,'ftxui::Color']]], + ['deepskyblue4ter_61',['DeepSkyBlue4Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa98b88c697db6fc8899bee87fa24e86dd',1,'ftxui::Color']]], + ['default_62',['Default',['../group__screen.html#aa4be56f94fc180d7b070df23c235b0c7a79935518a3889663d8688b6b01fff051',1,'ftxui::Color::Default'],['../group__component.html#a2108670f055ede2fdc4993f6ffc8ff07',1,'ftxui::InputOption::Default()']]], + ['delete_63',['Delete',['../group__component.html#ae7a3abf1b7aa72c31f924c2a337805af',1,'ftxui::Event']]], + ['dependency_64',['Use as a Dependency',['../installation_nix.html#use-as-a-dependency',1,'']]], + ['detach_65',['Detach',['../group__component.html#abb7a2b60240651d16e17d02eb6f636cf',1,'ftxui::ComponentBase']]], + ['detachallchildren_66',['DetachAllChildren',['../group__component.html#a84bd6480cf5e8f51cf5965f81b1f2460',1,'ftxui::ComponentBase']]], + ['dim_67',['dim',['../group__screen.html#a3cecb006e0ca185024cd89f9ea2ea69a',1,'ftxui::Pixel::dim'],['../group__dom.html#gac6a3b77604739516e809369810896646',1,'ftxui::dim()']]], + ['dim_2ecpp_68',['dim.cpp',['../dim_8cpp.html',1,'']]], + ['dim_5fx_69',['dim_x',['../structftxui_1_1flexbox__helper_1_1Block.html#a78e7e791466dc8e951311de2a1709955',1,'ftxui::flexbox_helper::Block::dim_x'],['../structftxui_1_1flexbox__helper_1_1Line.html#a78e7e791466dc8e951311de2a1709955',1,'ftxui::flexbox_helper::Line::dim_x']]], + ['dim_5fy_70',['dim_y',['../structftxui_1_1flexbox__helper_1_1Block.html#ad26cec1d8cdf8ba04707fd4cf822065a',1,'ftxui::flexbox_helper::Block::dim_y'],['../structftxui_1_1flexbox__helper_1_1Line.html#ad26cec1d8cdf8ba04707fd4cf822065a',1,'ftxui::flexbox_helper::Line::dim_y']]], + ['dimensions_71',['Dimensions',['../group__screen.html#structftxui_1_1Dimensions',1,'ftxui']]], + ['dimx_72',['dimx',['../group__screen.html#a8b0f6ae031a507c3ffb7bf0eec290d46',1,'ftxui::Dimensions::dimx'],['../group__screen.html#ae7a460c9dacd70ed81b1adfea46b492e',1,'ftxui::Image::dimx() const']]], + ['dimx_5f_73',['dimx_',['../group__screen.html#a1b254c3faacd432c325efff4268ca683',1,'ftxui::Image']]], + ['dimy_74',['dimy',['../group__screen.html#a3a072d6ef9c51d085b44eac70f2edff6',1,'ftxui::Dimensions::dimy'],['../group__screen.html#a0d283cfb1ec16b3fc13d344ebfea93d4',1,'ftxui::Image::dimy() const']]], + ['dimy_5f_75',['dimy_',['../group__screen.html#a9e9d5df4b41aaa5eca27cdcaca6d4574',1,'ftxui::Image']]], + ['direction_76',['Direction',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aa',1,'ftxui::FlexboxConfig::Direction'],['../group__dom.html#ga224b9163917ac32fc95a60d8c1eec3aa',1,'ftxui::Direction']]], + ['direction_77',['direction',['../group__component.html#a53421c695d00016ab925777d423b4eb6',1,'ftxui::MenuOption::direction'],['../structftxui_1_1ResizableSplitOption.html#ade634553502b9c3f7d21cd3f088b362e',1,'ftxui::ResizableSplitOption::direction'],['../structftxui_1_1SliderOption.html#a53421c695d00016ab925777d423b4eb6',1,'ftxui::SliderOption::direction'],['../group__dom.html#a53421c695d00016ab925777d423b4eb6',1,'ftxui::FlexboxConfig::direction']]], + ['direction_2ecppm_78',['direction.cppm',['../direction_8cppm.html',1,'']]], + ['direction_2ehpp_79',['direction.hpp',['../direction_8hpp.html',1,'']]], + ['dodgerblue1_80',['DodgerBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6902167c73e03c1214dae9265c9a9523',1,'ftxui::Color']]], + ['dodgerblue2_81',['DodgerBlue2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4bfe8de454eabc37639b32813912000e',1,'ftxui::Color']]], + ['dodgerblue3_82',['DodgerBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf82b272abcc583f2c0ac11d6b22c45ca',1,'ftxui::Color']]], + ['dom_83',['dom',['../module-dom.html',1,'ftxui / dom'],['../group__dom.html',1,'ftxui/dom'],['../ftxui.html#ftxuidom',1,'ftxui/dom']]], + ['dom_2ecppm_84',['dom.cppm',['../dom_8cppm.html',1,'']]], + ['dom_2fcolor_2ecpp_85',['color.cpp',['../dom_2color_8cpp.html',1,'']]], + ['dom_2fdeprecated_2ecppm_86',['deprecated.cppm',['../dom_2deprecated_8cppm.html',1,'']]], + ['dom_2fdeprecated_2ehpp_87',['deprecated.hpp',['../dom_2deprecated_8hpp.html',1,'']]], + ['dom_2futil_2ecpp_88',['util.cpp',['../dom_2util_8cpp.html',1,'']]], + ['dom_5fexamples_2emd_89',['dom_examples.md',['../dom__examples_8md.html',1,'']]], + ['double_90',['DOUBLE',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca33465d1d419b1074fb259ef444609e92',1,'ftxui']]], + ['double_5fquote_91',['Double_Quote',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3a1f5142815614aa554e376af7047de3',1,'ftxui']]], + ['down_92',['Down',['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53',1,'ftxui']]], + ['down_93',['down',['../screen_8cpp.html#a9cdd0454d64ec151b59fdd7d22ed505a',1,'screen.cpp']]], + ['drag_94',['drag',['../group__component.html#a2104e875bdb7c78a8bf7dfd3728459c5',1,'ftxui::WindowRenderState']]], + ['drawblock_95',['DrawBlock',['../group__dom.html#ae38b2e4f5bcda94c060bb77779d1e339',1,'ftxui::Canvas::DrawBlock(int x, int y, bool value)'],['../group__dom.html#a0a51b12eb4089c9a3afb8d3052599b98',1,'ftxui::Canvas::DrawBlock(int x, int y, bool value, const Stylizer &s)'],['../group__dom.html#ab5717755b773771ef642e9e774dbb1a0',1,'ftxui::Canvas::DrawBlock(int x, int y, bool value, const Color &color)']]], + ['drawblockcircle_96',['DrawBlockCircle',['../group__dom.html#ac3977d4b06ca96ff799a3b72437c8a0b',1,'ftxui::Canvas::DrawBlockCircle(int x1, int y1, int radius)'],['../group__dom.html#a685bec108334c6a43ceb5ca8a0666cd7',1,'ftxui::Canvas::DrawBlockCircle(int x1, int y1, int radius, const Stylizer &s)'],['../group__dom.html#ab2bf509dc9519bd9f76a7721b5b152bf',1,'ftxui::Canvas::DrawBlockCircle(int x1, int y1, int radius, const Color &color)']]], + ['drawblockcirclefilled_97',['DrawBlockCircleFilled',['../group__dom.html#acffdcd5bae224992e155facb0baf4119',1,'ftxui::Canvas::DrawBlockCircleFilled(int x1, int y1, int radius)'],['../group__dom.html#a60a31c3685d296333e594feb8ec04c48',1,'ftxui::Canvas::DrawBlockCircleFilled(int x1, int y1, int radius, const Stylizer &s)'],['../group__dom.html#a70cd877698afe354ca070c6b93ef3847',1,'ftxui::Canvas::DrawBlockCircleFilled(int x1, int y1, int radius, const Color &color)']]], + ['drawblockellipse_98',['DrawBlockEllipse',['../group__dom.html#a8dd75f2dfc5bef37aa2c8bc8cfaf0579',1,'ftxui::Canvas::DrawBlockEllipse(int x1, int y1, int r1, int r2)'],['../group__dom.html#ac53509c067c979cc6ec766b4db8e6e2c',1,'ftxui::Canvas::DrawBlockEllipse(int x1, int y1, int r1, int r2, const Stylizer &s)'],['../group__dom.html#a0916ab1d55ac16c158571d135893e88a',1,'ftxui::Canvas::DrawBlockEllipse(int x1, int y1, int r1, int r2, const Color &color)']]], + ['drawblockellipsefilled_99',['DrawBlockEllipseFilled',['../group__dom.html#a78dc3c908f7ce1c30837bd3043f19526',1,'ftxui::Canvas::DrawBlockEllipseFilled(int x1, int y1, int r1, int r2)'],['../group__dom.html#aa3f717282aab0cee9835503ef1eb6f1b',1,'ftxui::Canvas::DrawBlockEllipseFilled(int x1, int y1, int r1, int r2, const Stylizer &s)'],['../group__dom.html#a616781dd82158e306ebf71d87283e6f8',1,'ftxui::Canvas::DrawBlockEllipseFilled(int x1, int y1, int r1, int r2, const Color &color)']]], + ['drawblockline_100',['DrawBlockLine',['../group__dom.html#a182a915a7e3fc863f5c222253de01ff1',1,'ftxui::Canvas::DrawBlockLine(int x1, int y1, int x2, int y2)'],['../group__dom.html#a2911f015b5085dd2f74a4f88910eabe3',1,'ftxui::Canvas::DrawBlockLine(int x1, int y1, int x2, int y2, const Stylizer &s)'],['../group__dom.html#a8543417c0289090a5eefb2d6fcd521fc',1,'ftxui::Canvas::DrawBlockLine(int x1, int y1, int x2, int y2, const Color &color)']]], + ['drawblockoff_101',['DrawBlockOff',['../group__dom.html#ad626747e5e54412d0376ba870565dce6',1,'ftxui::Canvas']]], + ['drawblockon_102',['DrawBlockOn',['../group__dom.html#a43cd60e79e418d3173e757a1809fde09',1,'ftxui::Canvas']]], + ['drawblocktoggle_103',['DrawBlockToggle',['../group__dom.html#ab4154641384d18497de60c2626b71a94',1,'ftxui::Canvas']]], + ['drawimage_104',['DrawImage',['../group__dom.html#a02b6e8bab532a2c43d3102674e1e1647',1,'ftxui::Canvas']]], + ['drawpixel_105',['DrawPixel',['../group__dom.html#afde1b1962124ef417569bef59c6dcdcc',1,'ftxui::Canvas']]], + ['drawpoint_106',['DrawPoint',['../group__dom.html#a8707f2585ed8b787b6b14032a5c761a1',1,'ftxui::Canvas::DrawPoint(int x, int y, bool value)'],['../group__dom.html#a356677acf431f88673b59526f290eb0c',1,'ftxui::Canvas::DrawPoint(int x, int y, bool value, const Stylizer &s)'],['../group__dom.html#ab89d4e0bd8bf78ba40dde08cd5779fa7',1,'ftxui::Canvas::DrawPoint(int x, int y, bool value, const Color &color)']]], + ['drawpointcircle_107',['DrawPointCircle',['../group__dom.html#ad21641f8f1fd60aa5f1d149379eba3eb',1,'ftxui::Canvas::DrawPointCircle(int x, int y, int radius)'],['../group__dom.html#a644133eccde18caeaf06e5b7fdb5ef51',1,'ftxui::Canvas::DrawPointCircle(int x, int y, int radius, const Stylizer &s)'],['../group__dom.html#adcc98793cdb931c3438b5ec35ed7a0dd',1,'ftxui::Canvas::DrawPointCircle(int x, int y, int radius, const Color &color)']]], + ['drawpointcirclefilled_108',['DrawPointCircleFilled',['../group__dom.html#a5b6388d2515edcfb6c88a39ea56805b2',1,'ftxui::Canvas::DrawPointCircleFilled(int x, int y, int radius)'],['../group__dom.html#af7a213e8dbed8debae0155f1b707fd74',1,'ftxui::Canvas::DrawPointCircleFilled(int x, int y, int radius, const Stylizer &s)'],['../group__dom.html#adace7c348090660c1a6a5fffce18b7d2',1,'ftxui::Canvas::DrawPointCircleFilled(int x, int y, int radius, const Color &color)']]], + ['drawpointellipse_109',['DrawPointEllipse',['../group__dom.html#a79ee88b3cfe258309041469f707dcf68',1,'ftxui::Canvas::DrawPointEllipse(int x, int y, int r1, int r2)'],['../group__dom.html#a6926683a29ff97d77e40ae533bb51eed',1,'ftxui::Canvas::DrawPointEllipse(int x, int y, int r1, int r2, const Color &color)'],['../group__dom.html#acdafc386934cf7e11b529c0c38b788a3',1,'ftxui::Canvas::DrawPointEllipse(int x, int y, int r1, int r2, const Stylizer &s)']]], + ['drawpointellipsefilled_110',['DrawPointEllipseFilled',['../group__dom.html#a2633b8a556a82c74438fe41b253b39ee',1,'ftxui::Canvas::DrawPointEllipseFilled(int x, int y, int r1, int r2)'],['../group__dom.html#a395ec10a91d15be650afddcb85757945',1,'ftxui::Canvas::DrawPointEllipseFilled(int x, int y, int r1, int r2, const Color &color)'],['../group__dom.html#a22ec58bdf5a3578ce68c52ace9324fb6',1,'ftxui::Canvas::DrawPointEllipseFilled(int x, int y, int r1, int r2, const Stylizer &s)']]], + ['drawpointline_111',['DrawPointLine',['../group__dom.html#a2b6800c9a6a93457a921d9b570fb2f30',1,'ftxui::Canvas::DrawPointLine(int x1, int y1, int x2, int y2)'],['../group__dom.html#a4eb34a7688220b3b8ad274ff9d0f3649',1,'ftxui::Canvas::DrawPointLine(int x1, int y1, int x2, int y2, const Stylizer &s)'],['../group__dom.html#a6a3d2396239afce89f1cda3c69665095',1,'ftxui::Canvas::DrawPointLine(int x1, int y1, int x2, int y2, const Color &color)']]], + ['drawpointoff_112',['DrawPointOff',['../group__dom.html#a64ad8a12830a3341d4a5afb380913474',1,'ftxui::Canvas']]], + ['drawpointon_113',['DrawPointOn',['../group__dom.html#a5f488ea43e72f25cc25d055bf18dac5b',1,'ftxui::Canvas']]], + ['drawpointtoggle_114',['DrawPointToggle',['../group__dom.html#afd64176f05f91df2d96e8f3bb0631c51',1,'ftxui::Canvas']]], + ['drawtext_115',['DrawText',['../group__dom.html#a3791777bd6d3c6f8ff6281efd19a5161',1,'ftxui::Canvas::DrawText(int x, int y, const std::string &value)'],['../group__dom.html#a389991302f9a1d5554eff24b48d6b6ec',1,'ftxui::Canvas::DrawText(int x, int y, const std::string &value, const Color &color)'],['../group__dom.html#a648ed3b48973ac1dc58ca22d54ecf6af',1,'ftxui::Canvas::DrawText(int x, int y, const std::string &value, const Stylizer &style)']]], + ['dropdown_116',['Dropdown',['../group__component.html#gaa22bddff4aeed66e20f30d0715596999',1,'ftxui::Dropdown(ConstStringListRef entries, int *selected)'],['../group__component.html#gaa4b353566017558bac648ee1409930de',1,'ftxui::Dropdown(DropdownOption option)'],['../module-component.html#component-dropdown',1,'Dropdown']]], + ['dropdown_5fcustom_2ecpp_117',['dropdown_custom.cpp',['../dropdown__custom_8cpp.html',1,'']]], + ['dropdownoption_118',['DropdownOption',['../group__component.html#structftxui_1_1DropdownOption',1,'ftxui']]], + ['dummycomponent_119',['DummyComponent',['../menu__underline__animated__gallery_8cpp.html#a488a81f58d76f17bf95ef222f68e0dfe',1,'menu_underline_animated_gallery.cpp']]], + ['dummywindowcontent_120',['DummyWindowContent',['../scrollbar_8cpp.html#a83db372d294b69185f7a26148935cfc3',1,'DummyWindowContent(): scrollbar.cpp'],['../examples_2component_2window_8cpp.html#a83db372d294b69185f7a26148935cfc3',1,'DummyWindowContent(): window.cpp']]], + ['duration_121',['Duration',['../namespaceftxui_1_1animation.html#a3c06579c86b609bce4a9a097b23cd739',1,'ftxui::animation']]], + ['duration_122',['duration',['../group__component.html#a7449575119a6168a323351fb04a7eb64',1,'ftxui::AnimatedColorOption::duration'],['../classftxui_1_1animation_1_1Params.html#a2cf2e0a4288915aee8f100d2f0ee3e50',1,'ftxui::animation::Params::duration()']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 000000000..8fee6aa3a --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,69 @@ +var searchData= +[ + ['e_0',['E',['../group__component.html#a3a61ae4f8c53a7bb7f9281805b4fca1e',1,'ftxui::Event']]], + ['e_1',['e',['../group__component.html#ae58ffaf7d28f83b470d73530bce0bee1',1,'ftxui::Event']]], + ['easing_2',['easing',['../namespaceeasing.html',1,'']]], + ['eatcodepoint_3',['EatCodePoint',['../namespaceftxui.html#a903cd2e24b3b7cf8d7d4daa680e0a8d5',1,'ftxui::EatCodePoint(const std::string &input, size_t start, size_t *end, uint32_t *ucs)'],['../namespaceftxui.html#a88b8b2f726acaf2aca140a403989d8d0',1,'ftxui::EatCodePoint(const std::wstring &input, size_t start, size_t *end, uint32_t *ucs)']]], + ['elasticin_4',['ElasticIn',['../namespaceftxui_1_1animation_1_1easing.html#a0cc4cc8d40617d7b21dea78f71917bbc',1,'ftxui::animation::easing']]], + ['elasticinout_5',['ElasticInOut',['../namespaceftxui_1_1animation_1_1easing.html#a537ce88e07af5658175f95eb70369fb9',1,'ftxui::animation::easing']]], + ['elasticout_6',['ElasticOut',['../namespaceftxui_1_1animation_1_1easing.html#ad771aec6f0170cb9039446699d1d2295',1,'ftxui::animation::easing']]], + ['element_7',['Element',['../structftxui_1_1box__helper_1_1Element.html',1,'Element'],['../namespaceftxui.html#a2bc31f2d685189e5c61d2293a1f51b4f',1,'ftxui::Element']]], + ['element_8',['element',['../structftxui_1_1InputState.html#ae6bcc69b531dedf3a1d9142f46bcbb77',1,'ftxui::InputState']]], + ['elementdecorator_9',['ElementDecorator',['../namespaceftxui.html#a2d5012891073dbf196bfada5f702f382',1,'ftxui']]], + ['elements_10',['Elements',['../namespaceftxui.html#a5d4aa06ca6cc6a72e981bd5386f93f0a',1,'ftxui']]], + ['elements_2ecppm_11',['elements.cppm',['../elements_8cppm.html',1,'']]], + ['elements_2ehpp_12',['elements.hpp',['../elements_8hpp.html',1,'']]], + ['elements_5finfix_13',['elements_infix',['../group__component.html#a9504d8d3bfa1daaab000e5455536b20d',1,'ftxui::MenuOption']]], + ['elements_5fpostfix_14',['elements_postfix',['../group__component.html#ab08362a5698543aec0fbb37f99777119',1,'ftxui::MenuOption']]], + ['elements_5fprefix_15',['elements_prefix',['../group__component.html#a11476ea3dc58bf17777879693fb2985a',1,'ftxui::MenuOption']]], + ['empty_16',['EMPTY',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca2f0d18fc0d0fa4a6cd92dc328501874d',1,'ftxui']]], + ['empty_17',['Empty',['../examples_2component_2collapsible_8cpp.html#aacbbfcb3c5bc93d26a5c681172e27eae',1,'collapsible.cpp']]], + ['emptyelement_18',['emptyElement',['../group__dom.html#ga40451515a5b3049e7a1276cad8b9356c',1,'ftxui']]], + ['enabled_19',['enabled',['../group__component.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'ftxui::UnderlineOption::enabled'],['../group__component.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'ftxui::AnimatedColorOption::enabled'],['../structftxui_1_1Requirement_1_1Focused.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'ftxui::Requirement::Focused::enabled']]], + ['end_20',['End',['../group__component.html#a9e841cb4b2ac7a46cfd26806a40fe3b5',1,'ftxui::Event']]], + ['entries_21',['entries',['../group__component.html#a7b534b117dbbe826d34ba17af85f1e93',1,'ftxui::MenuOption::entries'],['../group__component.html#a7b534b117dbbe826d34ba17af85f1e93',1,'ftxui::RadioboxOption::entries']]], + ['entries_5foption_22',['entries_option',['../group__component.html#a2076e7253c5acce2321c067e9b7a1823',1,'ftxui::MenuOption']]], + ['entrystate_23',['EntryState',['../structftxui_1_1EntryState.html',1,'ftxui']]], + ['equal_24',['EQUAL',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926a59a84258a4cb9025b567ee5139455029',1,'ftxui']]], + ['escape_25',['Escape',['../group__component.html#a27e4fc900f184c4d743c34913e180065',1,'ftxui::Event']]], + ['event_26',['Event',['../group__component.html#structftxui_1_1Event',1,'ftxui']]], + ['event_2ecpp_27',['event.cpp',['../event_8cpp.html',1,'']]], + ['event_2ecppm_28',['event.cppm',['../event_8cppm.html',1,'']]], + ['event_2ehpp_29',['event.hpp',['../event_8hpp.html',1,'']]], + ['example_30',['Example',['../module-component-examples.html',1,'Example'],['../module-dom-examples.html',1,'Example'],['../index.html#example',1,'Example'],['../group__component.html#example-1',1,'Example'],['../group__component.html#example-2',1,'Example'],['../group__component.html#example-3',1,'Example'],['../group__component.html#example-4',1,'Example'],['../namespaceftxui.html#example-5',1,'Example'],['../group__component.html#example-6',1,'Example'],['../group__component.html#example-7',1,'Example'],['../group__component.html#example-8',1,'Example'],['../group__component.html#example-9',1,'Example'],['../group__component.html#example-10',1,'Example'],['../group__component.html#example-11',1,'Example'],['../group__component.html#example-12',1,'Example'],['../group__component.html#example-13',1,'Example'],['../group__component.html#example-14',1,'Example'],['../group__component.html#example-15',1,'Example'],['../group__component.html#example-16',1,'Example'],['../group__component.html#example-17',1,'Example'],['../group__component.html#example-18',1,'Example'],['../group__component.html#example-19',1,'Example'],['../group__component.html#example-21',1,'Example'],['../group__component.html#example-20',1,'Example'],['../group__component.html#example-22',1,'Example'],['../group__component.html#example-23',1,'Example'],['../group__component.html#example-24',1,'Example'],['../group__component.html#example-25',1,'Example'],['../group__component.html#example-26',1,'Example'],['../group__component.html#example-27',1,'Example'],['../group__component.html#example-28',1,'Example'],['../group__component.html#example-29',1,'Example'],['../group__component.html#example-30',1,'Example'],['../group__component.html#example-31',1,'Example'],['../group__component.html#example-32',1,'Example'],['../group__component.html#example-33',1,'Example'],['../namespaceftxui.html#example-34',1,'Example'],['../group__component.html#example-35',1,'Example'],['../group__component.html#example-36',1,'Example'],['../group__component.html#example-37',1,'Example'],['../group__component.html#example-38',1,'Example'],['../group__component.html#example-39',1,'Example'],['../group__component.html#example-40',1,'Example'],['../group__component.html#example-41',1,'Example'],['../namespaceftxui.html#example-42',1,'Example'],['../group__component.html#example-43',1,'Example'],['../group__component.html#example-44',1,'Example'],['../group__dom.html#example-45',1,'Example'],['../group__dom.html#example-46',1,'Example'],['../group__dom.html#example-47',1,'Example'],['../group__dom.html#example-48',1,'Example'],['../group__dom.html#example-49',1,'Example'],['../group__dom.html#example-50',1,'Example'],['../group__dom.html#example-51',1,'Example'],['../group__dom.html#example-52',1,'Example'],['../group__dom.html#example-53',1,'Example'],['../group__dom.html#example-54',1,'Example'],['../group__dom.html#example-55',1,'Example'],['../group__dom.html#example-56',1,'Example'],['../namespaceftxui.html#example-57',1,'Example'],['../namespaceftxui.html#example-58',1,'Example'],['../namespaceftxui.html#example-59',1,'Example'],['../group__dom.html#example-60',1,'Example'],['../group__dom.html#example-61',1,'Example'],['../namespaceftxui.html#example-62',1,'Example'],['../group__dom.html#example-63',1,'Example'],['../group__dom.html#example-64',1,'Example'],['../group__dom.html#example-65',1,'Example'],['../group__dom.html#example-66',1,'Example'],['../group__dom.html#example-67',1,'Example'],['../namespaceftxui.html#example-68',1,'Example'],['../group__dom.html#example-69',1,'Example'],['../group__dom.html#example-70',1,'Example'],['../group__dom.html#example-71',1,'Example'],['../group__dom.html#example-73',1,'Example'],['../group__dom.html#example-72',1,'Example'],['../group__dom.html#example-74',1,'Example'],['../group__dom.html#example-75',1,'Example'],['../group__dom.html#example-76',1,'Example'],['../group__dom.html#example-78',1,'Example'],['../group__dom.html#example-77',1,'Example'],['../group__dom.html#example-79',1,'Example'],['../group__dom.html#example-80',1,'Example'],['../group__dom.html#example-81',1,'Example'],['../group__dom.html#example-82',1,'Example'],['../group__dom.html#example-84',1,'Example'],['../group__dom.html#example-83',1,'Example'],['../group__dom.html#example-85',1,'Example'],['../group__dom.html#example-86',1,'Example'],['../group__dom.html#example-87',1,'Example'],['../namespaceftxui.html#example-88',1,'Example'],['../namespaceftxui.html#example-89',1,'Example'],['../group__dom.html#example-90',1,'Example'],['../group__dom.html#example-91',1,'Example'],['../group__dom.html#example-92',1,'Example'],['../group__dom.html#example-93',1,'Example'],['../getting-started.html#minimal-example',1,'Minimal Example']]], + ['examples_2fcomponent_2fbutton_2ecpp_31',['button.cpp',['../examples_2component_2button_8cpp.html',1,'']]], + ['examples_2fcomponent_2fcheckbox_2ecpp_32',['checkbox.cpp',['../examples_2component_2checkbox_8cpp.html',1,'']]], + ['examples_2fcomponent_2fcollapsible_2ecpp_33',['collapsible.cpp',['../examples_2component_2collapsible_8cpp.html',1,'']]], + ['examples_2fcomponent_2fdropdown_2ecpp_34',['dropdown.cpp',['../examples_2component_2dropdown_8cpp.html',1,'']]], + ['examples_2fcomponent_2ffocus_2ecpp_35',['focus.cpp',['../examples_2component_2focus_8cpp.html',1,'']]], + ['examples_2fcomponent_2finput_2ecpp_36',['input.cpp',['../examples_2component_2input_8cpp.html',1,'']]], + ['examples_2fcomponent_2fmaybe_2ecpp_37',['maybe.cpp',['../examples_2component_2maybe_8cpp.html',1,'']]], + ['examples_2fcomponent_2fmenu_2ecpp_38',['menu.cpp',['../examples_2component_2menu_8cpp.html',1,'']]], + ['examples_2fcomponent_2fradiobox_2ecpp_39',['radiobox.cpp',['../examples_2component_2radiobox_8cpp.html',1,'']]], + ['examples_2fcomponent_2frenderer_2ecpp_40',['renderer.cpp',['../examples_2component_2renderer_8cpp.html',1,'']]], + ['examples_2fcomponent_2fresizable_5fsplit_2ecpp_41',['resizable_split.cpp',['../examples_2component_2resizable__split_8cpp.html',1,'']]], + ['examples_2fcomponent_2fselection_2ecpp_42',['selection.cpp',['../examples_2component_2selection_8cpp.html',1,'']]], + ['examples_2fcomponent_2fslider_2ecpp_43',['slider.cpp',['../examples_2component_2slider_8cpp.html',1,'']]], + ['examples_2fcomponent_2fwindow_2ecpp_44',['window.cpp',['../examples_2component_2window_8cpp.html',1,'']]], + ['examples_2fdom_2fborder_2ecpp_45',['border.cpp',['../examples_2dom_2border_8cpp.html',1,'']]], + ['examples_2fdom_2fcanvas_2ecpp_46',['canvas.cpp',['../examples_2dom_2canvas_8cpp.html',1,'']]], + ['examples_2fdom_2fdbox_2ecpp_47',['dbox.cpp',['../examples_2dom_2dbox_8cpp.html',1,'']]], + ['examples_2fdom_2fgauge_2ecpp_48',['gauge.cpp',['../examples_2dom_2gauge_8cpp.html',1,'']]], + ['examples_2fdom_2fgraph_2ecpp_49',['graph.cpp',['../examples_2dom_2graph_8cpp.html',1,'']]], + ['examples_2fdom_2fgridbox_2ecpp_50',['gridbox.cpp',['../examples_2dom_2gridbox_8cpp.html',1,'']]], + ['examples_2fdom_2flinear_5fgradient_2ecpp_51',['linear_gradient.cpp',['../examples_2dom_2linear__gradient_8cpp.html',1,'']]], + ['examples_2fdom_2fparagraph_2ecpp_52',['paragraph.cpp',['../examples_2dom_2paragraph_8cpp.html',1,'']]], + ['examples_2fdom_2fseparator_2ecpp_53',['separator.cpp',['../examples_2dom_2separator_8cpp.html',1,'']]], + ['examples_2fdom_2fsize_2ecpp_54',['size.cpp',['../examples_2dom_2size_8cpp.html',1,'']]], + ['examples_2fdom_2fspinner_2ecpp_55',['spinner.cpp',['../examples_2dom_2spinner_8cpp.html',1,'']]], + ['examples_2fdom_2ftable_2ecpp_56',['table.cpp',['../examples_2dom_2table_8cpp.html',1,'']]], + ['examples_3a_57',['Examples:',['../group__dom.html#examples',1,'']]], + ['executedtasks_58',['ExecutedTasks',['../classftxui_1_1task_1_1TaskRunner.html#aab6716a5f504f5985e73fb6d2b0dd677',1,'ftxui::task::TaskRunner']]], + ['exit_59',['Exit',['../group__component.html#a1a6a7739e9cc01ba888b57d1f9457f4c',1,'ftxui::ScreenInteractive']]], + ['exitloopclosure_60',['ExitLoopClosure',['../group__component.html#ae295157a88e6300609df83769ed885f2',1,'ftxui::ScreenInteractive']]], + ['exponentialin_61',['ExponentialIn',['../namespaceftxui_1_1animation_1_1easing.html#ab0ca381749febbe74887c9fff0522434',1,'ftxui::animation::easing']]], + ['exponentialinout_62',['ExponentialInOut',['../namespaceftxui_1_1animation_1_1easing.html#a502f9e65e97d295f46c6a6435a84464d',1,'ftxui::animation::easing']]], + ['exponentialout_63',['ExponentialOut',['../namespaceftxui_1_1animation_1_1easing.html#a9de59af8a36489121dace3f2a996f029',1,'ftxui::animation::easing']]], + ['extend_64',['Extend',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3bc026b815790a05493fa56fc4b8d8bd',1,'ftxui']]], + ['extendnumlet_65',['ExtendNumLet',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aadcba983044c9eb2afae2e2eaef5fe818',1,'ftxui']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 000000000..9d401c2da --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,140 @@ +var searchData= +[ + ['f_0',['F',['../group__component.html#ac4c32dbf039cdf80aa202c9aea54dd1f',1,'ftxui::Event']]], + ['f_1',['f',['../group__component.html#af2fc4cb7175b815a2e69616b5493e0ad',1,'ftxui::Event']]], + ['f1_2',['F1',['../group__component.html#ad3289a38381b0a9d07e2182a2c9ba9ee',1,'ftxui::Event']]], + ['f10_3',['F10',['../group__component.html#ac7e786e3b193c72a26179fce9d149848',1,'ftxui::Event']]], + ['f11_4',['F11',['../group__component.html#a9e95c75a3d332a2e2a3adfc77a7b321c',1,'ftxui::Event']]], + ['f12_5',['F12',['../group__component.html#a373d3f5b50454169a6ea41ba60d0d018',1,'ftxui::Event']]], + ['f2_6',['F2',['../group__component.html#a859749d723c3651fd301b862040a03db',1,'ftxui::Event']]], + ['f3_7',['F3',['../group__component.html#a47c2b379f2f5ac29ba6a2c414b4d2f36',1,'ftxui::Event']]], + ['f4_8',['F4',['../group__component.html#ab9a6f5b09c04d483b9fd734ee14b2e7b',1,'ftxui::Event']]], + ['f5_9',['F5',['../group__component.html#a4603a22dded4b2d2dc68054d2b87d4c5',1,'ftxui::Event']]], + ['f6_10',['F6',['../group__component.html#acf0b0d8ddfeaec98bb4779f4d7524b38',1,'ftxui::Event']]], + ['f7_11',['F7',['../group__component.html#a90c46deb63fd81bd86a4b942a1244ccc',1,'ftxui::Event']]], + ['f8_12',['F8',['../group__component.html#ab32c1934bd8f2de0d68ff0b5161fe0b2',1,'ftxui::Event']]], + ['f9_13',['F9',['../group__component.html#a520b29840c549f62b9474f5494036bc7',1,'ftxui::Event']]], + ['f_5f_14',['f_',['../flex_8cpp.html#a51920d6139d68e1a860381e730c217c3',1,'flex.cpp']]], + ['feature_15',['Feature',['../index.html#feature',1,'']]], + ['fetchcontent_16',['Using FetchContent',['../installation_cmake.html#using-fetchcontent',1,'']]], + ['filler_17',['filler',['../group__dom.html#gac2a9ed2d22ec3c8811b61f4a901ed367',1,'ftxui']]], + ['filtered_20input_18',['Filtered input',['../module-component.html#filtered-input',1,'']]], + ['find_5fpackage_19',['Using find_package',['../installation_cmake.html#using-find_package',1,'']]], + ['fit_20',['Fit',['../namespaceftxui_1_1Dimension.html#aee138f0b60ddc07682a785f55eb5fda6',1,'ftxui::Dimension']]], + ['fitcomponent_21',['FitComponent',['../group__component.html#a4f458e443ed672c2aea9fdd96531a621',1,'ftxui::ScreenInteractive']]], + ['fixed_22',['Fixed',['../namespaceftxui_1_1Dimension.html#a36e539ed36f88d7f01233974da485937',1,'ftxui::Dimension']]], + ['fixedsize_23',['FixedSize',['../group__component.html#a267cfc2d693fa96a82ae74029214d02e',1,'ftxui::ScreenInteractive']]], + ['flags_24',['Optional CMake Flags',['../installation_cmake.html#optional-cmake-flags',1,'']]], + ['flake_25',['Nix Flake',['../installation_nix.html#nix-flake',1,'']]], + ['flex_26',['flex',['../group__dom.html#ga257acd2bd47bab7db879cca2c0e67e23',1,'ftxui']]], + ['flex_2ecpp_27',['flex.cpp',['../flex_8cpp.html',1,'']]], + ['flex_5fgrow_28',['flex_grow',['../structftxui_1_1box__helper_1_1Element.html#a2fb16db68c0bf00d3bf872bc18675116',1,'ftxui::box_helper::Element::flex_grow'],['../group__dom.html#ga81ed6b31f512e849247f13d249f6f20e',1,'ftxui::flex_grow()']]], + ['flex_5fgrow_5fx_29',['flex_grow_x',['../group__dom.html#a874ced28be7064feaaf97c70c2097bd6',1,'ftxui::Requirement::flex_grow_x'],['../structftxui_1_1flexbox__helper_1_1Block.html#a874ced28be7064feaaf97c70c2097bd6',1,'ftxui::flexbox_helper::Block::flex_grow_x']]], + ['flex_5fgrow_5fy_30',['flex_grow_y',['../group__dom.html#a13f6aa7165c63a4494fc2f1ed4428880',1,'ftxui::Requirement::flex_grow_y'],['../structftxui_1_1flexbox__helper_1_1Block.html#a13f6aa7165c63a4494fc2f1ed4428880',1,'ftxui::flexbox_helper::Block::flex_grow_y']]], + ['flex_5fshrink_31',['flex_shrink',['../structftxui_1_1box__helper_1_1Element.html#a94a9a7333988edf4249f38c1b1491cf4',1,'ftxui::box_helper::Element::flex_shrink'],['../group__dom.html#ga4629196b5ffc280054d35f2a9977e829',1,'ftxui::flex_shrink()']]], + ['flex_5fshrink_5fx_32',['flex_shrink_x',['../group__dom.html#ad293f2488e260e36e72fd3da9c16df9a',1,'ftxui::Requirement::flex_shrink_x'],['../structftxui_1_1flexbox__helper_1_1Block.html#ad293f2488e260e36e72fd3da9c16df9a',1,'ftxui::flexbox_helper::Block::flex_shrink_x']]], + ['flex_5fshrink_5fy_33',['flex_shrink_y',['../group__dom.html#ab4e07297a2a55de7158ef0115b6b46a9',1,'ftxui::Requirement::flex_shrink_y'],['../structftxui_1_1flexbox__helper_1_1Block.html#ab4e07297a2a55de7158ef0115b6b46a9',1,'ftxui::flexbox_helper::Block::flex_shrink_y']]], + ['flexbox_34',['flexbox',['../namespaceftxui.html#a168a235aa438b6c72df5861322154be3',1,'ftxui']]], + ['flexbox_2ecpp_35',['flexbox.cpp',['../flexbox_8cpp.html',1,'']]], + ['flexbox_5fconfig_2ecpp_36',['flexbox_config.cpp',['../flexbox__config_8cpp.html',1,'']]], + ['flexbox_5fconfig_2ecppm_37',['flexbox_config.cppm',['../flexbox__config_8cppm.html',1,'']]], + ['flexbox_5fconfig_2ehpp_38',['flexbox_config.hpp',['../flexbox__config_8hpp.html',1,'']]], + ['flexbox_5fgallery_2ecpp_39',['flexbox_gallery.cpp',['../flexbox__gallery_8cpp.html',1,'']]], + ['flexbox_5fhelper_2ecpp_40',['flexbox_helper.cpp',['../flexbox__helper_8cpp.html',1,'']]], + ['flexbox_5fhelper_2ehpp_41',['flexbox_helper.hpp',['../flexbox__helper_8hpp.html',1,'']]], + ['flexboxconfig_42',['FlexboxConfig',['../group__dom.html#structftxui_1_1FlexboxConfig',1,'ftxui']]], + ['flexend_43',['FlexEnd',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a923a60a08f41dc3052190403fc2a6b25',1,'ftxui::FlexboxConfig::FlexEnd'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a923a60a08f41dc3052190403fc2a6b25',1,'ftxui::FlexboxConfig::FlexEnd'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a923a60a08f41dc3052190403fc2a6b25',1,'ftxui::FlexboxConfig::FlexEnd']]], + ['flexstart_44',['FlexStart',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a8d5898e4f1bd5527306b1f62fa4fd952',1,'ftxui::FlexboxConfig::FlexStart'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a8d5898e4f1bd5527306b1f62fa4fd952',1,'ftxui::FlexboxConfig::FlexStart'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a8d5898e4f1bd5527306b1f62fa4fd952',1,'ftxui::FlexboxConfig::FlexStart']]], + ['focus_45',['focus',['../group__dom.html#gaa2d7d671f184f85e0f396f2610fa6c2e',1,'ftxui']]], + ['focus_5fcursor_2ecpp_46',['focus_cursor.cpp',['../focus__cursor_8cpp.html',1,'']]], + ['focusable_47',['Focusable',['../group__component.html#a02ccd3db74312f1c66aa8e7931489318',1,'ftxui::ComponentBase']]], + ['focuscursorbar_48',['focusCursorBar',['../group__dom.html#ga4f89e72e7001064e3eb8189c8317e95b',1,'ftxui']]], + ['focuscursorbarblinking_49',['focusCursorBarBlinking',['../group__dom.html#ga085a7c997e7364c5a54e73c7b84145db',1,'ftxui']]], + ['focuscursorblock_50',['focusCursorBlock',['../group__dom.html#ga509ef7e7f8913ea3de7efd45e3301ea1',1,'ftxui']]], + ['focuscursorblockblinking_51',['focusCursorBlockBlinking',['../group__dom.html#gadda589914ba8fe863c905b6566557768',1,'ftxui']]], + ['focuscursorunderline_52',['focusCursorUnderline',['../group__dom.html#ga61e1fe02a18c2b18e31ccc9cd3943823',1,'ftxui']]], + ['focuscursorunderlineblinking_53',['focusCursorUnderlineBlinking',['../group__dom.html#ga33637d59d1e52aa06dd2a94162adbfe9',1,'ftxui']]], + ['focused_54',['Focused',['../structftxui_1_1Requirement_1_1Focused.html',1,'Requirement::Focused'],['../group__component.html#a0cc612fa3d753b456e0f480f44654a9f',1,'ftxui::ComponentBase::Focused()']]], + ['focused_55',['focused',['../structftxui_1_1EntryState.html#a2a19dbfcd2235def5967609ab0c7901a',1,'ftxui::EntryState::focused'],['../structftxui_1_1InputState.html#a2a19dbfcd2235def5967609ab0c7901a',1,'ftxui::InputState::focused'],['../group__dom.html#aa4da656616dd87d4e82a4ee718db6b3c',1,'ftxui::Requirement::focused']]], + ['focused_5fentry_56',['focused_entry',['../group__component.html#a93d5d37708b77971a666b73486017835',1,'ftxui::MenuOption::focused_entry'],['../group__component.html#a93d5d37708b77971a666b73486017835',1,'ftxui::RadioboxOption::focused_entry']]], + ['focusposition_57',['focusPosition',['../group__dom.html#ga78447ba1ccb792963ad6d306f4ed1256',1,'ftxui']]], + ['focuspositionrelative_58',['focusPositionRelative',['../group__dom.html#ga13befad33cb4125e2143f2af3eddcc71',1,'ftxui']]], + ['follower_5fdelay_59',['follower_delay',['../group__component.html#a2b5d480250b61cd7e62e7c6567345e38',1,'ftxui::UnderlineOption']]], + ['follower_5fduration_60',['follower_duration',['../group__component.html#a13a6488c25b667256590c85aacb1f518',1,'ftxui::UnderlineOption']]], + ['follower_5ffunction_61',['follower_function',['../group__component.html#a7dca406bc24422caeb8f39705334dbd1',1,'ftxui::UnderlineOption']]], + ['force_20a_20frame_20redraw_62',['Force a frame redraw.',['../module-component.html#component-force-redraw',1,'']]], + ['forcehandlectrlc_63',['ForceHandleCtrlC',['../group__component.html#ae48c11a6c9160dc14cd5504ebe69304b',1,'ftxui::ScreenInteractive']]], + ['forcehandlectrlz_64',['ForceHandleCtrlZ',['../group__component.html#af1c772ab581e587daad086227435f2ec',1,'ftxui::ScreenInteractive']]], + ['foreground_65',['foreground',['../structftxui_1_1AnimatedColorsOption.html#a1acdd8b06eb18ae37ffb815462c4374a',1,'ftxui::AnimatedColorsOption']]], + ['foreground_5fcolor_66',['foreground_color',['../group__screen.html#a2ce82adc1d02baf22df658b903dcb351',1,'ftxui::Pixel']]], + ['foreground_5fcolor_5f_67',['foreground_color_',['../src_2ftxui_2dom_2border_8cpp.html#ab929ed9438df4a818e56490a23d8324e',1,'border.cpp']]], + ['format_68',['Format',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa520d0db389f362bf79ef56ca0af3dcab',1,'ftxui']]], + ['frame_69',['frame',['../namespaceftxui.html#ad0d6a96f6e1fb6d67d9fa6323062a737',1,'ftxui']]], + ['frame_20redraw_70',['Force a frame redraw.',['../module-component.html#component-force-redraw',1,'']]], + ['frame_2ecpp_71',['frame.cpp',['../frame_8cpp.html',1,'']]], + ['from_20source_20official_72',['Building from Source (Official)',['../installation_manual.html#building-from-source-official',1,'']]], + ['ftxui_73',['Install FTXUI',['../getting-started.html#install-ftxui',1,'']]], + ['ftxui_74',['ftxui',['../namespaceftxui.html',1,'ftxui'],['../module__ftxui.html',1,'ftxui module'],['../ftxui.html',1,'ftxui']]], + ['ftxui_20component_75',['ftxui component',['../module-component.html',1,'ftxui / component'],['../group__component.html',1,'ftxui/component'],['../ftxui.html#ftxuicomponent',1,'ftxui/component']]], + ['ftxui_20dom_76',['ftxui dom',['../module-dom.html',1,'ftxui / dom'],['../group__dom.html',1,'ftxui/dom'],['../ftxui.html#ftxuidom',1,'ftxui/dom']]], + ['ftxui_20screen_77',['ftxui screen',['../module-screen.html',1,'ftxui / screen'],['../group__screen.html',1,'ftxui/screen'],['../ftxui.html#ftxuiscreen',1,'ftxui/screen']]], + ['ftxui_20using_20vcpkg_78',['Install FTXUI using Vcpkg',['../installation_vcpkg.html#install-ftxui-using-vcpkg',1,'']]], + ['ftxui_2ecomponent_79',['ftxui.component',['../module__ftxui_8component.html',1,'']]], + ['ftxui_2ecomponent_2eanimation_80',['ftxui.component.animation',['../module__ftxui_8component_8animation.html',1,'']]], + ['ftxui_2ecomponent_2ecaptured_5fmouse_81',['ftxui.component.captured_mouse',['../module__ftxui_8component_8captured__mouse.html',1,'']]], + ['ftxui_2ecomponent_2ecomponent_82',['ftxui.component.component',['../module__ftxui_8component_8component.html',1,'']]], + ['ftxui_2ecomponent_2ecomponent_5fbase_83',['ftxui.component.component_base',['../module__ftxui_8component_8component__base.html',1,'']]], + ['ftxui_2ecomponent_2ecomponent_5foptions_84',['ftxui.component.component_options',['../module__ftxui_8component_8component__options.html',1,'']]], + ['ftxui_2ecomponent_2eevent_85',['ftxui.component.event',['../module__ftxui_8component_8event.html',1,'']]], + ['ftxui_2ecomponent_2eloop_86',['ftxui.component.loop',['../module__ftxui_8component_8loop.html',1,'']]], + ['ftxui_2ecomponent_2emouse_87',['ftxui.component.mouse',['../module__ftxui_8component_8mouse.html',1,'']]], + ['ftxui_2ecomponent_2ereceiver_88',['ftxui.component.receiver',['../module__ftxui_8component_8receiver.html',1,'']]], + ['ftxui_2ecomponent_2escreen_5finteractive_89',['ftxui.component.screen_interactive',['../module__ftxui_8component_8screen__interactive.html',1,'']]], + ['ftxui_2ecomponent_2etask_90',['ftxui.component.task',['../module__ftxui_8component_8task.html',1,'']]], + ['ftxui_2ecppm_91',['ftxui.cppm',['../ftxui_8cppm.html',1,'']]], + ['ftxui_2edom_92',['ftxui.dom',['../module__ftxui_8dom.html',1,'']]], + ['ftxui_2edom_2ecanvas_93',['ftxui.dom.canvas',['../module__ftxui_8dom_8canvas.html',1,'']]], + ['ftxui_2edom_2edeprecated_94',['ftxui.dom.deprecated',['../module__ftxui_8dom_8deprecated.html',1,'']]], + ['ftxui_2edom_2edirection_95',['ftxui.dom.direction',['../module__ftxui_8dom_8direction.html',1,'']]], + ['ftxui_2edom_2eelements_96',['ftxui.dom.elements',['../module__ftxui_8dom_8elements.html',1,'']]], + ['ftxui_2edom_2eflexbox_5fconfig_97',['ftxui.dom.flexbox_config',['../module__ftxui_8dom_8flexbox__config.html',1,'']]], + ['ftxui_2edom_2elinear_5fgradient_98',['ftxui.dom.linear_gradient',['../module__ftxui_8dom_8linear__gradient.html',1,'']]], + ['ftxui_2edom_2enode_99',['ftxui.dom.node',['../module__ftxui_8dom_8node.html',1,'']]], + ['ftxui_2edom_2erequirement_100',['ftxui.dom.requirement',['../module__ftxui_8dom_8requirement.html',1,'']]], + ['ftxui_2edom_2eselection_101',['ftxui.dom.selection',['../module__ftxui_8dom_8selection.html',1,'']]], + ['ftxui_2edom_2etable_102',['ftxui.dom.table',['../module__ftxui_8dom_8table.html',1,'']]], + ['ftxui_2escreen_103',['ftxui.screen',['../module__ftxui_8screen.html',1,'']]], + ['ftxui_2escreen_2ebox_104',['ftxui.screen.box',['../module__ftxui_8screen_8box.html',1,'']]], + ['ftxui_2escreen_2ecolor_105',['ftxui.screen.color',['../module__ftxui_8screen_8color.html',1,'']]], + ['ftxui_2escreen_2ecolor_5finfo_106',['ftxui.screen.color_info',['../module__ftxui_8screen_8color__info.html',1,'']]], + ['ftxui_2escreen_2edeprecated_107',['ftxui.screen.deprecated',['../module__ftxui_8screen_8deprecated.html',1,'']]], + ['ftxui_2escreen_2eimage_108',['ftxui.screen.image',['../module__ftxui_8screen_8image.html',1,'']]], + ['ftxui_2escreen_2epixel_109',['ftxui.screen.pixel',['../module__ftxui_8screen_8pixel.html',1,'']]], + ['ftxui_2escreen_2escreen_110',['ftxui.screen.screen',['../module__ftxui_8screen_8screen.html',1,'']]], + ['ftxui_2escreen_2estring_111',['ftxui.screen.string',['../module__ftxui_8screen_8string.html',1,'']]], + ['ftxui_2escreen_2eterminal_112',['ftxui.screen.terminal',['../module__ftxui_8screen_8terminal.html',1,'']]], + ['ftxui_2eutil_113',['ftxui.util',['../module__ftxui_8util.html',1,'']]], + ['ftxui_2eutil_2eautoreset_114',['ftxui.util.autoreset',['../module__ftxui_8util_8autoreset.html',1,'']]], + ['ftxui_2eutil_2eref_115',['ftxui.util.ref',['../module__ftxui_8util_8ref.html',1,'']]], + ['ftxui_3a_3aanimation_116',['animation',['../namespaceftxui_1_1animation.html',1,'ftxui']]], + ['ftxui_3a_3aanimation_3a_3aeasing_117',['easing',['../namespaceftxui_1_1animation_1_1easing.html',1,'ftxui::animation']]], + ['ftxui_3a_3abox_5fhelper_118',['box_helper',['../namespaceftxui_1_1box__helper.html',1,'ftxui']]], + ['ftxui_3a_3acolor_119',['ftxui::Color',['../module-screen.html#ftxuicolor',1,'']]], + ['ftxui_3a_3acontainer_120',['Container',['../namespaceftxui_1_1Container.html',1,'ftxui']]], + ['ftxui_3a_3adimension_121',['ftxui::Dimension',['../namespaceftxui_1_1Dimension.html',1,'ftxui::Dimension'],['../module-screen.html#ftxuidimension',1,'ftxui::Dimension']]], + ['ftxui_3a_3aflexbox_5fhelper_122',['flexbox_helper',['../namespaceftxui_1_1flexbox__helper.html',1,'ftxui']]], + ['ftxui_3a_3aliterals_123',['literals',['../namespaceftxui_1_1literals.html',1,'ftxui']]], + ['ftxui_3a_3apixel_124',['ftxui::Pixel',['../module-screen.html#ftxuipixel',1,'']]], + ['ftxui_3a_3ascreen_125',['ftxui::Screen',['../module-screen.html#ftxuiscreen-1',1,'']]], + ['ftxui_3a_3atask_126',['task',['../namespaceftxui_1_1task.html',1,'ftxui']]], + ['ftxui_3a_3aterminal_127',['Terminal',['../namespaceftxui_1_1Terminal.html',1,'ftxui']]], + ['ftxui_3a_3autil_128',['util',['../namespaceftxui_1_1util.html',1,'ftxui']]], + ['ftxui_5flikely_129',['FTXUI_LIKELY',['../screen_8cpp.html#a3350a75634f7952b2795de433b111f0e',1,'screen.cpp']]], + ['ftxui_5funlikely_130',['FTXUI_UNLIKELY',['../screen_8cpp.html#a6048239c71b0f0be5c9d01ba721d7dd9',1,'screen.cpp']]], + ['full_131',['Full',['../namespaceftxui_1_1Dimension.html#af795790b995132f62de607ddfd07f9fa',1,'ftxui::Dimension']]], + ['fullscreen_132',['Fullscreen',['../group__component.html#a53dc5c3030151713857cf1a898d0f897',1,'ftxui::ScreenInteractive']]], + ['fullscreenalternatescreen_133',['FullscreenAlternateScreen',['../group__component.html#acad4646ece7569fd39a3a5c847ebb4a8',1,'ftxui::ScreenInteractive']]], + ['fullscreenprimaryscreen_134',['FullscreenPrimaryScreen',['../group__component.html#a6be13532d5bef8f566c12090db2dffba',1,'ftxui::ScreenInteractive']]], + ['function_135',['Function',['../namespaceftxui_1_1animation_1_1easing.html#ad820848234fca6290b7399cc5e07af3a',1,'ftxui::animation::easing']]], + ['function_136',['function',['../group__component.html#a23a21de13ab9c6644225966245df3fe3',1,'ftxui::AnimatedColorOption']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 000000000..41bde2e3d --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,82 @@ +var searchData= +[ + ['g_0',['G',['../group__component.html#a8764eeec7ae7c19ecb8de927e56fff3a',1,'ftxui::Event']]], + ['g_1',['g',['../group__component.html#ad26557cb38d17d7058ec29da8504890f',1,'ftxui::Event']]], + ['g_5funiformize_2',['g_uniformize',['../namespaceftxui.html#a81094ad1eae10308826bbd3be2723b18',1,'ftxui']]], + ['gallery_2ecpp_3',['gallery.cpp',['../gallery_8cpp.html',1,'']]], + ['gap_5fx_4',['gap_x',['../group__dom.html#a109ea05d5d6e08d052672465ff8dac61',1,'ftxui::FlexboxConfig']]], + ['gap_5fy_5',['gap_y',['../group__dom.html#ab01b75a8a9419ec5c47650772f342ba3',1,'ftxui::FlexboxConfig']]], + ['gauge_6',['gauge',['../group__dom.html#gae0b8041a60629fd790716038738c93ce',1,'ftxui::gauge()'],['../module-dom.html#dom-gauge',1,'gauge']]], + ['gauge_5fdirection_2ecpp_7',['gauge_direction.cpp',['../gauge__direction_8cpp.html',1,'']]], + ['gaugedirection_8',['gaugeDirection',['../group__dom.html#ga1265cc8a52448e1b98d7abe84a04681e',1,'ftxui']]], + ['gaugedown_9',['gaugeDown',['../group__dom.html#gafe537f915cac5613261580bae3a8fe33',1,'ftxui']]], + ['gaugeleft_10',['gaugeLeft',['../group__dom.html#ga97898b9f77b3edd330eaef22fce7cf2b',1,'ftxui']]], + ['gaugeright_11',['gaugeRight',['../group__dom.html#ga333d781a44885ed4b5ea8444015b86f7',1,'ftxui']]], + ['gaugeup_12',['gaugeUp',['../group__dom.html#ga6e9a97b66c14404a2b3f95f4dae414c2',1,'ftxui']]], + ['get_13',['Get',['../structftxui_1_1task_1_1TaskQueue.html#aa79dc0bf12b85e6ac05adf59818e3939',1,'ftxui::task::TaskQueue']]], + ['getbox_14',['GetBox',['../group__dom.html#a03f5cc5dcad10fecb7a0b8203c86a13e',1,'ftxui::Selection']]], + ['getcolorinfo_15',['GetColorInfo',['../namespaceftxui.html#a883a81f30fb771a82f6c87b77ac3658e',1,'ftxui::GetColorInfo(Color::Palette256 index)'],['../namespaceftxui.html#ad5dd7fa2651003bf7c9f8b58de9b0a93',1,'ftxui::GetColorInfo(Color::Palette16 index)']]], + ['getnodeselectedcontent_16',['GetNodeSelectedContent',['../namespaceftxui.html#a1a3d5804148186b3d4bcc07391ba5f30',1,'ftxui']]], + ['getparts_17',['GetParts',['../group__dom.html#a4d4387d24d418b865c77ed592602d08d',1,'ftxui::Selection']]], + ['getpixel_18',['GetPixel',['../group__dom.html#a656c4e679bf9254e4688f2049989a9bd',1,'ftxui::Canvas']]], + ['getselectedcontent_19',['GetSelectedContent',['../group__dom.html#a2c5cebe05557529299e649867b499680',1,'ftxui::Node']]], + ['getselection_20',['GetSelection',['../group__component.html#ac25769e248caa01d336f5eaa79cd6160',1,'ftxui::ScreenInteractive']]], + ['getselectionstyle_21',['GetSelectionStyle',['../group__screen.html#a056c2ad43affdac744b6907e9ea81463',1,'ftxui::Screen']]], + ['getting_20started_22',['Getting Started',['../getting-started.html',1,'']]], + ['getting_2dstarted_2emd_23',['getting-started.md',['../getting-started_8md.html',1,'']]], + ['git_20submodule_24',['Using git submodule',['../installation_cmake.html#using-git-submodule',1,'']]], + ['global_25',['Global',['../structftxui_1_1flexbox__helper_1_1Global.html',1,'ftxui::flexbox_helper']]], + ['global_5f_26',['global_',['../flexbox_8cpp.html#ac8e8d5f863ecfaf27c5cf94ab6c9c9ca',1,'flexbox.cpp']]], + ['glyphcount_27',['GlyphCount',['../namespaceftxui.html#a9b4f3faecfbeb6b2c0fdf9c30e3f1553',1,'ftxui']]], + ['glyphiterate_28',['GlyphIterate',['../namespaceftxui.html#ad74a7d623ff7a09787469021d30c9461',1,'ftxui']]], + ['glyphnext_29',['GlyphNext',['../namespaceftxui.html#a02453c4504a5cfbc83b38abd4ec6d8ba',1,'ftxui']]], + ['glyphprevious_30',['GlyphPrevious',['../namespaceftxui.html#ae2ef74edc55750554e97ea71c5887650',1,'ftxui']]], + ['gold1_31',['Gold1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf02f1d575ceca96dc56df1295a73c007',1,'ftxui::Color']]], + ['gold3_32',['Gold3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96bebc8d90d9444dd8fe563037cc2be2',1,'ftxui::Color']]], + ['gold3bis_33',['Gold3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa7e5b2921c53d39581597da20ce2f338',1,'ftxui::Color']]], + ['graph_34',['graph',['../namespaceftxui.html#ae78c2b2b147e65701493465f8e3f4d89',1,'ftxui::graph()'],['../module-dom.html#dom-graph',1,'graph']]], + ['graphfunction_35',['GraphFunction',['../namespaceftxui.html#ab07cb9a766f38fc867f8fe736ce2e6e3',1,'ftxui']]], + ['graydark_36',['GrayDark',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fade3b52f7f38e412815092547cd6e8be7',1,'ftxui::Color']]], + ['graylight_37',['GrayLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fadebf1805c024a5504872f795f83a6835',1,'ftxui::Color']]], + ['greater_5fthan_38',['GREATER_THAN',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926a5fae95457121bd697edd588d1b64cc7c',1,'ftxui']]], + ['green_39',['Green',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad0784a3f969fe736e8b271a5a161d106',1,'ftxui::Color']]], + ['green_40',['green',['../group__screen.html#a90d21fa503b626c00cdc8d94863d5877',1,'ftxui::ColorInfo']]], + ['green1_41',['Green1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8db72e307df54b6fd021fd0eff7d5a5f',1,'ftxui::Color']]], + ['green3_42',['Green3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa061b2388532ed2cf150f5ef83646ae2',1,'ftxui::Color']]], + ['green3bis_43',['Green3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b41b1aeadc19f83c8292978c1e40af1',1,'ftxui::Color']]], + ['green4_44',['Green4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa36b7f9cbbb6e3d6d5e9df9abcbf348c3',1,'ftxui::Color']]], + ['greenlight_45',['GreenLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9827485e548095e18c65045bc8058ce7',1,'ftxui::Color']]], + ['greenyellow_46',['GreenYellow',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacd28fdc2094a8c7b0d90e51b38b85533',1,'ftxui::Color']]], + ['grey0_47',['Grey0',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c49667d6b3e650b346c88d7e3fd5590',1,'ftxui::Color']]], + ['grey100_48',['Grey100',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa6cbc92ab0733f3e33cf31563dc865c4',1,'ftxui::Color']]], + ['grey11_49',['Grey11',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac449ae3543129be859f6e1f2ea29c8be',1,'ftxui::Color']]], + ['grey15_50',['Grey15',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa461a25896feac74f19be7117ae19fefe',1,'ftxui::Color']]], + ['grey19_51',['Grey19',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0250546ff32c86258542b95876090e28',1,'ftxui::Color']]], + ['grey23_52',['Grey23',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad715d2046e5e2d3b6bb6e2127834c485',1,'ftxui::Color']]], + ['grey27_53',['Grey27',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9306e0c6a01240c9fdfab25f3eaa0634',1,'ftxui::Color']]], + ['grey3_54',['Grey3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa81c7178d2e73d4fd43861817b9b32c9d',1,'ftxui::Color']]], + ['grey30_55',['Grey30',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2991b68c782e1ce0b7e701e2a8a8298',1,'ftxui::Color']]], + ['grey35_56',['Grey35',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa94bb0f2f713f3ab31a7bfd224fe33e7',1,'ftxui::Color']]], + ['grey37_57',['Grey37',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67645d98e45108256aac9234935510e3',1,'ftxui::Color']]], + ['grey39_58',['Grey39',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae50ed802592da7fedcbd76ca96341d89',1,'ftxui::Color']]], + ['grey42_59',['Grey42',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cb673228bc4530517e8813bec443e7d',1,'ftxui::Color']]], + ['grey46_60',['Grey46',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7310f159106d0f63cca0ddf0c1962ff7',1,'ftxui::Color']]], + ['grey50_61',['Grey50',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1228fc714bdb452c1efc4b9754751de7',1,'ftxui::Color']]], + ['grey53_62',['Grey53',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a56c10be7ecd80795860dcdc6eff354',1,'ftxui::Color']]], + ['grey54_63',['Grey54',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa660a7e64726c75510f4e1cd1f63ccb09',1,'ftxui::Color']]], + ['grey58_64',['Grey58',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3aaa86564267b4c90a2d6bb966c35f90',1,'ftxui::Color']]], + ['grey62_65',['Grey62',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64ccec5866654552e080a406314c2b0c',1,'ftxui::Color']]], + ['grey63_66',['Grey63',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa084969e9df558ecd204bcec54bc9b03',1,'ftxui::Color']]], + ['grey66_67',['Grey66',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cccb7d918d79a0240c135479d58b2ec',1,'ftxui::Color']]], + ['grey69_68',['Grey69',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ddd20c7af3e7519c138e5dfd06f188c',1,'ftxui::Color']]], + ['grey7_69',['Grey7',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9918508956b5ace54699264567757916',1,'ftxui::Color']]], + ['grey70_70',['Grey70',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae828b663bd8be2f7efd8b2f343a06444',1,'ftxui::Color']]], + ['grey74_71',['Grey74',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a54ca8cbf5ee4d7af93f4d08d12c9e3',1,'ftxui::Color']]], + ['grey78_72',['Grey78',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa310ea068000acabef43ec4a4b65c3121',1,'ftxui::Color']]], + ['grey82_73',['Grey82',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab890ade13f8f5bff23c313dd9035f7f6',1,'ftxui::Color']]], + ['grey84_74',['Grey84',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6539b5d08bbd9bd011bd67aea17cd04f',1,'ftxui::Color']]], + ['grey85_75',['Grey85',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa812849e32b590f8a114804f6b8dde0e8',1,'ftxui::Color']]], + ['grey89_76',['Grey89',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3b4692eb62f7c5065c28134769615e0',1,'ftxui::Color']]], + ['grey93_77',['Grey93',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa14181b363496871a7c2f91555a6d8a68',1,'ftxui::Color']]], + ['gridbox_78',['gridbox',['../namespaceftxui.html#abcdf409d605edafd3191cd7ba47bcbd1',1,'ftxui']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 000000000..ba1115d1c --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['h_0',['H',['../group__component.html#a4f2d69d0f85ae76a015b0fd34ccb9bbc',1,'ftxui::Event']]], + ['h_1',['h',['../group__component.html#a226af846ad5e1dd35e84212a145dfb72',1,'ftxui::Event']]], + ['hasimmediatetasks_2',['HasImmediateTasks',['../structftxui_1_1task_1_1TaskQueue.html#a257afcb3d4b649b1a39a697cea2843ce',1,'ftxui::task::TaskQueue::HasImmediateTasks()'],['../classftxui_1_1task_1_1TaskRunner.html#a257afcb3d4b649b1a39a697cea2843ce',1,'ftxui::task::TaskRunner::HasImmediateTasks()']]], + ['haspending_3',['HasPending',['../classftxui_1_1ReceiverImpl.html#a49f2a9285b485f25694f48732b0c2554',1,'ftxui::ReceiverImpl']]], + ['hasquitted_4',['HasQuitted',['../group__component.html#a0f10869cb1cad212e8885deac6960a41',1,'ftxui::Loop::HasQuitted()'],['../classftxui_1_1ReceiverImpl.html#a0f10869cb1cad212e8885deac6960a41',1,'ftxui::ReceiverImpl::HasQuitted()']]], + ['hbox_5',['hbox',['../namespaceftxui.html#a552ba6d33b3c9bec586b99fba4c243ac',1,'ftxui']]], + ['hbox_2ecpp_6',['hbox.cpp',['../hbox_8cpp.html',1,'']]], + ['hcenter_7',['hcenter',['../group__dom.html#gaf7d0d1e44c1a5424e42a5cddceacf7f7',1,'ftxui']]], + ['heavy_8',['HEAVY',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca34cd68a92c52759ed9b545969a11c2da',1,'ftxui']]], + ['hebrew_5fletter_9',['Hebrew_Letter',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3b076a28de949c89c8443aa0cd42ef17',1,'ftxui']]], + ['height_10',['HEIGHT',['../namespaceftxui.html#a04711c04f28aabfa0e5928a35baaec53a38b9241136017b93ea2755a49cf0a000',1,'ftxui']]], + ['height_11',['height',['../structftxui_1_1WindowOptions.html#a3f551d52ec458be9ffbcd38c715f9e19',1,'ftxui::WindowOptions::height'],['../group__dom.html#ad3774f6419003470f54fd495124ef51f',1,'ftxui::Canvas::height()']]], + ['hflow_12',['hflow',['../namespaceftxui.html#a345b31919048562675615d5af78e6322',1,'ftxui']]], + ['hflow_2ecpp_13',['hflow.cpp',['../hflow_8cpp.html',1,'']]], + ['hidden_14',['Hidden',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cacf46e529658ebc6532c204f3246929f4',1,'ftxui::Screen::Cursor']]], + ['hmenu1_15',['HMenu1',['../menu__style_8cpp.html#a909976f4b60ea372663d733e16011767',1,'menu_style.cpp']]], + ['hmenu2_16',['HMenu2',['../menu__style_8cpp.html#a9ec2a6df3ad7dd845b4d4ab507d9d5fe',1,'menu_style.cpp']]], + ['hmenu3_17',['HMenu3',['../menu__style_8cpp.html#ab5a58c425dbca17b57cfcbf4b8c98e2e',1,'menu_style.cpp']]], + ['hmenu4_18',['HMenu4',['../menu__style_8cpp.html#a1aead66022c928952b560ebab9913346',1,'menu_style.cpp']]], + ['hmenu5_19',['HMenu5',['../menu__style_8cpp.html#a16cc679d7e91d82d484eff7e443539cb',1,'menu_style.cpp']]], + ['home_20',['Home',['../group__component.html#aad7d2ec712d40ad87d330e5e4399fdbc',1,'ftxui::Event']]], + ['homescreen_2ecpp_21',['homescreen.cpp',['../homescreen_8cpp.html',1,'']]], + ['honeydew2_22',['Honeydew2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacfd861941ef13f197407b7d02deaf617',1,'ftxui::Color']]], + ['horizontal_23',['Horizontal',['../group__component.html#a5ee36f528383cc1db765fa2140797837',1,'ftxui::MenuOption::Horizontal()'],['../group__component.html#ga01563bae9454fe64c0b29b0eb3755e68',1,'ftxui::Container::Horizontal(Components children)'],['../group__component.html#ga337564f8a13c98222025d8fe7e47df4c',1,'ftxui::Container::Horizontal(Components children, int *selector)'],['../module-component.html#component-horizontal',1,'Horizontal']]], + ['horizontalanimated_24',['HorizontalAnimated',['../group__component.html#aedc93fba91339d9713812821cb140c50',1,'ftxui::MenuOption']]], + ['hotpink_25',['HotPink',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad886c67902578a7336b821b1cb279c4e',1,'ftxui::Color']]], + ['hotpink2_26',['HotPink2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b701a7828d1930b59b76d091913e7d1',1,'ftxui::Color']]], + ['hotpink3_27',['HotPink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b9fcd5ea12531a4fb1273743063f49f',1,'ftxui::Color']]], + ['hotpink3bis_28',['HotPink3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa073af5071fd22b51b77f43766b86d6a5',1,'ftxui::Color']]], + ['hotpinkbis_29',['HotPinkBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac178a78c367fd250556adaa1b9ad4730',1,'ftxui::Color']]], + ['hover_5fdown_30',['hover_down',['../group__component.html#a2fbfe3e43b596c8a47c5548b38e4d721',1,'ftxui::WindowRenderState']]], + ['hover_5fleft_31',['hover_left',['../group__component.html#abca2d427dd57d2b5eecb6685ed68e857',1,'ftxui::WindowRenderState']]], + ['hover_5fright_32',['hover_right',['../group__component.html#a8e6af441e03d44f593bcb0d17ee809b1',1,'ftxui::WindowRenderState']]], + ['hover_5ftop_33',['hover_top',['../group__component.html#acb4dc002e621733f1e6c232f369af8ca',1,'ftxui::WindowRenderState']]], + ['hoverable_34',['Hoverable',['../group__component.html#ga562d984d3830d63285643565cd55d16f',1,'ftxui::Hoverable(Component component, bool *hover)'],['../group__component.html#ga92ec2f5ccb509da2e2c24ae6a1f6b12b',1,'ftxui::Hoverable(Component component, std::function< void()> on_enter, std::function< void()> on_leave)'],['../group__component.html#ga91cac81077c483efdb952268aee9a523',1,'ftxui::Hoverable(Component component, std::function< void(bool)> on_change)'],['../group__component.html#ga9d94b37352be13d3551a9d5785f75439',1,'ftxui::Hoverable(bool *hover)'],['../group__component.html#ga34adfc9c76cf3603156cba32ad5d7142',1,'ftxui::Hoverable(std::function< void()> on_enter, std::function< void()> on_leave)'],['../group__component.html#gafd7cbaef5378a907111a64ee69aed56a',1,'ftxui::Hoverable(std::function< void(bool)> on_change)']]], + ['hoverable_2ecpp_35',['hoverable.cpp',['../hoverable_8cpp.html',1,'']]], + ['hovered_36',['hovered',['../structftxui_1_1InputState.html#a9a61bb2fb8c309b32c457adb0392ec31',1,'ftxui::InputState']]], + ['hscroll_5findicator_37',['hscroll_indicator',['../group__dom.html#ga7f48136f949ccbde722dd93a6de4d0de',1,'ftxui']]], + ['hsv_38',['HSV',['../group__screen.html#a1a119fd00beafc7d2aa5f94518e38fc5',1,'ftxui::Color']]], + ['hsva_39',['HSVA',['../group__screen.html#af067d3410c55684d727aeb29bc8d2af2',1,'ftxui::Color']]], + ['html_5flike_2ecpp_40',['html_like.cpp',['../html__like_8cpp.html',1,'']]], + ['hue_41',['hue',['../group__screen.html#ad7b7eb0b3e04af91bdd64715226c3c68',1,'ftxui::ColorInfo']]], + ['hyperlink_42',['Hyperlink',['../group__screen.html#a0b55b16969dfccc79195fe61c5ba6d1a',1,'ftxui::Screen']]], + ['hyperlink_43',['hyperlink',['../group__screen.html#a071ab11cf7706c7800281716177c88e3',1,'ftxui::Pixel::hyperlink'],['../group__dom.html#gad0eac58eac9e6cd9a04879b20f8e123b',1,'ftxui::hyperlink(std::string link)'],['../group__dom.html#ga8bacc04e0cbde663ccc4a4891e8b50d5',1,'ftxui::hyperlink(std::string link, Element child)']]], + ['hyperlink_2ecpp_44',['hyperlink.cpp',['../hyperlink_8cpp.html',1,'']]], + ['hyperlinks_5f_45',['hyperlinks_',['../group__screen.html#acff83d382ef60ad2a0fca3ba68e9397f',1,'ftxui::Screen']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 000000000..c923d3624 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,65 @@ +var searchData= +[ + ['i_0',['I',['../group__component.html#ac1c2d328a1c8c9fde6141e8ea793a6c6',1,'ftxui::Event']]], + ['i_1',['i',['../group__component.html#ad093ba93f720c5787e0448823f72db6c',1,'ftxui::Event']]], + ['image_2',['Image',['../group__screen.html#classftxui_1_1Image',1,'Image'],['../group__screen.html#a7c483c751b9c859ef08cecb32f1d1994',1,'ftxui::Image::Image()=delete'],['../group__screen.html#aecbd97261c37fa89ea6df7ccaba216c3',1,'ftxui::Image::Image(int dimx, int dimy)']]], + ['image_2ecpp_3',['image.cpp',['../image_8cpp.html',1,'']]], + ['image_2ecppm_4',['image.cppm',['../image_8cppm.html',1,'']]], + ['image_2ehpp_5',['image.hpp',['../image_8hpp.html',1,'']]], + ['inactive_6',['inactive',['../group__component.html#a898e4eb6c2a93ea3b71fc373f39854eb',1,'ftxui::AnimatedColorOption']]], + ['increment_7',['increment',['../structftxui_1_1SliderOption.html#a752366b00bdf7bba57a18e239e86e2e1',1,'ftxui::SliderOption']]], + ['index_8',['Index',['../group__component.html#a8ef12397d1682615bc3108c397734179',1,'ftxui::ComponentBase']]], + ['index_9',['index',['../structftxui_1_1EntryState.html#a750b5d744c39a06bfb13e6eb010e35d0',1,'ftxui::EntryState']]], + ['index_5f16_10',['index_16',['../group__screen.html#a6259df4cdd9a7cae286f46a471e9afa5',1,'ftxui::ColorInfo']]], + ['index_5f256_11',['index_256',['../group__screen.html#aacf9c9496e5d01c2fe30337791f33840',1,'ftxui::ColorInfo']]], + ['indianred_12',['IndianRed',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaddee00c86a353e58b10fb84a0b52481c',1,'ftxui::Color']]], + ['indianred1_13',['IndianRed1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa46aed3d2538a5e3a7d6ae0f6b116a61a',1,'ftxui::Color']]], + ['indianred1bis_14',['IndianRed1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a04ff1096e80fe3d85a78e2ab155873',1,'ftxui::Color']]], + ['indianredbis_15',['IndianRedBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8bc829f77e4ff418dcf2efa85a87e329',1,'ftxui::Color']]], + ['inner_16',['Inner',['../examples_2component_2collapsible_8cpp.html#a74bf63b8448df7b03bd98ae6de127c0a',1,'collapsible.cpp']]], + ['inner_17',['inner',['../group__component.html#a5486612c1fe0c8651fbb399ac512fccf',1,'ftxui::WindowRenderState::inner'],['../structftxui_1_1WindowOptions.html#a105501b401a2286451c7992a6d54dcc0',1,'ftxui::WindowOptions::inner']]], + ['input_18',['Input',['../group__component.html#ga7f285fcbc4dd0a0767b89a255fd062dc',1,'ftxui::Input(InputOption option)'],['../group__component.html#ga9d118d596e33bf5bee9d5eccb6265d15',1,'ftxui::Input(StringRef content, InputOption option)'],['../group__component.html#ga82ba18065d2c29514f034c7278dead74',1,'ftxui::Input(StringRef content, StringRef placeholder, InputOption option)'],['../module-component.html#component-input',1,'Input']]], + ['input_19',['input',['../module-component.html#filtered-input',1,'Filtered input'],['../group__component.html#a947e2de698c4bef07c78674218330677',1,'ftxui::Event::input()']]], + ['input_5fin_5fframe_2ecpp_20',['input_in_frame.cpp',['../input__in__frame_8cpp.html',1,'']]], + ['input_5fstyle_2ecpp_21',['input_style.cpp',['../input__style_8cpp.html',1,'']]], + ['inputoption_22',['InputOption',['../group__component.html#structftxui_1_1InputOption',1,'ftxui']]], + ['inputstate_23',['InputState',['../structftxui_1_1InputState.html',1,'ftxui']]], + ['insert_24',['Insert',['../group__component.html#af368fcc9fa5d2f609288e920ef115c51',1,'ftxui::Event']]], + ['insert_25',['insert',['../group__component.html#a3ae35fa7cff9f950b9c66536523c69c1',1,'ftxui::InputOption']]], + ['install_20ftxui_26',['Install FTXUI',['../getting-started.html#install-ftxui',1,'']]], + ['install_20ftxui_20using_20vcpkg_27',['Install FTXUI using Vcpkg',['../installation_vcpkg.html#install-ftxui-using-vcpkg',1,'']]], + ['installation_28',['Installation',['../installation.html',1,'']]], + ['installation_2emd_29',['installation.md',['../installation_8md.html',1,'']]], + ['installation_5farch_2emd_30',['installation_arch.md',['../installation__arch_8md.html',1,'']]], + ['installation_5fbazel_2emd_31',['installation_bazel.md',['../installation__bazel_8md.html',1,'']]], + ['installation_5fcmake_2emd_32',['installation_cmake.md',['../installation__cmake_8md.html',1,'']]], + ['installation_5fconan_2emd_33',['installation_conan.md',['../installation__conan_8md.html',1,'']]], + ['installation_5fdebian_2emd_34',['installation_debian.md',['../installation__debian_8md.html',1,'']]], + ['installation_5fmanual_2emd_35',['installation_manual.md',['../installation__manual_8md.html',1,'']]], + ['installation_5fnix_2emd_36',['installation_nix.md',['../installation__nix_8md.html',1,'']]], + ['installation_5fopensuse_2emd_37',['installation_opensuse.md',['../installation__opensuse_8md.html',1,'']]], + ['installation_5fvcpkg_2emd_38',['installation_vcpkg.md',['../installation__vcpkg_8md.html',1,'']]], + ['installation_5fxmake_2emd_39',['installation_xmake.md',['../installation__xmake_8md.html',1,'']]], + ['instance_40',['Instance',['../focus__cursor_8cpp.html#a96da73e7fb75cca8a91e59559ce1dba2',1,'focus_cursor.cpp']]], + ['integration_41',['Integration',['../installation_cmake.html#methods-of-integration',1,'Methods of Integration'],['../installation_cmake.html#verifying-integration',1,'Verifying Integration']]], + ['interpolate_42',['Interpolate',['../group__screen.html#ae5d82c5fbae4f6561c9471c11c0a461b',1,'ftxui::Color']]], + ['intersection_43',['Intersection',['../group__screen.html#a83d40499d9e8740c35dc2352c2ac84a8',1,'ftxui::Box']]], + ['introduction_44',['Introduction',['../index.html',1,'']]], + ['introduction_2emd_45',['introduction.md',['../introduction_8md.html',1,'']]], + ['inverted_46',['inverted',['../group__screen.html#a19bbb3c355941d56eccf70be7f7ed9e1',1,'ftxui::Pixel::inverted'],['../group__dom.html#ga672456b8f2091b615a30ff755418b37b',1,'ftxui::inverted()']]], + ['inverted_2ecpp_47',['inverted.cpp',['../inverted_8cpp.html',1,'']]], + ['is_5fcharacter_48',['is_character',['../group__component.html#ae75703788c6f68b39fc51f8db3ba156d',1,'ftxui::Event']]], + ['is_5fcursor_5fposition_49',['is_cursor_position',['../group__component.html#a4464a1cace713dc3544922cc6d5acdc1',1,'ftxui::Event']]], + ['is_5fcursor_5fshape_50',['is_cursor_shape',['../group__component.html#af795895177b7686bf63ab113e70159c8',1,'ftxui::Event']]], + ['is_5fmouse_51',['is_mouse',['../group__component.html#a2c835925299d56941ffd2e2421f0fd13',1,'ftxui::Event']]], + ['is_5fplaceholder_52',['is_placeholder',['../structftxui_1_1InputState.html#aa39d5717e975c9a321417690c76519a1',1,'ftxui::InputState']]], + ['iscombining_53',['IsCombining',['../namespaceftxui.html#a506e6b467ddd8d11646942fd101d8e9e',1,'ftxui']]], + ['iscontrol_54',['IsControl',['../namespaceftxui.html#a037df033cc26c960faa54b52bdbea900',1,'ftxui']]], + ['isempty_55',['IsEmpty',['../group__dom.html#a8e12342fc420701fbffd97025421575a',1,'ftxui::Selection::IsEmpty()'],['../group__screen.html#a8e12342fc420701fbffd97025421575a',1,'ftxui::Box::IsEmpty()']]], + ['isfullwidth_56',['IsFullWidth',['../namespaceftxui.html#abd13f584efddd3a7e5749c9c5e841a11',1,'ftxui']]], + ['isopaque_57',['IsOpaque',['../group__screen.html#a74deffc6b6c7e07b3ec67766ff35abba',1,'ftxui::Color']]], + ['iswordbreakingcharacter_58',['IsWordBreakingCharacter',['../namespaceftxui.html#a64a9bd1df7ca3ffb1622507d01cd0b13',1,'ftxui']]], + ['italic_59',['italic',['../group__screen.html#ad3c22ba2f55e1f2b3087e9ad2d1ea36e',1,'ftxui::Pixel::italic'],['../group__dom.html#ga8a8d190765de7bbd9e78f9e639c2a96d',1,'ftxui::italic()']]], + ['italic_2ecpp_60',['italic.cpp',['../italic_8cpp.html',1,'']]], + ['iteration_61',['iteration',['../structftxui_1_1Node_1_1Status.html#aa6371382c6b4224e577e14ea610ab9a9',1,'ftxui::Node::Status']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 000000000..17c0ce736 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['j_0',['J',['../group__component.html#a231fc78914951e94f654a11d8bac7da9',1,'ftxui::Event']]], + ['j_1',['j',['../group__component.html#a02b6c10bc53abd70237fbdfa68d0f349',1,'ftxui::Event']]], + ['justify_5fcontent_2',['justify_content',['../group__dom.html#ab3173252829e796ee1c100b447243748',1,'ftxui::FlexboxConfig']]], + ['justifycontent_3',['JustifyContent',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2',1,'ftxui::FlexboxConfig']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 000000000..4a9f23d47 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['k_0',['K',['../group__component.html#a197751bfb6afd548d65867f6350a7a93',1,'ftxui::Event']]], + ['k_1',['k',['../group__component.html#abe5e126f94be451d3a7e0d311e6ca4e0',1,'ftxui::Event']]], + ['katakana_2',['Katakana',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aaedb097c9a1cb7aed483367f825211f75',1,'ftxui']]], + ['khaki1_3',['Khaki1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1ee17e1e2f41c0175bd6202e1c345a82',1,'ftxui::Color']]], + ['khaki3_4',['Khaki3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3d0d766baf12a67f81a152cabf151f6a',1,'ftxui::Color']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 000000000..b581a8bf4 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,62 @@ +var searchData= +[ + ['l_0',['L',['../group__component.html#aee5dd820d1fb31a71fc05a29c8901367',1,'ftxui::Event']]], + ['l_1',['l',['../group__component.html#a71d15b274ccd740b8a51704c62104230',1,'ftxui::Event']]], + ['label_2',['label',['../structftxui_1_1EntryState.html#a1dd28f5ea7b5b0780013e960944ddaa0',1,'ftxui::EntryState::label'],['../group__component.html#a336758144ce2b1095f2a0ef062551f5b',1,'ftxui::MenuEntryOption::label'],['../group__component.html#a336758144ce2b1095f2a0ef062551f5b',1,'ftxui::ButtonOption::label'],['../group__component.html#a336758144ce2b1095f2a0ef062551f5b',1,'ftxui::CheckboxOption::label']]], + ['layout_3',['Layout',['../module-dom.html#dom-layout',1,'']]], + ['leader_5fdelay_4',['leader_delay',['../group__component.html#ae29bb2e2c1e7f6eca70781e6fcd63a64',1,'ftxui::UnderlineOption']]], + ['leader_5fduration_5',['leader_duration',['../group__component.html#a6112ea2b5db5a4c50fe7d5ae70dfd016',1,'ftxui::UnderlineOption']]], + ['leader_5ffunction_6',['leader_function',['../group__component.html#a1886d86b757123859c89f3336631b1f8',1,'ftxui::UnderlineOption']]], + ['left_7',['Left',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb',1,'ftxui::Mouse::Left'],['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff',1,'ftxui::Left']]], + ['left_8',['left',['../structftxui_1_1WindowOptions.html#ad5c9f9e9f1a5086dcc7a11431d37c1f4',1,'ftxui::WindowOptions::left'],['../screen_8cpp.html#a972107f15f3c0c099eb9fd605e7f51c6',1,'left: screen.cpp']]], + ['less_5fthan_9',['LESS_THAN',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926a41b05932cd237b2b133fff1ade85bed5',1,'ftxui']]], + ['lf_10',['LF',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa618441d41cce47dbcfd9bed6e5ff64e6',1,'ftxui']]], + ['library_11',['Build the Library',['../installation_nix.html#build-the-library',1,'']]], + ['light_12',['LIGHT',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9caf917d6c11c85b4ac32e30d1cc9da25eb',1,'ftxui']]], + ['lightcoral_13',['LightCoral',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1b3ec93b81f5cfafd6fd2328904ced8',1,'ftxui::Color']]], + ['lightcyan1bis_14',['LightCyan1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac98b5a34ad5c17b3544e5c29521adb6a',1,'ftxui::Color']]], + ['lightcyan3_15',['LightCyan3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d6da936c52e5dadcd790ecb07dcbb1a',1,'ftxui::Color']]], + ['lightgoldenrod1_16',['LightGoldenrod1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa25d536c972c837da1a4698982d12df00',1,'ftxui::Color']]], + ['lightgoldenrod2_17',['LightGoldenrod2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa03fd8d3402a3b6314c737b8d00f65f4b',1,'ftxui::Color']]], + ['lightgoldenrod2bis_18',['LightGoldenrod2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd883ae7f03e4115b274fba499ce91a',1,'ftxui::Color']]], + ['lightgoldenrod2ter_19',['LightGoldenrod2Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96e9b3fdf30a2f143cb4bfd844742d71',1,'ftxui::Color']]], + ['lightgoldenrod3_20',['LightGoldenrod3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa32e50d1fe92fabe310b25b9400c25cd7',1,'ftxui::Color']]], + ['lightgreen_21',['LightGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6f3bae902f4a1a3b69152ad13382ab18',1,'ftxui::Color']]], + ['lightgreenbis_22',['LightGreenBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa33510b83ef8df69f709f38f77e375193',1,'ftxui::Color']]], + ['lightpink1_23',['LightPink1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa07f3153f6b04f8aeb0925d789d79660c',1,'ftxui::Color']]], + ['lightpink3_24',['LightPink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa253e182f6f26ad7cfae773feb6493c57',1,'ftxui::Color']]], + ['lightpink4_25',['LightPink4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0956f6a62142bbfdf7915d1d9abacb81',1,'ftxui::Color']]], + ['lightsalmon1_26',['LightSalmon1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa523f5d7969774dd37e38382a9d05e3a4',1,'ftxui::Color']]], + ['lightsalmon3_27',['LightSalmon3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b742f7ba68078b409a6fc2bf76de5c4',1,'ftxui::Color']]], + ['lightsalmon3bis_28',['LightSalmon3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb0ea3d16e515f91b1071099413a36c7',1,'ftxui::Color']]], + ['lightseagreen_29',['LightSeaGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6ff417c700a8e53aeb7fe424e89a1cbd',1,'ftxui::Color']]], + ['lightskyblue1_30',['LightSkyBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2290ccd3da3d1ea3e508923148ae824',1,'ftxui::Color']]], + ['lightskyblue3_31',['LightSkyBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa267e864d226cfe79c1a1d3e78fdd7eb5',1,'ftxui::Color']]], + ['lightskyblue3bis_32',['LightSkyBlue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3a8990dd2aee1e219cc7222528ee8e0c',1,'ftxui::Color']]], + ['lightslateblue_33',['LightSlateBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7c34cf2bc4382faf2477db06ce68875',1,'ftxui::Color']]], + ['lightslategrey_34',['LightSlateGrey',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0789c7e5fa07674a45db810280aac1bb',1,'ftxui::Color']]], + ['lightsteelblue_35',['LightSteelBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfadf56a107dda30539c38643b744c312bb',1,'ftxui::Color']]], + ['lightsteelblue1_36',['LightSteelBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7daff90c932ad36e146923fced98cb4d',1,'ftxui::Color']]], + ['lightsteelblue3_37',['LightSteelBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf66424457d48a1e9f30467a6b4d9f735',1,'ftxui::Color']]], + ['lightyellow3_38',['LightYellow3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa602cbd76a18ddce2b63afa9dcbba0f8e',1,'ftxui::Color']]], + ['line_39',['Line',['../structftxui_1_1flexbox__helper_1_1Line.html',1,'ftxui::flexbox_helper']]], + ['line_40',['line',['../structftxui_1_1flexbox__helper_1_1Block.html#a41ebd28ef1d7c6ade45642cb6acc1039',1,'ftxui::flexbox_helper::Block']]], + ['line_5fposition_41',['line_position',['../structftxui_1_1flexbox__helper_1_1Block.html#a989ca01c829a3fc1e21bdbd0b9c811ed',1,'ftxui::flexbox_helper::Block']]], + ['linear_42',['Linear',['../namespaceftxui_1_1animation_1_1easing.html#a39923c8d62cdaacdc179c2ece3ee16b4',1,'ftxui::animation::easing']]], + ['linear_5fgradient_2ecppm_43',['linear_gradient.cppm',['../linear__gradient_8cppm.html',1,'']]], + ['linear_5fgradient_2ehpp_44',['linear_gradient.hpp',['../linear__gradient_8hpp.html',1,'']]], + ['linear_5fgradient_5fgallery_2ecpp_45',['linear_gradient_gallery.cpp',['../linear__gradient__gallery_8cpp.html',1,'']]], + ['lineargradient_46',['LinearGradient',['../group__dom.html#structftxui_1_1LinearGradient',1,'LinearGradient'],['../group__dom.html#a5e989e4841fbba91e1714f977c5c58b9',1,'ftxui::LinearGradient::LinearGradient()'],['../group__dom.html#ac57e39e64c79b5389f234eeaebfbb2fd',1,'ftxui::LinearGradient::LinearGradient(Color begin, Color end)'],['../group__dom.html#adbf0567cfc8e05051a4236d6541f63b8',1,'ftxui::LinearGradient::LinearGradient(float angle, Color begin, Color end)'],['../module-dom.html#dom-linear-gradient',1,'LinearGradient']]], + ['lines_47',['lines',['../structftxui_1_1flexbox__helper_1_1Global.html#a441e790889c9bcd6e2deba604663d2ad',1,'ftxui::flexbox_helper::Global']]], + ['lines_5f_48',['lines_',['../src_2ftxui_2dom_2gridbox_8cpp.html#a14d0ca68485bdef40e820b3bd755deb7',1,'gridbox.cpp']]], + ['link_5f_49',['link_',['../hyperlink_8cpp.html#a42544edd174cb953c823c19cdec44b86',1,'hyperlink.cpp']]], + ['linux_50',['Arch Linux',['../installation_arch.html',1,'installation']]], + ['list_51',['Todo List',['../todo.html',1,'']]], + ['list_52',['Module list',['../cpp20-modules.html#module-list',1,'']]], + ['llvmfuzzertestoneinput_53',['LLVMFuzzerTestOneInput',['../component__fuzzer_8cpp.html#af5589fffd86439465eeb19c9774d1982',1,'LLVMFuzzerTestOneInput(const char *data, size_t size): component_fuzzer.cpp'],['../terminal__input__parser__test__fuzzer_8cpp.html#af5589fffd86439465eeb19c9774d1982',1,'LLVMFuzzerTestOneInput(const char *data, size_t size): terminal_input_parser_test_fuzzer.cpp']]], + ['loop_54',['Loop',['../group__component.html#classftxui_1_1Loop',1,'Loop'],['../group__component.html#aacbc899babaac445c3b9b831322e8c70',1,'ftxui::Loop::Loop(ScreenInteractive *screen, Component component)'],['../group__component.html#ad72ac0aa7a08850990b76f15e13dbe79',1,'ftxui::Loop::Loop(const Loop &)=default'],['../group__component.html#adfc045f0113bbf7f6dc5895ff7ce3ac5',1,'ftxui::Loop::Loop(Loop &&)=delete'],['../group__component.html#a734882bfa3e357e4bb57581494e8699b',1,'ftxui::Loop::Loop(const ScreenInteractive &)=delete'],['../group__component.html#a9bd3dbd471fce0038700caaa47dddc1a',1,'ftxui::ScreenInteractive::Loop()']]], + ['loop_2ecpp_55',['loop.cpp',['../loop_8cpp.html',1,'']]], + ['loop_2ecppm_56',['loop.cppm',['../loop_8cppm.html',1,'']]], + ['loop_2ehpp_57',['loop.hpp',['../loop_8hpp.html',1,'']]], + ['loremipsum_58',['LoremIpsum',['../examples_2component_2selection_8cpp.html#a693bf20426978b4a6d5114374d8c521d',1,'selection.cpp']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 000000000..014e9aef1 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,86 @@ +var searchData= +[ + ['m_0',['M',['../group__component.html#afd7f21bf1b977cbc56c5594209966482',1,'ftxui::Event']]], + ['m_1',['m',['../group__component.html#a3d0e1e0e45941dbd760b8bba60bbbb2b',1,'ftxui::Event']]], + ['magenta_2',['Magenta',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab5059a620e2c7dc57556b1e275c2f9bc',1,'ftxui::Color']]], + ['magenta1_3',['Magenta1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa314daa7c2027494055655d34677458b1',1,'ftxui::Color']]], + ['magenta2_4',['Magenta2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa0270d909214e1a221e1937b3cf406ba',1,'ftxui::Color']]], + ['magenta2bis_5',['Magenta2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabe530bee1037e2b3a133e8dbc5ffa585',1,'ftxui::Color']]], + ['magenta3_6',['Magenta3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad8a4fa649974fb5c836a14496827fdd5',1,'ftxui::Color']]], + ['magenta3bis_7',['Magenta3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaef7480a93b72c17e8023e9f7c7944b38',1,'ftxui::Color']]], + ['magenta3ter_8',['Magenta3Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac6ab7a76048a843b6eb86c062c216cab',1,'ftxui::Color']]], + ['magentalight_9',['MagentaLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9663f993a3affdf3526fa032cfe5b9f4',1,'ftxui::Color']]], + ['main_10',['main',['../structftxui_1_1ResizableSplitOption.html#af8a61f36bf328de8218ae03ac01294dc',1,'ftxui::ResizableSplitOption::main'],['../examples_2component_2button_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button.cpp'],['../button__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button_animated.cpp'],['../button__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button_in_frame.cpp'],['../button__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button_style.cpp'],['../canvas__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): canvas_animated.cpp'],['../examples_2component_2checkbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): checkbox.cpp'],['../checkbox__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): checkbox_in_frame.cpp'],['../examples_2component_2collapsible_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): collapsible.cpp'],['../composition_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): composition.cpp'],['../custom__loop_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): custom_loop.cpp'],['../examples_2component_2dropdown_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): dropdown.cpp'],['../dropdown__custom_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): dropdown_custom.cpp'],['../flexbox__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): flexbox_gallery.cpp'],['../examples_2component_2focus_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): focus.cpp'],['../focus__cursor_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): focus_cursor.cpp'],['../gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gallery.cpp'],['../homescreen_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): homescreen.cpp'],['../examples_2component_2input_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): input.cpp'],['../input__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): input_in_frame.cpp'],['../input__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): input_style.cpp'],['../linear__gradient__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): linear_gradient_gallery.cpp'],['../examples_2component_2maybe_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): maybe.cpp'],['../examples_2component_2menu_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu.cpp'],['../menu2_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu2.cpp'],['../menu__entries_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_entries.cpp'],['../menu__entries__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_entries_animated.cpp'],['../menu__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_in_frame.cpp'],['../menu__in__frame__horizontal_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_in_frame_horizontal.cpp'],['../menu__multiple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_multiple.cpp'],['../menu__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_style.cpp'],['../menu__underline__animated__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_underline_animated_gallery.cpp'],['../modal__dialog_8cpp.html#ac0f2228420376f4db7e1274f2b41667c',1,'main(int argc, const char *argv[]): modal_dialog.cpp'],['../modal__dialog__custom_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): modal_dialog_custom.cpp'],['../nested__screen_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): nested_screen.cpp'],['../print__key__press_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): print_key_press.cpp'],['../examples_2component_2radiobox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): radiobox.cpp'],['../radiobox__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): radiobox_in_frame.cpp'],['../examples_2component_2renderer_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): renderer.cpp'],['../examples_2component_2resizable__split_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): resizable_split.cpp'],['../scrollbar_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): scrollbar.cpp'],['../examples_2component_2selection_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): selection.cpp'],['../examples_2component_2slider_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): slider.cpp'],['../slider__direction_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): slider_direction.cpp'],['../slider__rgb_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): slider_rgb.cpp'],['../tab__horizontal_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): tab_horizontal.cpp'],['../tab__vertical_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): tab_vertical.cpp'],['../textarea_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): textarea.cpp'],['../toggle_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): toggle.cpp'],['../examples_2component_2window_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): window.cpp'],['../with__restored__io_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): with_restored_io.cpp'],['../examples_2dom_2border_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): border.cpp'],['../border__colored_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): border_colored.cpp'],['../border__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): border_style.cpp'],['../examples_2dom_2canvas_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): canvas.cpp'],['../color__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_gallery.cpp'],['../color__info__palette256_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_info_palette256.cpp'],['../color__truecolor__HSV_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_truecolor_HSV.cpp'],['../color__truecolor__RGB_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_truecolor_RGB.cpp'],['../examples_2dom_2dbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): dbox.cpp'],['../examples_2dom_2gauge_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gauge.cpp'],['../gauge__direction_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gauge_direction.cpp'],['../examples_2dom_2graph_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): graph.cpp'],['../examples_2dom_2gridbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gridbox.cpp'],['../hflow_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): hflow.cpp'],['../html__like_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): html_like.cpp'],['../examples_2dom_2linear__gradient_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): linear_gradient.cpp'],['../package__manager_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): package_manager.cpp'],['../examples_2dom_2paragraph_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): paragraph.cpp'],['../examples_2dom_2separator_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): separator.cpp'],['../separator__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): separator_style.cpp'],['../examples_2dom_2size_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): size.cpp'],['../examples_2dom_2spinner_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): spinner.cpp'],['../style__blink_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_blink.cpp'],['../style__bold_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_bold.cpp'],['../style__color_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_color.cpp'],['../style__dim_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_dim.cpp'],['../style__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_gallery.cpp'],['../style__hyperlink_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_hyperlink.cpp'],['../style__inverted_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_inverted.cpp'],['../style__italic_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_italic.cpp'],['../style__strikethrough_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_strikethrough.cpp'],['../style__underlined_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_underlined.cpp'],['../style__underlined__double_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_underlined_double.cpp'],['../examples_2dom_2table_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): table.cpp'],['../vbox__hbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): vbox_hbox.cpp'],['../vflow_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): vflow.cpp']]], + ['main_5fsize_11',['main_size',['../structftxui_1_1ResizableSplitOption.html#a3b9f6b5826bf54bda63dcdf0321535ff',1,'ftxui::ResizableSplitOption']]], + ['maincomponent_12',['MainComponent',['../modal__dialog_8cpp.html#aa61b015248766b6067b6d3c99f04c389',1,'modal_dialog.cpp']]], + ['make_13',['Make',['../namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae',1,'ftxui']]], + ['make_5fbox_14',['make_box',['../examples_2component_2focus_8cpp.html#a9ffb8a33ec5d0133f63f791d526df1c7',1,'focus.cpp']]], + ['make_5fgrid_15',['make_grid',['../examples_2component_2focus_8cpp.html#a9543e1b98f00db8484ee0c856a1d4cca',1,'focus.cpp']]], + ['makereceiver_16',['MakeReceiver',['../namespaceftxui.html#a57abe3e11733b1d3ebacc56692d3537c',1,'ftxui']]], + ['makesender_17',['MakeSender',['../classftxui_1_1ReceiverImpl.html#aee8560dccb6ab3df27f0a0fc6a1f8442',1,'ftxui::ReceiverImpl']]], + ['manual_18',['Manual',['../installation_manual.html',1,'installation']]], + ['max_19',['max',['../structftxui_1_1SliderOption.html#abd146f0de5789f02aee07c54e819099b',1,'ftxui::SliderOption']]], + ['maybe_20',['Maybe',['../group__component.html#ga20b66a70c1cd4ff3f0ff571a4507d2b4',1,'ftxui::Maybe(Component child, const bool *show)'],['../group__component.html#ga70afe9695167fb736631173201969730',1,'ftxui::Maybe(Component child, std::function< bool()> show)'],['../group__component.html#ga83b6fd5e1524023722a7450f987f15d0',1,'ftxui::Maybe(const bool *show)'],['../group__component.html#gae39ad8b223e6bb7704c77a3708571a7d',1,'ftxui::Maybe(std::function< bool()> show)'],['../module-component.html#component-maybe',1,'Maybe']]], + ['maybetask_21',['MaybeTask',['../structftxui_1_1task_1_1TaskQueue.html#aaebfee5f2f839afb18fd9c1a68483188',1,'ftxui::task::TaskQueue']]], + ['mediumorchid_22',['MediumOrchid',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9c685ae3aad1eaad70ff070436be85b3',1,'ftxui::Color']]], + ['mediumorchid1_23',['MediumOrchid1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa13a18f95c27e724ea9a1e7286f42c473',1,'ftxui::Color']]], + ['mediumorchid1bis_24',['MediumOrchid1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa049a7bc19d9cacd4e00232d01f9680e6',1,'ftxui::Color']]], + ['mediumorchid3_25',['MediumOrchid3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5d8f598938ed69b4f04b843abfadc88b',1,'ftxui::Color']]], + ['mediumpurple_26',['MediumPurple',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99b482dd24e473ef7ddcbddece67e041',1,'ftxui::Color']]], + ['mediumpurple1_27',['MediumPurple1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf5552cc28a449506e131c050fef88e89',1,'ftxui::Color']]], + ['mediumpurple2_28',['MediumPurple2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac3210de935f096669b79a8575e9c4578',1,'ftxui::Color']]], + ['mediumpurple2bis_29',['MediumPurple2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa50222fd671c2f6a5f81108f8e4b05aa9',1,'ftxui::Color']]], + ['mediumpurple3_30',['MediumPurple3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d22ae8ac2c4e98b291f40225a8874e8',1,'ftxui::Color']]], + ['mediumpurple3bis_31',['MediumPurple3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2d0fa96a55bf3d9763b465ecbd72566d',1,'ftxui::Color']]], + ['mediumpurple4_32',['MediumPurple4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae90010fe78fb7605fc25e5e08f07e596',1,'ftxui::Color']]], + ['mediumspringgreen_33',['MediumSpringGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae4e73e4c0464a9ded093be857551d290',1,'ftxui::Color']]], + ['mediumturquoise_34',['MediumTurquoise',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7875d2ea24878490b89176952e9db784',1,'ftxui::Color']]], + ['mediumvioletred_35',['MediumVioletRed',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8ca5789305e4c75d51a3acc1f1b8c0a9',1,'ftxui::Color']]], + ['menu_36',['Menu',['../group__component.html#ga27828fc39da10a18478ba84b1b162039',1,'ftxui::Menu(MenuOption option)'],['../group__component.html#gad793a3a507766ffa711c4332a3815e24',1,'ftxui::Menu(ConstStringListRef entries, int *selected, MenuOption option)'],['../module-component.html#component-menu',1,'Menu']]], + ['menu2_2ecpp_37',['menu2.cpp',['../menu2_8cpp.html',1,'']]], + ['menu_5fentries_2ecpp_38',['menu_entries.cpp',['../menu__entries_8cpp.html',1,'']]], + ['menu_5fentries_5fanimated_2ecpp_39',['menu_entries_animated.cpp',['../menu__entries__animated_8cpp.html',1,'']]], + ['menu_5fin_5fframe_2ecpp_40',['menu_in_frame.cpp',['../menu__in__frame_8cpp.html',1,'']]], + ['menu_5fin_5fframe_5fhorizontal_2ecpp_41',['menu_in_frame_horizontal.cpp',['../menu__in__frame__horizontal_8cpp.html',1,'']]], + ['menu_5fmultiple_2ecpp_42',['menu_multiple.cpp',['../menu__multiple_8cpp.html',1,'']]], + ['menu_5fstyle_2ecpp_43',['menu_style.cpp',['../menu__style_8cpp.html',1,'']]], + ['menu_5funderline_5fanimated_5fgallery_2ecpp_44',['menu_underline_animated_gallery.cpp',['../menu__underline__animated__gallery_8cpp.html',1,'']]], + ['menuentry_45',['MenuEntry',['../group__component.html#ga2c0a27959e6a5d90109f6d4506e00f69',1,'ftxui::MenuEntry(MenuEntryOption option)'],['../group__component.html#gafca94c5cdae5fbf3c6aa81fc1cd7b1c0',1,'ftxui::MenuEntry(ConstStringRef label, MenuEntryOption option)']]], + ['menuentryoption_46',['MenuEntryOption',['../group__component.html#structftxui_1_1MenuEntryOption',1,'ftxui']]], + ['menuoption_47',['MenuOption',['../group__component.html#structftxui_1_1MenuOption',1,'ftxui']]], + ['meta_48',['meta',['../group__component.html#a46e545ef1aafd5ca9f1d6055fcebeeca',1,'ftxui::Mouse']]], + ['methods_49',['Supported Methods',['../installation.html#supported-methods',1,'']]], + ['methods_20of_20integration_50',['Methods of Integration',['../installation_cmake.html#methods-of-integration',1,'']]], + ['middle_51',['Middle',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0a673e6efef9aafe98078c5552e99c923c',1,'ftxui::Mouse']]], + ['midletter_52',['MidLetter',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aab681d24011467edf425478fed96fbcde',1,'ftxui']]], + ['midnum_53',['MidNum',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa876e36e8a85514e9c141b2aa3a7bfb5c',1,'ftxui']]], + ['midnumlet_54',['MidNumLet',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa4d4a2ec3c1ff2c647ff25b61136aabff',1,'ftxui']]], + ['min_55',['min',['../structftxui_1_1SliderOption.html#a337a8e502154b70ef2a1d4bb3cb47ea9',1,'ftxui::SliderOption']]], + ['min_5fsize_56',['min_size',['../structftxui_1_1box__helper_1_1Element.html#ac3f0cc8c8c9e0fb97f20cf7777773197',1,'ftxui::box_helper::Element']]], + ['min_5fsize_5fx_57',['min_size_x',['../structftxui_1_1flexbox__helper_1_1Block.html#ab7c34cdb13953ba4b496c2dba7aa1a92',1,'ftxui::flexbox_helper::Block']]], + ['min_5fsize_5fy_58',['min_size_y',['../structftxui_1_1flexbox__helper_1_1Block.html#a3f7935f028cb7bfadb118396547e27fa',1,'ftxui::flexbox_helper::Block']]], + ['min_5fx_59',['min_x',['../group__dom.html#a9c8ab844b7e5b610b7a4ac433ea148a1',1,'ftxui::Requirement']]], + ['min_5fy_60',['min_y',['../group__dom.html#a5fb18fec2bc2c10f230d683506bb5a8f',1,'ftxui::Requirement']]], + ['minimal_20example_61',['Minimal Example',['../getting-started.html#minimal-example',1,'']]], + ['mistyrose1_62',['MistyRose1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa11d00787c0df60110d76fc3d098b2c1b',1,'ftxui::Color']]], + ['mistyrose3_63',['MistyRose3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7afa85f412a5bcede9674099b956a78',1,'ftxui::Color']]], + ['modal_64',['Modal',['../group__component.html#ga5185342fbba215496cb8a6805f36089c',1,'ftxui::Modal(Component main, Component modal, const bool *show_modal)'],['../group__component.html#ga5babae0bb25f8cada57784cc5d27fb74',1,'ftxui::Modal(Component modal, const bool *show_modal)']]], + ['modal_2ecpp_65',['modal.cpp',['../modal_8cpp.html',1,'']]], + ['modal_5fdialog_2ecpp_66',['modal_dialog.cpp',['../modal__dialog_8cpp.html',1,'']]], + ['modal_5fdialog_5fcustom_2ecpp_67',['modal_dialog_custom.cpp',['../modal__dialog__custom_8cpp.html',1,'']]], + ['modalcomponent_68',['ModalComponent',['../modal__dialog_8cpp.html#a3b73476f6f304dce17f808a7c3789f5c',1,'modal_dialog.cpp']]], + ['module_20list_69',['Module list',['../cpp20-modules.html#module-list',1,'']]], + ['module_2dcomponent_2emd_70',['module-component.md',['../module-component_8md.html',1,'']]], + ['module_2ddom_2emd_71',['module-dom.md',['../module-dom_8md.html',1,'']]], + ['module_2dscreen_2emd_72',['module-screen.md',['../module-screen_8md.html',1,'']]], + ['module_2emd_73',['module.md',['../module_8md.html',1,'']]], + ['modules_74',['C++20 Modules',['../cpp20-modules.html',1,'']]], + ['motion_75',['Motion',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6',1,'ftxui::Mouse']]], + ['motion_76',['motion',['../group__component.html#af8ec4d0833a67c0bcd400f9e30bd07c7',1,'ftxui::Mouse']]], + ['mouse_77',['Mouse',['../group__component.html#structftxui_1_1Mouse',1,'Mouse'],['../group__component.html#a382859ca10d98eb9c03713de4a95d3f9',1,'ftxui::Event::Mouse(std::string, Mouse mouse)']]], + ['mouse_78',['mouse',['../group__component.html#a761c3b7a78d8408dfbe76131209532d7',1,'ftxui::Event::mouse'],['../group__component.html#a37daf59df57eb6415eb34c8df11a4892',1,'ftxui::Event::mouse()']]], + ['mouse_2ecppm_79',['mouse.cppm',['../mouse_8cppm.html',1,'']]], + ['mouse_2ehpp_80',['mouse.hpp',['../mouse_8hpp.html',1,'']]], + ['moved_81',['Moved',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6a9bf35ab1cecfbb50d8f1d708a4921fc6',1,'ftxui::Mouse']]], + ['multiline_82',['multiline',['../group__component.html#af18b2db29029e23c13a8bfc233c62878',1,'ftxui::InputOption']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 000000000..4cebe6eb2 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['n_0',['N',['../group__component.html#a4275c544cdd2b965a680fa035f71d09c',1,'ftxui::Event']]], + ['n_1',['n',['../group__component.html#aa62d71fd64f64e2496ffc6f1518f899e',1,'ftxui::Event']]], + ['name_2',['name',['../group__screen.html#a8f8f80d37794cde9472343e4487ba3eb',1,'ftxui::ColorInfo']]], + ['navajowhite1_3',['NavajoWhite1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa78e7bd911b2b1619237ec497cd3727a7',1,'ftxui::Color']]], + ['navajowhite3_4',['NavajoWhite3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa345621aa87c50e806627e1f4a1e50a2',1,'ftxui::Color']]], + ['navyblue_5',['NavyBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0358bb70d298b289263c397f49820844',1,'ftxui::Color']]], + ['need_5fiteration_6',['need_iteration',['../structftxui_1_1Node_1_1Status.html#a0fffbfa5479a3b6d3ddf5ff13504a51c',1,'ftxui::Node::Status']]], + ['need_5fiteration_5f_7',['need_iteration_',['../flexbox_8cpp.html#a82e273363997977449a51ea1b7dce6f0',1,'flexbox.cpp']]], + ['nested_8',['Nested',['../nested__screen_8cpp.html#a77fdac0113a8c43983469efa26ce7276',1,'nested_screen.cpp']]], + ['nested_5fscreen_2ecpp_9',['nested_screen.cpp',['../nested__screen_8cpp.html',1,'']]], + ['newline_10',['Newline',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa755fee300780823fcf4df98383331745',1,'ftxui']]], + ['next_20steps_11',['Next Steps',['../installation.html#next-steps',1,'']]], + ['nix_12',['Nix',['../installation_nix.html',1,'installation']]], + ['nix_20flake_13',['Nix Flake',['../installation_nix.html#nix-flake',1,'']]], + ['node_14',['Node',['../group__dom.html#classftxui_1_1Node',1,'Node'],['../group__dom.html#a0d313fac56abd7ebe58a17f1530b879e',1,'ftxui::Node::Node()'],['../group__dom.html#a19fa1eae4c02e514c62a95e395b383a1',1,'ftxui::Node::Node(Elements children)'],['../group__dom.html#a7eb6a9efa23e5f6f7fc53b5aa3759dff',1,'ftxui::Node::Node(const Node &)=delete'],['../group__dom.html#ac6365e35a2029b3e58eca97905f8124d',1,'ftxui::Node::Node(const Node &&)=delete']]], + ['node_15',['node',['../structftxui_1_1Requirement_1_1Focused.html#ab88cd70dad2e152cea983610f2a16e68',1,'ftxui::Requirement::Focused']]], + ['node_2ecpp_16',['node.cpp',['../node_8cpp.html',1,'']]], + ['node_2ecppm_17',['node.cppm',['../node_8cppm.html',1,'']]], + ['node_2ehpp_18',['node.hpp',['../node_8hpp.html',1,'']]], + ['node_5fdecorator_2ecpp_19',['node_decorator.cpp',['../node__decorator_8cpp.html',1,'']]], + ['node_5fdecorator_2ehpp_20',['node_decorator.hpp',['../node__decorator_8hpp.html',1,'']]], + ['nodedecorator_21',['NodeDecorator',['../classftxui_1_1NodeDecorator.html',1,'NodeDecorator'],['../classftxui_1_1NodeDecorator.html#a7e9d74ba5d480d87e8bfcaf2df66fbbe',1,'ftxui::NodeDecorator::NodeDecorator()']]], + ['nominmax_22',['NOMINMAX',['../src_2ftxui_2component_2window_8cpp.html#a9f918755b601cf4bffca775992e6fb90',1,'window.cpp']]], + ['none_23',['None',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af',1,'ftxui::Mouse']]], + ['notflex_24',['notflex',['../group__dom.html#ga845b0ea50d51024aa4e050447b46e1dd',1,'ftxui']]], + ['nothing_25',['nothing',['../group__dom.html#ga1bfd3885ac8b40dc82a1103725003c07',1,'ftxui']]], + ['nowrap_26',['NoWrap',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72aba93ac740a98eb4cc45b853c780ed16c44',1,'ftxui::FlexboxConfig']]], + ['numeric_27',['Numeric',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa87322391cc6e8948ce9fd5d6cb84fced',1,'ftxui']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 000000000..490106d97 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['o_0',['O',['../group__component.html#a5691ff2135fa78f8daf8529850b35947',1,'ftxui::Event']]], + ['o_1',['o',['../group__component.html#ab5b66b7ce5e99da604cf984ed486b53e',1,'ftxui::Event']]], + ['of_20integration_2',['Methods of Integration',['../installation_cmake.html#methods-of-integration',1,'']]], + ['official_3',['Building from Source (Official)',['../installation_manual.html#building-from-source-official',1,'']]], + ['on_5fchange_4',['on_change',['../group__component.html#abdfe3c83deeec2323ff90248815b8f0a',1,'ftxui::MenuOption::on_change'],['../group__component.html#abdfe3c83deeec2323ff90248815b8f0a',1,'ftxui::CheckboxOption::on_change'],['../group__component.html#abdfe3c83deeec2323ff90248815b8f0a',1,'ftxui::InputOption::on_change'],['../group__component.html#abdfe3c83deeec2323ff90248815b8f0a',1,'ftxui::RadioboxOption::on_change'],['../structftxui_1_1SliderOption.html#abdfe3c83deeec2323ff90248815b8f0a',1,'ftxui::SliderOption::on_change']]], + ['on_5fclick_5',['on_click',['../group__component.html#a0ae001950b0ed23752b298963cecf3d1',1,'ftxui::ButtonOption']]], + ['on_5fenter_6',['on_enter',['../group__component.html#a4ba9530701be07334a17c0184747c535',1,'ftxui::MenuOption::on_enter'],['../group__component.html#a4ba9530701be07334a17c0184747c535',1,'ftxui::InputOption::on_enter']]], + ['onanimation_7',['OnAnimation',['../classftxui_1_1animation_1_1Animator.html#ac956aa7c105ad418392f69219711117d',1,'ftxui::animation::Animator::OnAnimation()'],['../group__component.html#aebad858485d02f035a8ea34af66a7fa7',1,'ftxui::ComponentBase::OnAnimation(animation::Params &params)']]], + ['onevent_8',['OnEvent',['../group__component.html#ab84629a8fecad2e1cdd426b7ddc72277',1,'ftxui::ComponentBase']]], + ['onrender_9',['OnRender',['../group__component.html#ab79303652dad19eac0540848487cf8c5',1,'ftxui::ComponentBase']]], + ['open_10',['open',['../group__component.html#aa9ee4f52203c5dec717cf45077b82776',1,'ftxui::DropdownOption']]], + ['opensuse_11',['openSUSE',['../installation_opensuse.html',1,'installation']]], + ['opensuse_20package_20unofficial_12',['openSUSE Package (Unofficial)',['../installation_opensuse.html#opensuse-package-unofficial',1,'']]], + ['operator_21_3d_13',['operator!=',['../group__component.html#ae4581774f4417f68d335de865fd2e6d3',1,'ftxui::Event::operator!=()'],['../group__screen.html#a1ff481fa3b55fcc402c98c7564990c17',1,'ftxui::Box::operator!=()'],['../group__screen.html#a5db052159bd2c738ea453d9b9600513a',1,'ftxui::Color::operator!=()']]], + ['operator_22_22_5frgb_14',['operator""_rgb',['../namespaceftxui_1_1literals.html#a66d988ecc082819b1671ee2bbadebccd',1,'ftxui::operator""_rgb()'],['../namespaceftxui_1_1literals.html#a66d988ecc082819b1671ee2bbadebccd',1,'ftxui::literals::operator""_rgb()']]], + ['operator_28_29_15',['operator()',['../classftxui_1_1ConstRef.html#afdc36f6a5716b29a5d81a2dd93376d82',1,'ftxui::ConstRef::operator()()'],['../classftxui_1_1Ref.html#a625855a4f62948f4f1ad06354be9ca09',1,'ftxui::Ref::operator()()'],['../classftxui_1_1Ref.html#afdc36f6a5716b29a5d81a2dd93376d82',1,'ftxui::Ref::operator()() const']]], + ['operator_2a_16',['operator*',['../classftxui_1_1ConstRef.html#a241c04e3ce86e1fd5a946eb2aa8b1f22',1,'ftxui::ConstRef::operator*()'],['../classftxui_1_1Ref.html#a3f534efce0b043d603eb8f5653268e7d',1,'ftxui::Ref::operator*()'],['../classftxui_1_1Ref.html#a241c04e3ce86e1fd5a946eb2aa8b1f22',1,'ftxui::Ref::operator*() const']]], + ['operator_2d_3e_17',['operator->',['../classftxui_1_1ConstRef.html#abaade5c780b539b94de660e314cb0c90',1,'ftxui::ConstRef::operator->()'],['../classftxui_1_1Ref.html#a4442b1b9eab40e7939e1e01cdedcb7ae',1,'ftxui::Ref::operator->()'],['../classftxui_1_1Ref.html#abaade5c780b539b94de660e314cb0c90',1,'ftxui::Ref::operator->() const']]], + ['operator_3c_18',['operator<',['../group__component.html#a7590045e19360277dfc54320b627002c',1,'ftxui::Event::operator<()'],['../structftxui_1_1task_1_1PendingTask.html#abca1f607e0e907841b7a6d88190995db',1,'ftxui::task::PendingTask::operator<()']]], + ['operator_3d_19',['operator=',['../classftxui_1_1CapturedMouseInterface.html#adfa362c249253f9570e5c1cf42fc16c3',1,'ftxui::CapturedMouseInterface::operator=(const CapturedMouseInterface &)=default'],['../classftxui_1_1CapturedMouseInterface.html#ac349c4e493dbe8aa7c47052d91e0f411',1,'ftxui::CapturedMouseInterface::operator=(CapturedMouseInterface &&)=delete'],['../group__component.html#ac444ac233dcbd4b2ad7972d2086ecc73',1,'ftxui::ComponentBase::operator=(const ComponentBase &)=delete'],['../group__component.html#a9e3b99c8fc32f2ce151e2ba737c0d546',1,'ftxui::ComponentBase::operator=(ComponentBase &&)=delete'],['../group__component.html#add07fd33947183c42a79cb4759129ff8',1,'ftxui::Loop::operator=(Loop &&)=delete'],['../group__component.html#ab35ce310313b96f28233ebc9279b5dd3',1,'ftxui::Loop::operator=(const Loop &)=delete'],['../classftxui_1_1SenderImpl.html#a571b0715efdefbfbc80bebc4ba3f16c3',1,'ftxui::SenderImpl::operator=(const SenderImpl &)=delete'],['../classftxui_1_1SenderImpl.html#aec884eaa70eed221721d0ae963974927',1,'ftxui::SenderImpl::operator=(SenderImpl &&)=delete'],['../group__dom.html#a7e12a390c13d283fc06cafbbfef7eba7',1,'ftxui::Node::operator=(const Node &)=delete'],['../group__dom.html#abe938f0d7bfdca112e345590d4887de6',1,'ftxui::Node::operator=(const Node &&)=delete'],['../classftxui_1_1AutoReset.html#a72b3c7613f9ecfb66005b1c30a5189d4',1,'ftxui::AutoReset::operator=(const AutoReset &)=delete'],['../classftxui_1_1AutoReset.html#a63fb3bea42919c7f183d4fb315451f6a',1,'ftxui::AutoReset::operator=(AutoReset &&)=delete'],['../classftxui_1_1ConstRef.html#ad144149e6f6f0d59610da4b28e22aef1',1,'ftxui::ConstRef::operator=(ConstRef &&) noexcept=default'],['../classftxui_1_1ConstRef.html#a834cee3b2f409135c37c188c583bce91',1,'ftxui::ConstRef::operator=(const ConstRef< T > &)=default'],['../classftxui_1_1Ref.html#abd99a8175d3ef482e70c239aef26322a',1,'ftxui::Ref::operator=(Ref &&) noexcept=default'],['../classftxui_1_1Ref.html#a2219840465715bbca4b1467132c686a5',1,'ftxui::Ref::operator=(const Ref< T > &)=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#a99e89ddbd26ca55a6696a12a819c8dac',1,'ftxui::ConstStringListRef::Adapter::operator=(const Adapter &)=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#a159afff9273b4ba2315d0fe5c0dc3629',1,'ftxui::ConstStringListRef::Adapter::operator=(Adapter &&)=default'],['../classftxui_1_1ConstStringListRef.html#a616528ee5b9a372e16ae2125e8dee3b7',1,'ftxui::ConstStringListRef::operator=(const ConstStringListRef &)=default'],['../classftxui_1_1ConstStringListRef.html#a51744ac3bfa14639955248e51313ba1f',1,'ftxui::ConstStringListRef::operator=(ConstStringListRef &&)=default']]], + ['operator_3d_3d_20',['operator==',['../group__component.html#ad5b326fac977a9c1c832ddb508f713da',1,'ftxui::Event::operator==()'],['../group__screen.html#ad75c695cfa18e51d88a0984af5df2f69',1,'ftxui::Box::operator==()'],['../group__screen.html#a66275ebe4681464e082660fa6be9ba28',1,'ftxui::Color::operator==()']]], + ['operator_5b_5d_21',['operator[]',['../classftxui_1_1ConstStringListRef_1_1Adapter.html#aaec2cde2cf71a044ba3305632c7a867c',1,'ftxui::ConstStringListRef::Adapter::operator[]()'],['../classftxui_1_1ConstStringListRef.html#afa13214cc014e69f7dc95b1df7c90d4e',1,'ftxui::ConstStringListRef::operator[]()']]], + ['operator_7c_22',['operator|',['../namespaceftxui.html#a65a2e15f64ae3bc205c485abc3a5aeb9',1,'ftxui::operator|(Component component, ComponentDecorator decorator)'],['../namespaceftxui.html#a9c4cf8bcb7012f740b146bfe89cbd3eb',1,'ftxui::operator|(Component component, ElementDecorator decorator)'],['../group__dom.html#ga7e9a69f0592b4013bd725d662f4a76e7',1,'ftxui::operator|(Element element, Decorator decorator)'],['../group__dom.html#ga6cbc84eb24a655ae084b3c7d26f9abfc',1,'ftxui::operator|(Elements elements, Decorator decorator)'],['../group__dom.html#ga027fbc9cf6fef9e86ae6a2a79e8bf23a',1,'ftxui::operator|(Decorator a, Decorator b)']]], + ['operator_7c_3d_23',['operator|=',['../namespaceftxui.html#ade35e69d695327db85be01c9787c39f8',1,'ftxui::operator|=(Component &component, ComponentDecorator decorator)'],['../namespaceftxui.html#aa480c58bcaeae204fbe68b192c5ede92',1,'ftxui::operator|=(Component &component, ElementDecorator decorator)'],['../group__dom.html#ga0be26ac5dcbe6c707857c791d8eec720',1,'ftxui::operator|=(Element &e, Decorator d)']]], + ['optional_20cmake_20flags_24',['Optional CMake Flags',['../installation_cmake.html#optional-cmake-flags',1,'']]], + ['orange1_25',['Orange1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa204b0d328d6009cf3947fee021fd8f9e',1,'ftxui::Color']]], + ['orange3_26',['Orange3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa00cd573911b5b30d18a11a33c6fc522b',1,'ftxui::Color']]], + ['orange4_27',['Orange4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa89cffa8b9f4fee6609397ae4070f9d6d',1,'ftxui::Color']]], + ['orange4bis_28',['Orange4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad2e88ff3a0d3feeec0b894602de2bdf8',1,'ftxui::Color']]], + ['orangered1_29',['OrangeRed1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa38540818f938e6576a3444b70118dbae',1,'ftxui::Color']]], + ['orchid_30',['Orchid',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2a4b392d52ff5f8074a7ddded3984e75',1,'ftxui::Color']]], + ['orchid1_31',['Orchid1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8c9438fb930107e9c02fc9418fe1d24a',1,'ftxui::Color']]], + ['orchid2_32',['Orchid2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfadbf13507a7e98310795b8c59c3ec2f92',1,'ftxui::Color']]], + ['output_33',['Output',['../group__component.html#output',1,'Output'],['../group__component.html#output-1',1,'Output'],['../namespaceftxui.html#output-2',1,'Output'],['../group__component.html#output-3',1,'Output'],['../group__component.html#output-4',1,'Output'],['../group__component.html#output-5',1,'Output'],['../group__component.html#output-6',1,'Output'],['../group__component.html#output-7',1,'Output'],['../group__component.html#output-8',1,'Output'],['../group__component.html#output-9',1,'Output'],['../group__component.html#output-10',1,'Output'],['../group__component.html#output-11',1,'Output'],['../namespaceftxui.html#output-12',1,'Output'],['../group__component.html#output-13',1,'Output'],['../group__component.html#output-14',1,'Output'],['../group__component.html#output-15',1,'Output'],['../group__component.html#output-16',1,'Output'],['../group__component.html#output-17',1,'Output'],['../group__component.html#output-18',1,'Output'],['../group__component.html#output-19',1,'Output'],['../group__dom.html#output-20',1,'Output'],['../group__dom.html#output-21',1,'Output'],['../group__dom.html#output-22',1,'Output'],['../group__dom.html#output-23',1,'Output'],['../group__dom.html#output-24',1,'Output'],['../group__dom.html#output-25',1,'Output'],['../group__dom.html#output-26',1,'Output'],['../group__dom.html#output-27',1,'Output'],['../group__dom.html#output-29',1,'Output'],['../group__dom.html#output-30',1,'Output'],['../group__dom.html#output-31',1,'Output'],['../group__dom.html#output-32',1,'Output'],['../group__dom.html#output-33',1,'Output'],['../group__dom.html#output-34',1,'Output'],['../group__dom.html#output-35',1,'Output'],['../group__dom.html#output-36',1,'Output'],['../group__dom.html#output-37',1,'Output'],['../group__dom.html#output-38',1,'Output'],['../group__dom.html#output-39',1,'Output'],['../group__dom.html#output-40',1,'Output'],['../group__dom.html#output-41',1,'Output'],['../group__dom.html#output-43',1,'Output'],['../group__dom.html#output-42',1,'Output'],['../group__dom.html#output-44',1,'Output'],['../group__dom.html#output-45',1,'Output'],['../group__dom.html#output-46',1,'Output']]], + ['output_3a_34',['Output:',['../group__dom.html#output-28',1,'']]], + ['overflow_35',['overflow',['../structftxui_1_1flexbox__helper_1_1Block.html#a49aa97067a36875627e1380c3fb3833d',1,'ftxui::flexbox_helper::Block']]], + ['overview_36',['Overview',['../installation.html#overview',1,'']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 000000000..abbe712d1 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['adapter_0',['Adapter',['../classftxui_1_1ConstStringListRef_1_1Adapter.html',1,'ftxui::ConstStringListRef']]], + ['animatedcoloroption_1',['AnimatedColorOption',['../group__component.html#structftxui_1_1AnimatedColorOption',1,'ftxui']]], + ['animatedcolorsoption_2',['AnimatedColorsOption',['../structftxui_1_1AnimatedColorsOption.html',1,'ftxui']]], + ['animationtask_3',['AnimationTask',['../classftxui_1_1AnimationTask.html',1,'ftxui']]], + ['animator_4',['Animator',['../classftxui_1_1animation_1_1Animator.html',1,'ftxui::animation']]], + ['autoreset_5',['AutoReset',['../classftxui_1_1AutoReset.html',1,'ftxui']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 000000000..b873bcedd --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['block_0',['Block',['../structftxui_1_1flexbox__helper_1_1Block.html',1,'ftxui::flexbox_helper']]], + ['box_1',['Box',['../group__screen.html#structftxui_1_1Box',1,'ftxui']]], + ['buttonoption_2',['ButtonOption',['../group__component.html#structftxui_1_1ButtonOption',1,'ftxui']]] +]; diff --git a/search/classes_10.js b/search/classes_10.js new file mode 100644 index 000000000..4356fa775 --- /dev/null +++ b/search/classes_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['windowoptions_0',['WindowOptions',['../structftxui_1_1WindowOptions.html',1,'ftxui']]], + ['windowrenderstate_1',['WindowRenderState',['../group__component.html#structftxui_1_1WindowRenderState',1,'ftxui']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 000000000..92ffba9ca --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['canvas_0',['Canvas',['../group__dom.html#structftxui_1_1Canvas',1,'ftxui']]], + ['capturedmouseinterface_1',['CapturedMouseInterface',['../classftxui_1_1CapturedMouseInterface.html',1,'ftxui']]], + ['checkboxoption_2',['CheckboxOption',['../group__component.html#structftxui_1_1CheckboxOption',1,'ftxui']]], + ['color_3',['Color',['../group__screen.html#classftxui_1_1Color',1,'ftxui']]], + ['colorinfo_4',['ColorInfo',['../group__screen.html#structftxui_1_1ColorInfo',1,'ftxui']]], + ['componentbase_5',['ComponentBase',['../group__component.html#classftxui_1_1ComponentBase',1,'ftxui']]], + ['constref_6',['ConstRef',['../classftxui_1_1ConstRef.html',1,'ftxui']]], + ['constref_3c_20std_3a_3astring_20_3e_7',['ConstRef< std::string >',['../classftxui_1_1ConstRef.html',1,'ftxui']]], + ['conststringlistref_8',['ConstStringListRef',['../classftxui_1_1ConstStringListRef.html',1,'ftxui']]], + ['conststringref_9',['ConstStringRef',['../classftxui_1_1ConstStringRef.html',1,'ftxui']]], + ['cursor_10',['Cursor',['../structftxui_1_1Screen_1_1Cursor.html',1,'ftxui::Screen']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 000000000..6819644c4 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['dimensions_0',['Dimensions',['../group__screen.html#structftxui_1_1Dimensions',1,'ftxui']]], + ['dropdownoption_1',['DropdownOption',['../group__component.html#structftxui_1_1DropdownOption',1,'ftxui']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 000000000..e6146747f --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['element_0',['Element',['../structftxui_1_1box__helper_1_1Element.html',1,'ftxui::box_helper']]], + ['entrystate_1',['EntryState',['../structftxui_1_1EntryState.html',1,'ftxui']]], + ['event_2',['Event',['../group__component.html#structftxui_1_1Event',1,'ftxui']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 000000000..b9880f2b0 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['flexboxconfig_0',['FlexboxConfig',['../group__dom.html#structftxui_1_1FlexboxConfig',1,'ftxui']]], + ['focused_1',['Focused',['../structftxui_1_1Requirement_1_1Focused.html',1,'ftxui::Requirement']]] +]; diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 000000000..d41c17ea3 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['global_0',['Global',['../structftxui_1_1flexbox__helper_1_1Global.html',1,'ftxui::flexbox_helper']]] +]; diff --git a/search/classes_7.js b/search/classes_7.js new file mode 100644 index 000000000..02c77b733 --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['image_0',['Image',['../group__screen.html#classftxui_1_1Image',1,'ftxui']]], + ['inputoption_1',['InputOption',['../group__component.html#structftxui_1_1InputOption',1,'ftxui']]], + ['inputstate_2',['InputState',['../structftxui_1_1InputState.html',1,'ftxui']]] +]; diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 000000000..0798ae1a4 --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['line_0',['Line',['../structftxui_1_1flexbox__helper_1_1Line.html',1,'ftxui::flexbox_helper']]], + ['lineargradient_1',['LinearGradient',['../group__dom.html#structftxui_1_1LinearGradient',1,'ftxui']]], + ['loop_2',['Loop',['../group__component.html#classftxui_1_1Loop',1,'ftxui']]] +]; diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 000000000..ed16e670c --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['menuentryoption_0',['MenuEntryOption',['../group__component.html#structftxui_1_1MenuEntryOption',1,'ftxui']]], + ['menuoption_1',['MenuOption',['../group__component.html#structftxui_1_1MenuOption',1,'ftxui']]], + ['mouse_2',['Mouse',['../group__component.html#structftxui_1_1Mouse',1,'ftxui']]] +]; diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 000000000..c7f5fe667 --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['node_0',['Node',['../group__dom.html#classftxui_1_1Node',1,'ftxui']]], + ['nodedecorator_1',['NodeDecorator',['../classftxui_1_1NodeDecorator.html',1,'ftxui']]] +]; diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 000000000..bfd026401 --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['params_0',['Params',['../classftxui_1_1animation_1_1Params.html',1,'ftxui::animation']]], + ['pendingtask_1',['PendingTask',['../structftxui_1_1task_1_1PendingTask.html',1,'ftxui::task']]], + ['pixel_2',['Pixel',['../group__screen.html#structftxui_1_1Pixel',1,'ftxui']]], + ['private_3',['Private',['../classftxui_1_1ScreenInteractive_1_1Private.html',1,'ftxui::ScreenInteractive']]] +]; diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 000000000..15db85a10 --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['radioboxoption_0',['RadioboxOption',['../group__component.html#structftxui_1_1RadioboxOption',1,'ftxui']]], + ['receiverimpl_1',['ReceiverImpl',['../classftxui_1_1ReceiverImpl.html',1,'ftxui']]], + ['ref_2',['Ref',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20bool_20_3e_3',['Ref< bool >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20direction_20_3e_4',['Ref< Direction >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20int_20_3e_5',['Ref< int >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['ref_3c_20std_3a_3astring_20_3e_6',['Ref< std::string >',['../classftxui_1_1Ref.html',1,'ftxui']]], + ['requirement_7',['Requirement',['../group__dom.html#structftxui_1_1Requirement',1,'ftxui']]], + ['resizablesplitoption_8',['ResizableSplitOption',['../structftxui_1_1ResizableSplitOption.html',1,'ftxui']]] +]; diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 000000000..e3e6f1ba1 --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['screen_0',['Screen',['../group__screen.html#classftxui_1_1Screen',1,'ftxui']]], + ['screeninteractive_1',['ScreenInteractive',['../group__component.html#classftxui_1_1ScreenInteractive',1,'ftxui']]], + ['selection_2',['Selection',['../group__dom.html#classftxui_1_1Selection',1,'ftxui']]], + ['senderimpl_3',['SenderImpl',['../classftxui_1_1SenderImpl.html',1,'ftxui']]], + ['slideroption_4',['SliderOption',['../structftxui_1_1SliderOption.html',1,'ftxui']]], + ['status_5',['Status',['../structftxui_1_1Node_1_1Status.html',1,'ftxui::Node']]], + ['stop_6',['Stop',['../structftxui_1_1LinearGradient_1_1Stop.html',1,'ftxui::LinearGradient']]], + ['stringref_7',['StringRef',['../classftxui_1_1StringRef.html',1,'ftxui']]] +]; diff --git a/search/classes_e.js b/search/classes_e.js new file mode 100644 index 000000000..2a04d23ad --- /dev/null +++ b/search/classes_e.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['table_0',['Table',['../group__dom.html#classftxui_1_1Table',1,'ftxui']]], + ['tableselection_1',['TableSelection',['../classftxui_1_1TableSelection.html',1,'ftxui']]], + ['taskqueue_2',['TaskQueue',['../structftxui_1_1task_1_1TaskQueue.html',1,'ftxui::task']]], + ['taskrunner_3',['TaskRunner',['../classftxui_1_1task_1_1TaskRunner.html',1,'ftxui::task']]], + ['terminalinputparser_4',['TerminalInputParser',['../classftxui_1_1TerminalInputParser.html',1,'ftxui']]] +]; diff --git a/search/classes_f.js b/search/classes_f.js new file mode 100644 index 000000000..8adb365c3 --- /dev/null +++ b/search/classes_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['underlineoption_0',['UnderlineOption',['../group__component.html#structftxui_1_1UnderlineOption',1,'ftxui']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 000000000..337d6cc13 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 000000000..678941944 --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ftxui_5flikely_0',['FTXUI_LIKELY',['../screen_8cpp.html#a3350a75634f7952b2795de433b111f0e',1,'screen.cpp']]], + ['ftxui_5funlikely_1',['FTXUI_UNLIKELY',['../screen_8cpp.html#a6048239c71b0f0be5c9d01ba721d7dd9',1,'screen.cpp']]] +]; diff --git a/search/defines_1.js b/search/defines_1.js new file mode 100644 index 000000000..23a2be1c8 --- /dev/null +++ b/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nominmax_0',['NOMINMAX',['../src_2ftxui_2component_2window_8cpp.html#a9f918755b601cf4bffca775992e6fb90',1,'window.cpp']]] +]; diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 000000000..85166dde5 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['aligncontent_0',['AlignContent',['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420',1,'ftxui::FlexboxConfig']]], + ['alignitems_1',['AlignItems',['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7',1,'ftxui::FlexboxConfig']]] +]; diff --git a/search/enums_1.js b/search/enums_1.js new file mode 100644 index 000000000..d16492942 --- /dev/null +++ b/search/enums_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['borderstyle_0',['BorderStyle',['../group__dom.html#gafe3103dd0b8240c5443892484ef5af9c',1,'ftxui']]], + ['button_1',['Button',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0',1,'ftxui::Mouse']]] +]; diff --git a/search/enums_2.js b/search/enums_2.js new file mode 100644 index 000000000..635b26d91 --- /dev/null +++ b/search/enums_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['color_0',['Color',['../group__screen.html#gab87bacfdad76e61b9412d7124be44c1c',1,'ftxui::Terminal']]], + ['constraint_1',['Constraint',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926',1,'ftxui']]] +]; diff --git a/search/enums_3.js b/search/enums_3.js new file mode 100644 index 000000000..a061a8bd2 --- /dev/null +++ b/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['direction_0',['Direction',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aa',1,'ftxui::FlexboxConfig::Direction'],['../group__dom.html#ga224b9163917ac32fc95a60d8c1eec3aa',1,'ftxui::Direction']]] +]; diff --git a/search/enums_4.js b/search/enums_4.js new file mode 100644 index 000000000..6e1936b95 --- /dev/null +++ b/search/enums_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['justifycontent_0',['JustifyContent',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2',1,'ftxui::FlexboxConfig']]] +]; diff --git a/search/enums_5.js b/search/enums_5.js new file mode 100644 index 000000000..e7b7b3ead --- /dev/null +++ b/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['motion_0',['Motion',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6',1,'ftxui::Mouse']]] +]; diff --git a/search/enums_6.js b/search/enums_6.js new file mode 100644 index 000000000..877407931 --- /dev/null +++ b/search/enums_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['palette1_0',['Palette1',['../group__screen.html#aa4be56f94fc180d7b070df23c235b0c7',1,'ftxui::Color']]], + ['palette16_1',['Palette16',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802f',1,'ftxui::Color']]], + ['palette256_2',['Palette256',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcf',1,'ftxui::Color']]] +]; diff --git a/search/enums_7.js b/search/enums_7.js new file mode 100644 index 000000000..4b65433d9 --- /dev/null +++ b/search/enums_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['shape_0',['Shape',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37c',1,'ftxui::Screen::Cursor']]] +]; diff --git a/search/enums_8.js b/search/enums_8.js new file mode 100644 index 000000000..23d9971af --- /dev/null +++ b/search/enums_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['widthorheight_0',['WidthOrHeight',['../namespaceftxui.html#a04711c04f28aabfa0e5928a35baaec53',1,'ftxui']]], + ['wordbreakproperty_1',['WordBreakProperty',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968a',1,'ftxui']]], + ['wrap_2',['Wrap',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72ab',1,'ftxui::FlexboxConfig']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 000000000..8f44667f4 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['aletter_0',['ALetter',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aab1bb481a6d76de94d35e1d67cb85d966',1,'ftxui']]], + ['aquamarine1_1',['Aquamarine1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf54d1112226e67ee67339a050ae1b352',1,'ftxui::Color']]], + ['aquamarine1bis_2',['Aquamarine1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4db1324d99372274e2414031d1773151',1,'ftxui::Color']]], + ['aquamarine3_3',['Aquamarine3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfadc172e17e6f05d6e2b0e48c85803a85a',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 000000000..8d3c18ee9 --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['bar_0',['Bar',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca6424dbda22da2f105580d1c8095600d3',1,'ftxui::Screen::Cursor']]], + ['barblinking_1',['BarBlinking',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cae7dfc08d4e90b88e0cb1cea7a54796c1',1,'ftxui::Screen::Cursor']]], + ['black_2',['Black',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fac1e9bce8242f443c54c7405223d616cd',1,'ftxui::Color']]], + ['block_3',['Block',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa00f801460e81f86eab56d86fe627551',1,'ftxui::Screen::Cursor']]], + ['blockblinking_4',['BlockBlinking',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca2f4a0b3cacb4468d8467dc0746ea23aa',1,'ftxui::Screen::Cursor']]], + ['blue_5',['Blue',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf5e09dd1da4088464f264b7a3118bff8',1,'ftxui::Color']]], + ['blue1_6',['Blue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9eafa8db807f9452108cd02b80cd4adc',1,'ftxui::Color']]], + ['blue3_7',['Blue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa910d98e6c6282c1c8133f53438beb7ca',1,'ftxui::Color']]], + ['blue3bis_8',['Blue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabb8f8ef3f352a8a9c884fadff1576b13',1,'ftxui::Color']]], + ['bluelight_9',['BlueLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802faf7cc79a56a740e9c59a156b0b3b93cbd',1,'ftxui::Color']]], + ['blueviolet_10',['BlueViolet',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd3fa02524f2597996333516267c773',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_10.js b/search/enumvalues_10.js new file mode 100644 index 000000000..a7e9ffeec --- /dev/null +++ b/search/enumvalues_10.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['salmon1_0',['Salmon1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa664067df16558f65cc3d46609a03dfab',1,'ftxui::Color']]], + ['sandybrown_1',['SandyBrown',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64269c060a2fc56cb77c12360cd3a28e',1,'ftxui::Color']]], + ['seagreen1_2',['SeaGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e2c9e620d6245638b27d9c1fa2d0545',1,'ftxui::Color']]], + ['seagreen1bis_3',['SeaGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7819209c8bfe13fbfcb2cde9a296f7b6',1,'ftxui::Color']]], + ['seagreen2_4',['SeaGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b69dc4c281a32346b8d2bab20dd1aef',1,'ftxui::Color']]], + ['seagreen3_5',['SeaGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b862c5164d4597b28fba03335a834cf',1,'ftxui::Color']]], + ['single_5fquote_6',['Single_Quote',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aab6f9a00a0255e4da280686c4640c7671',1,'ftxui']]], + ['skyblue1_7',['SkyBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac47bacbed84298fdf72215fe2312ce64',1,'ftxui::Color']]], + ['skyblue2_8',['SkyBlue2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1172e54ed7e62aa4ebcea4b453f5dcc',1,'ftxui::Color']]], + ['skyblue3_9',['SkyBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2dfa52861bc8b2a870e5166e969db2c7',1,'ftxui::Color']]], + ['slateblue1_10',['SlateBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa97807edc577e1d5d3bc271c3a4ced7f4',1,'ftxui::Color']]], + ['slateblue3_11',['SlateBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae53ce2149f6b9e7da24472b5112f7963',1,'ftxui::Color']]], + ['slateblue3bis_12',['SlateBlue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad477f91096f698a2b266a1bf26cd456b',1,'ftxui::Color']]], + ['spacearound_13',['SpaceAround',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2aa711fff5f720542ab104aab0805e2565',1,'ftxui::FlexboxConfig::SpaceAround'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420aa711fff5f720542ab104aab0805e2565',1,'ftxui::FlexboxConfig::SpaceAround']]], + ['spacebetween_14',['SpaceBetween',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afa2f3f8f296dcb6e5c287d69eae1c119',1,'ftxui::FlexboxConfig::SpaceBetween'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afa2f3f8f296dcb6e5c287d69eae1c119',1,'ftxui::FlexboxConfig::SpaceBetween']]], + ['spaceevenly_15',['SpaceEvenly',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a34ad3eaf7ee60a45210ad60bd731e235',1,'ftxui::FlexboxConfig::SpaceEvenly'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a34ad3eaf7ee60a45210ad60bd731e235',1,'ftxui::FlexboxConfig::SpaceEvenly']]], + ['springgreen1_16',['SpringGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8e70ae2a69a90e87e679685d6461b6e8',1,'ftxui::Color']]], + ['springgreen2_17',['SpringGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac85363887f660b5879e353bac03dab49',1,'ftxui::Color']]], + ['springgreen2bis_18',['SpringGreen2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad038ac30c015021853f183054c51c0c5',1,'ftxui::Color']]], + ['springgreen3_19',['SpringGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5a87a3e9a8af9561a373ff63e740223e',1,'ftxui::Color']]], + ['springgreen3bis_20',['SpringGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf19e26246ad6f4e4de44efb6d2b4e1c6',1,'ftxui::Color']]], + ['springgreen4_21',['SpringGreen4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf3817720cb5b18b16b8d6c520a61748e',1,'ftxui::Color']]], + ['steelblue_22',['SteelBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9224e340e6d918555c68ac2f1dc80b04',1,'ftxui::Color']]], + ['steelblue1_23',['SteelBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa050bb4a5d79a1dac6aae25ce8734c973',1,'ftxui::Color']]], + ['steelblue1bis_24',['SteelBlue1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf400af64197a052be4d59c521104cb2a',1,'ftxui::Color']]], + ['steelblue3_25',['SteelBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0a49900e5a03f7545262d90592bfba92',1,'ftxui::Color']]], + ['stretch_26',['Stretch',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2afbb09a82eafab60150d0996e8fe46560',1,'ftxui::FlexboxConfig::Stretch'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7afbb09a82eafab60150d0996e8fe46560',1,'ftxui::FlexboxConfig::Stretch'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420afbb09a82eafab60150d0996e8fe46560',1,'ftxui::FlexboxConfig::Stretch']]] +]; diff --git a/search/enumvalues_11.js b/search/enumvalues_11.js new file mode 100644 index 000000000..bdfd4e5f7 --- /dev/null +++ b/search/enumvalues_11.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['tan_0',['Tan',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab492a96cd2b9bb37c81b8451a42889d9',1,'ftxui::Color']]], + ['thistle1_1',['Thistle1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaa1937f76b1f6c26f042a5cea129d661',1,'ftxui::Color']]], + ['thistle3_2',['Thistle3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7e48d71618f8e50aed23876c3103859b',1,'ftxui::Color']]], + ['truecolor_3',['TrueColor',['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1ca7afd9568e82d523c91b2bfe0cc47be29',1,'ftxui::Terminal']]], + ['turquoise2_4',['Turquoise2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0514acacf99b53570d7a2ee25dde1f5a',1,'ftxui::Color']]], + ['turquoise4_5',['Turquoise4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac0d913fe38afad9dad5a51083ebc1e86',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_12.js b/search/enumvalues_12.js new file mode 100644 index 000000000..396c325dc --- /dev/null +++ b/search/enumvalues_12.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['underline_0',['Underline',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa909c5f2b588ba35fcc40b3b504ad2ed',1,'ftxui::Screen::Cursor']]], + ['underlineblinking_1',['UnderlineBlinking',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cad7df11ee39d53d4ee2da1b22b2238abc',1,'ftxui::Screen::Cursor']]], + ['up_2',['Up',['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa',1,'ftxui']]] +]; diff --git a/search/enumvalues_13.js b/search/enumvalues_13.js new file mode 100644 index 000000000..2522b1d96 --- /dev/null +++ b/search/enumvalues_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['violet_0',['Violet',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa94a3ee3884eb2af70a2d764a4f06e79d',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_14.js b/search/enumvalues_14.js new file mode 100644 index 000000000..80d767fa0 --- /dev/null +++ b/search/enumvalues_14.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['wheat1_0',['Wheat1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2919dbb2ef2f19e560ee2a4f21874373',1,'ftxui::Color']]], + ['wheat4_1',['Wheat4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3fee165b16150ce4df5f4fcecca7407',1,'ftxui::Color']]], + ['wheeldown_2',['WheelDown',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db',1,'ftxui::Mouse']]], + ['wheelleft_3',['WheelLeft',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0a160e671a76bd0d1f424a8b9700275375',1,'ftxui::Mouse']]], + ['wheelright_4',['WheelRight',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ae73184b2d38af984b5cda75057471adc',1,'ftxui::Mouse']]], + ['wheelup_5',['WheelUp',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6',1,'ftxui::Mouse']]], + ['white_6',['White',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab548046646b36c12aa6ba841de500094',1,'ftxui::Color']]], + ['width_7',['WIDTH',['../namespaceftxui.html#a04711c04f28aabfa0e5928a35baaec53a73c0818986b7c462c2977f57afd00522',1,'ftxui']]], + ['wrap_8',['Wrap',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72abaa212b19ef5f2fb30acf92e6cbccc1f2d',1,'ftxui::FlexboxConfig']]], + ['wrapinversed_9',['WrapInversed',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72abad639e613e3589af04e39135707dbc642',1,'ftxui::FlexboxConfig']]], + ['wsegspace_10',['WSegSpace',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3ddc36a0c4e381a754fb00548d567d09',1,'ftxui']]] +]; diff --git a/search/enumvalues_15.js b/search/enumvalues_15.js new file mode 100644 index 000000000..694722b8f --- /dev/null +++ b/search/enumvalues_15.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['yellow_0',['Yellow',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fabf28513245738599d13e3ce36bd16c82',1,'ftxui::Color']]], + ['yellow1_1',['Yellow1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18f6dad40423c7708a467fb630f59048',1,'ftxui::Color']]], + ['yellow2_2',['Yellow2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac571c9dd674c4e7301b11cee12715bdf',1,'ftxui::Color']]], + ['yellow3_3',['Yellow3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64545058cba31bf28f7cc75072664ec2',1,'ftxui::Color']]], + ['yellow3bis_4',['Yellow3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67ae91aade6999e17c552ebe197c3a7f',1,'ftxui::Color']]], + ['yellow4_5',['Yellow4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab60ac0c6b49456d0de7ca3388f19862a',1,'ftxui::Color']]], + ['yellow4bis_6',['Yellow4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaaf28e9bd6542c570b963f36620b181f7',1,'ftxui::Color']]], + ['yellowlight_7',['YellowLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa7948fe5f055329af04798409b7ac37b5',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_16.js b/search/enumvalues_16.js new file mode 100644 index 000000000..e862442b6 --- /dev/null +++ b/search/enumvalues_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zwj_0',['ZWJ',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aacb4adf7b93435bdfbae8f32d5bcda514',1,'ftxui']]] +]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 000000000..bebb2ca8f --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['cadetblue_0',['CadetBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa76906c6e4ac2ee22b81bda5a59e335f1',1,'ftxui::Color']]], + ['cadetbluebis_1',['CadetBlueBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb5d4e2aebcd3abba4c91d055f07513b',1,'ftxui::Color']]], + ['center_2',['Center',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a4f1f6016fc9f3f2353c0cc7c67b292bd',1,'ftxui::FlexboxConfig::Center'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a4f1f6016fc9f3f2353c0cc7c67b292bd',1,'ftxui::FlexboxConfig::Center'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a4f1f6016fc9f3f2353c0cc7c67b292bd',1,'ftxui::FlexboxConfig::Center']]], + ['chartreuse1_3',['Chartreuse1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7d2d4cc3af6756a4eac7d12fbe4775d4',1,'ftxui::Color']]], + ['chartreuse2_4',['Chartreuse2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa353575e36d1260652eb3d18e73f04cfe',1,'ftxui::Color']]], + ['chartreuse2bis_5',['Chartreuse2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6338086ae05e58041188d89165d87c1a',1,'ftxui::Color']]], + ['chartreuse3_6',['Chartreuse3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2f3df27b5ed05a3e040deec31c684003',1,'ftxui::Color']]], + ['chartreuse3bis_7',['Chartreuse3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2087d90de0840d3f15fad878ba4b4fc4',1,'ftxui::Color']]], + ['chartreuse4_8',['Chartreuse4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa734cd2fab3e94385552fc745665bcc98',1,'ftxui::Color']]], + ['column_9',['Column',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa1976d7f704de389d9fe064e08ea35b2d',1,'ftxui::FlexboxConfig']]], + ['columninversed_10',['ColumnInversed',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaa338df815740895b690c7b07716acda20',1,'ftxui::FlexboxConfig']]], + ['cornflowerblue_11',['CornflowerBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab4dcc712554f602559b3f9b7662ea4dd',1,'ftxui::Color']]], + ['cornsilk1_12',['Cornsilk1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9d7dd269922a0e2fac6366c623ed3d45',1,'ftxui::Color']]], + ['cr_13',['CR',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa1d7b33fc26ca22c2011aaa97fecc43d8',1,'ftxui']]], + ['cyan_14',['Cyan',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab0d4738f9c7f12049e52aa4e868bdc8b',1,'ftxui::Color']]], + ['cyan1_15',['Cyan1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa35e9559f51c82a7adda45276bbedb0f4',1,'ftxui::Color']]], + ['cyan2_16',['Cyan2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacc49853d1836ecf3b66c4b8c568aba3f',1,'ftxui::Color']]], + ['cyan3_17',['Cyan3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a36fc7d64942362d706fad5544517d1',1,'ftxui::Color']]], + ['cyanlight_18',['CyanLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa61bd7f1290cc0a24e565539a61ba5839',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 000000000..ecd28cbae --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,59 @@ +var searchData= +[ + ['darkblue_0',['DarkBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa4d5c4dd6c3cf0fe617dec801025bd76',1,'ftxui::Color']]], + ['darkcyan_1',['DarkCyan',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa180097c82c1863b9c2f94b41d341c529',1,'ftxui::Color']]], + ['darkgoldenrod_2',['DarkGoldenrod',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab5d8a9760923e3357c167fc19de8a914',1,'ftxui::Color']]], + ['darkgreen_3',['DarkGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6c1a381d726d9c383c05b9ca12682e4f',1,'ftxui::Color']]], + ['darkkhaki_4',['DarkKhaki',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa480194578592f6fc90b8b6a1a1f66e8b',1,'ftxui::Color']]], + ['darkmagenta_5',['DarkMagenta',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ba5febce0999080bcfe1ef92192fe12',1,'ftxui::Color']]], + ['darkmagentabis_6',['DarkMagentaBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0e32b2f735ea792ab1d5253d3e631241',1,'ftxui::Color']]], + ['darkolivegreen1_7',['DarkOliveGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a1641f09fbb37751ade39859adbcfaa',1,'ftxui::Color']]], + ['darkolivegreen1bis_8',['DarkOliveGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4e0500dd80f0e6f0a2a1a93de953cf86',1,'ftxui::Color']]], + ['darkolivegreen2_9',['DarkOliveGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaad55a68e83744f717a7f83f7a8fd265f',1,'ftxui::Color']]], + ['darkolivegreen3_10',['DarkOliveGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeca91c2f996796b37a2123515356ded3',1,'ftxui::Color']]], + ['darkolivegreen3bis_11',['DarkOliveGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad6dc23b32b2396e59cfc48238fd05bd8',1,'ftxui::Color']]], + ['darkolivegreen3ter_12',['DarkOliveGreen3Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a607c03adbcbd4b210fc095272a76a0',1,'ftxui::Color']]], + ['darkorange_13',['DarkOrange',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2458c6f4cddf4f28bf1285975975b987',1,'ftxui::Color']]], + ['darkorange3_14',['DarkOrange3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa08efc0d59d20277a3c2f01473250108c',1,'ftxui::Color']]], + ['darkorange3bis_15',['DarkOrange3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3def467cbbb99502637734c3bd2ce456',1,'ftxui::Color']]], + ['darkred_16',['DarkRed',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa556650aa9f007ea0239e66d3ddf26759',1,'ftxui::Color']]], + ['darkredbis_17',['DarkRedBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3bcdc58abc2165b0032a207e9d6883d',1,'ftxui::Color']]], + ['darkseagreen_18',['DarkSeaGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa380e1f43f086bd475d720c459fcff2a8',1,'ftxui::Color']]], + ['darkseagreen1_19',['DarkSeaGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaded95d3c0d616d9658b034e9ae705bf5',1,'ftxui::Color']]], + ['darkseagreen1bis_20',['DarkSeaGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa691f28c053f9d2a12db86b8aa396374b',1,'ftxui::Color']]], + ['darkseagreen2_21',['DarkSeaGreen2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad5089e0939bbe16ed485053e771e8a68',1,'ftxui::Color']]], + ['darkseagreen2bis_22',['DarkSeaGreen2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac388011f4493d875983a3c7264e7ded5',1,'ftxui::Color']]], + ['darkseagreen3_23',['DarkSeaGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa02af538b8573bc9c037822273620864f',1,'ftxui::Color']]], + ['darkseagreen3bis_24',['DarkSeaGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b2765271febec45b933598f18a7ca98',1,'ftxui::Color']]], + ['darkseagreen4_25',['DarkSeaGreen4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabda195126fea1b4f0aa6d25513820ca0',1,'ftxui::Color']]], + ['darkseagreen4bis_26',['DarkSeaGreen4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa393410b62bd90565aa0c25e61c92d999',1,'ftxui::Color']]], + ['darkslategray1_27',['DarkSlateGray1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfafb40765294d1d25a5ec1ec17d3ee4ae8',1,'ftxui::Color']]], + ['darkslategray2_28',['DarkSlateGray2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa29221856aecf72cfe57d5ca2e6d41b42',1,'ftxui::Color']]], + ['darkslategray3_29',['DarkSlateGray3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0621f3f774389bc57973bbed3c78b9f7',1,'ftxui::Color']]], + ['darkturquoise_30',['DarkTurquoise',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6a5df4f33663381387285b54ee22ab78',1,'ftxui::Color']]], + ['darkviolet_31',['DarkViolet',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0c92c7e17edeca09b7c63c8a783a562f',1,'ftxui::Color']]], + ['darkvioletbis_32',['DarkVioletBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9870a3dcf46498ca4a10be946521097d',1,'ftxui::Color']]], + ['dashed_33',['DASHED',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca830310bdfd296d7cd00c59773579b892',1,'ftxui']]], + ['deeppink1_34',['DeepPink1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad05d6a1937a822876238056c449d358a',1,'ftxui::Color']]], + ['deeppink1bis_35',['DeepPink1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa65e73df447238ae75a0d07efb65dbe9e',1,'ftxui::Color']]], + ['deeppink2_36',['DeepPink2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaeef51aafc2cd821d225e0da0c53f8e20',1,'ftxui::Color']]], + ['deeppink3_37',['DeepPink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfafe2c78801538b191a773d879ce8ef205',1,'ftxui::Color']]], + ['deeppink3bis_38',['DeepPink3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabff5bbcace3282974cfa06467832cb79',1,'ftxui::Color']]], + ['deeppink4_39',['DeepPink4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf13fb129c07396292da1f7530914f07d',1,'ftxui::Color']]], + ['deeppink4bis_40',['DeepPink4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa26e5234f400791a8e9e7850ba7cf6df8',1,'ftxui::Color']]], + ['deeppink4ter_41',['DeepPink4Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac8deabe72bda5e1baf1db1ffc1edf966',1,'ftxui::Color']]], + ['deepskyblue1_42',['DeepSkyBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa601eba969cf1007265ed79e626d49be7',1,'ftxui::Color']]], + ['deepskyblue2_43',['DeepSkyBlue2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa932fa24051e9217b181a71e7491bb214',1,'ftxui::Color']]], + ['deepskyblue3_44',['DeepSkyBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99066355a2c8a3d09741cc7318a41dbc',1,'ftxui::Color']]], + ['deepskyblue3bis_45',['DeepSkyBlue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8986a4db4b9a9e78822a35345484d23a',1,'ftxui::Color']]], + ['deepskyblue4_46',['DeepSkyBlue4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0bedec2878fd084bb46dcd7f7dd3b9aa',1,'ftxui::Color']]], + ['deepskyblue4bis_47',['DeepSkyBlue4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad0cc3282e3ba7e9d833052832a54fdc3',1,'ftxui::Color']]], + ['deepskyblue4ter_48',['DeepSkyBlue4Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa98b88c697db6fc8899bee87fa24e86dd',1,'ftxui::Color']]], + ['default_49',['Default',['../group__screen.html#aa4be56f94fc180d7b070df23c235b0c7a79935518a3889663d8688b6b01fff051',1,'ftxui::Color']]], + ['dodgerblue1_50',['DodgerBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6902167c73e03c1214dae9265c9a9523',1,'ftxui::Color']]], + ['dodgerblue2_51',['DodgerBlue2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4bfe8de454eabc37639b32813912000e',1,'ftxui::Color']]], + ['dodgerblue3_52',['DodgerBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf82b272abcc583f2c0ac11d6b22c45ca',1,'ftxui::Color']]], + ['double_53',['DOUBLE',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca33465d1d419b1074fb259ef444609e92',1,'ftxui']]], + ['double_5fquote_54',['Double_Quote',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3a1f5142815614aa554e376af7047de3',1,'ftxui']]], + ['down_55',['Down',['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53',1,'ftxui']]] +]; diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js new file mode 100644 index 000000000..f5770a2c9 --- /dev/null +++ b/search/enumvalues_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['empty_0',['EMPTY',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca2f0d18fc0d0fa4a6cd92dc328501874d',1,'ftxui']]], + ['equal_1',['EQUAL',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926a59a84258a4cb9025b567ee5139455029',1,'ftxui']]], + ['extend_2',['Extend',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3bc026b815790a05493fa56fc4b8d8bd',1,'ftxui']]], + ['extendnumlet_3',['ExtendNumLet',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aadcba983044c9eb2afae2e2eaef5fe818',1,'ftxui']]] +]; diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 000000000..59c252cd7 --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['flexend_0',['FlexEnd',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a923a60a08f41dc3052190403fc2a6b25',1,'ftxui::FlexboxConfig::FlexEnd'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a923a60a08f41dc3052190403fc2a6b25',1,'ftxui::FlexboxConfig::FlexEnd'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a923a60a08f41dc3052190403fc2a6b25',1,'ftxui::FlexboxConfig::FlexEnd']]], + ['flexstart_1',['FlexStart',['../group__dom.html#ac6e5ab18dcac465ee2ac9a0d8b4a82d2a8d5898e4f1bd5527306b1f62fa4fd952',1,'ftxui::FlexboxConfig::FlexStart'],['../group__dom.html#a821af961ece5fe13540ad48b54c7a9e7a8d5898e4f1bd5527306b1f62fa4fd952',1,'ftxui::FlexboxConfig::FlexStart'],['../group__dom.html#a1f99410fd0fc632a5bc2497b6a447420a8d5898e4f1bd5527306b1f62fa4fd952',1,'ftxui::FlexboxConfig::FlexStart']]], + ['format_2',['Format',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa520d0db389f362bf79ef56ca0af3dcab',1,'ftxui']]] +]; diff --git a/search/enumvalues_6.js b/search/enumvalues_6.js new file mode 100644 index 000000000..5e3b9afb7 --- /dev/null +++ b/search/enumvalues_6.js @@ -0,0 +1,47 @@ +var searchData= +[ + ['gold1_0',['Gold1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf02f1d575ceca96dc56df1295a73c007',1,'ftxui::Color']]], + ['gold3_1',['Gold3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96bebc8d90d9444dd8fe563037cc2be2',1,'ftxui::Color']]], + ['gold3bis_2',['Gold3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa7e5b2921c53d39581597da20ce2f338',1,'ftxui::Color']]], + ['graydark_3',['GrayDark',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fade3b52f7f38e412815092547cd6e8be7',1,'ftxui::Color']]], + ['graylight_4',['GrayLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fadebf1805c024a5504872f795f83a6835',1,'ftxui::Color']]], + ['greater_5fthan_5',['GREATER_THAN',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926a5fae95457121bd697edd588d1b64cc7c',1,'ftxui']]], + ['green_6',['Green',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad0784a3f969fe736e8b271a5a161d106',1,'ftxui::Color']]], + ['green1_7',['Green1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8db72e307df54b6fd021fd0eff7d5a5f',1,'ftxui::Color']]], + ['green3_8',['Green3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa061b2388532ed2cf150f5ef83646ae2',1,'ftxui::Color']]], + ['green3bis_9',['Green3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b41b1aeadc19f83c8292978c1e40af1',1,'ftxui::Color']]], + ['green4_10',['Green4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa36b7f9cbbb6e3d6d5e9df9abcbf348c3',1,'ftxui::Color']]], + ['greenlight_11',['GreenLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9827485e548095e18c65045bc8058ce7',1,'ftxui::Color']]], + ['greenyellow_12',['GreenYellow',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacd28fdc2094a8c7b0d90e51b38b85533',1,'ftxui::Color']]], + ['grey0_13',['Grey0',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c49667d6b3e650b346c88d7e3fd5590',1,'ftxui::Color']]], + ['grey100_14',['Grey100',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa6cbc92ab0733f3e33cf31563dc865c4',1,'ftxui::Color']]], + ['grey11_15',['Grey11',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac449ae3543129be859f6e1f2ea29c8be',1,'ftxui::Color']]], + ['grey15_16',['Grey15',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa461a25896feac74f19be7117ae19fefe',1,'ftxui::Color']]], + ['grey19_17',['Grey19',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0250546ff32c86258542b95876090e28',1,'ftxui::Color']]], + ['grey23_18',['Grey23',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad715d2046e5e2d3b6bb6e2127834c485',1,'ftxui::Color']]], + ['grey27_19',['Grey27',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9306e0c6a01240c9fdfab25f3eaa0634',1,'ftxui::Color']]], + ['grey3_20',['Grey3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa81c7178d2e73d4fd43861817b9b32c9d',1,'ftxui::Color']]], + ['grey30_21',['Grey30',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2991b68c782e1ce0b7e701e2a8a8298',1,'ftxui::Color']]], + ['grey35_22',['Grey35',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa94bb0f2f713f3ab31a7bfd224fe33e7',1,'ftxui::Color']]], + ['grey37_23',['Grey37',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa67645d98e45108256aac9234935510e3',1,'ftxui::Color']]], + ['grey39_24',['Grey39',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae50ed802592da7fedcbd76ca96341d89',1,'ftxui::Color']]], + ['grey42_25',['Grey42',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cb673228bc4530517e8813bec443e7d',1,'ftxui::Color']]], + ['grey46_26',['Grey46',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7310f159106d0f63cca0ddf0c1962ff7',1,'ftxui::Color']]], + ['grey50_27',['Grey50',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1228fc714bdb452c1efc4b9754751de7',1,'ftxui::Color']]], + ['grey53_28',['Grey53',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a56c10be7ecd80795860dcdc6eff354',1,'ftxui::Color']]], + ['grey54_29',['Grey54',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa660a7e64726c75510f4e1cd1f63ccb09',1,'ftxui::Color']]], + ['grey58_30',['Grey58',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3aaa86564267b4c90a2d6bb966c35f90',1,'ftxui::Color']]], + ['grey62_31',['Grey62',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa64ccec5866654552e080a406314c2b0c',1,'ftxui::Color']]], + ['grey63_32',['Grey63',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa084969e9df558ecd204bcec54bc9b03',1,'ftxui::Color']]], + ['grey66_33',['Grey66',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1cccb7d918d79a0240c135479d58b2ec',1,'ftxui::Color']]], + ['grey69_34',['Grey69',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2ddd20c7af3e7519c138e5dfd06f188c',1,'ftxui::Color']]], + ['grey7_35',['Grey7',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9918508956b5ace54699264567757916',1,'ftxui::Color']]], + ['grey70_36',['Grey70',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae828b663bd8be2f7efd8b2f343a06444',1,'ftxui::Color']]], + ['grey74_37',['Grey74',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7a54ca8cbf5ee4d7af93f4d08d12c9e3',1,'ftxui::Color']]], + ['grey78_38',['Grey78',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa310ea068000acabef43ec4a4b65c3121',1,'ftxui::Color']]], + ['grey82_39',['Grey82',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab890ade13f8f5bff23c313dd9035f7f6',1,'ftxui::Color']]], + ['grey84_40',['Grey84',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6539b5d08bbd9bd011bd67aea17cd04f',1,'ftxui::Color']]], + ['grey85_41',['Grey85',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa812849e32b590f8a114804f6b8dde0e8',1,'ftxui::Color']]], + ['grey89_42',['Grey89',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3b4692eb62f7c5065c28134769615e0',1,'ftxui::Color']]], + ['grey93_43',['Grey93',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa14181b363496871a7c2f91555a6d8a68',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_7.js b/search/enumvalues_7.js new file mode 100644 index 000000000..ed733653a --- /dev/null +++ b/search/enumvalues_7.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['heavy_0',['HEAVY',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca34cd68a92c52759ed9b545969a11c2da',1,'ftxui']]], + ['hebrew_5fletter_1',['Hebrew_Letter',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa3b076a28de949c89c8443aa0cd42ef17',1,'ftxui']]], + ['height_2',['HEIGHT',['../namespaceftxui.html#a04711c04f28aabfa0e5928a35baaec53a38b9241136017b93ea2755a49cf0a000',1,'ftxui']]], + ['hidden_3',['Hidden',['../structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cacf46e529658ebc6532c204f3246929f4',1,'ftxui::Screen::Cursor']]], + ['honeydew2_4',['Honeydew2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacfd861941ef13f197407b7d02deaf617',1,'ftxui::Color']]], + ['hotpink_5',['HotPink',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad886c67902578a7336b821b1cb279c4e',1,'ftxui::Color']]], + ['hotpink2_6',['HotPink2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1b701a7828d1930b59b76d091913e7d1',1,'ftxui::Color']]], + ['hotpink3_7',['HotPink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5b9fcd5ea12531a4fb1273743063f49f',1,'ftxui::Color']]], + ['hotpink3bis_8',['HotPink3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa073af5071fd22b51b77f43766b86d6a5',1,'ftxui::Color']]], + ['hotpinkbis_9',['HotPinkBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac178a78c367fd250556adaa1b9ad4730',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_8.js b/search/enumvalues_8.js new file mode 100644 index 000000000..edbbc9993 --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['indianred_0',['IndianRed',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaddee00c86a353e58b10fb84a0b52481c',1,'ftxui::Color']]], + ['indianred1_1',['IndianRed1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa46aed3d2538a5e3a7d6ae0f6b116a61a',1,'ftxui::Color']]], + ['indianred1bis_2',['IndianRed1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa4a04ff1096e80fe3d85a78e2ab155873',1,'ftxui::Color']]], + ['indianredbis_3',['IndianRedBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8bc829f77e4ff418dcf2efa85a87e329',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_9.js b/search/enumvalues_9.js new file mode 100644 index 000000000..4e25be21b --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['katakana_0',['Katakana',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aaedb097c9a1cb7aed483367f825211f75',1,'ftxui']]], + ['khaki1_1',['Khaki1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1ee17e1e2f41c0175bd6202e1c345a82',1,'ftxui::Color']]], + ['khaki3_2',['Khaki3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3d0d766baf12a67f81a152cabf151f6a',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js new file mode 100644 index 000000000..5a068a412 --- /dev/null +++ b/search/enumvalues_a.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['left_0',['Left',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb',1,'ftxui::Mouse::Left'],['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff',1,'ftxui::Left']]], + ['less_5fthan_1',['LESS_THAN',['../namespaceftxui.html#ae09f44b989d381a387329fd0a0935926a41b05932cd237b2b133fff1ade85bed5',1,'ftxui']]], + ['lf_2',['LF',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa618441d41cce47dbcfd9bed6e5ff64e6',1,'ftxui']]], + ['light_3',['LIGHT',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9caf917d6c11c85b4ac32e30d1cc9da25eb',1,'ftxui']]], + ['lightcoral_4',['LightCoral',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa1b3ec93b81f5cfafd6fd2328904ced8',1,'ftxui::Color']]], + ['lightcyan1bis_5',['LightCyan1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac98b5a34ad5c17b3544e5c29521adb6a',1,'ftxui::Color']]], + ['lightcyan3_6',['LightCyan3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d6da936c52e5dadcd790ecb07dcbb1a',1,'ftxui::Color']]], + ['lightgoldenrod1_7',['LightGoldenrod1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa25d536c972c837da1a4698982d12df00',1,'ftxui::Color']]], + ['lightgoldenrod2_8',['LightGoldenrod2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa03fd8d3402a3b6314c737b8d00f65f4b',1,'ftxui::Color']]], + ['lightgoldenrod2bis_9',['LightGoldenrod2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabcd883ae7f03e4115b274fba499ce91a',1,'ftxui::Color']]], + ['lightgoldenrod2ter_10',['LightGoldenrod2Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa96e9b3fdf30a2f143cb4bfd844742d71',1,'ftxui::Color']]], + ['lightgoldenrod3_11',['LightGoldenrod3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa32e50d1fe92fabe310b25b9400c25cd7',1,'ftxui::Color']]], + ['lightgreen_12',['LightGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6f3bae902f4a1a3b69152ad13382ab18',1,'ftxui::Color']]], + ['lightgreenbis_13',['LightGreenBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa33510b83ef8df69f709f38f77e375193',1,'ftxui::Color']]], + ['lightpink1_14',['LightPink1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa07f3153f6b04f8aeb0925d789d79660c',1,'ftxui::Color']]], + ['lightpink3_15',['LightPink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa253e182f6f26ad7cfae773feb6493c57',1,'ftxui::Color']]], + ['lightpink4_16',['LightPink4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0956f6a62142bbfdf7915d1d9abacb81',1,'ftxui::Color']]], + ['lightsalmon1_17',['LightSalmon1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa523f5d7969774dd37e38382a9d05e3a4',1,'ftxui::Color']]], + ['lightsalmon3_18',['LightSalmon3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9b742f7ba68078b409a6fc2bf76de5c4',1,'ftxui::Color']]], + ['lightsalmon3bis_19',['LightSalmon3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb0ea3d16e515f91b1071099413a36c7',1,'ftxui::Color']]], + ['lightseagreen_20',['LightSeaGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6ff417c700a8e53aeb7fe424e89a1cbd',1,'ftxui::Color']]], + ['lightskyblue1_21',['LightSkyBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa2290ccd3da3d1ea3e508923148ae824',1,'ftxui::Color']]], + ['lightskyblue3_22',['LightSkyBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa267e864d226cfe79c1a1d3e78fdd7eb5',1,'ftxui::Color']]], + ['lightskyblue3bis_23',['LightSkyBlue3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3a8990dd2aee1e219cc7222528ee8e0c',1,'ftxui::Color']]], + ['lightslateblue_24',['LightSlateBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7c34cf2bc4382faf2477db06ce68875',1,'ftxui::Color']]], + ['lightslategrey_25',['LightSlateGrey',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0789c7e5fa07674a45db810280aac1bb',1,'ftxui::Color']]], + ['lightsteelblue_26',['LightSteelBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfadf56a107dda30539c38643b744c312bb',1,'ftxui::Color']]], + ['lightsteelblue1_27',['LightSteelBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7daff90c932ad36e146923fced98cb4d',1,'ftxui::Color']]], + ['lightsteelblue3_28',['LightSteelBlue3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf66424457d48a1e9f30467a6b4d9f735',1,'ftxui::Color']]], + ['lightyellow3_29',['LightYellow3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa602cbd76a18ddce2b63afa9dcbba0f8e',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_b.js b/search/enumvalues_b.js new file mode 100644 index 000000000..d5911821a --- /dev/null +++ b/search/enumvalues_b.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['magenta_0',['Magenta',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fab5059a620e2c7dc57556b1e275c2f9bc',1,'ftxui::Color']]], + ['magenta1_1',['Magenta1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa314daa7c2027494055655d34677458b1',1,'ftxui::Color']]], + ['magenta2_2',['Magenta2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa0270d909214e1a221e1937b3cf406ba',1,'ftxui::Color']]], + ['magenta2bis_3',['Magenta2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfabe530bee1037e2b3a133e8dbc5ffa585',1,'ftxui::Color']]], + ['magenta3_4',['Magenta3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad8a4fa649974fb5c836a14496827fdd5',1,'ftxui::Color']]], + ['magenta3bis_5',['Magenta3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaef7480a93b72c17e8023e9f7c7944b38',1,'ftxui::Color']]], + ['magenta3ter_6',['Magenta3Ter',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac6ab7a76048a843b6eb86c062c216cab',1,'ftxui::Color']]], + ['magentalight_7',['MagentaLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa9663f993a3affdf3526fa032cfe5b9f4',1,'ftxui::Color']]], + ['mediumorchid_8',['MediumOrchid',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa9c685ae3aad1eaad70ff070436be85b3',1,'ftxui::Color']]], + ['mediumorchid1_9',['MediumOrchid1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa13a18f95c27e724ea9a1e7286f42c473',1,'ftxui::Color']]], + ['mediumorchid1bis_10',['MediumOrchid1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa049a7bc19d9cacd4e00232d01f9680e6',1,'ftxui::Color']]], + ['mediumorchid3_11',['MediumOrchid3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa5d8f598938ed69b4f04b843abfadc88b',1,'ftxui::Color']]], + ['mediumpurple_12',['MediumPurple',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa99b482dd24e473ef7ddcbddece67e041',1,'ftxui::Color']]], + ['mediumpurple1_13',['MediumPurple1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaf5552cc28a449506e131c050fef88e89',1,'ftxui::Color']]], + ['mediumpurple2_14',['MediumPurple2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfac3210de935f096669b79a8575e9c4578',1,'ftxui::Color']]], + ['mediumpurple2bis_15',['MediumPurple2Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa50222fd671c2f6a5f81108f8e4b05aa9',1,'ftxui::Color']]], + ['mediumpurple3_16',['MediumPurple3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa6d22ae8ac2c4e98b291f40225a8874e8',1,'ftxui::Color']]], + ['mediumpurple3bis_17',['MediumPurple3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2d0fa96a55bf3d9763b465ecbd72566d',1,'ftxui::Color']]], + ['mediumpurple4_18',['MediumPurple4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae90010fe78fb7605fc25e5e08f07e596',1,'ftxui::Color']]], + ['mediumspringgreen_19',['MediumSpringGreen',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae4e73e4c0464a9ded093be857551d290',1,'ftxui::Color']]], + ['mediumturquoise_20',['MediumTurquoise',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7875d2ea24878490b89176952e9db784',1,'ftxui::Color']]], + ['mediumvioletred_21',['MediumVioletRed',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8ca5789305e4c75d51a3acc1f1b8c0a9',1,'ftxui::Color']]], + ['middle_22',['Middle',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0a673e6efef9aafe98078c5552e99c923c',1,'ftxui::Mouse']]], + ['midletter_23',['MidLetter',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aab681d24011467edf425478fed96fbcde',1,'ftxui']]], + ['midnum_24',['MidNum',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa876e36e8a85514e9c141b2aa3a7bfb5c',1,'ftxui']]], + ['midnumlet_25',['MidNumLet',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa4d4a2ec3c1ff2c647ff25b61136aabff',1,'ftxui']]], + ['mistyrose1_26',['MistyRose1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa11d00787c0df60110d76fc3d098b2c1b',1,'ftxui::Color']]], + ['mistyrose3_27',['MistyRose3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab7afa85f412a5bcede9674099b956a78',1,'ftxui::Color']]], + ['moved_28',['Moved',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6a9bf35ab1cecfbb50d8f1d708a4921fc6',1,'ftxui::Mouse']]] +]; diff --git a/search/enumvalues_c.js b/search/enumvalues_c.js new file mode 100644 index 000000000..fe8cfc4c0 --- /dev/null +++ b/search/enumvalues_c.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['navajowhite1_0',['NavajoWhite1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa78e7bd911b2b1619237ec497cd3727a7',1,'ftxui::Color']]], + ['navajowhite3_1',['NavajoWhite3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa345621aa87c50e806627e1f4a1e50a2',1,'ftxui::Color']]], + ['navyblue_2',['NavyBlue',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0358bb70d298b289263c397f49820844',1,'ftxui::Color']]], + ['newline_3',['Newline',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa755fee300780823fcf4df98383331745',1,'ftxui']]], + ['none_4',['None',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af',1,'ftxui::Mouse']]], + ['nowrap_5',['NoWrap',['../group__dom.html#a6c844a611650cf7e956dbe269a0e72aba93ac740a98eb4cc45b853c780ed16c44',1,'ftxui::FlexboxConfig']]], + ['numeric_6',['Numeric',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa87322391cc6e8948ce9fd5d6cb84fced',1,'ftxui']]] +]; diff --git a/search/enumvalues_d.js b/search/enumvalues_d.js new file mode 100644 index 000000000..954dcd891 --- /dev/null +++ b/search/enumvalues_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['orange1_0',['Orange1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa204b0d328d6009cf3947fee021fd8f9e',1,'ftxui::Color']]], + ['orange3_1',['Orange3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa00cd573911b5b30d18a11a33c6fc522b',1,'ftxui::Color']]], + ['orange4_2',['Orange4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa89cffa8b9f4fee6609397ae4070f9d6d',1,'ftxui::Color']]], + ['orange4bis_3',['Orange4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfad2e88ff3a0d3feeec0b894602de2bdf8',1,'ftxui::Color']]], + ['orangered1_4',['OrangeRed1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa38540818f938e6576a3444b70118dbae',1,'ftxui::Color']]], + ['orchid_5',['Orchid',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2a4b392d52ff5f8074a7ddded3984e75',1,'ftxui::Color']]], + ['orchid1_6',['Orchid1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa8c9438fb930107e9c02fc9418fe1d24a',1,'ftxui::Color']]], + ['orchid2_7',['Orchid2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfadbf13507a7e98310795b8c59c3ec2f92',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_e.js b/search/enumvalues_e.js new file mode 100644 index 000000000..85bf7a447 --- /dev/null +++ b/search/enumvalues_e.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['palegreen1_0',['PaleGreen1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa37e5d9f46ab5a7952f9cdf0a3cc8925',1,'ftxui::Color']]], + ['palegreen1bis_1',['PaleGreen1Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa115628c4a676f43dc9a5791c927e7048',1,'ftxui::Color']]], + ['palegreen3_2',['PaleGreen3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa73f2e82908260a1c80e9cdffd7c80b05',1,'ftxui::Color']]], + ['palegreen3bis_3',['PaleGreen3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa05657d514246de9444d35bfd78da177d',1,'ftxui::Color']]], + ['palette1_4',['Palette1',['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1caf8fee1420fe204b3dafbacf27a545c41',1,'ftxui::Terminal']]], + ['palette16_5',['Palette16',['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1cae5a76102d821ec8233fee04273c60349',1,'ftxui::Terminal']]], + ['palette256_6',['Palette256',['../group__screen.html#ggab87bacfdad76e61b9412d7124be44c1ca7b88ab2a5c8fe8866c96ea4acb623876',1,'ftxui::Terminal']]], + ['paleturquoise1_7',['PaleTurquoise1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2c1b8b84117604af63923758665c0762',1,'ftxui::Color']]], + ['paleturquoise4_8',['PaleTurquoise4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfafebf48dd9c5efb72a880db1800b70cb4',1,'ftxui::Color']]], + ['palevioletred1_9',['PaleVioletRed1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa7b52566a531a122cc807cd5698659f6f',1,'ftxui::Color']]], + ['pink1_10',['Pink1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab1b14b4665532f810353fbd89ba7bf69',1,'ftxui::Color']]], + ['pink3_11',['Pink3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa18d97cfab35116e2049378e4410b0563',1,'ftxui::Color']]], + ['plum1_12',['Plum1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa3c254e3ced4cbe2836a246270317ac1',1,'ftxui::Color']]], + ['plum2_13',['Plum2',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa383cc742bb6efae64c17af4b0159f2f1',1,'ftxui::Color']]], + ['plum3_14',['Plum3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfab2b302d3a548112c82dbe295f1cace40',1,'ftxui::Color']]], + ['plum4_15',['Plum4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa69b6a24bf00f2a9278f12241e176106c',1,'ftxui::Color']]], + ['pressed_16',['Pressed',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25',1,'ftxui::Mouse']]], + ['purple_17',['Purple',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0102772e56e7f068bdb57bf2905f7c09',1,'ftxui::Color']]], + ['purple3_18',['Purple3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa3ba6254f6df4ad7c05ee0be4ccd4bce0',1,'ftxui::Color']]], + ['purple4_19',['Purple4',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfacb508ce5a099dbfa4e04cd59530f7f0c',1,'ftxui::Color']]], + ['purple4bis_20',['Purple4Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa1dfe93e583d4f1a3538c40ce29208e64',1,'ftxui::Color']]], + ['purplebis_21',['PurpleBis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfae855e26440338753abef27e7b999ce5b',1,'ftxui::Color']]] +]; diff --git a/search/enumvalues_f.js b/search/enumvalues_f.js new file mode 100644 index 000000000..00049d44d --- /dev/null +++ b/search/enumvalues_f.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['red_0',['Red',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fad3163c1fcda01965b692ec2c3122b743',1,'ftxui::Color']]], + ['red1_1',['Red1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa62acd44726f02a17ba2a17c1cf253639',1,'ftxui::Color']]], + ['red3_2',['Red3',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa37bd25cf1e1fe1eeb8e4840dbc863dac',1,'ftxui::Color']]], + ['red3bis_3',['Red3Bis',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa2925c3081d309e0d11612a0dcd564379',1,'ftxui::Color']]], + ['redlight_4',['RedLight',['../group__screen.html#ae2b6d9670960e89c66d7b76167a0802fa0a04dda6f997cd48c0ca74203c501d27',1,'ftxui::Color']]], + ['regional_5findicator_5',['Regional_Indicator',['../namespaceftxui.html#a5a8ec19f52346e9aad9dbab9108b968aa7f219844b91c2bb3bdb5fb7ffbdfca72',1,'ftxui']]], + ['released_6',['Released',['../group__component.html#a099c889d2b948b264c7a665b66e3a9b6ad9417ac74f0134b9577d1d85cf422c25',1,'ftxui::Mouse']]], + ['right_7',['Right',['../group__component.html#a03bfec859eac87be20f8952c1eb89de0ad48f7af8c070184f3774c8e85854eb66',1,'ftxui::Mouse::Right'],['../group__dom.html#gga224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c',1,'ftxui::Right']]], + ['rosybrown_8',['RosyBrown',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfaa5104c5c0a54bc5ac1dc83e20c75dbea',1,'ftxui::Color']]], + ['rounded_9',['ROUNDED',['../group__dom.html#ggafe3103dd0b8240c5443892484ef5af9ca655074b92b285adff7d18a45748bf493',1,'ftxui']]], + ['row_10',['Row',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaaa70367aa7cb74e510f4f9413ccf059d3',1,'ftxui::FlexboxConfig']]], + ['rowinversed_11',['RowInversed',['../group__dom.html#a224b9163917ac32fc95a60d8c1eec3aaabba4d6f3a9cec9c96600e3e0d17b9f6a',1,'ftxui::FlexboxConfig']]], + ['royalblue1_12',['RoyalBlue1',['../group__screen.html#abd07c48f62cc507fafa2486a43130fcfa0dbe4adc6031521d77fc91e09f8d3fbf',1,'ftxui::Color']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 000000000..667cd0edc --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['animation_2ecpp_0',['animation.cpp',['../animation_8cpp.html',1,'']]], + ['animation_2ecppm_1',['animation.cppm',['../animation_8cppm.html',1,'']]], + ['animation_2ehpp_2',['animation.hpp',['../animation_8hpp.html',1,'']]], + ['automerge_2ecpp_3',['automerge.cpp',['../automerge_8cpp.html',1,'']]], + ['autoreset_2ecppm_4',['autoreset.cppm',['../autoreset_8cppm.html',1,'']]], + ['autoreset_2ehpp_5',['autoreset.hpp',['../autoreset_8hpp.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 000000000..1a6d3e155 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['blink_2ecpp_0',['blink.cpp',['../blink_8cpp.html',1,'']]], + ['bold_2ecpp_1',['bold.cpp',['../bold_8cpp.html',1,'']]], + ['border_5fcolored_2ecpp_2',['border_colored.cpp',['../border__colored_8cpp.html',1,'']]], + ['border_5fstyle_2ecpp_3',['border_style.cpp',['../border__style_8cpp.html',1,'']]], + ['box_2ecpp_4',['box.cpp',['../box_8cpp.html',1,'']]], + ['box_2ecppm_5',['box.cppm',['../box_8cppm.html',1,'']]], + ['box_2ehpp_6',['box.hpp',['../box_8hpp.html',1,'']]], + ['box_5fhelper_2ecpp_7',['box_helper.cpp',['../box__helper_8cpp.html',1,'']]], + ['box_5fhelper_2ehpp_8',['box_helper.hpp',['../box__helper_8hpp.html',1,'']]], + ['button_5fanimated_2ecpp_9',['button_animated.cpp',['../button__animated_8cpp.html',1,'']]], + ['button_5fin_5fframe_2ecpp_10',['button_in_frame.cpp',['../button__in__frame_8cpp.html',1,'']]], + ['button_5fstyle_2ecpp_11',['button_style.cpp',['../button__style_8cpp.html',1,'']]] +]; diff --git a/search/files_10.js b/search/files_10.js new file mode 100644 index 000000000..7941bfdb0 --- /dev/null +++ b/search/files_10.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['underlined_2ecpp_0',['underlined.cpp',['../underlined_8cpp.html',1,'']]], + ['underlined_5fdouble_2ecpp_1',['underlined_double.cpp',['../underlined__double_8cpp.html',1,'']]], + ['util_2ecppm_2',['util.cppm',['../util_8cppm.html',1,'']]], + ['util_2ehpp_3',['util.hpp',['../util_8hpp.html',1,'']]] +]; diff --git a/search/files_11.js b/search/files_11.js new file mode 100644 index 000000000..718cdf5f1 --- /dev/null +++ b/search/files_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['vbox_2ecpp_0',['vbox.cpp',['../vbox_8cpp.html',1,'']]], + ['vbox_5fhbox_2ecpp_1',['vbox_hbox.cpp',['../vbox__hbox_8cpp.html',1,'']]], + ['vflow_2ecpp_2',['vflow.cpp',['../vflow_8cpp.html',1,'']]] +]; diff --git a/search/files_12.js b/search/files_12.js new file mode 100644 index 000000000..65bfe67d5 --- /dev/null +++ b/search/files_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['warn_5fwindows_5fmacro_2ehpp_0',['warn_windows_macro.hpp',['../warn__windows__macro_8hpp.html',1,'']]], + ['with_5frestored_5fio_2ecpp_1',['with_restored_io.cpp',['../with__restored__io_8cpp.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 000000000..15d7993b9 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['canvas_2ecppm_0',['canvas.cppm',['../canvas_8cppm.html',1,'']]], + ['canvas_2ehpp_1',['canvas.hpp',['../canvas_8hpp.html',1,'']]], + ['canvas_5fanimated_2ecpp_2',['canvas_animated.cpp',['../canvas__animated_8cpp.html',1,'']]], + ['captured_5fmouse_2ecppm_3',['captured_mouse.cppm',['../captured__mouse_8cppm.html',1,'']]], + ['captured_5fmouse_2ehpp_4',['captured_mouse.hpp',['../captured__mouse_8hpp.html',1,'']]], + ['catch_5fevent_2ecpp_5',['catch_event.cpp',['../catch__event_8cpp.html',1,'']]], + ['checkbox_5fin_5fframe_2ecpp_6',['checkbox_in_frame.cpp',['../checkbox__in__frame_8cpp.html',1,'']]], + ['clear_5funder_2ecpp_7',['clear_under.cpp',['../clear__under_8cpp.html',1,'']]], + ['color_2ecppm_8',['color.cppm',['../color_8cppm.html',1,'']]], + ['color_2ehpp_9',['color.hpp',['../color_8hpp.html',1,'']]], + ['color_5fgallery_2ecpp_10',['color_gallery.cpp',['../color__gallery_8cpp.html',1,'']]], + ['color_5finfo_2ecpp_11',['color_info.cpp',['../color__info_8cpp.html',1,'']]], + ['color_5finfo_2ecppm_12',['color_info.cppm',['../color__info_8cppm.html',1,'']]], + ['color_5finfo_2ehpp_13',['color_info.hpp',['../color__info_8hpp.html',1,'']]], + ['color_5finfo_5fpalette256_2ecpp_14',['color_info_palette256.cpp',['../color__info__palette256_8cpp.html',1,'']]], + ['color_5finfo_5fsorted_5f2d_2eipp_15',['color_info_sorted_2d.ipp',['../color__info__sorted__2d_8ipp.html',1,'']]], + ['color_5ftruecolor_5fhsv_2ecpp_16',['color_truecolor_HSV.cpp',['../color__truecolor__HSV_8cpp.html',1,'']]], + ['color_5ftruecolor_5frgb_2ecpp_17',['color_truecolor_RGB.cpp',['../color__truecolor__RGB_8cpp.html',1,'']]], + ['component_2ecpp_18',['component.cpp',['../component_8cpp.html',1,'']]], + ['component_2ecppm_19',['component.cppm',['../component_8cppm.html',1,'']]], + ['component_2ehpp_20',['component.hpp',['../component_8hpp.html',1,'']]], + ['component_2fcomponent_2ecppm_21',['component.cppm',['../component_2component_8cppm.html',1,'']]], + ['component_2futil_2ecpp_22',['util.cpp',['../component_2util_8cpp.html',1,'']]], + ['component_5fbase_2ecppm_23',['component_base.cppm',['../component__base_8cppm.html',1,'']]], + ['component_5fbase_2ehpp_24',['component_base.hpp',['../component__base_8hpp.html',1,'']]], + ['component_5fexamples_2emd_25',['component_examples.md',['../component__examples_8md.html',1,'']]], + ['component_5ffuzzer_2ecpp_26',['component_fuzzer.cpp',['../component__fuzzer_8cpp.html',1,'']]], + ['component_5foptions_2ecpp_27',['component_options.cpp',['../component__options_8cpp.html',1,'']]], + ['component_5foptions_2ecppm_28',['component_options.cppm',['../component__options_8cppm.html',1,'']]], + ['component_5foptions_2ehpp_29',['component_options.hpp',['../component__options_8hpp.html',1,'']]], + ['composite_5fdecorator_2ecpp_30',['composite_decorator.cpp',['../composite__decorator_8cpp.html',1,'']]], + ['composition_2ecpp_31',['composition.cpp',['../composition_8cpp.html',1,'']]], + ['container_2ecpp_32',['container.cpp',['../container_8cpp.html',1,'']]], + ['cpp20_2dmodules_2emd_33',['cpp20-modules.md',['../cpp20-modules_8md.html',1,'']]], + ['custom_5floop_2ecpp_34',['custom_loop.cpp',['../custom__loop_8cpp.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 000000000..7ab3efdef --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['dim_2ecpp_0',['dim.cpp',['../dim_8cpp.html',1,'']]], + ['direction_2ecppm_1',['direction.cppm',['../direction_8cppm.html',1,'']]], + ['direction_2ehpp_2',['direction.hpp',['../direction_8hpp.html',1,'']]], + ['dom_2ecppm_3',['dom.cppm',['../dom_8cppm.html',1,'']]], + ['dom_2fcolor_2ecpp_4',['color.cpp',['../dom_2color_8cpp.html',1,'']]], + ['dom_2fdeprecated_2ecppm_5',['deprecated.cppm',['../dom_2deprecated_8cppm.html',1,'']]], + ['dom_2fdeprecated_2ehpp_6',['deprecated.hpp',['../dom_2deprecated_8hpp.html',1,'']]], + ['dom_2futil_2ecpp_7',['util.cpp',['../dom_2util_8cpp.html',1,'']]], + ['dom_5fexamples_2emd_8',['dom_examples.md',['../dom__examples_8md.html',1,'']]], + ['dropdown_5fcustom_2ecpp_9',['dropdown_custom.cpp',['../dropdown__custom_8cpp.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 000000000..548ca9c21 --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['elements_2ecppm_0',['elements.cppm',['../elements_8cppm.html',1,'']]], + ['elements_2ehpp_1',['elements.hpp',['../elements_8hpp.html',1,'']]], + ['event_2ecpp_2',['event.cpp',['../event_8cpp.html',1,'']]], + ['event_2ecppm_3',['event.cppm',['../event_8cppm.html',1,'']]], + ['event_2ehpp_4',['event.hpp',['../event_8hpp.html',1,'']]], + ['examples_2fcomponent_2fbutton_2ecpp_5',['button.cpp',['../examples_2component_2button_8cpp.html',1,'']]], + ['examples_2fcomponent_2fcheckbox_2ecpp_6',['checkbox.cpp',['../examples_2component_2checkbox_8cpp.html',1,'']]], + ['examples_2fcomponent_2fcollapsible_2ecpp_7',['collapsible.cpp',['../examples_2component_2collapsible_8cpp.html',1,'']]], + ['examples_2fcomponent_2fdropdown_2ecpp_8',['dropdown.cpp',['../examples_2component_2dropdown_8cpp.html',1,'']]], + ['examples_2fcomponent_2ffocus_2ecpp_9',['focus.cpp',['../examples_2component_2focus_8cpp.html',1,'']]], + ['examples_2fcomponent_2finput_2ecpp_10',['input.cpp',['../examples_2component_2input_8cpp.html',1,'']]], + ['examples_2fcomponent_2fmaybe_2ecpp_11',['maybe.cpp',['../examples_2component_2maybe_8cpp.html',1,'']]], + ['examples_2fcomponent_2fmenu_2ecpp_12',['menu.cpp',['../examples_2component_2menu_8cpp.html',1,'']]], + ['examples_2fcomponent_2fradiobox_2ecpp_13',['radiobox.cpp',['../examples_2component_2radiobox_8cpp.html',1,'']]], + ['examples_2fcomponent_2frenderer_2ecpp_14',['renderer.cpp',['../examples_2component_2renderer_8cpp.html',1,'']]], + ['examples_2fcomponent_2fresizable_5fsplit_2ecpp_15',['resizable_split.cpp',['../examples_2component_2resizable__split_8cpp.html',1,'']]], + ['examples_2fcomponent_2fselection_2ecpp_16',['selection.cpp',['../examples_2component_2selection_8cpp.html',1,'']]], + ['examples_2fcomponent_2fslider_2ecpp_17',['slider.cpp',['../examples_2component_2slider_8cpp.html',1,'']]], + ['examples_2fcomponent_2fwindow_2ecpp_18',['window.cpp',['../examples_2component_2window_8cpp.html',1,'']]], + ['examples_2fdom_2fborder_2ecpp_19',['border.cpp',['../examples_2dom_2border_8cpp.html',1,'']]], + ['examples_2fdom_2fcanvas_2ecpp_20',['canvas.cpp',['../examples_2dom_2canvas_8cpp.html',1,'']]], + ['examples_2fdom_2fdbox_2ecpp_21',['dbox.cpp',['../examples_2dom_2dbox_8cpp.html',1,'']]], + ['examples_2fdom_2fgauge_2ecpp_22',['gauge.cpp',['../examples_2dom_2gauge_8cpp.html',1,'']]], + ['examples_2fdom_2fgraph_2ecpp_23',['graph.cpp',['../examples_2dom_2graph_8cpp.html',1,'']]], + ['examples_2fdom_2fgridbox_2ecpp_24',['gridbox.cpp',['../examples_2dom_2gridbox_8cpp.html',1,'']]], + ['examples_2fdom_2flinear_5fgradient_2ecpp_25',['linear_gradient.cpp',['../examples_2dom_2linear__gradient_8cpp.html',1,'']]], + ['examples_2fdom_2fparagraph_2ecpp_26',['paragraph.cpp',['../examples_2dom_2paragraph_8cpp.html',1,'']]], + ['examples_2fdom_2fseparator_2ecpp_27',['separator.cpp',['../examples_2dom_2separator_8cpp.html',1,'']]], + ['examples_2fdom_2fsize_2ecpp_28',['size.cpp',['../examples_2dom_2size_8cpp.html',1,'']]], + ['examples_2fdom_2fspinner_2ecpp_29',['spinner.cpp',['../examples_2dom_2spinner_8cpp.html',1,'']]], + ['examples_2fdom_2ftable_2ecpp_30',['table.cpp',['../examples_2dom_2table_8cpp.html',1,'']]] +]; diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 000000000..91064c685 --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['flex_2ecpp_0',['flex.cpp',['../flex_8cpp.html',1,'']]], + ['flexbox_2ecpp_1',['flexbox.cpp',['../flexbox_8cpp.html',1,'']]], + ['flexbox_5fconfig_2ecpp_2',['flexbox_config.cpp',['../flexbox__config_8cpp.html',1,'']]], + ['flexbox_5fconfig_2ecppm_3',['flexbox_config.cppm',['../flexbox__config_8cppm.html',1,'']]], + ['flexbox_5fconfig_2ehpp_4',['flexbox_config.hpp',['../flexbox__config_8hpp.html',1,'']]], + ['flexbox_5fgallery_2ecpp_5',['flexbox_gallery.cpp',['../flexbox__gallery_8cpp.html',1,'']]], + ['flexbox_5fhelper_2ecpp_6',['flexbox_helper.cpp',['../flexbox__helper_8cpp.html',1,'']]], + ['flexbox_5fhelper_2ehpp_7',['flexbox_helper.hpp',['../flexbox__helper_8hpp.html',1,'']]], + ['focus_5fcursor_2ecpp_8',['focus_cursor.cpp',['../focus__cursor_8cpp.html',1,'']]], + ['frame_2ecpp_9',['frame.cpp',['../frame_8cpp.html',1,'']]], + ['ftxui_2ecppm_10',['ftxui.cppm',['../ftxui_8cppm.html',1,'']]] +]; diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 000000000..bace776d0 --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['gallery_2ecpp_0',['gallery.cpp',['../gallery_8cpp.html',1,'']]], + ['gauge_5fdirection_2ecpp_1',['gauge_direction.cpp',['../gauge__direction_8cpp.html',1,'']]], + ['getting_2dstarted_2emd_2',['getting-started.md',['../getting-started_8md.html',1,'']]] +]; diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 000000000..6ec77cb6a --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['hbox_2ecpp_0',['hbox.cpp',['../hbox_8cpp.html',1,'']]], + ['hflow_2ecpp_1',['hflow.cpp',['../hflow_8cpp.html',1,'']]], + ['homescreen_2ecpp_2',['homescreen.cpp',['../homescreen_8cpp.html',1,'']]], + ['hoverable_2ecpp_3',['hoverable.cpp',['../hoverable_8cpp.html',1,'']]], + ['html_5flike_2ecpp_4',['html_like.cpp',['../html__like_8cpp.html',1,'']]], + ['hyperlink_2ecpp_5',['hyperlink.cpp',['../hyperlink_8cpp.html',1,'']]] +]; diff --git a/search/files_8.js b/search/files_8.js new file mode 100644 index 000000000..f6012983d --- /dev/null +++ b/search/files_8.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['image_2ecpp_0',['image.cpp',['../image_8cpp.html',1,'']]], + ['image_2ecppm_1',['image.cppm',['../image_8cppm.html',1,'']]], + ['image_2ehpp_2',['image.hpp',['../image_8hpp.html',1,'']]], + ['input_5fin_5fframe_2ecpp_3',['input_in_frame.cpp',['../input__in__frame_8cpp.html',1,'']]], + ['input_5fstyle_2ecpp_4',['input_style.cpp',['../input__style_8cpp.html',1,'']]], + ['installation_2emd_5',['installation.md',['../installation_8md.html',1,'']]], + ['installation_5farch_2emd_6',['installation_arch.md',['../installation__arch_8md.html',1,'']]], + ['installation_5fbazel_2emd_7',['installation_bazel.md',['../installation__bazel_8md.html',1,'']]], + ['installation_5fcmake_2emd_8',['installation_cmake.md',['../installation__cmake_8md.html',1,'']]], + ['installation_5fconan_2emd_9',['installation_conan.md',['../installation__conan_8md.html',1,'']]], + ['installation_5fdebian_2emd_10',['installation_debian.md',['../installation__debian_8md.html',1,'']]], + ['installation_5fmanual_2emd_11',['installation_manual.md',['../installation__manual_8md.html',1,'']]], + ['installation_5fnix_2emd_12',['installation_nix.md',['../installation__nix_8md.html',1,'']]], + ['installation_5fopensuse_2emd_13',['installation_opensuse.md',['../installation__opensuse_8md.html',1,'']]], + ['installation_5fvcpkg_2emd_14',['installation_vcpkg.md',['../installation__vcpkg_8md.html',1,'']]], + ['installation_5fxmake_2emd_15',['installation_xmake.md',['../installation__xmake_8md.html',1,'']]], + ['introduction_2emd_16',['introduction.md',['../introduction_8md.html',1,'']]], + ['inverted_2ecpp_17',['inverted.cpp',['../inverted_8cpp.html',1,'']]], + ['italic_2ecpp_18',['italic.cpp',['../italic_8cpp.html',1,'']]] +]; diff --git a/search/files_9.js b/search/files_9.js new file mode 100644 index 000000000..0ba87268a --- /dev/null +++ b/search/files_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['linear_5fgradient_2ecppm_0',['linear_gradient.cppm',['../linear__gradient_8cppm.html',1,'']]], + ['linear_5fgradient_2ehpp_1',['linear_gradient.hpp',['../linear__gradient_8hpp.html',1,'']]], + ['linear_5fgradient_5fgallery_2ecpp_2',['linear_gradient_gallery.cpp',['../linear__gradient__gallery_8cpp.html',1,'']]], + ['loop_2ecpp_3',['loop.cpp',['../loop_8cpp.html',1,'']]], + ['loop_2ecppm_4',['loop.cppm',['../loop_8cppm.html',1,'']]], + ['loop_2ehpp_5',['loop.hpp',['../loop_8hpp.html',1,'']]] +]; diff --git a/search/files_a.js b/search/files_a.js new file mode 100644 index 000000000..fec6192e3 --- /dev/null +++ b/search/files_a.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['menu2_2ecpp_0',['menu2.cpp',['../menu2_8cpp.html',1,'']]], + ['menu_5fentries_2ecpp_1',['menu_entries.cpp',['../menu__entries_8cpp.html',1,'']]], + ['menu_5fentries_5fanimated_2ecpp_2',['menu_entries_animated.cpp',['../menu__entries__animated_8cpp.html',1,'']]], + ['menu_5fin_5fframe_2ecpp_3',['menu_in_frame.cpp',['../menu__in__frame_8cpp.html',1,'']]], + ['menu_5fin_5fframe_5fhorizontal_2ecpp_4',['menu_in_frame_horizontal.cpp',['../menu__in__frame__horizontal_8cpp.html',1,'']]], + ['menu_5fmultiple_2ecpp_5',['menu_multiple.cpp',['../menu__multiple_8cpp.html',1,'']]], + ['menu_5fstyle_2ecpp_6',['menu_style.cpp',['../menu__style_8cpp.html',1,'']]], + ['menu_5funderline_5fanimated_5fgallery_2ecpp_7',['menu_underline_animated_gallery.cpp',['../menu__underline__animated__gallery_8cpp.html',1,'']]], + ['modal_2ecpp_8',['modal.cpp',['../modal_8cpp.html',1,'']]], + ['modal_5fdialog_2ecpp_9',['modal_dialog.cpp',['../modal__dialog_8cpp.html',1,'']]], + ['modal_5fdialog_5fcustom_2ecpp_10',['modal_dialog_custom.cpp',['../modal__dialog__custom_8cpp.html',1,'']]], + ['module_2dcomponent_2emd_11',['module-component.md',['../module-component_8md.html',1,'']]], + ['module_2ddom_2emd_12',['module-dom.md',['../module-dom_8md.html',1,'']]], + ['module_2dscreen_2emd_13',['module-screen.md',['../module-screen_8md.html',1,'']]], + ['module_2emd_14',['module.md',['../module_8md.html',1,'']]], + ['mouse_2ecppm_15',['mouse.cppm',['../mouse_8cppm.html',1,'']]], + ['mouse_2ehpp_16',['mouse.hpp',['../mouse_8hpp.html',1,'']]] +]; diff --git a/search/files_b.js b/search/files_b.js new file mode 100644 index 000000000..7cbf0a043 --- /dev/null +++ b/search/files_b.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['nested_5fscreen_2ecpp_0',['nested_screen.cpp',['../nested__screen_8cpp.html',1,'']]], + ['node_2ecpp_1',['node.cpp',['../node_8cpp.html',1,'']]], + ['node_2ecppm_2',['node.cppm',['../node_8cppm.html',1,'']]], + ['node_2ehpp_3',['node.hpp',['../node_8hpp.html',1,'']]], + ['node_5fdecorator_2ecpp_4',['node_decorator.cpp',['../node__decorator_8cpp.html',1,'']]], + ['node_5fdecorator_2ehpp_5',['node_decorator.hpp',['../node__decorator_8hpp.html',1,'']]] +]; diff --git a/search/files_c.js b/search/files_c.js new file mode 100644 index 000000000..1111c9913 --- /dev/null +++ b/search/files_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['package_5fmanager_2ecpp_0',['package_manager.cpp',['../package__manager_8cpp.html',1,'']]], + ['pixel_2ecppm_1',['pixel.cppm',['../pixel_8cppm.html',1,'']]], + ['pixel_2ehpp_2',['pixel.hpp',['../pixel_8hpp.html',1,'']]], + ['print_5fkey_5fpress_2ecpp_3',['print_key_press.cpp',['../print__key__press_8cpp.html',1,'']]] +]; diff --git a/search/files_d.js b/search/files_d.js new file mode 100644 index 000000000..0b775c667 --- /dev/null +++ b/search/files_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['radiobox_5fin_5fframe_2ecpp_0',['radiobox_in_frame.cpp',['../radiobox__in__frame_8cpp.html',1,'']]], + ['receiver_2ecppm_1',['receiver.cppm',['../receiver_8cppm.html',1,'']]], + ['receiver_2ehpp_2',['receiver.hpp',['../receiver_8hpp.html',1,'']]], + ['ref_2ecppm_3',['ref.cppm',['../ref_8cppm.html',1,'']]], + ['ref_2ehpp_4',['ref.hpp',['../ref_8hpp.html',1,'']]], + ['reflect_2ecpp_5',['reflect.cpp',['../reflect_8cpp.html',1,'']]], + ['requirement_2ecppm_6',['requirement.cppm',['../requirement_8cppm.html',1,'']]], + ['requirement_2ehpp_7',['requirement.hpp',['../requirement_8hpp.html',1,'']]] +]; diff --git a/search/files_e.js b/search/files_e.js new file mode 100644 index 000000000..e72497a16 --- /dev/null +++ b/search/files_e.js @@ -0,0 +1,63 @@ +var searchData= +[ + ['screen_2ecpp_0',['screen.cpp',['../screen_8cpp.html',1,'']]], + ['screen_2ecppm_1',['screen.cppm',['../screen_8cppm.html',1,'']]], + ['screen_2ehpp_2',['screen.hpp',['../screen_8hpp.html',1,'']]], + ['screen_2fcolor_2ecpp_3',['color.cpp',['../screen_2color_8cpp.html',1,'']]], + ['screen_2fdeprecated_2ecppm_4',['deprecated.cppm',['../screen_2deprecated_8cppm.html',1,'']]], + ['screen_2fdeprecated_2ehpp_5',['deprecated.hpp',['../screen_2deprecated_8hpp.html',1,'']]], + ['screen_2fscreen_2ecppm_6',['screen.cppm',['../screen_2screen_8cppm.html',1,'']]], + ['screen_5finteractive_2ecpp_7',['screen_interactive.cpp',['../screen__interactive_8cpp.html',1,'']]], + ['screen_5finteractive_2ecppm_8',['screen_interactive.cppm',['../screen__interactive_8cppm.html',1,'']]], + ['screen_5finteractive_2ehpp_9',['screen_interactive.hpp',['../screen__interactive_8hpp.html',1,'']]], + ['scroll_5findicator_2ecpp_10',['scroll_indicator.cpp',['../scroll__indicator_8cpp.html',1,'']]], + ['scrollbar_2ecpp_11',['scrollbar.cpp',['../scrollbar_8cpp.html',1,'']]], + ['selection_2ecppm_12',['selection.cppm',['../selection_8cppm.html',1,'']]], + ['selection_2ehpp_13',['selection.hpp',['../selection_8hpp.html',1,'']]], + ['selection_5fstyle_2ecpp_14',['selection_style.cpp',['../selection__style_8cpp.html',1,'']]], + ['separator_5fstyle_2ecpp_15',['separator_style.cpp',['../separator__style_8cpp.html',1,'']]], + ['slider_5fdirection_2ecpp_16',['slider_direction.cpp',['../slider__direction_8cpp.html',1,'']]], + ['slider_5frgb_2ecpp_17',['slider_rgb.cpp',['../slider__rgb_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fbutton_2ecpp_18',['button.cpp',['../src_2ftxui_2component_2button_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fcheckbox_2ecpp_19',['checkbox.cpp',['../src_2ftxui_2component_2checkbox_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fcollapsible_2ecpp_20',['collapsible.cpp',['../src_2ftxui_2component_2collapsible_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fdropdown_2ecpp_21',['dropdown.cpp',['../src_2ftxui_2component_2dropdown_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2finput_2ecpp_22',['input.cpp',['../src_2ftxui_2component_2input_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fmaybe_2ecpp_23',['maybe.cpp',['../src_2ftxui_2component_2maybe_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fmenu_2ecpp_24',['menu.cpp',['../src_2ftxui_2component_2menu_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fradiobox_2ecpp_25',['radiobox.cpp',['../src_2ftxui_2component_2radiobox_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2frenderer_2ecpp_26',['renderer.cpp',['../src_2ftxui_2component_2renderer_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fresizable_5fsplit_2ecpp_27',['resizable_split.cpp',['../src_2ftxui_2component_2resizable__split_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fslider_2ecpp_28',['slider.cpp',['../src_2ftxui_2component_2slider_8cpp.html',1,'']]], + ['src_2fftxui_2fcomponent_2fwindow_2ecpp_29',['window.cpp',['../src_2ftxui_2component_2window_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fborder_2ecpp_30',['border.cpp',['../src_2ftxui_2dom_2border_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fcanvas_2ecpp_31',['canvas.cpp',['../src_2ftxui_2dom_2canvas_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fdbox_2ecpp_32',['dbox.cpp',['../src_2ftxui_2dom_2dbox_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2ffocus_2ecpp_33',['focus.cpp',['../src_2ftxui_2dom_2focus_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fgauge_2ecpp_34',['gauge.cpp',['../src_2ftxui_2dom_2gauge_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fgraph_2ecpp_35',['graph.cpp',['../src_2ftxui_2dom_2graph_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fgridbox_2ecpp_36',['gridbox.cpp',['../src_2ftxui_2dom_2gridbox_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2flinear_5fgradient_2ecpp_37',['linear_gradient.cpp',['../src_2ftxui_2dom_2linear__gradient_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fparagraph_2ecpp_38',['paragraph.cpp',['../src_2ftxui_2dom_2paragraph_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fselection_2ecpp_39',['selection.cpp',['../src_2ftxui_2dom_2selection_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fseparator_2ecpp_40',['separator.cpp',['../src_2ftxui_2dom_2separator_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fsize_2ecpp_41',['size.cpp',['../src_2ftxui_2dom_2size_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2fspinner_2ecpp_42',['spinner.cpp',['../src_2ftxui_2dom_2spinner_8cpp.html',1,'']]], + ['src_2fftxui_2fdom_2ftable_2ecpp_43',['table.cpp',['../src_2ftxui_2dom_2table_8cpp.html',1,'']]], + ['strikethrough_2ecpp_44',['strikethrough.cpp',['../strikethrough_8cpp.html',1,'']]], + ['string_2ecpp_45',['string.cpp',['../string_8cpp.html',1,'']]], + ['string_2ecppm_46',['string.cppm',['../string_8cppm.html',1,'']]], + ['string_2ehpp_47',['string.hpp',['../string_8hpp.html',1,'']]], + ['string_5finternal_2ehpp_48',['string_internal.hpp',['../string__internal_8hpp.html',1,'']]], + ['style_5fblink_2ecpp_49',['style_blink.cpp',['../style__blink_8cpp.html',1,'']]], + ['style_5fbold_2ecpp_50',['style_bold.cpp',['../style__bold_8cpp.html',1,'']]], + ['style_5fcolor_2ecpp_51',['style_color.cpp',['../style__color_8cpp.html',1,'']]], + ['style_5fdim_2ecpp_52',['style_dim.cpp',['../style__dim_8cpp.html',1,'']]], + ['style_5fgallery_2ecpp_53',['style_gallery.cpp',['../style__gallery_8cpp.html',1,'']]], + ['style_5fhyperlink_2ecpp_54',['style_hyperlink.cpp',['../style__hyperlink_8cpp.html',1,'']]], + ['style_5finverted_2ecpp_55',['style_inverted.cpp',['../style__inverted_8cpp.html',1,'']]], + ['style_5fitalic_2ecpp_56',['style_italic.cpp',['../style__italic_8cpp.html',1,'']]], + ['style_5fstrikethrough_2ecpp_57',['style_strikethrough.cpp',['../style__strikethrough_8cpp.html',1,'']]], + ['style_5funderlined_2ecpp_58',['style_underlined.cpp',['../style__underlined_8cpp.html',1,'']]], + ['style_5funderlined_5fdouble_2ecpp_59',['style_underlined_double.cpp',['../style__underlined__double_8cpp.html',1,'']]] +]; diff --git a/search/files_f.js b/search/files_f.js new file mode 100644 index 000000000..452ac5930 --- /dev/null +++ b/search/files_f.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['tab_5fhorizontal_2ecpp_0',['tab_horizontal.cpp',['../tab__horizontal_8cpp.html',1,'']]], + ['tab_5fvertical_2ecpp_1',['tab_vertical.cpp',['../tab__vertical_8cpp.html',1,'']]], + ['table_2ecppm_2',['table.cppm',['../table_8cppm.html',1,'']]], + ['table_2ehpp_3',['table.hpp',['../table_8hpp.html',1,'']]], + ['task_2ecpp_4',['task.cpp',['../task_8cpp.html',1,'']]], + ['task_2ecppm_5',['task.cppm',['../task_8cppm.html',1,'']]], + ['task_2ehpp_6',['task.hpp',['../task_8hpp.html',1,'']]], + ['task_5finternal_2ehpp_7',['task_internal.hpp',['../task__internal_8hpp.html',1,'']]], + ['task_5fqueue_2ecpp_8',['task_queue.cpp',['../task__queue_8cpp.html',1,'']]], + ['task_5fqueue_2ehpp_9',['task_queue.hpp',['../task__queue_8hpp.html',1,'']]], + ['task_5frunner_2ecpp_10',['task_runner.cpp',['../task__runner_8cpp.html',1,'']]], + ['task_5frunner_2ehpp_11',['task_runner.hpp',['../task__runner_8hpp.html',1,'']]], + ['terminal_2ecpp_12',['terminal.cpp',['../terminal_8cpp.html',1,'']]], + ['terminal_2ecppm_13',['terminal.cppm',['../terminal_8cppm.html',1,'']]], + ['terminal_2ehpp_14',['terminal.hpp',['../terminal_8hpp.html',1,'']]], + ['terminal_5finput_5fparser_2ecpp_15',['terminal_input_parser.cpp',['../terminal__input__parser_8cpp.html',1,'']]], + ['terminal_5finput_5fparser_2ehpp_16',['terminal_input_parser.hpp',['../terminal__input__parser_8hpp.html',1,'']]], + ['terminal_5finput_5fparser_5ftest_5ffuzzer_2ecpp_17',['terminal_input_parser_test_fuzzer.cpp',['../terminal__input__parser__test__fuzzer_8cpp.html',1,'']]], + ['text_2ecpp_18',['text.cpp',['../text_8cpp.html',1,'']]], + ['textarea_2ecpp_19',['textarea.cpp',['../textarea_8cpp.html',1,'']]], + ['toggle_2ecpp_20',['toggle.cpp',['../toggle_8cpp.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 000000000..a2ea2d4ba --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['active_0',['Active',['../group__component.html#a52beef6d7a687d4d109e6cec1606e32e',1,'ftxui::ComponentBase::Active()'],['../group__component.html#a9dc30615370889030396a239ceee2a77',1,'ftxui::ScreenInteractive::Active()']]], + ['activechild_1',['ActiveChild',['../group__component.html#a5c421f00a2a7f50c542c5c286d2e696c',1,'ftxui::ComponentBase']]], + ['adapter_2',['Adapter',['../classftxui_1_1ConstStringListRef_1_1Adapter.html#aeeff28a487da7a74856b51e966773246',1,'ftxui::ConstStringListRef::Adapter::Adapter()=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#afaf35b0fc91e998543942da0b2b9a3ee',1,'ftxui::ConstStringListRef::Adapter::Adapter(const Adapter &)=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#a5bcc41e3dec29c90da901ab45c95774a',1,'ftxui::ConstStringListRef::Adapter::Adapter(Adapter &&)=default']]], + ['add_3',['Add',['../group__component.html#a21f040bec9104e164bfa6c3ad45be3a1',1,'ftxui::ComponentBase::Add()'],['../classftxui_1_1TerminalInputParser.html#a4b2f1e271dd6ebbf5bad2418d960832a',1,'ftxui::TerminalInputParser::Add()']]], + ['addpart_4',['AddPart',['../group__dom.html#a9887e25feddebbf840876824cb3cbf61',1,'ftxui::Selection']]], + ['align_5fright_5',['align_right',['../group__dom.html#ga778e52afe28f1978f1f7ef065ed92d6d',1,'ftxui']]], + ['angle_6',['Angle',['../group__dom.html#a251d447c54f49914a2cbf5dc16fc8b5b',1,'ftxui::LinearGradient']]], + ['animated_7',['Animated',['../group__component.html#a008018822835ed0f3758af3c6e72837d',1,'ftxui::ButtonOption::Animated()'],['../group__component.html#a1a78fe7bb802251805a3867ba1a31e15',1,'ftxui::ButtonOption::Animated(Color color)'],['../group__component.html#a0295430ca4a317b0cbba9ee5faa4a324',1,'ftxui::ButtonOption::Animated(Color background, Color foreground)'],['../group__component.html#adf705e582d884e89211b540a97f2e090',1,'ftxui::ButtonOption::Animated(Color background, Color foreground, Color background_active, Color foreground_active)']]], + ['animator_8',['Animator',['../classftxui_1_1animation_1_1Animator.html#a03909a0243b559e18e21996ccacdc8b6',1,'ftxui::animation::Animator']]], + ['applyshader_9',['ApplyShader',['../group__screen.html#a04d18c0cb0df3ed7a01ca5c3b8711ff7',1,'ftxui::Screen']]], + ['ascii_10',['Ascii',['../group__component.html#a66e244b326f3cdc7b80ea836c391c34b',1,'ftxui::ButtonOption']]], + ['at_11',['at',['../group__screen.html#a55b0a995463c6936efb33391f29565bc',1,'ftxui::Image::at(int x, int y)'],['../group__screen.html#a0882d58bb8ca1be9953135338456cf9e',1,'ftxui::Image::at(int x, int y) const']]], + ['automerge_12',['automerge',['../group__dom.html#gaca42bd6c44d8d366d5c1014330402086',1,'ftxui']]], + ['autoreset_13',['AutoReset',['../classftxui_1_1AutoReset.html#ae393855d753027bcb3d4d1e1514e6ad4',1,'ftxui::AutoReset::AutoReset(T *variable, T new_value)'],['../classftxui_1_1AutoReset.html#a5280cdbbbecce1de0ae69bfdca10d7ed',1,'ftxui::AutoReset::AutoReset(const AutoReset &)=delete'],['../classftxui_1_1AutoReset.html#aaef5fed3c034c065dfc218244e112a4e',1,'ftxui::AutoReset::AutoReset(AutoReset &&)=delete']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 000000000..b1050bba6 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['backin_0',['BackIn',['../namespaceftxui_1_1animation_1_1easing.html#ae9cca3240dd9f14a807364e322bbdf79',1,'ftxui::animation::easing']]], + ['backinout_1',['BackInOut',['../namespaceftxui_1_1animation_1_1easing.html#a4dfa1e95971ff8e4d0f7539f2e8ae577',1,'ftxui::animation::easing']]], + ['backout_2',['BackOut',['../namespaceftxui_1_1animation_1_1easing.html#a440085789f25b7f3ffa1391f09e154f3',1,'ftxui::animation::easing']]], + ['bgcolor_3',['bgcolor',['../group__dom.html#ga01d4c5aaf0447e862246849111782245',1,'ftxui::bgcolor(Color color)'],['../group__dom.html#gaee41f3eaff28a123214e81231f8f4593',1,'ftxui::bgcolor(const LinearGradient &gradient)'],['../group__dom.html#gaae86eacae0a0626b41e9964ac7f4f532',1,'ftxui::bgcolor(Color color, Element child)'],['../group__dom.html#gaaac1622d43662a6a02113d9230a4fdd4',1,'ftxui::bgcolor(const LinearGradient &gradient, Element child)']]], + ['blend_4',['Blend',['../group__screen.html#a3422660268648b5a260ac94336e7e405',1,'ftxui::Color']]], + ['blink_5',['blink',['../group__dom.html#gad57613de5895e774218d91dea48d074b',1,'ftxui']]], + ['bold_6',['bold',['../group__dom.html#ga353c769068e25303eb41fa2da565c604',1,'ftxui']]], + ['border_7',['Border',['../group__component.html#a2f8ead79a770376a36e9b9b7fa6bc966',1,'ftxui::ButtonOption::Border()'],['../classftxui_1_1TableSelection.html#af47b05e5a3f01cafc419ce94388cae51',1,'ftxui::TableSelection::Border()']]], + ['border_8',['border',['../group__dom.html#gae8537acd423d47cf07e61bd774fb1098',1,'ftxui']]], + ['borderbottom_9',['BorderBottom',['../classftxui_1_1TableSelection.html#ab3efbe517730170703eba50cf23b150d',1,'ftxui::TableSelection']]], + ['borderdashed_10',['borderDashed',['../group__dom.html#ga181c80f8ada12d1356f6bfa0ebb7219f',1,'ftxui']]], + ['borderdouble_11',['borderDouble',['../group__dom.html#ga052b504344f3bc1ff86b3493cd934215',1,'ftxui']]], + ['borderempty_12',['borderEmpty',['../group__dom.html#gaf20f7d6fb275d109f0bdc01a2e4d3f3e',1,'ftxui']]], + ['borderheavy_13',['borderHeavy',['../group__dom.html#ga666c31419cc31cdadc9f8178ed63529e',1,'ftxui']]], + ['borderleft_14',['BorderLeft',['../classftxui_1_1TableSelection.html#a5b822ad80ff44922a9d6551743f64259',1,'ftxui::TableSelection']]], + ['borderlight_15',['borderLight',['../group__dom.html#gaa074cdab57eeb47b99f1699bcc8addd8',1,'ftxui']]], + ['borderright_16',['BorderRight',['../classftxui_1_1TableSelection.html#af36f1d9893a26293f24da431c5a344cc',1,'ftxui::TableSelection']]], + ['borderrounded_17',['borderRounded',['../group__dom.html#ga3cf2db223a5efaa370f0ca6bb405b80e',1,'ftxui']]], + ['borderstyled_18',['borderStyled',['../group__dom.html#gabc9db79957d4dd36deb8ca79938e4c41',1,'ftxui::borderStyled(BorderStyle style)'],['../group__dom.html#ga5aab98b289d2e7b2ce8ca0eeee51ce78',1,'ftxui::borderStyled(BorderStyle style, Color foreground_color)'],['../group__dom.html#gad1dbf36194dcb77674085df9e11c1e22',1,'ftxui::borderStyled(Color foreground_color)']]], + ['bordertop_19',['BorderTop',['../classftxui_1_1TableSelection.html#aa9002be87d1fc0c5c6416b8006a902e4',1,'ftxui::TableSelection']]], + ['borderwith_20',['borderWith',['../group__dom.html#gaa97cfcfbe6df92dac085454395ec7b2f',1,'ftxui']]], + ['bouncein_21',['BounceIn',['../namespaceftxui_1_1animation_1_1easing.html#a3a136fc5aedb4e99e08e5bea138463cb',1,'ftxui::animation::easing']]], + ['bounceinout_22',['BounceInOut',['../namespaceftxui_1_1animation_1_1easing.html#a1a048fdae839f9493331cf1745767519',1,'ftxui::animation::easing']]], + ['bounceout_23',['BounceOut',['../namespaceftxui_1_1animation_1_1easing.html#aba7f60496f13f39385d9a47349e97c09',1,'ftxui::animation::easing']]], + ['button_24',['Button',['../group__component.html#ga4e8295ec77dd31b0acc5063b134473e7',1,'ftxui::Button(ButtonOption option)'],['../group__component.html#ga0488e28ee9388e0ddca26f1d03d827d1',1,'ftxui::Button(ConstStringRef label, std::function< void()> on_click, ButtonOption option)']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 000000000..ec6f20484 --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,66 @@ +var searchData= +[ + ['saturatehorizontal_0',['SaturateHorizontal',['../group__dom.html#af3f2674604d907fbce26d4217cfa9324',1,'ftxui::Selection']]], + ['saturatevertical_1',['SaturateVertical',['../group__dom.html#ace69e1e7c6e64b7ae0c4402e0e1e3336',1,'ftxui::Selection']]], + ['screen_2',['Screen',['../group__screen.html#a7ecf7c5fb3d90a1620098a60cfafc215',1,'ftxui::Screen']]], + ['select_3',['Select',['../group__dom.html#a05352f5a353f1e86630a978060e77305',1,'ftxui::Node']]], + ['select_4',['select',['../namespaceftxui.html#a9e3e2988ed61a129d82d634ad66f7eb1',1,'ftxui']]], + ['selectall_5',['SelectAll',['../group__dom.html#ad5f50927f54334b84514bc4b11a14d71',1,'ftxui::Table']]], + ['selectcell_6',['SelectCell',['../group__dom.html#a3c2f178ef9f94da293a53b467ef8643b',1,'ftxui::Table']]], + ['selectcolumn_7',['SelectColumn',['../group__dom.html#a4ee8ddbab36f592fba81c6430d26545e',1,'ftxui::Table']]], + ['selectcolumns_8',['SelectColumns',['../group__dom.html#a79109565fe65710f725eb474778cae36',1,'ftxui::Table']]], + ['selection_9',['Selection',['../group__dom.html#ade00d4039f147221b9fd6b6b402b43b1',1,'ftxui::Selection::Selection()'],['../group__dom.html#a76eafd8bc098ec9f0405e3b1f6fb42c4',1,'ftxui::Selection::Selection(int start_x, int start_y, int end_x, int end_y)']]], + ['selectionbackgroundcolor_10',['selectionBackgroundColor',['../namespaceftxui.html#a6c965b8f6450a50a938120b5f6ddea96',1,'ftxui']]], + ['selectionchange_11',['SelectionChange',['../group__component.html#ad6daabb2df61b6be6f0b2a8950ac3281',1,'ftxui::ScreenInteractive']]], + ['selectioncolor_12',['selectionColor',['../namespaceftxui.html#a925a73b7f0eb4b5bc11af23f4ca18019',1,'ftxui']]], + ['selectionforegroundcolor_13',['selectionForegroundColor',['../namespaceftxui.html#a5d98498c51cfbc03f37e46d46ec8acf5',1,'ftxui']]], + ['selectionstyle_14',['selectionStyle',['../namespaceftxui.html#a4080865d947eea48cf695531f66a5160',1,'ftxui']]], + ['selectionstylereset_15',['selectionStyleReset',['../namespaceftxui.html#aa7e1317c76cefc5018503de4f6e09ea3',1,'ftxui']]], + ['selectrectangle_16',['SelectRectangle',['../group__dom.html#af0021915d0cbda394077929601b8ab8f',1,'ftxui::Table']]], + ['selectrow_17',['SelectRow',['../group__dom.html#a64435bbfbdefd7408241c69b6b8283e7',1,'ftxui::Table']]], + ['selectrows_18',['SelectRows',['../group__dom.html#ab36d32e3675a9353ee79e84405cd7a44',1,'ftxui::Table']]], + ['send_19',['Send',['../classftxui_1_1SenderImpl.html#af3a961fb9b4025671b6122a392a5bc3f',1,'ftxui::SenderImpl']]], + ['senderimpl_20',['SenderImpl',['../classftxui_1_1SenderImpl.html#a7770521e8bff392402a1539bf4eb8ff4',1,'ftxui::SenderImpl::SenderImpl(const SenderImpl &)=delete'],['../classftxui_1_1SenderImpl.html#a61b3d68c26b829848661ca875b0cdb13',1,'ftxui::SenderImpl::SenderImpl(SenderImpl &&)=delete']]], + ['separator_21',['Separator',['../classftxui_1_1TableSelection.html#ab1c6e11d86131eddb095c8211b824b18',1,'ftxui::TableSelection']]], + ['separator_22',['separator',['../group__dom.html#gac1ef1cf6bf7cd0759ffa195071edb2a0',1,'ftxui::separator()'],['../group__dom.html#ga71d9a6a32f65b6d172f9696b3b9579b4',1,'ftxui::separator(Pixel pixel)']]], + ['separatorcharacter_23',['separatorCharacter',['../group__dom.html#ga97a10482d591aade2958da0f2f19b371',1,'ftxui']]], + ['separatordashed_24',['separatorDashed',['../group__dom.html#ga81f2d3256c0cfbc70f820129286f08c6',1,'ftxui']]], + ['separatordouble_25',['separatorDouble',['../group__dom.html#gadd376830fdb51b0bf52672ef17515989',1,'ftxui']]], + ['separatorempty_26',['separatorEmpty',['../group__dom.html#ga1934703e56ab66f6f259b9f8da331f1b',1,'ftxui']]], + ['separatorheavy_27',['separatorHeavy',['../group__dom.html#gaf0649e89a9960f1c2703e48c1817645b',1,'ftxui']]], + ['separatorhorizontal_28',['SeparatorHorizontal',['../classftxui_1_1TableSelection.html#affd2ab7143cb388fdedad3bd51995802',1,'ftxui::TableSelection']]], + ['separatorhselector_29',['separatorHSelector',['../namespaceftxui.html#a50413065cee4757447b35c3a500667d3',1,'ftxui']]], + ['separatorlight_30',['separatorLight',['../group__dom.html#ga37c2b93daf557f68064bc9fbf93ebde0',1,'ftxui']]], + ['separatorstyled_31',['separatorStyled',['../group__dom.html#ga13cb559cfc7e409b3f211f0bb35ea7fa',1,'ftxui']]], + ['separatorvertical_32',['SeparatorVertical',['../classftxui_1_1TableSelection.html#a2334aed76610138905c96dc298b7e9df',1,'ftxui::TableSelection']]], + ['separatorvselector_33',['separatorVSelector',['../namespaceftxui.html#a1a0211233bacd4eb4d31a8e3d58b5f48',1,'ftxui']]], + ['set_34',['Set',['../group__component.html#ad186d5a36e45174bbc7c50df85c2e91e',1,'ftxui::AnimatedColorOption::Set()'],['../group__dom.html#ae47b5b0d793d0c2312e4805a1f40012a',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::Direction)'],['../group__dom.html#a5afe52066ea76ddc7948b77ac155a011',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::Wrap)'],['../group__dom.html#a3de11197951ee3c9037ba7f2a2586a06',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::JustifyContent)'],['../group__dom.html#a07ef12f61272636369543b34932614f3',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::AlignItems)'],['../group__dom.html#a6df4ec3da7d3d2cd0b216f5d2c72cbd6',1,'ftxui::FlexboxConfig::Set(FlexboxConfig::AlignContent)']]], + ['setactivechild_35',['SetActiveChild',['../group__component.html#a8cbf27680c6154e15c8b32d6601340de',1,'ftxui::ComponentBase::SetActiveChild(ComponentBase *child)'],['../group__component.html#a50ad32ad14dd7912e681fab0ee294be2',1,'ftxui::ComponentBase::SetActiveChild(Component child)']]], + ['setanimation_36',['SetAnimation',['../group__component.html#a754d89398aac6051ced26fd452c62589',1,'ftxui::UnderlineOption']]], + ['setanimationduration_37',['SetAnimationDuration',['../group__component.html#a798360474be7511364b8171f0c62f6d5',1,'ftxui::UnderlineOption']]], + ['setanimationfunction_38',['SetAnimationFunction',['../group__component.html#a34e6222dbf10e899074054160870816c',1,'ftxui::UnderlineOption::SetAnimationFunction(animation::easing::Function f)'],['../group__component.html#a7d978b34c37e9d08c57a22477016204c',1,'ftxui::UnderlineOption::SetAnimationFunction(animation::easing::Function f_leader, animation::easing::Function f_follower)']]], + ['setbox_39',['SetBox',['../group__dom.html#a2ed318aaadb07efc50e76fce1ccf9637',1,'ftxui::Node::SetBox()'],['../classftxui_1_1NodeDecorator.html#aafcc9bd6538ccb37babf4d56c4c1c238',1,'ftxui::NodeDecorator::SetBox()']]], + ['setcolorsupport_40',['SetColorSupport',['../group__dom.html#ga65945a706131f407a47a1b9960dc1a4a',1,'ftxui::Terminal']]], + ['setcursor_41',['SetCursor',['../group__screen.html#a1aa24862a3d050b3aea2ade1300d51a7',1,'ftxui::Screen']]], + ['setfallbacksize_42',['SetFallbackSize',['../namespaceftxui_1_1Terminal.html#a765662bcabb59dc93884674ee2fcc9fc',1,'ftxui::Terminal']]], + ['setgap_43',['SetGap',['../group__dom.html#a98d9a43033c09c7f967cdec791408bad',1,'ftxui::FlexboxConfig']]], + ['setselectionstyle_44',['SetSelectionStyle',['../group__screen.html#aba0d30b90db17d6b7561f704ed63b5e6',1,'ftxui::Screen']]], + ['shift_45',['Shift',['../group__screen.html#a507dad970b4732caab79e5922bdc5fb5',1,'ftxui::Box']]], + ['signal_46',['Signal',['../classftxui_1_1ScreenInteractive_1_1Private.html#aa831d3b9234cd15d4bcb5a42dec43943',1,'ftxui::ScreenInteractive::Private']]], + ['simple_47',['Simple',['../group__component.html#a553fe18f102e8e62aec516d4d3213eac',1,'ftxui::ButtonOption::Simple()'],['../group__component.html#a41b17a916980353033366c01b15d3cb1',1,'ftxui::CheckboxOption::Simple()'],['../group__component.html#af2b048773665961fae6c104762533908',1,'ftxui::RadioboxOption::Simple()']]], + ['sinein_48',['SineIn',['../namespaceftxui_1_1animation_1_1easing.html#af48c179e363c6656e904045b33756aeb',1,'ftxui::animation::easing']]], + ['sineinout_49',['SineInOut',['../namespaceftxui_1_1animation_1_1easing.html#a0eddac1c5f32c9f874ed1c6687a3c830',1,'ftxui::animation::easing']]], + ['sineout_50',['SineOut',['../namespaceftxui_1_1animation_1_1easing.html#a92e397623fa5a607f64ba58d5c3dc56a',1,'ftxui::animation::easing']]], + ['size_51',['Size',['../group__screen.html#gad890c37601448c82ed0d5051c29e2f0c',1,'ftxui::Terminal']]], + ['size_52',['size',['../classftxui_1_1ConstStringListRef_1_1Adapter.html#aa983ddaeded5756189f46428be79c631',1,'ftxui::ConstStringListRef::Adapter::size()'],['../classftxui_1_1ConstStringListRef.html#a259cb5a711406a8c3e5d937eb9350cca',1,'ftxui::ConstStringListRef::size()'],['../group__dom.html#ga201220986fbdc539e42efe067985cbdb',1,'ftxui::size(WidthOrHeight direction, Constraint constraint, int value)']]], + ['slider_53',['Slider',['../namespaceftxui.html#aa3558d992a72679e5e9c9c7b67abd727',1,'ftxui::Slider(SliderOption< T > options)'],['../group__component.html#gafdce74ff1421c2f1bda336c8dacefcbd',1,'ftxui::Slider(ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)'],['../namespaceftxui.html#a8bfa2757905a4fb50e0ec263976d1f96',1,'ftxui::Slider(ConstStringRef label, Ref< float > value, ConstRef< float > min=0.f, ConstRef< float > max=100.f, ConstRef< float > increment=5.f)'],['../namespaceftxui.html#aba34419b025c881c07808816c81c5230',1,'ftxui::Slider(ConstStringRef label, Ref< long > value, ConstRef< long > min=0L, ConstRef< long > max=100L, ConstRef< long > increment=5L)'],['../namespaceftxui.html#a877bf1673c86ac33e24facf81068e693',1,'ftxui::Slider(SliderOption< int8_t >)'],['../namespaceftxui.html#a551dff4f473bdb27fde654341d08c618',1,'ftxui::Slider(SliderOption< int16_t >)'],['../namespaceftxui.html#a8d1ae475487cb22769f127449380925e',1,'ftxui::Slider(SliderOption< int32_t >)'],['../namespaceftxui.html#a217d120bd78c7e5fbe21c60d58f411ba',1,'ftxui::Slider(SliderOption< int64_t >)'],['../namespaceftxui.html#a83667b04778e0206c7c9f05652c9110a',1,'ftxui::Slider(SliderOption< uint8_t >)'],['../namespaceftxui.html#a41e0cb91026c84d8767958a6c3d65d88',1,'ftxui::Slider(SliderOption< uint16_t >)'],['../namespaceftxui.html#a17babf521947301435a4f7c47835032c',1,'ftxui::Slider(SliderOption< uint32_t >)'],['../namespaceftxui.html#a69e9803a9d52936adf22dabd14df4289',1,'ftxui::Slider(SliderOption< uint64_t >)'],['../namespaceftxui.html#a453d7fc2e7bd34b00775062018daf96d',1,'ftxui::Slider(SliderOption< float >)'],['../namespaceftxui.html#a9d64c6ad8cbbae0735eac76e4f4f5811',1,'ftxui::Slider(SliderOption< double >)']]], + ['spacious_54',['Spacious',['../group__component.html#a36c56131167eaaae707f64bbb9d07ef2',1,'ftxui::InputOption']]], + ['special_55',['Special',['../group__component.html#afe901de476c29382cc358333f10e5ee7',1,'ftxui::Event']]], + ['spinner_56',['spinner',['../group__dom.html#ga3b08e0030a0831d3ec3e2a505908273b',1,'ftxui']]], + ['stacked_57',['Stacked',['../group__component.html#gaafd394665b0c231380a143b810339d8e',1,'ftxui::Container']]], + ['stop_58',['Stop',['../group__dom.html#a03b10012f78e1c731616ce760d28df40',1,'ftxui::LinearGradient::Stop(Color color, float position)'],['../group__dom.html#ab85b009cd214d3bd1b3bb7f704af0da6',1,'ftxui::LinearGradient::Stop(Color color)']]], + ['strikethrough_59',['strikethrough',['../group__dom.html#ga8594d70f0491def903370e86132fbf01',1,'ftxui']]], + ['string_5fwidth_60',['string_width',['../namespaceftxui.html#a517b35c7721e632812d8b3a7697c4099',1,'ftxui']]], + ['stringref_61',['StringRef',['../classftxui_1_1StringRef.html#ad3cfa31525e075cbd5f50c2476e665ce',1,'ftxui::StringRef::StringRef(const wchar_t *ref)'],['../classftxui_1_1StringRef.html#a9133717e5c00b480a4a4a120ba7fb886',1,'ftxui::StringRef::StringRef(const char *ref)']]], + ['style_62',['Style',['../group__dom.html#ae9e7d3f5b753cf2650057623960d4cb4',1,'ftxui::Canvas::Style()'],['../examples_2component_2button_8cpp.html#a98e3b8d17caf902b7bf0fe47562cea08',1,'Style(): button.cpp']]] +]; diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 000000000..1226c82b9 --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['tab_0',['Tab',['../group__component.html#gaea9fe244eeeb420276bcc5760b46953d',1,'ftxui::Container']]], + ['table_1',['Table',['../group__dom.html#a2a7f82c625b00a53f710b2ed305248d2',1,'ftxui::Table::Table()'],['../group__dom.html#a2055337c538a82ae13d92db1838fc454',1,'ftxui::Table::Table(std::vector< std::vector< std::string > >)'],['../group__dom.html#acbd904dfec77b46b257e33f9c7d1e71d',1,'ftxui::Table::Table(std::vector< std::vector< Element > >)'],['../group__dom.html#a22a1b5a5b90feb5ebbfe20d7dec5c650',1,'ftxui::Table::Table(std::initializer_list< std::vector< std::string > > init)']]], + ['takefocus_2',['TakeFocus',['../group__component.html#a2cf27e9d7128a6a4b3263ecd34c19105',1,'ftxui::ComponentBase']]], + ['taskrunner_3',['TaskRunner',['../classftxui_1_1task_1_1TaskRunner.html#aa2a63894916e321a8a93add257aad2c7',1,'ftxui::task::TaskRunner']]], + ['terminalinputparser_4',['TerminalInputParser',['../classftxui_1_1TerminalInputParser.html#acbc8ed784fd28db571aece82b20c9855',1,'ftxui::TerminalInputParser']]], + ['terminaloutput_5',['TerminalOutput',['../group__component.html#a0b7de0467b4e57ce5f337ba8634d8d13',1,'ftxui::ScreenInteractive']]], + ['text_6',['Text',['../menu__underline__animated__gallery_8cpp.html#abd88e1b2ce2a860c64bbcd44c0e0282b',1,'menu_underline_animated_gallery.cpp']]], + ['text_7',['text',['../group__dom.html#ga75baaa2734ed76a9f478beaafa87ae57',1,'ftxui::text(std::wstring text)'],['../group__dom.html#ga366051704fd333c23460f7932598a5e3',1,'ftxui::text(std::string text)']]], + ['timeout_8',['Timeout',['../classftxui_1_1TerminalInputParser.html#a9e4aeeff8f55e0b1c7a8f9c282a77823',1,'ftxui::TerminalInputParser']]], + ['to_9',['to',['../classftxui_1_1animation_1_1Animator.html#a5d3b8db14f3f21f9169cfbebf247d854',1,'ftxui::animation::Animator']]], + ['to_5fstring_10',['to_string',['../namespaceftxui.html#a757b345f73bb6cde5165a4d7f0c0a298',1,'ftxui']]], + ['to_5fwstring_11',['to_wstring',['../namespaceftxui.html#a57429a83a46c643a81dee81e49384439',1,'ftxui::to_wstring(const std::string &s)'],['../namespaceftxui.html#a24ea52e8ef70889ef1da986837e0ff34',1,'ftxui::to_wstring(T s)']]], + ['toggle_12',['Toggle',['../group__component.html#a133a8caaf0246db0902f7abce37a9b6d',1,'ftxui::MenuOption::Toggle()'],['../group__component.html#ga3537fccac66b07cd792874c9a6086811',1,'ftxui::Toggle()']]], + ['tostring_13',['ToString',['../group__screen.html#a19c380b03cea21d7ac7325136a131ff0',1,'ftxui::Screen']]], + ['trackmouse_14',['TrackMouse',['../group__component.html#ad5961c1d4caf0ba9a030e5675162a164',1,'ftxui::ScreenInteractive']]], + ['triangle_15',['triangle',['../examples_2dom_2graph_8cpp.html#a5ab45e2cb218468666c7dc7b2b957396',1,'graph.cpp']]] +]; diff --git a/search/functions_12.js b/search/functions_12.js new file mode 100644 index 000000000..a0dd6a182 --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['underlined_0',['underlined',['../group__dom.html#ga5ad450c97c4d084b64ffb5b5ca942664',1,'ftxui']]], + ['underlineddouble_1',['underlinedDouble',['../group__dom.html#ga16d1b74107610750276499ddb3dde8da',1,'ftxui']]], + ['union_2',['Union',['../group__screen.html#adbc0a2693f6a78124076ef53bfd4207e',1,'ftxui::Box']]], + ['utf8toglyphs_3',['Utf8ToGlyphs',['../namespaceftxui.html#a389c58d385e861cd2ef109b53fc6ef96',1,'ftxui']]], + ['utf8towordbreakproperty_4',['Utf8ToWordBreakProperty',['../namespaceftxui.html#ad15724e497f0001e146da530183ca552',1,'ftxui']]] +]; diff --git a/search/functions_13.js b/search/functions_13.js new file mode 100644 index 000000000..0da48bb43 --- /dev/null +++ b/search/functions_13.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['vbox_0',['vbox',['../group__dom.html#gafd28058f0ccbbdf34691a85a7cc9b2e3',1,'ftxui']]], + ['vcenter_1',['vcenter',['../group__dom.html#gad907a8a48bb9f9dfdb06402e9fc12316',1,'ftxui']]], + ['vertical_2',['Vertical',['../group__component.html#a617c59fdb94db99100d0e7a569c31d75',1,'ftxui::MenuOption::Vertical()'],['../group__component.html#ga6471e39f5664d059144746c5801d37e6',1,'ftxui::Container::Vertical(Components children)'],['../group__component.html#ga25099e2d2ead8a46c8d9a899982070b7',1,'ftxui::Container::Vertical(Components children, int *selector)']]], + ['verticalanimated_3',['VerticalAnimated',['../group__component.html#a6079a7637256d70b30aacb92d2034205',1,'ftxui::MenuOption']]], + ['vflow_4',['vflow',['../namespaceftxui.html#ae0da51b614e95a0687727644b5898a23',1,'ftxui']]], + ['vmenu1_5',['VMenu1',['../menu__style_8cpp.html#abc833415e917ac2a93b5a4f35df2f0fb',1,'menu_style.cpp']]], + ['vmenu2_6',['VMenu2',['../menu__style_8cpp.html#ab1c7204fedc90016a50553cdcdc9b58b',1,'menu_style.cpp']]], + ['vmenu3_7',['VMenu3',['../menu__style_8cpp.html#aec99d3a88e71643df15281e0041e44a2',1,'menu_style.cpp']]], + ['vmenu4_8',['VMenu4',['../menu__style_8cpp.html#afc540158e9fcd015af9e24d4ef072214',1,'menu_style.cpp']]], + ['vmenu5_9',['VMenu5',['../menu__style_8cpp.html#a62669e7b3cf3a388a714910a16cce19b',1,'menu_style.cpp']]], + ['vmenu6_10',['VMenu6',['../menu__style_8cpp.html#aeeb06101b3a771616149626f203be146',1,'menu_style.cpp']]], + ['vmenu7_11',['VMenu7',['../menu__style_8cpp.html#af07f6b560af2a9d723b3e53360d280b5',1,'menu_style.cpp']]], + ['vmenu8_12',['VMenu8',['../menu__style_8cpp.html#afade922e195c0cda670066485469de56',1,'menu_style.cpp']]], + ['vscroll_5findicator_13',['vscroll_indicator',['../group__dom.html#ga1974176e676afdb96d203e8e0f579219',1,'ftxui']]], + ['vtext_14',['vtext',['../group__dom.html#ga9f9f7485a45aa9d432726ca9845d1eac',1,'ftxui::vtext(std::wstring text)'],['../group__dom.html#ga64172a43b4b526afeb6313e6e1a6d5a1',1,'ftxui::vtext(std::string text)']]] +]; diff --git a/search/functions_14.js b/search/functions_14.js new file mode 100644 index 000000000..251b04fc7 --- /dev/null +++ b/search/functions_14.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['wchar_5fwidth_0',['wchar_width',['../namespaceftxui.html#a1bb4947f62228380f5c415f69b34021f',1,'ftxui']]], + ['width_1',['width',['../group__dom.html#ad72663daf610f2a0833a2fc3d78e4fdf',1,'ftxui::Canvas']]], + ['window_2',['Window',['../group__component.html#ga638693abef9289912f5fa39606390b20',1,'ftxui::Window()'],['../menu__multiple_8cpp.html#ac2013764d7f0c7eb57876c3755e98bb3',1,'Window(): menu_multiple.cpp']]], + ['window_3',['window',['../group__dom.html#ga03049def08fa7a5eaa4d5e897152bc1a',1,'ftxui']]], + ['withrestoredio_4',['WithRestoredIO',['../group__component.html#af9df2de690486078fea4a7151b83b089',1,'ftxui::ScreenInteractive']]], + ['wrap_5',['Wrap',['../gallery_8cpp.html#a0a320000c5a485508c57030f605b800a',1,'gallery.cpp']]], + ['wstring_5fwidth_6',['wstring_width',['../namespaceftxui.html#adedb4aa528ad2aef48177dea69ca7a9d',1,'ftxui']]] +]; diff --git a/search/functions_15.js b/search/functions_15.js new file mode 100644 index 000000000..7505b2572 --- /dev/null +++ b/search/functions_15.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['xflex_0',['xflex',['../group__dom.html#ga0dbba98e14f63f1dd5163cbdc4f42da8',1,'ftxui']]], + ['xflex_5fgrow_1',['xflex_grow',['../group__dom.html#ga1618cb15307f29eb3d531e7b44c280d3',1,'ftxui']]], + ['xflex_5fshrink_2',['xflex_shrink',['../group__dom.html#ga95275a9271934cf76e970c6650cc224d',1,'ftxui']]], + ['xframe_3',['xframe',['../namespaceftxui.html#a2d0617c0912b732f059cf360ac951c49',1,'ftxui']]] +]; diff --git a/search/functions_16.js b/search/functions_16.js new file mode 100644 index 000000000..ccd47430b --- /dev/null +++ b/search/functions_16.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['yflex_0',['yflex',['../group__dom.html#ga42c7a33df6d890de30fc1ebb2d1b3ca6',1,'ftxui']]], + ['yflex_5fgrow_1',['yflex_grow',['../group__dom.html#ga7eac3f709e905af8f583aed52093b7ce',1,'ftxui']]], + ['yflex_5fshrink_2',['yflex_shrink',['../group__dom.html#gaf7d0757f5965aa579bccc125ff909256',1,'ftxui']]], + ['yframe_3',['yframe',['../namespaceftxui.html#a7ea9d3ceb2a977955125c6e4a6072325',1,'ftxui']]] +]; diff --git a/search/functions_17.js b/search/functions_17.js new file mode 100644 index 000000000..fc9b8c4d1 --- /dev/null +++ b/search/functions_17.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['_7eadapter_0',['~Adapter',['../classftxui_1_1ConstStringListRef_1_1Adapter.html#acc343e0991b39fbf9b66f2faf7cb7f11',1,'ftxui::ConstStringListRef::Adapter']]], + ['_7eautoreset_1',['~AutoReset',['../classftxui_1_1AutoReset.html#ad7e022164fb38a279cca7c6cf478f379',1,'ftxui::AutoReset']]], + ['_7ecapturedmouseinterface_2',['~CapturedMouseInterface',['../classftxui_1_1CapturedMouseInterface.html#af35148d7f798953f8d7e8c1a0e2b2ef0',1,'ftxui::CapturedMouseInterface']]], + ['_7ecomponentbase_3',['~ComponentBase',['../group__component.html#ae490d465a018a9d81bb4e30604708fba',1,'ftxui::ComponentBase']]], + ['_7econstref_4',['~ConstRef',['../classftxui_1_1ConstRef.html#a4ab7aed14f1e68d9be361d5ccfcd4e0f',1,'ftxui::ConstRef']]], + ['_7econststringlistref_5',['~ConstStringListRef',['../classftxui_1_1ConstStringListRef.html#a517a6924cc5fa2fff3e6c08bc504f0fa',1,'ftxui::ConstStringListRef']]], + ['_7eimage_6',['~Image',['../group__screen.html#af7348fef7a61244855ed83dfb1fcbfa1',1,'ftxui::Image']]], + ['_7eloop_7',['~Loop',['../group__component.html#a84c72a09400ffc01ce3257d2109453a2',1,'ftxui::Loop']]], + ['_7enode_8',['~Node',['../group__dom.html#a6fa6bf60f34f1e3efb0e59333428c9c8',1,'ftxui::Node']]], + ['_7eref_9',['~Ref',['../classftxui_1_1Ref.html#a3950a05eee649724ae206d5dd33355f5',1,'ftxui::Ref']]], + ['_7escreen_10',['~Screen',['../group__screen.html#a20d80448fe5bd4ce01dcd821d4d67a5b',1,'ftxui::Screen']]], + ['_7escreeninteractive_11',['~ScreenInteractive',['../group__component.html#a2c4f2d0819fb7afa3ce40cc0e3107053',1,'ftxui::ScreenInteractive']]], + ['_7esenderimpl_12',['~SenderImpl',['../classftxui_1_1SenderImpl.html#ac23f2c8d2bf8c021dcce059afd2c3405',1,'ftxui::SenderImpl']]], + ['_7etaskrunner_13',['~TaskRunner',['../classftxui_1_1task_1_1TaskRunner.html#afab0128a700661663463c90c9a33d71d',1,'ftxui::task::TaskRunner']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 000000000..14882df1c --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,51 @@ +var searchData= +[ + ['canvas_0',['Canvas',['../group__dom.html#a3cbcd839ac8597df2e0f351850ec4735',1,'ftxui::Canvas::Canvas()=default'],['../group__dom.html#a6a78dda2095054ffa03f215f0153bdbb',1,'ftxui::Canvas::Canvas(int width, int height)']]], + ['canvas_1',['canvas',['../namespaceftxui.html#a57d7bdf155e190de514a689abb4e9a35',1,'ftxui::canvas(ConstRef< Canvas > canvas)'],['../namespaceftxui.html#ac781c6530fb74b861af7d52c03ffb2b9',1,'ftxui::canvas(int width, int height, std::function< void(Canvas &)> fn)'],['../namespaceftxui.html#a8bef154e558868d259c52380e1e5ead9',1,'ftxui::canvas(std::function< void(Canvas &)> fn)']]], + ['capturedmouseinterface_2',['CapturedMouseInterface',['../classftxui_1_1CapturedMouseInterface.html#abc72c038150d1866199c28dffe7ace7b',1,'ftxui::CapturedMouseInterface::CapturedMouseInterface()=default'],['../classftxui_1_1CapturedMouseInterface.html#abb21b580f6362d9f5f4d25c6b8ca54cb',1,'ftxui::CapturedMouseInterface::CapturedMouseInterface(const CapturedMouseInterface &)=default'],['../classftxui_1_1CapturedMouseInterface.html#a2f92bdd8e2c098ade383916b8e47b7e0',1,'ftxui::CapturedMouseInterface::CapturedMouseInterface(CapturedMouseInterface &&)=delete']]], + ['capturemouse_3',['CaptureMouse',['../group__component.html#a164d10a2cf367bdd4ae14318a6c7d769',1,'ftxui::ComponentBase::CaptureMouse()'],['../group__component.html#aad61519d291dcc216d2ac618618a45a2',1,'ftxui::ScreenInteractive::CaptureMouse()']]], + ['catchevent_4',['CatchEvent',['../namespaceftxui.html#afa5872ba3f9889c7487e57e745e56857',1,'ftxui::CatchEvent(Component child, std::function< bool(Event)>)'],['../group__component.html#gad2948235799c010c76c6de861c050c59',1,'ftxui::CatchEvent(std::function< bool(Event)> on_event)'],['../group__component.html#ga0bfd67a2815807dc6fc9bc0f79bce29e',1,'ftxui::CatchEvent(Component child, std::function< bool(Event event)> on_event)']]], + ['celltoglyphindex_5',['CellToGlyphIndex',['../namespaceftxui.html#a9769a28baa6a84d5de6a8bd624a29294',1,'ftxui']]], + ['center_6',['center',['../group__dom.html#ga5b11656305fce8427b81daf1c35883f1',1,'ftxui']]], + ['character_7',['Character',['../group__component.html#a769519ed730b72a53a2e770d6ee44365',1,'ftxui::Event::Character(std::string)'],['../group__component.html#a9970fcb99b3c5ed50753111edf1d2cae',1,'ftxui::Event::Character(char)'],['../group__component.html#a2f33d5ea7fca5423861773f891f5ba07',1,'ftxui::Event::Character(wchar_t)']]], + ['character_8',['character',['../group__component.html#a07022c6e92b9144a0e5b337b562f9892',1,'ftxui::Event']]], + ['check_9',['Check',['../group__dom.html#a5b71d891a102197f2856f53702425581',1,'ftxui::Node']]], + ['checkbox_10',['Checkbox',['../group__component.html#gae0d441d2c83740f187f62db566bbefcd',1,'ftxui::Checkbox(CheckboxOption option)'],['../group__component.html#ga5e9dbb03c44d549f10c96f134269366f',1,'ftxui::Checkbox(ConstStringRef label, bool *checked, CheckboxOption option)']]], + ['childat_11',['ChildAt',['../group__component.html#aceb41a98abe10fb0b521ff8b65529b7f',1,'ftxui::ComponentBase']]], + ['childcount_12',['ChildCount',['../group__component.html#a9ae5f77e923e2f0f8b0e26dcd4affb5b',1,'ftxui::ComponentBase']]], + ['circularin_13',['CircularIn',['../namespaceftxui_1_1animation_1_1easing.html#a9af9e9dc6ba657b5ab681eb8be39ddb5',1,'ftxui::animation::easing']]], + ['circularinout_14',['CircularInOut',['../namespaceftxui_1_1animation_1_1easing.html#a0d1df50c1810db4a8b16416b62ac7db0',1,'ftxui::animation::easing']]], + ['circularout_15',['CircularOut',['../namespaceftxui_1_1animation_1_1easing.html#a4188d3f98b876d0e0f181f9fd707f476',1,'ftxui::animation::easing']]], + ['clamp_16',['clamp',['../namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3',1,'ftxui::util']]], + ['clear_17',['Clear',['../group__screen.html#aa71d36872f416feaa853788a7a7a7ef8',1,'ftxui::Image::Clear()'],['../group__screen.html#aa71d36872f416feaa853788a7a7a7ef8',1,'ftxui::Screen::Clear()']]], + ['clear_5funder_18',['clear_under',['../group__dom.html#ga17a89519e6b87e12b1e5811a702f7847',1,'ftxui']]], + ['clone_19',['Clone',['../classftxui_1_1SenderImpl.html#a575817a7bf1afd8bc9af4973e4f38481',1,'ftxui::SenderImpl']]], + ['code_20',['Code',['../print__key__press_8cpp.html#a1bbdd0071095abee0e28134bd4ad9213',1,'print_key_press.cpp']]], + ['codepointtowordbreakproperty_21',['CodepointToWordBreakProperty',['../namespaceftxui.html#a191b3278846ceb6ac35d2e4eb26db759',1,'ftxui']]], + ['collapsible_22',['Collapsible',['../namespaceftxui.html#a760cd5eb9a72c008ca18f1e6b366c796',1,'ftxui']]], + ['color_23',['Color',['../group__screen.html#a1589b83974b42a2f3315624f14c3c92c',1,'ftxui::Color::Color()'],['../group__screen.html#a3c93cb793b88256235f17235c9359b35',1,'ftxui::Color::Color(Palette1 index)'],['../group__screen.html#a55decaa0b2ab846729582f5f7b6acb49',1,'ftxui::Color::Color(Palette16 index)'],['../group__screen.html#a4f2602aacaf27a6482580fea0f7de0d2',1,'ftxui::Color::Color(Palette256 index)'],['../group__screen.html#a92d70d7572b7a07d2af4ff650e272e08',1,'ftxui::Color::Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=255)']]], + ['color_24',['color',['../group__dom.html#gaf61b489da39ca5e24b68e6e1a2b09c0d',1,'ftxui::color(Color c)'],['../group__dom.html#ga8af6b5a06b03fd53bf30a6b050b96968',1,'ftxui::color(const LinearGradient &gradient)'],['../group__dom.html#gadef6e6e66199153de6d3b21b14dcf868',1,'ftxui::color(Color color, Element child)'],['../group__dom.html#ga050df9c8ed04eec13309d6c0542c636d',1,'ftxui::color(const LinearGradient &gradient, Element child)']]], + ['colored_25',['Colored',['../menu__entries_8cpp.html#a12f3ca405f8238e1d03dff81d4cf6997',1,'Colored(ftxui::Color c): menu_entries.cpp'],['../menu__entries__animated_8cpp.html#a12f3ca405f8238e1d03dff81d4cf6997',1,'Colored(ftxui::Color c): menu_entries_animated.cpp']]], + ['colorinfosorted2d_26',['ColorInfoSorted2D',['../color__info__sorted__2d_8ipp.html#a0f08918d6064cd2a0e56cb9ec74033ca',1,'color_info_sorted_2d.ipp']]], + ['colorstring_27',['ColorString',['../slider__rgb_8cpp.html#acfbf512737b012658b0c3b6997da144e',1,'slider_rgb.cpp']]], + ['colorsupport_28',['ColorSupport',['../group__screen.html#gae6e034f37aa66cfe4458a8cb6e8fc526',1,'ftxui::Terminal']]], + ['colortile_29',['ColorTile',['../slider__rgb_8cpp.html#ac5038fb3740e7d9137dfb4969a9a8035',1,'slider_rgb.cpp']]], + ['componentbase_30',['ComponentBase',['../group__component.html#ad2a5b6ce11bc7a8ce1150cf0ba9144c0',1,'ftxui::ComponentBase::ComponentBase(Components children)'],['../group__component.html#acda4c8b63ffbc2e9e2e28f056edbf01c',1,'ftxui::ComponentBase::ComponentBase()=default'],['../group__component.html#abd8cf6a9df5eb4678fb9925b686c7aea',1,'ftxui::ComponentBase::ComponentBase(const ComponentBase &)=delete'],['../group__component.html#a9b3cf357cf150023641969d5fcb7d08f',1,'ftxui::ComponentBase::ComponentBase(ComponentBase &&)=delete']]], + ['compute_31',['Compute',['../namespaceftxui_1_1box__helper.html#aede4ed6e71fbe0689a500ff8db06f3a3',1,'ftxui::box_helper::Compute()'],['../namespaceftxui_1_1flexbox__helper.html#aaf9df834cf83e439dd0e74cb1999c83d',1,'ftxui::flexbox_helper::Compute()']]], + ['computerequirement_32',['ComputeRequirement',['../group__dom.html#a40bd818c5de23bb2d208360d275ae59d',1,'ftxui::Node::ComputeRequirement()'],['../classftxui_1_1NodeDecorator.html#ac68a91492bfe8a6dd7ea2b3f7f295720',1,'ftxui::NodeDecorator::ComputeRequirement()']]], + ['constref_33',['ConstRef',['../classftxui_1_1ConstRef.html#a2949426897a0bd427771597c7cc34f08',1,'ftxui::ConstRef::ConstRef()=default'],['../classftxui_1_1ConstRef.html#aa33f2e3c9020518540c2850c7ad2669f',1,'ftxui::ConstRef::ConstRef(T t)'],['../classftxui_1_1ConstRef.html#a7dde5cd8bdbcd4c83a7b3bbddfc31bd9',1,'ftxui::ConstRef::ConstRef(const T *t)'],['../classftxui_1_1ConstRef.html#a184e14dab2e9bca47f7d172ca7126c60',1,'ftxui::ConstRef::ConstRef(const ConstRef< T > &)=default'],['../classftxui_1_1ConstRef.html#aa89dd79143a428e57480cda1cc7b675e',1,'ftxui::ConstRef::ConstRef(ConstRef< T > &&) noexcept=default']]], + ['conststringlistref_34',['ConstStringListRef',['../classftxui_1_1ConstStringListRef.html#a425bc6a013bf3a539794b7a874fc722f',1,'ftxui::ConstStringListRef::ConstStringListRef()=default'],['../classftxui_1_1ConstStringListRef.html#a4d5f9a6302f997c4ef51b36370b84042',1,'ftxui::ConstStringListRef::ConstStringListRef(ConstStringListRef &&)=default'],['../classftxui_1_1ConstStringListRef.html#abfb65b9a4a2648e7b9f110cecefa57a4',1,'ftxui::ConstStringListRef::ConstStringListRef(const ConstStringListRef &)=default'],['../classftxui_1_1ConstStringListRef.html#a143d850d76c8d8f8b4f8750c94ce1a52',1,'ftxui::ConstStringListRef::ConstStringListRef(std::vector< std::string > value)'],['../classftxui_1_1ConstStringListRef.html#a1dea39816b5515bb126f980ed0839d63',1,'ftxui::ConstStringListRef::ConstStringListRef(const std::vector< std::string > *value)'],['../classftxui_1_1ConstStringListRef.html#a8f2ca283f552f4cdd835401e3b177b4a',1,'ftxui::ConstStringListRef::ConstStringListRef(const std::vector< std::wstring > *value)'],['../classftxui_1_1ConstStringListRef.html#ae1af1937e833f81fe7013261ec0ee1ef',1,'ftxui::ConstStringListRef::ConstStringListRef(Adapter *adapter)'],['../classftxui_1_1ConstStringListRef.html#a79bb658d6bae69e91da078978d5ded33',1,'ftxui::ConstStringListRef::ConstStringListRef(std::unique_ptr< AdapterType > adapter)']]], + ['conststringref_35',['ConstStringRef',['../classftxui_1_1ConstStringRef.html#a9a4560dc18026ec3753e87d569fa5103',1,'ftxui::ConstStringRef::ConstStringRef(const std::wstring *ref)'],['../classftxui_1_1ConstStringRef.html#a1e8c54776eada9969ebbadb21d8e689a',1,'ftxui::ConstStringRef::ConstStringRef(const std::wstring ref)'],['../classftxui_1_1ConstStringRef.html#ad8b24bac5669d8787ac2109068094938',1,'ftxui::ConstStringRef::ConstStringRef(const wchar_t *ref)'],['../classftxui_1_1ConstStringRef.html#a013cd384d028ab8f67fa4cf8e9c521cd',1,'ftxui::ConstStringRef::ConstStringRef(const char *ref)']]], + ['contain_36',['Contain',['../group__screen.html#a2f31c89738607b84e65992a7005d35a9',1,'ftxui::Box']]], + ['create_37',['Create',['../group__screen.html#a32b98be0603ace46d6dc9d05b330a9fd',1,'ftxui::Screen::Create(Dimensions dimension)'],['../group__screen.html#a29a8d230cd1913d26626158fc4fc0a0c',1,'ftxui::Screen::Create(Dimensions width, Dimensions height)']]], + ['cubicin_38',['CubicIn',['../namespaceftxui_1_1animation_1_1easing.html#a2288ba740a847ea0e565017cb16c24f2',1,'ftxui::animation::easing']]], + ['cubicinout_39',['CubicInOut',['../namespaceftxui_1_1animation_1_1easing.html#a2aa1d45766fe10c3b16b7dd4f65db859',1,'ftxui::animation::easing']]], + ['cubicout_40',['CubicOut',['../namespaceftxui_1_1animation_1_1easing.html#acd3c619812de25f3613b36735a5cdc91',1,'ftxui::animation::easing']]], + ['current_41',['Current',['../classftxui_1_1task_1_1TaskRunner.html#a4e90ab04a37a29bb0e3432d1290a4565',1,'ftxui::task::TaskRunner']]], + ['cursor_42',['cursor',['../group__screen.html#a94febaac347b83267ff6a10b7837d612',1,'ftxui::Screen']]], + ['cursor_5fshape_43',['cursor_shape',['../group__component.html#a022c841864c305d5e3ef69f6957dc367',1,'ftxui::Event']]], + ['cursor_5fx_44',['cursor_x',['../group__component.html#a1ef75084a5f2a9d26df8cafcf048526e',1,'ftxui::Event']]], + ['cursor_5fy_45',['cursor_y',['../group__component.html#a1a24372c00e6485f2648350df4301ae3',1,'ftxui::Event']]], + ['cursorposition_46',['CursorPosition',['../group__component.html#acef096fb0273c844877408912445988c',1,'ftxui::Event']]], + ['cursorshape_47',['CursorShape',['../group__component.html#a0e2ede93a1146707a4f5e540056e13bc',1,'ftxui::Event']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 000000000..375fa2414 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['dbox_0',['dbox',['../group__dom.html#ga901ab1b6b2e0e8c295552168ab206441',1,'ftxui']]], + ['debugstring_1',['DebugString',['../group__component.html#a764be64f3029f8b8e23511061d8de355',1,'ftxui::Event']]], + ['decorate_2',['Decorate',['../classftxui_1_1TableSelection.html#a8e7e9329ee7f557eef6d037fef8003e0',1,'ftxui::TableSelection']]], + ['decoratealternatecolumn_3',['DecorateAlternateColumn',['../classftxui_1_1TableSelection.html#a00b7d84571ed47043e55cd879ed851a3',1,'ftxui::TableSelection']]], + ['decoratealternaterow_4',['DecorateAlternateRow',['../classftxui_1_1TableSelection.html#a9cadee0ff95e66e2ca90e15648ad592d',1,'ftxui::TableSelection']]], + ['decoratecells_5',['DecorateCells',['../classftxui_1_1TableSelection.html#a335808a6c8beb4744bfe91b359ebf0bb',1,'ftxui::TableSelection']]], + ['decoratecellsalternatecolumn_6',['DecorateCellsAlternateColumn',['../classftxui_1_1TableSelection.html#a751593eb3bc2e704eb6667ed518f614e',1,'ftxui::TableSelection']]], + ['decoratecellsalternaterow_7',['DecorateCellsAlternateRow',['../classftxui_1_1TableSelection.html#ac2810f38a5f722916f364f354c204cb7',1,'ftxui::TableSelection']]], + ['default_8',['Default',['../group__component.html#a2108670f055ede2fdc4993f6ffc8ff07',1,'ftxui::InputOption']]], + ['detach_9',['Detach',['../group__component.html#abb7a2b60240651d16e17d02eb6f636cf',1,'ftxui::ComponentBase']]], + ['detachallchildren_10',['DetachAllChildren',['../group__component.html#a84bd6480cf5e8f51cf5965f81b1f2460',1,'ftxui::ComponentBase']]], + ['dim_11',['dim',['../group__dom.html#gac6a3b77604739516e809369810896646',1,'ftxui']]], + ['dimx_12',['dimx',['../group__screen.html#ae7a460c9dacd70ed81b1adfea46b492e',1,'ftxui::Image']]], + ['dimy_13',['dimy',['../group__screen.html#a0d283cfb1ec16b3fc13d344ebfea93d4',1,'ftxui::Image']]], + ['drawblock_14',['DrawBlock',['../group__dom.html#ae38b2e4f5bcda94c060bb77779d1e339',1,'ftxui::Canvas::DrawBlock(int x, int y, bool value)'],['../group__dom.html#a0a51b12eb4089c9a3afb8d3052599b98',1,'ftxui::Canvas::DrawBlock(int x, int y, bool value, const Stylizer &s)'],['../group__dom.html#ab5717755b773771ef642e9e774dbb1a0',1,'ftxui::Canvas::DrawBlock(int x, int y, bool value, const Color &color)']]], + ['drawblockcircle_15',['DrawBlockCircle',['../group__dom.html#ac3977d4b06ca96ff799a3b72437c8a0b',1,'ftxui::Canvas::DrawBlockCircle(int x1, int y1, int radius)'],['../group__dom.html#a685bec108334c6a43ceb5ca8a0666cd7',1,'ftxui::Canvas::DrawBlockCircle(int x1, int y1, int radius, const Stylizer &s)'],['../group__dom.html#ab2bf509dc9519bd9f76a7721b5b152bf',1,'ftxui::Canvas::DrawBlockCircle(int x1, int y1, int radius, const Color &color)']]], + ['drawblockcirclefilled_16',['DrawBlockCircleFilled',['../group__dom.html#acffdcd5bae224992e155facb0baf4119',1,'ftxui::Canvas::DrawBlockCircleFilled(int x1, int y1, int radius)'],['../group__dom.html#a60a31c3685d296333e594feb8ec04c48',1,'ftxui::Canvas::DrawBlockCircleFilled(int x1, int y1, int radius, const Stylizer &s)'],['../group__dom.html#a70cd877698afe354ca070c6b93ef3847',1,'ftxui::Canvas::DrawBlockCircleFilled(int x1, int y1, int radius, const Color &color)']]], + ['drawblockellipse_17',['DrawBlockEllipse',['../group__dom.html#a8dd75f2dfc5bef37aa2c8bc8cfaf0579',1,'ftxui::Canvas::DrawBlockEllipse(int x1, int y1, int r1, int r2)'],['../group__dom.html#ac53509c067c979cc6ec766b4db8e6e2c',1,'ftxui::Canvas::DrawBlockEllipse(int x1, int y1, int r1, int r2, const Stylizer &s)'],['../group__dom.html#a0916ab1d55ac16c158571d135893e88a',1,'ftxui::Canvas::DrawBlockEllipse(int x1, int y1, int r1, int r2, const Color &color)']]], + ['drawblockellipsefilled_18',['DrawBlockEllipseFilled',['../group__dom.html#a78dc3c908f7ce1c30837bd3043f19526',1,'ftxui::Canvas::DrawBlockEllipseFilled(int x1, int y1, int r1, int r2)'],['../group__dom.html#aa3f717282aab0cee9835503ef1eb6f1b',1,'ftxui::Canvas::DrawBlockEllipseFilled(int x1, int y1, int r1, int r2, const Stylizer &s)'],['../group__dom.html#a616781dd82158e306ebf71d87283e6f8',1,'ftxui::Canvas::DrawBlockEllipseFilled(int x1, int y1, int r1, int r2, const Color &color)']]], + ['drawblockline_19',['DrawBlockLine',['../group__dom.html#a182a915a7e3fc863f5c222253de01ff1',1,'ftxui::Canvas::DrawBlockLine(int x1, int y1, int x2, int y2)'],['../group__dom.html#a2911f015b5085dd2f74a4f88910eabe3',1,'ftxui::Canvas::DrawBlockLine(int x1, int y1, int x2, int y2, const Stylizer &s)'],['../group__dom.html#a8543417c0289090a5eefb2d6fcd521fc',1,'ftxui::Canvas::DrawBlockLine(int x1, int y1, int x2, int y2, const Color &color)']]], + ['drawblockoff_20',['DrawBlockOff',['../group__dom.html#ad626747e5e54412d0376ba870565dce6',1,'ftxui::Canvas']]], + ['drawblockon_21',['DrawBlockOn',['../group__dom.html#a43cd60e79e418d3173e757a1809fde09',1,'ftxui::Canvas']]], + ['drawblocktoggle_22',['DrawBlockToggle',['../group__dom.html#ab4154641384d18497de60c2626b71a94',1,'ftxui::Canvas']]], + ['drawimage_23',['DrawImage',['../group__dom.html#a02b6e8bab532a2c43d3102674e1e1647',1,'ftxui::Canvas']]], + ['drawpixel_24',['DrawPixel',['../group__dom.html#afde1b1962124ef417569bef59c6dcdcc',1,'ftxui::Canvas']]], + ['drawpoint_25',['DrawPoint',['../group__dom.html#a8707f2585ed8b787b6b14032a5c761a1',1,'ftxui::Canvas::DrawPoint(int x, int y, bool value)'],['../group__dom.html#a356677acf431f88673b59526f290eb0c',1,'ftxui::Canvas::DrawPoint(int x, int y, bool value, const Stylizer &s)'],['../group__dom.html#ab89d4e0bd8bf78ba40dde08cd5779fa7',1,'ftxui::Canvas::DrawPoint(int x, int y, bool value, const Color &color)']]], + ['drawpointcircle_26',['DrawPointCircle',['../group__dom.html#ad21641f8f1fd60aa5f1d149379eba3eb',1,'ftxui::Canvas::DrawPointCircle(int x, int y, int radius)'],['../group__dom.html#a644133eccde18caeaf06e5b7fdb5ef51',1,'ftxui::Canvas::DrawPointCircle(int x, int y, int radius, const Stylizer &s)'],['../group__dom.html#adcc98793cdb931c3438b5ec35ed7a0dd',1,'ftxui::Canvas::DrawPointCircle(int x, int y, int radius, const Color &color)']]], + ['drawpointcirclefilled_27',['DrawPointCircleFilled',['../group__dom.html#a5b6388d2515edcfb6c88a39ea56805b2',1,'ftxui::Canvas::DrawPointCircleFilled(int x, int y, int radius)'],['../group__dom.html#af7a213e8dbed8debae0155f1b707fd74',1,'ftxui::Canvas::DrawPointCircleFilled(int x, int y, int radius, const Stylizer &s)'],['../group__dom.html#adace7c348090660c1a6a5fffce18b7d2',1,'ftxui::Canvas::DrawPointCircleFilled(int x, int y, int radius, const Color &color)']]], + ['drawpointellipse_28',['DrawPointEllipse',['../group__dom.html#a79ee88b3cfe258309041469f707dcf68',1,'ftxui::Canvas::DrawPointEllipse(int x, int y, int r1, int r2)'],['../group__dom.html#a6926683a29ff97d77e40ae533bb51eed',1,'ftxui::Canvas::DrawPointEllipse(int x, int y, int r1, int r2, const Color &color)'],['../group__dom.html#acdafc386934cf7e11b529c0c38b788a3',1,'ftxui::Canvas::DrawPointEllipse(int x, int y, int r1, int r2, const Stylizer &s)']]], + ['drawpointellipsefilled_29',['DrawPointEllipseFilled',['../group__dom.html#a2633b8a556a82c74438fe41b253b39ee',1,'ftxui::Canvas::DrawPointEllipseFilled(int x, int y, int r1, int r2)'],['../group__dom.html#a395ec10a91d15be650afddcb85757945',1,'ftxui::Canvas::DrawPointEllipseFilled(int x, int y, int r1, int r2, const Color &color)'],['../group__dom.html#a22ec58bdf5a3578ce68c52ace9324fb6',1,'ftxui::Canvas::DrawPointEllipseFilled(int x, int y, int r1, int r2, const Stylizer &s)']]], + ['drawpointline_30',['DrawPointLine',['../group__dom.html#a2b6800c9a6a93457a921d9b570fb2f30',1,'ftxui::Canvas::DrawPointLine(int x1, int y1, int x2, int y2)'],['../group__dom.html#a4eb34a7688220b3b8ad274ff9d0f3649',1,'ftxui::Canvas::DrawPointLine(int x1, int y1, int x2, int y2, const Stylizer &s)'],['../group__dom.html#a6a3d2396239afce89f1cda3c69665095',1,'ftxui::Canvas::DrawPointLine(int x1, int y1, int x2, int y2, const Color &color)']]], + ['drawpointoff_31',['DrawPointOff',['../group__dom.html#a64ad8a12830a3341d4a5afb380913474',1,'ftxui::Canvas']]], + ['drawpointon_32',['DrawPointOn',['../group__dom.html#a5f488ea43e72f25cc25d055bf18dac5b',1,'ftxui::Canvas']]], + ['drawpointtoggle_33',['DrawPointToggle',['../group__dom.html#afd64176f05f91df2d96e8f3bb0631c51',1,'ftxui::Canvas']]], + ['drawtext_34',['DrawText',['../group__dom.html#a3791777bd6d3c6f8ff6281efd19a5161',1,'ftxui::Canvas::DrawText(int x, int y, const std::string &value)'],['../group__dom.html#a389991302f9a1d5554eff24b48d6b6ec',1,'ftxui::Canvas::DrawText(int x, int y, const std::string &value, const Color &color)'],['../group__dom.html#a648ed3b48973ac1dc58ca22d54ecf6af',1,'ftxui::Canvas::DrawText(int x, int y, const std::string &value, const Stylizer &style)']]], + ['dropdown_35',['Dropdown',['../group__component.html#gaa22bddff4aeed66e20f30d0715596999',1,'ftxui::Dropdown(ConstStringListRef entries, int *selected)'],['../group__component.html#gaa4b353566017558bac648ee1409930de',1,'ftxui::Dropdown(DropdownOption option)']]], + ['dummycomponent_36',['DummyComponent',['../menu__underline__animated__gallery_8cpp.html#a488a81f58d76f17bf95ef222f68e0dfe',1,'menu_underline_animated_gallery.cpp']]], + ['dummywindowcontent_37',['DummyWindowContent',['../scrollbar_8cpp.html#a83db372d294b69185f7a26148935cfc3',1,'DummyWindowContent(): scrollbar.cpp'],['../examples_2component_2window_8cpp.html#a83db372d294b69185f7a26148935cfc3',1,'DummyWindowContent(): window.cpp']]], + ['duration_38',['duration',['../classftxui_1_1animation_1_1Params.html#a2cf2e0a4288915aee8f100d2f0ee3e50',1,'ftxui::animation::Params']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 000000000..e1b058ca7 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['eatcodepoint_0',['EatCodePoint',['../namespaceftxui.html#a903cd2e24b3b7cf8d7d4daa680e0a8d5',1,'ftxui::EatCodePoint(const std::string &input, size_t start, size_t *end, uint32_t *ucs)'],['../namespaceftxui.html#a88b8b2f726acaf2aca140a403989d8d0',1,'ftxui::EatCodePoint(const std::wstring &input, size_t start, size_t *end, uint32_t *ucs)']]], + ['elasticin_1',['ElasticIn',['../namespaceftxui_1_1animation_1_1easing.html#a0cc4cc8d40617d7b21dea78f71917bbc',1,'ftxui::animation::easing']]], + ['elasticinout_2',['ElasticInOut',['../namespaceftxui_1_1animation_1_1easing.html#a537ce88e07af5658175f95eb70369fb9',1,'ftxui::animation::easing']]], + ['elasticout_3',['ElasticOut',['../namespaceftxui_1_1animation_1_1easing.html#ad771aec6f0170cb9039446699d1d2295',1,'ftxui::animation::easing']]], + ['empty_4',['Empty',['../examples_2component_2collapsible_8cpp.html#aacbbfcb3c5bc93d26a5c681172e27eae',1,'collapsible.cpp']]], + ['emptyelement_5',['emptyElement',['../group__dom.html#ga40451515a5b3049e7a1276cad8b9356c',1,'ftxui']]], + ['executedtasks_6',['ExecutedTasks',['../classftxui_1_1task_1_1TaskRunner.html#aab6716a5f504f5985e73fb6d2b0dd677',1,'ftxui::task::TaskRunner']]], + ['exit_7',['Exit',['../group__component.html#a1a6a7739e9cc01ba888b57d1f9457f4c',1,'ftxui::ScreenInteractive']]], + ['exitloopclosure_8',['ExitLoopClosure',['../group__component.html#ae295157a88e6300609df83769ed885f2',1,'ftxui::ScreenInteractive']]], + ['exponentialin_9',['ExponentialIn',['../namespaceftxui_1_1animation_1_1easing.html#ab0ca381749febbe74887c9fff0522434',1,'ftxui::animation::easing']]], + ['exponentialinout_10',['ExponentialInOut',['../namespaceftxui_1_1animation_1_1easing.html#a502f9e65e97d295f46c6a6435a84464d',1,'ftxui::animation::easing']]], + ['exponentialout_11',['ExponentialOut',['../namespaceftxui_1_1animation_1_1easing.html#a9de59af8a36489121dace3f2a996f029',1,'ftxui::animation::easing']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 000000000..275fcebe2 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['filler_0',['filler',['../group__dom.html#gac2a9ed2d22ec3c8811b61f4a901ed367',1,'ftxui']]], + ['fit_1',['Fit',['../namespaceftxui_1_1Dimension.html#aee138f0b60ddc07682a785f55eb5fda6',1,'ftxui::Dimension']]], + ['fitcomponent_2',['FitComponent',['../group__component.html#a4f458e443ed672c2aea9fdd96531a621',1,'ftxui::ScreenInteractive']]], + ['fixed_3',['Fixed',['../namespaceftxui_1_1Dimension.html#a36e539ed36f88d7f01233974da485937',1,'ftxui::Dimension']]], + ['fixedsize_4',['FixedSize',['../group__component.html#a267cfc2d693fa96a82ae74029214d02e',1,'ftxui::ScreenInteractive']]], + ['flex_5',['flex',['../group__dom.html#ga257acd2bd47bab7db879cca2c0e67e23',1,'ftxui']]], + ['flex_5fgrow_6',['flex_grow',['../group__dom.html#ga81ed6b31f512e849247f13d249f6f20e',1,'ftxui']]], + ['flex_5fshrink_7',['flex_shrink',['../group__dom.html#ga4629196b5ffc280054d35f2a9977e829',1,'ftxui']]], + ['flexbox_8',['flexbox',['../namespaceftxui.html#a168a235aa438b6c72df5861322154be3',1,'ftxui']]], + ['focus_9',['focus',['../group__dom.html#gaa2d7d671f184f85e0f396f2610fa6c2e',1,'ftxui']]], + ['focusable_10',['Focusable',['../group__component.html#a02ccd3db74312f1c66aa8e7931489318',1,'ftxui::ComponentBase']]], + ['focuscursorbar_11',['focusCursorBar',['../group__dom.html#ga4f89e72e7001064e3eb8189c8317e95b',1,'ftxui']]], + ['focuscursorbarblinking_12',['focusCursorBarBlinking',['../group__dom.html#ga085a7c997e7364c5a54e73c7b84145db',1,'ftxui']]], + ['focuscursorblock_13',['focusCursorBlock',['../group__dom.html#ga509ef7e7f8913ea3de7efd45e3301ea1',1,'ftxui']]], + ['focuscursorblockblinking_14',['focusCursorBlockBlinking',['../group__dom.html#gadda589914ba8fe863c905b6566557768',1,'ftxui']]], + ['focuscursorunderline_15',['focusCursorUnderline',['../group__dom.html#ga61e1fe02a18c2b18e31ccc9cd3943823',1,'ftxui']]], + ['focuscursorunderlineblinking_16',['focusCursorUnderlineBlinking',['../group__dom.html#ga33637d59d1e52aa06dd2a94162adbfe9',1,'ftxui']]], + ['focused_17',['Focused',['../group__component.html#a0cc612fa3d753b456e0f480f44654a9f',1,'ftxui::ComponentBase']]], + ['focusposition_18',['focusPosition',['../group__dom.html#ga78447ba1ccb792963ad6d306f4ed1256',1,'ftxui']]], + ['focuspositionrelative_19',['focusPositionRelative',['../group__dom.html#ga13befad33cb4125e2143f2af3eddcc71',1,'ftxui']]], + ['forcehandlectrlc_20',['ForceHandleCtrlC',['../group__component.html#ae48c11a6c9160dc14cd5504ebe69304b',1,'ftxui::ScreenInteractive']]], + ['forcehandlectrlz_21',['ForceHandleCtrlZ',['../group__component.html#af1c772ab581e587daad086227435f2ec',1,'ftxui::ScreenInteractive']]], + ['frame_22',['frame',['../namespaceftxui.html#ad0d6a96f6e1fb6d67d9fa6323062a737',1,'ftxui']]], + ['full_23',['Full',['../namespaceftxui_1_1Dimension.html#af795790b995132f62de607ddfd07f9fa',1,'ftxui::Dimension']]], + ['fullscreen_24',['Fullscreen',['../group__component.html#a53dc5c3030151713857cf1a898d0f897',1,'ftxui::ScreenInteractive']]], + ['fullscreenalternatescreen_25',['FullscreenAlternateScreen',['../group__component.html#acad4646ece7569fd39a3a5c847ebb4a8',1,'ftxui::ScreenInteractive']]], + ['fullscreenprimaryscreen_26',['FullscreenPrimaryScreen',['../group__component.html#a6be13532d5bef8f566c12090db2dffba',1,'ftxui::ScreenInteractive']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 000000000..b0d800fbc --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['gauge_0',['gauge',['../group__dom.html#gae0b8041a60629fd790716038738c93ce',1,'ftxui']]], + ['gaugedirection_1',['gaugeDirection',['../group__dom.html#ga1265cc8a52448e1b98d7abe84a04681e',1,'ftxui']]], + ['gaugedown_2',['gaugeDown',['../group__dom.html#gafe537f915cac5613261580bae3a8fe33',1,'ftxui']]], + ['gaugeleft_3',['gaugeLeft',['../group__dom.html#ga97898b9f77b3edd330eaef22fce7cf2b',1,'ftxui']]], + ['gaugeright_4',['gaugeRight',['../group__dom.html#ga333d781a44885ed4b5ea8444015b86f7',1,'ftxui']]], + ['gaugeup_5',['gaugeUp',['../group__dom.html#ga6e9a97b66c14404a2b3f95f4dae414c2',1,'ftxui']]], + ['get_6',['Get',['../structftxui_1_1task_1_1TaskQueue.html#aa79dc0bf12b85e6ac05adf59818e3939',1,'ftxui::task::TaskQueue']]], + ['getbox_7',['GetBox',['../group__dom.html#a03f5cc5dcad10fecb7a0b8203c86a13e',1,'ftxui::Selection']]], + ['getcolorinfo_8',['GetColorInfo',['../namespaceftxui.html#a883a81f30fb771a82f6c87b77ac3658e',1,'ftxui::GetColorInfo(Color::Palette256 index)'],['../namespaceftxui.html#ad5dd7fa2651003bf7c9f8b58de9b0a93',1,'ftxui::GetColorInfo(Color::Palette16 index)']]], + ['getnodeselectedcontent_9',['GetNodeSelectedContent',['../namespaceftxui.html#a1a3d5804148186b3d4bcc07391ba5f30',1,'ftxui']]], + ['getparts_10',['GetParts',['../group__dom.html#a4d4387d24d418b865c77ed592602d08d',1,'ftxui::Selection']]], + ['getpixel_11',['GetPixel',['../group__dom.html#a656c4e679bf9254e4688f2049989a9bd',1,'ftxui::Canvas']]], + ['getselectedcontent_12',['GetSelectedContent',['../group__dom.html#a2c5cebe05557529299e649867b499680',1,'ftxui::Node']]], + ['getselection_13',['GetSelection',['../group__component.html#ac25769e248caa01d336f5eaa79cd6160',1,'ftxui::ScreenInteractive']]], + ['getselectionstyle_14',['GetSelectionStyle',['../group__screen.html#a056c2ad43affdac744b6907e9ea81463',1,'ftxui::Screen']]], + ['glyphcount_15',['GlyphCount',['../namespaceftxui.html#a9b4f3faecfbeb6b2c0fdf9c30e3f1553',1,'ftxui']]], + ['glyphiterate_16',['GlyphIterate',['../namespaceftxui.html#ad74a7d623ff7a09787469021d30c9461',1,'ftxui']]], + ['glyphnext_17',['GlyphNext',['../namespaceftxui.html#a02453c4504a5cfbc83b38abd4ec6d8ba',1,'ftxui']]], + ['glyphprevious_18',['GlyphPrevious',['../namespaceftxui.html#ae2ef74edc55750554e97ea71c5887650',1,'ftxui']]], + ['graph_19',['graph',['../namespaceftxui.html#ae78c2b2b147e65701493465f8e3f4d89',1,'ftxui']]], + ['gridbox_20',['gridbox',['../namespaceftxui.html#abcdf409d605edafd3191cd7ba47bcbd1',1,'ftxui']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 000000000..81a3d63e3 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['hasimmediatetasks_0',['HasImmediateTasks',['../structftxui_1_1task_1_1TaskQueue.html#a257afcb3d4b649b1a39a697cea2843ce',1,'ftxui::task::TaskQueue::HasImmediateTasks()'],['../classftxui_1_1task_1_1TaskRunner.html#a257afcb3d4b649b1a39a697cea2843ce',1,'ftxui::task::TaskRunner::HasImmediateTasks()']]], + ['haspending_1',['HasPending',['../classftxui_1_1ReceiverImpl.html#a49f2a9285b485f25694f48732b0c2554',1,'ftxui::ReceiverImpl']]], + ['hasquitted_2',['HasQuitted',['../group__component.html#a0f10869cb1cad212e8885deac6960a41',1,'ftxui::Loop::HasQuitted()'],['../classftxui_1_1ReceiverImpl.html#a0f10869cb1cad212e8885deac6960a41',1,'ftxui::ReceiverImpl::HasQuitted()']]], + ['hbox_3',['hbox',['../namespaceftxui.html#a552ba6d33b3c9bec586b99fba4c243ac',1,'ftxui']]], + ['hcenter_4',['hcenter',['../group__dom.html#gaf7d0d1e44c1a5424e42a5cddceacf7f7',1,'ftxui']]], + ['height_5',['height',['../group__dom.html#ad3774f6419003470f54fd495124ef51f',1,'ftxui::Canvas']]], + ['hflow_6',['hflow',['../namespaceftxui.html#a345b31919048562675615d5af78e6322',1,'ftxui']]], + ['hmenu1_7',['HMenu1',['../menu__style_8cpp.html#a909976f4b60ea372663d733e16011767',1,'menu_style.cpp']]], + ['hmenu2_8',['HMenu2',['../menu__style_8cpp.html#a9ec2a6df3ad7dd845b4d4ab507d9d5fe',1,'menu_style.cpp']]], + ['hmenu3_9',['HMenu3',['../menu__style_8cpp.html#ab5a58c425dbca17b57cfcbf4b8c98e2e',1,'menu_style.cpp']]], + ['hmenu4_10',['HMenu4',['../menu__style_8cpp.html#a1aead66022c928952b560ebab9913346',1,'menu_style.cpp']]], + ['hmenu5_11',['HMenu5',['../menu__style_8cpp.html#a16cc679d7e91d82d484eff7e443539cb',1,'menu_style.cpp']]], + ['horizontal_12',['Horizontal',['../group__component.html#a5ee36f528383cc1db765fa2140797837',1,'ftxui::MenuOption::Horizontal()'],['../group__component.html#ga01563bae9454fe64c0b29b0eb3755e68',1,'ftxui::Container::Horizontal(Components children)'],['../group__component.html#ga337564f8a13c98222025d8fe7e47df4c',1,'ftxui::Container::Horizontal(Components children, int *selector)']]], + ['horizontalanimated_13',['HorizontalAnimated',['../group__component.html#aedc93fba91339d9713812821cb140c50',1,'ftxui::MenuOption']]], + ['hoverable_14',['Hoverable',['../group__component.html#ga562d984d3830d63285643565cd55d16f',1,'ftxui::Hoverable(Component component, bool *hover)'],['../group__component.html#ga92ec2f5ccb509da2e2c24ae6a1f6b12b',1,'ftxui::Hoverable(Component component, std::function< void()> on_enter, std::function< void()> on_leave)'],['../group__component.html#ga91cac81077c483efdb952268aee9a523',1,'ftxui::Hoverable(Component component, std::function< void(bool)> on_change)'],['../group__component.html#ga9d94b37352be13d3551a9d5785f75439',1,'ftxui::Hoverable(bool *hover)'],['../group__component.html#ga34adfc9c76cf3603156cba32ad5d7142',1,'ftxui::Hoverable(std::function< void()> on_enter, std::function< void()> on_leave)'],['../group__component.html#gafd7cbaef5378a907111a64ee69aed56a',1,'ftxui::Hoverable(std::function< void(bool)> on_change)']]], + ['hscroll_5findicator_15',['hscroll_indicator',['../group__dom.html#ga7f48136f949ccbde722dd93a6de4d0de',1,'ftxui']]], + ['hsv_16',['HSV',['../group__screen.html#a1a119fd00beafc7d2aa5f94518e38fc5',1,'ftxui::Color']]], + ['hsva_17',['HSVA',['../group__screen.html#af067d3410c55684d727aeb29bc8d2af2',1,'ftxui::Color']]], + ['hyperlink_18',['Hyperlink',['../group__screen.html#a0b55b16969dfccc79195fe61c5ba6d1a',1,'ftxui::Screen']]], + ['hyperlink_19',['hyperlink',['../group__dom.html#gad0eac58eac9e6cd9a04879b20f8e123b',1,'ftxui::hyperlink(std::string link)'],['../group__dom.html#ga8bacc04e0cbde663ccc4a4891e8b50d5',1,'ftxui::hyperlink(std::string link, Element child)']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 000000000..fed973d11 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['image_0',['Image',['../group__screen.html#a7c483c751b9c859ef08cecb32f1d1994',1,'ftxui::Image::Image()=delete'],['../group__screen.html#aecbd97261c37fa89ea6df7ccaba216c3',1,'ftxui::Image::Image(int dimx, int dimy)']]], + ['index_1',['Index',['../group__component.html#a8ef12397d1682615bc3108c397734179',1,'ftxui::ComponentBase']]], + ['inner_2',['Inner',['../examples_2component_2collapsible_8cpp.html#a74bf63b8448df7b03bd98ae6de127c0a',1,'collapsible.cpp']]], + ['input_3',['Input',['../group__component.html#ga7f285fcbc4dd0a0767b89a255fd062dc',1,'ftxui::Input(InputOption option)'],['../group__component.html#ga9d118d596e33bf5bee9d5eccb6265d15',1,'ftxui::Input(StringRef content, InputOption option)'],['../group__component.html#ga82ba18065d2c29514f034c7278dead74',1,'ftxui::Input(StringRef content, StringRef placeholder, InputOption option)']]], + ['input_4',['input',['../group__component.html#a947e2de698c4bef07c78674218330677',1,'ftxui::Event']]], + ['instance_5',['Instance',['../focus__cursor_8cpp.html#a96da73e7fb75cca8a91e59559ce1dba2',1,'focus_cursor.cpp']]], + ['interpolate_6',['Interpolate',['../group__screen.html#ae5d82c5fbae4f6561c9471c11c0a461b',1,'ftxui::Color']]], + ['intersection_7',['Intersection',['../group__screen.html#a83d40499d9e8740c35dc2352c2ac84a8',1,'ftxui::Box']]], + ['inverted_8',['inverted',['../group__dom.html#ga672456b8f2091b615a30ff755418b37b',1,'ftxui']]], + ['is_5fcharacter_9',['is_character',['../group__component.html#ae75703788c6f68b39fc51f8db3ba156d',1,'ftxui::Event']]], + ['is_5fcursor_5fposition_10',['is_cursor_position',['../group__component.html#a4464a1cace713dc3544922cc6d5acdc1',1,'ftxui::Event']]], + ['is_5fcursor_5fshape_11',['is_cursor_shape',['../group__component.html#af795895177b7686bf63ab113e70159c8',1,'ftxui::Event']]], + ['is_5fmouse_12',['is_mouse',['../group__component.html#a2c835925299d56941ffd2e2421f0fd13',1,'ftxui::Event']]], + ['iscombining_13',['IsCombining',['../namespaceftxui.html#a506e6b467ddd8d11646942fd101d8e9e',1,'ftxui']]], + ['iscontrol_14',['IsControl',['../namespaceftxui.html#a037df033cc26c960faa54b52bdbea900',1,'ftxui']]], + ['isempty_15',['IsEmpty',['../group__dom.html#a8e12342fc420701fbffd97025421575a',1,'ftxui::Selection::IsEmpty()'],['../group__screen.html#a8e12342fc420701fbffd97025421575a',1,'ftxui::Box::IsEmpty()']]], + ['isfullwidth_16',['IsFullWidth',['../namespaceftxui.html#abd13f584efddd3a7e5749c9c5e841a11',1,'ftxui']]], + ['isopaque_17',['IsOpaque',['../group__screen.html#a74deffc6b6c7e07b3ec67766ff35abba',1,'ftxui::Color']]], + ['iswordbreakingcharacter_18',['IsWordBreakingCharacter',['../namespaceftxui.html#a64a9bd1df7ca3ffb1622507d01cd0b13',1,'ftxui']]], + ['italic_19',['italic',['../group__dom.html#ga8a8d190765de7bbd9e78f9e639c2a96d',1,'ftxui']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 000000000..20da5147b --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['linear_0',['Linear',['../namespaceftxui_1_1animation_1_1easing.html#a39923c8d62cdaacdc179c2ece3ee16b4',1,'ftxui::animation::easing']]], + ['lineargradient_1',['LinearGradient',['../group__dom.html#a5e989e4841fbba91e1714f977c5c58b9',1,'ftxui::LinearGradient::LinearGradient()'],['../group__dom.html#ac57e39e64c79b5389f234eeaebfbb2fd',1,'ftxui::LinearGradient::LinearGradient(Color begin, Color end)'],['../group__dom.html#adbf0567cfc8e05051a4236d6541f63b8',1,'ftxui::LinearGradient::LinearGradient(float angle, Color begin, Color end)']]], + ['llvmfuzzertestoneinput_2',['LLVMFuzzerTestOneInput',['../component__fuzzer_8cpp.html#af5589fffd86439465eeb19c9774d1982',1,'LLVMFuzzerTestOneInput(const char *data, size_t size): component_fuzzer.cpp'],['../terminal__input__parser__test__fuzzer_8cpp.html#af5589fffd86439465eeb19c9774d1982',1,'LLVMFuzzerTestOneInput(const char *data, size_t size): terminal_input_parser_test_fuzzer.cpp']]], + ['loop_3',['Loop',['../group__component.html#aacbc899babaac445c3b9b831322e8c70',1,'ftxui::Loop::Loop(ScreenInteractive *screen, Component component)'],['../group__component.html#ad72ac0aa7a08850990b76f15e13dbe79',1,'ftxui::Loop::Loop(const Loop &)=default'],['../group__component.html#adfc045f0113bbf7f6dc5895ff7ce3ac5',1,'ftxui::Loop::Loop(Loop &&)=delete'],['../group__component.html#a734882bfa3e357e4bb57581494e8699b',1,'ftxui::Loop::Loop(const ScreenInteractive &)=delete'],['../group__component.html#a9bd3dbd471fce0038700caaa47dddc1a',1,'ftxui::ScreenInteractive::Loop()']]], + ['loremipsum_4',['LoremIpsum',['../examples_2component_2selection_8cpp.html#a693bf20426978b4a6d5114374d8c521d',1,'selection.cpp']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 000000000..d2f81db79 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['main_0',['main',['../examples_2component_2button_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button.cpp'],['../button__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button_animated.cpp'],['../button__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button_in_frame.cpp'],['../button__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): button_style.cpp'],['../canvas__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): canvas_animated.cpp'],['../examples_2component_2checkbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): checkbox.cpp'],['../checkbox__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): checkbox_in_frame.cpp'],['../examples_2component_2collapsible_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): collapsible.cpp'],['../composition_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): composition.cpp'],['../custom__loop_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): custom_loop.cpp'],['../examples_2component_2dropdown_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): dropdown.cpp'],['../dropdown__custom_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): dropdown_custom.cpp'],['../flexbox__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): flexbox_gallery.cpp'],['../examples_2component_2focus_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): focus.cpp'],['../focus__cursor_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): focus_cursor.cpp'],['../gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gallery.cpp'],['../homescreen_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): homescreen.cpp'],['../examples_2component_2input_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): input.cpp'],['../input__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): input_in_frame.cpp'],['../input__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): input_style.cpp'],['../linear__gradient__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): linear_gradient_gallery.cpp'],['../examples_2component_2maybe_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): maybe.cpp'],['../examples_2component_2menu_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu.cpp'],['../menu2_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu2.cpp'],['../menu__entries_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_entries.cpp'],['../menu__entries__animated_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_entries_animated.cpp'],['../menu__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_in_frame.cpp'],['../menu__in__frame__horizontal_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_in_frame_horizontal.cpp'],['../menu__multiple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_multiple.cpp'],['../menu__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_style.cpp'],['../menu__underline__animated__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): menu_underline_animated_gallery.cpp'],['../modal__dialog_8cpp.html#ac0f2228420376f4db7e1274f2b41667c',1,'main(int argc, const char *argv[]): modal_dialog.cpp'],['../modal__dialog__custom_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): modal_dialog_custom.cpp'],['../nested__screen_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): nested_screen.cpp'],['../print__key__press_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): print_key_press.cpp'],['../examples_2component_2radiobox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): radiobox.cpp'],['../radiobox__in__frame_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): radiobox_in_frame.cpp'],['../examples_2component_2renderer_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): renderer.cpp'],['../examples_2component_2resizable__split_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): resizable_split.cpp'],['../scrollbar_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): scrollbar.cpp'],['../examples_2component_2selection_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): selection.cpp'],['../examples_2component_2slider_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): slider.cpp'],['../slider__direction_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): slider_direction.cpp'],['../slider__rgb_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): slider_rgb.cpp'],['../tab__horizontal_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): tab_horizontal.cpp'],['../tab__vertical_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): tab_vertical.cpp'],['../textarea_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): textarea.cpp'],['../toggle_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): toggle.cpp'],['../examples_2component_2window_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): window.cpp'],['../with__restored__io_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): with_restored_io.cpp'],['../examples_2dom_2border_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): border.cpp'],['../border__colored_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): border_colored.cpp'],['../border__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): border_style.cpp'],['../examples_2dom_2canvas_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): canvas.cpp'],['../color__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_gallery.cpp'],['../color__info__palette256_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_info_palette256.cpp'],['../color__truecolor__HSV_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_truecolor_HSV.cpp'],['../color__truecolor__RGB_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): color_truecolor_RGB.cpp'],['../examples_2dom_2dbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): dbox.cpp'],['../examples_2dom_2gauge_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gauge.cpp'],['../gauge__direction_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gauge_direction.cpp'],['../examples_2dom_2graph_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): graph.cpp'],['../examples_2dom_2gridbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): gridbox.cpp'],['../hflow_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): hflow.cpp'],['../html__like_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): html_like.cpp'],['../examples_2dom_2linear__gradient_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): linear_gradient.cpp'],['../package__manager_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): package_manager.cpp'],['../examples_2dom_2paragraph_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): paragraph.cpp'],['../examples_2dom_2separator_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): separator.cpp'],['../separator__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): separator_style.cpp'],['../examples_2dom_2size_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): size.cpp'],['../examples_2dom_2spinner_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): spinner.cpp'],['../style__blink_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_blink.cpp'],['../style__bold_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_bold.cpp'],['../style__color_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_color.cpp'],['../style__dim_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_dim.cpp'],['../style__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_gallery.cpp'],['../style__hyperlink_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_hyperlink.cpp'],['../style__inverted_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_inverted.cpp'],['../style__italic_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_italic.cpp'],['../style__strikethrough_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_strikethrough.cpp'],['../style__underlined_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_underlined.cpp'],['../style__underlined__double_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): style_underlined_double.cpp'],['../examples_2dom_2table_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): table.cpp'],['../vbox__hbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): vbox_hbox.cpp'],['../vflow_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): vflow.cpp']]], + ['maincomponent_1',['MainComponent',['../modal__dialog_8cpp.html#aa61b015248766b6067b6d3c99f04c389',1,'modal_dialog.cpp']]], + ['make_2',['Make',['../namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae',1,'ftxui']]], + ['make_5fbox_3',['make_box',['../examples_2component_2focus_8cpp.html#a9ffb8a33ec5d0133f63f791d526df1c7',1,'focus.cpp']]], + ['make_5fgrid_4',['make_grid',['../examples_2component_2focus_8cpp.html#a9543e1b98f00db8484ee0c856a1d4cca',1,'focus.cpp']]], + ['makereceiver_5',['MakeReceiver',['../namespaceftxui.html#a57abe3e11733b1d3ebacc56692d3537c',1,'ftxui']]], + ['makesender_6',['MakeSender',['../classftxui_1_1ReceiverImpl.html#aee8560dccb6ab3df27f0a0fc6a1f8442',1,'ftxui::ReceiverImpl']]], + ['maybe_7',['Maybe',['../group__component.html#ga20b66a70c1cd4ff3f0ff571a4507d2b4',1,'ftxui::Maybe(Component child, const bool *show)'],['../group__component.html#ga70afe9695167fb736631173201969730',1,'ftxui::Maybe(Component child, std::function< bool()> show)'],['../group__component.html#ga83b6fd5e1524023722a7450f987f15d0',1,'ftxui::Maybe(const bool *show)'],['../group__component.html#gae39ad8b223e6bb7704c77a3708571a7d',1,'ftxui::Maybe(std::function< bool()> show)']]], + ['menu_8',['Menu',['../group__component.html#ga27828fc39da10a18478ba84b1b162039',1,'ftxui::Menu(MenuOption option)'],['../group__component.html#gad793a3a507766ffa711c4332a3815e24',1,'ftxui::Menu(ConstStringListRef entries, int *selected, MenuOption option)']]], + ['menuentry_9',['MenuEntry',['../group__component.html#ga2c0a27959e6a5d90109f6d4506e00f69',1,'ftxui::MenuEntry(MenuEntryOption option)'],['../group__component.html#gafca94c5cdae5fbf3c6aa81fc1cd7b1c0',1,'ftxui::MenuEntry(ConstStringRef label, MenuEntryOption option)']]], + ['modal_10',['Modal',['../group__component.html#ga5185342fbba215496cb8a6805f36089c',1,'ftxui::Modal(Component main, Component modal, const bool *show_modal)'],['../group__component.html#ga5babae0bb25f8cada57784cc5d27fb74',1,'ftxui::Modal(Component modal, const bool *show_modal)']]], + ['modalcomponent_11',['ModalComponent',['../modal__dialog_8cpp.html#a3b73476f6f304dce17f808a7c3789f5c',1,'modal_dialog.cpp']]], + ['mouse_12',['Mouse',['../group__component.html#a382859ca10d98eb9c03713de4a95d3f9',1,'ftxui::Event']]], + ['mouse_13',['mouse',['../group__component.html#a37daf59df57eb6415eb34c8df11a4892',1,'ftxui::Event']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 000000000..b4e6d74d1 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['nested_0',['Nested',['../nested__screen_8cpp.html#a77fdac0113a8c43983469efa26ce7276',1,'nested_screen.cpp']]], + ['node_1',['Node',['../group__dom.html#a0d313fac56abd7ebe58a17f1530b879e',1,'ftxui::Node::Node()'],['../group__dom.html#a19fa1eae4c02e514c62a95e395b383a1',1,'ftxui::Node::Node(Elements children)'],['../group__dom.html#a7eb6a9efa23e5f6f7fc53b5aa3759dff',1,'ftxui::Node::Node(const Node &)=delete'],['../group__dom.html#ac6365e35a2029b3e58eca97905f8124d',1,'ftxui::Node::Node(const Node &&)=delete']]], + ['nodedecorator_2',['NodeDecorator',['../classftxui_1_1NodeDecorator.html#a7e9d74ba5d480d87e8bfcaf2df66fbbe',1,'ftxui::NodeDecorator']]], + ['notflex_3',['notflex',['../group__dom.html#ga845b0ea50d51024aa4e050447b46e1dd',1,'ftxui']]], + ['nothing_4',['nothing',['../group__dom.html#ga1bfd3885ac8b40dc82a1103725003c07',1,'ftxui']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 000000000..7b0b5f932 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['onanimation_0',['OnAnimation',['../classftxui_1_1animation_1_1Animator.html#ac956aa7c105ad418392f69219711117d',1,'ftxui::animation::Animator::OnAnimation()'],['../group__component.html#aebad858485d02f035a8ea34af66a7fa7',1,'ftxui::ComponentBase::OnAnimation(animation::Params &params)']]], + ['onevent_1',['OnEvent',['../group__component.html#ab84629a8fecad2e1cdd426b7ddc72277',1,'ftxui::ComponentBase']]], + ['onrender_2',['OnRender',['../group__component.html#ab79303652dad19eac0540848487cf8c5',1,'ftxui::ComponentBase']]], + ['operator_21_3d_3',['operator!=',['../group__component.html#ae4581774f4417f68d335de865fd2e6d3',1,'ftxui::Event::operator!=()'],['../group__screen.html#a1ff481fa3b55fcc402c98c7564990c17',1,'ftxui::Box::operator!=()'],['../group__screen.html#a5db052159bd2c738ea453d9b9600513a',1,'ftxui::Color::operator!=()']]], + ['operator_22_22_5frgb_4',['operator""_rgb',['../namespaceftxui_1_1literals.html#a66d988ecc082819b1671ee2bbadebccd',1,'ftxui::operator""_rgb()'],['../namespaceftxui_1_1literals.html#a66d988ecc082819b1671ee2bbadebccd',1,'ftxui::literals::operator""_rgb()']]], + ['operator_28_29_5',['operator()',['../classftxui_1_1ConstRef.html#afdc36f6a5716b29a5d81a2dd93376d82',1,'ftxui::ConstRef::operator()()'],['../classftxui_1_1Ref.html#a625855a4f62948f4f1ad06354be9ca09',1,'ftxui::Ref::operator()()'],['../classftxui_1_1Ref.html#afdc36f6a5716b29a5d81a2dd93376d82',1,'ftxui::Ref::operator()() const']]], + ['operator_2a_6',['operator*',['../classftxui_1_1ConstRef.html#a241c04e3ce86e1fd5a946eb2aa8b1f22',1,'ftxui::ConstRef::operator*()'],['../classftxui_1_1Ref.html#a3f534efce0b043d603eb8f5653268e7d',1,'ftxui::Ref::operator*()'],['../classftxui_1_1Ref.html#a241c04e3ce86e1fd5a946eb2aa8b1f22',1,'ftxui::Ref::operator*() const']]], + ['operator_2d_3e_7',['operator->',['../classftxui_1_1ConstRef.html#abaade5c780b539b94de660e314cb0c90',1,'ftxui::ConstRef::operator->()'],['../classftxui_1_1Ref.html#a4442b1b9eab40e7939e1e01cdedcb7ae',1,'ftxui::Ref::operator->()'],['../classftxui_1_1Ref.html#abaade5c780b539b94de660e314cb0c90',1,'ftxui::Ref::operator->() const']]], + ['operator_3c_8',['operator<',['../group__component.html#a7590045e19360277dfc54320b627002c',1,'ftxui::Event::operator<()'],['../structftxui_1_1task_1_1PendingTask.html#abca1f607e0e907841b7a6d88190995db',1,'ftxui::task::PendingTask::operator<()']]], + ['operator_3d_9',['operator=',['../classftxui_1_1CapturedMouseInterface.html#adfa362c249253f9570e5c1cf42fc16c3',1,'ftxui::CapturedMouseInterface::operator=(const CapturedMouseInterface &)=default'],['../classftxui_1_1CapturedMouseInterface.html#ac349c4e493dbe8aa7c47052d91e0f411',1,'ftxui::CapturedMouseInterface::operator=(CapturedMouseInterface &&)=delete'],['../group__component.html#ac444ac233dcbd4b2ad7972d2086ecc73',1,'ftxui::ComponentBase::operator=(const ComponentBase &)=delete'],['../group__component.html#a9e3b99c8fc32f2ce151e2ba737c0d546',1,'ftxui::ComponentBase::operator=(ComponentBase &&)=delete'],['../group__component.html#add07fd33947183c42a79cb4759129ff8',1,'ftxui::Loop::operator=(Loop &&)=delete'],['../group__component.html#ab35ce310313b96f28233ebc9279b5dd3',1,'ftxui::Loop::operator=(const Loop &)=delete'],['../classftxui_1_1SenderImpl.html#a571b0715efdefbfbc80bebc4ba3f16c3',1,'ftxui::SenderImpl::operator=(const SenderImpl &)=delete'],['../classftxui_1_1SenderImpl.html#aec884eaa70eed221721d0ae963974927',1,'ftxui::SenderImpl::operator=(SenderImpl &&)=delete'],['../group__dom.html#a7e12a390c13d283fc06cafbbfef7eba7',1,'ftxui::Node::operator=(const Node &)=delete'],['../group__dom.html#abe938f0d7bfdca112e345590d4887de6',1,'ftxui::Node::operator=(const Node &&)=delete'],['../classftxui_1_1AutoReset.html#a72b3c7613f9ecfb66005b1c30a5189d4',1,'ftxui::AutoReset::operator=(const AutoReset &)=delete'],['../classftxui_1_1AutoReset.html#a63fb3bea42919c7f183d4fb315451f6a',1,'ftxui::AutoReset::operator=(AutoReset &&)=delete'],['../classftxui_1_1ConstRef.html#ad144149e6f6f0d59610da4b28e22aef1',1,'ftxui::ConstRef::operator=(ConstRef &&) noexcept=default'],['../classftxui_1_1ConstRef.html#a834cee3b2f409135c37c188c583bce91',1,'ftxui::ConstRef::operator=(const ConstRef< T > &)=default'],['../classftxui_1_1Ref.html#abd99a8175d3ef482e70c239aef26322a',1,'ftxui::Ref::operator=(Ref &&) noexcept=default'],['../classftxui_1_1Ref.html#a2219840465715bbca4b1467132c686a5',1,'ftxui::Ref::operator=(const Ref< T > &)=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#a99e89ddbd26ca55a6696a12a819c8dac',1,'ftxui::ConstStringListRef::Adapter::operator=(const Adapter &)=default'],['../classftxui_1_1ConstStringListRef_1_1Adapter.html#a159afff9273b4ba2315d0fe5c0dc3629',1,'ftxui::ConstStringListRef::Adapter::operator=(Adapter &&)=default'],['../classftxui_1_1ConstStringListRef.html#a616528ee5b9a372e16ae2125e8dee3b7',1,'ftxui::ConstStringListRef::operator=(const ConstStringListRef &)=default'],['../classftxui_1_1ConstStringListRef.html#a51744ac3bfa14639955248e51313ba1f',1,'ftxui::ConstStringListRef::operator=(ConstStringListRef &&)=default']]], + ['operator_3d_3d_10',['operator==',['../group__component.html#ad5b326fac977a9c1c832ddb508f713da',1,'ftxui::Event::operator==()'],['../group__screen.html#ad75c695cfa18e51d88a0984af5df2f69',1,'ftxui::Box::operator==()'],['../group__screen.html#a66275ebe4681464e082660fa6be9ba28',1,'ftxui::Color::operator==()']]], + ['operator_5b_5d_11',['operator[]',['../classftxui_1_1ConstStringListRef_1_1Adapter.html#aaec2cde2cf71a044ba3305632c7a867c',1,'ftxui::ConstStringListRef::Adapter::operator[]()'],['../classftxui_1_1ConstStringListRef.html#afa13214cc014e69f7dc95b1df7c90d4e',1,'ftxui::ConstStringListRef::operator[]()']]], + ['operator_7c_12',['operator|',['../namespaceftxui.html#a65a2e15f64ae3bc205c485abc3a5aeb9',1,'ftxui::operator|(Component component, ComponentDecorator decorator)'],['../namespaceftxui.html#a9c4cf8bcb7012f740b146bfe89cbd3eb',1,'ftxui::operator|(Component component, ElementDecorator decorator)'],['../group__dom.html#ga7e9a69f0592b4013bd725d662f4a76e7',1,'ftxui::operator|(Element element, Decorator decorator)'],['../group__dom.html#ga6cbc84eb24a655ae084b3c7d26f9abfc',1,'ftxui::operator|(Elements elements, Decorator decorator)'],['../group__dom.html#ga027fbc9cf6fef9e86ae6a2a79e8bf23a',1,'ftxui::operator|(Decorator a, Decorator b)']]], + ['operator_7c_3d_13',['operator|=',['../namespaceftxui.html#ade35e69d695327db85be01c9787c39f8',1,'ftxui::operator|=(Component &component, ComponentDecorator decorator)'],['../namespaceftxui.html#aa480c58bcaeae204fbe68b192c5ede92',1,'ftxui::operator|=(Component &component, ElementDecorator decorator)'],['../group__dom.html#ga0be26ac5dcbe6c707857c791d8eec720',1,'ftxui::operator|=(Element &e, Decorator d)']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 000000000..061304d70 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['paragraph_0',['paragraph',['../namespaceftxui.html#ac54cdd05db30871ce082a8fa650545da',1,'ftxui::paragraph(std::wstring text)'],['../group__dom.html#ga3f9093ae1a2790d396fc2cff9990fbbd',1,'ftxui::paragraph(const std::string &the_text)']]], + ['paragraphaligncenter_1',['paragraphAlignCenter',['../group__dom.html#ga6a105f6b0d07d7933379ff1ae9282fb8',1,'ftxui']]], + ['paragraphalignjustify_2',['paragraphAlignJustify',['../group__dom.html#gae4de548aa67ab77cb345e4ddec6b248b',1,'ftxui']]], + ['paragraphalignleft_3',['paragraphAlignLeft',['../group__dom.html#gaa334a836eccc573e1137a1ba29d07d8a',1,'ftxui']]], + ['paragraphalignright_4',['paragraphAlignRight',['../group__dom.html#ga28a69f06a88c89fe7a507e33ab486411',1,'ftxui']]], + ['params_5',['Params',['../classftxui_1_1animation_1_1Params.html#a27854a0925475df9b926b03808cc8d8c',1,'ftxui::animation::Params']]], + ['parent_6',['Parent',['../group__component.html#aaf284a408631f31558694973a04186c2',1,'ftxui::ComponentBase']]], + ['pendingtask_7',['PendingTask',['../structftxui_1_1task_1_1PendingTask.html#afc8e67df1a9259a50e7afa49765cb7c8',1,'ftxui::task::PendingTask::PendingTask(Task t)'],['../structftxui_1_1task_1_1PendingTask.html#a5e36044e86c7936eee25d0ff222b7235',1,'ftxui::task::PendingTask::PendingTask(Task t, std::chrono::steady_clock::duration duration)']]], + ['pixel_8',['Pixel',['../group__screen.html#a3d22dc2630f1c1c69ec973cd4648b5d5',1,'ftxui::Pixel']]], + ['pixelat_9',['PixelAt',['../group__screen.html#a483f8ee1967e200cfc9e277b3ce00174',1,'ftxui::Image::PixelAt(int x, int y)'],['../group__screen.html#a03b2b39bb8f4d72068744776093125b3',1,'ftxui::Image::PixelAt(int x, int y) const']]], + ['post_10',['Post',['../group__component.html#a49209b09dcf8bc540f79e2bfd0a7ee88',1,'ftxui::ScreenInteractive']]], + ['postdelayedtask_11',['PostDelayedTask',['../classftxui_1_1task_1_1TaskRunner.html#a9ed72fa10b2d44bb1af7bd8af64dd28b',1,'ftxui::task::TaskRunner']]], + ['postevent_12',['PostEvent',['../group__component.html#a29e75bdaa1d5465518787ec014b2c3bf',1,'ftxui::ScreenInteractive']]], + ['posttask_13',['PostTask',['../structftxui_1_1task_1_1TaskQueue.html#ada41a34871c48f856bf3659e0b0c4f81',1,'ftxui::task::TaskQueue::PostTask()'],['../classftxui_1_1task_1_1TaskRunner.html#a6265a2d99ef09d491365c21a4a703c71',1,'ftxui::task::TaskRunner::PostTask()']]], + ['prefer_14',['Prefer',['../structftxui_1_1Requirement_1_1Focused.html#a8a204963959c73e971c7d030cbc34134',1,'ftxui::Requirement::Focused']]], + ['print_15',['Print',['../group__screen.html#acfe358aa128835387b6c2b7ffe22bab5',1,'ftxui::Color::Print()'],['../group__screen.html#ad93edbe885499a712129356f1ffd506b',1,'ftxui::Screen::Print()']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 000000000..ee9a4b332 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['quadraticin_0',['QuadraticIn',['../namespaceftxui_1_1animation_1_1easing.html#ab0b9303e7f956c36960e601f158e488f',1,'ftxui::animation::easing']]], + ['quadraticinout_1',['QuadraticInOut',['../namespaceftxui_1_1animation_1_1easing.html#a8155757f48a6e85e27da99c0a93f7e8d',1,'ftxui::animation::easing']]], + ['quadraticout_2',['QuadraticOut',['../namespaceftxui_1_1animation_1_1easing.html#aa1618a8f59ae7bae191d0ab36bf90e66',1,'ftxui::animation::easing']]], + ['quarticin_3',['QuarticIn',['../namespaceftxui_1_1animation_1_1easing.html#af60268bac4059d32b3f7680042dba350',1,'ftxui::animation::easing']]], + ['quarticinout_4',['QuarticInOut',['../namespaceftxui_1_1animation_1_1easing.html#a72dd2cb5c7ffddfe3a3d8b455f68d37e',1,'ftxui::animation::easing']]], + ['quarticout_5',['QuarticOut',['../namespaceftxui_1_1animation_1_1easing.html#a8878f359f37551ae64eb183af3ca93b8',1,'ftxui::animation::easing']]], + ['quinticin_6',['QuinticIn',['../namespaceftxui_1_1animation_1_1easing.html#ab4eae8c5808cc6ab161037659e761a50',1,'ftxui::animation::easing']]], + ['quinticinout_7',['QuinticInOut',['../namespaceftxui_1_1animation_1_1easing.html#afcbc9e6b461fe3418a59faf4a5f9284d',1,'ftxui::animation::easing']]], + ['quinticout_8',['QuinticOut',['../namespaceftxui_1_1animation_1_1easing.html#aae2598b1aa6a2fc944f52edbf0453fd5',1,'ftxui::animation::easing']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 000000000..c187dcd08 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['radiobox_0',['Radiobox',['../group__component.html#ga3e7a44f321fa910f07aef5879e67af95',1,'ftxui::Radiobox(RadioboxOption option)'],['../group__component.html#gac73eebf15ff6b5386b7ee6c6cb4a4890',1,'ftxui::Radiobox(ConstStringListRef entries, int *selected, RadioboxOption option)']]], + ['receive_1',['Receive',['../classftxui_1_1ReceiverImpl.html#a2d2bc6945a964ecb739002cc58291bee',1,'ftxui::ReceiverImpl']]], + ['receivenonblocking_2',['ReceiveNonBlocking',['../classftxui_1_1ReceiverImpl.html#a3afe67ce4b9296787d4133866e0b2b00',1,'ftxui::ReceiverImpl']]], + ['receiverimpl_3',['ReceiverImpl',['../classftxui_1_1ReceiverImpl.html#a06cce9969ba99f4e42c24dbce9662a3a',1,'ftxui::ReceiverImpl']]], + ['ref_4',['Ref',['../classftxui_1_1Ref.html#a6170df9accd9f47736e97385233017b3',1,'ftxui::Ref::Ref()=default'],['../classftxui_1_1Ref.html#ab19bb3d5a2b0867c790f00f339915c56',1,'ftxui::Ref::Ref(T t)'],['../classftxui_1_1Ref.html#ae16b183b63cb1d7ef3d11ff47c158a8b',1,'ftxui::Ref::Ref(T *t)'],['../classftxui_1_1Ref.html#aec110a549f4e384fb89896bd013cc8fe',1,'ftxui::Ref::Ref(const Ref< T > &)=default'],['../classftxui_1_1Ref.html#af37c209213693451d05f4b089402ee07',1,'ftxui::Ref::Ref(Ref< T > &&) noexcept=default']]], + ['reflect_5',['reflect',['../namespaceftxui.html#aaff8245861617a3d9e846e99de582a63',1,'ftxui']]], + ['registerhyperlink_6',['RegisterHyperlink',['../group__screen.html#a38015a8bc3dda474354ec8a374a6e2de',1,'ftxui::Screen']]], + ['render_7',['Render',['../group__component.html#a28d41d6113c5b29c8dd45846582b3299',1,'ftxui::ComponentBase::Render()'],['../group__dom.html#a7e286fe14880614686ceeec84a9a9702',1,'ftxui::Node::Render()'],['../group__dom.html#a28d41d6113c5b29c8dd45846582b3299',1,'ftxui::Table::Render()'],['../group__dom.html#gad4b8aa9392f56ba41e2b421e046a7d83',1,'ftxui::Render(Screen &screen, const Element &element)'],['../group__dom.html#ga32a24db985fa1b37bf686b00f7e1b4ff',1,'ftxui::Render(Screen &screen, Node *node)'],['../namespaceftxui.html#ab35030b64136afa183d474d11bd1f6dd',1,'ftxui::Render(Screen &screen, Node *node, Selection &selection)']]], + ['renderer_8',['Renderer',['../group__component.html#ga533e883e2aeea28de2b60564fcaf0361',1,'ftxui::Renderer(Component child, std::function< Element()> render)'],['../group__component.html#gaf03d3df7243bf71bb1a73686628f7f2b',1,'ftxui::Renderer(std::function< Element()> render)'],['../group__component.html#ga099cb57274a99396ee10f38acbfe62a7',1,'ftxui::Renderer(std::function< Element(bool)> render)'],['../group__component.html#ga41d63b7af41dee1570b54915821abd30',1,'ftxui::Renderer(ElementDecorator decorator)']]], + ['requestanimationframe_9',['RequestAnimationFrame',['../group__component.html#ad94d3d42aba3359550759aae5bcffbe9',1,'ftxui::ScreenInteractive::RequestAnimationFrame()'],['../group__component.html#gad94d3d42aba3359550759aae5bcffbe9',1,'ftxui::animation::RequestAnimationFrame()']]], + ['requirement_10',['requirement',['../group__dom.html#a39a263e8c8786dc62fcb4d734aad7fe6',1,'ftxui::Node']]], + ['resetposition_11',['ResetPosition',['../group__screen.html#a9677c078c4270afdb7451cdc0b0871d4',1,'ftxui::Screen']]], + ['resizablesplit_12',['ResizableSplit',['../namespaceftxui.html#a5ce41caeafc35dedc5c7da5347386e80',1,'ftxui']]], + ['resizablesplitbottom_13',['ResizableSplitBottom',['../group__component.html#gacb75e6e61a021829893f7b57aeb7e3a2',1,'ftxui']]], + ['resizablesplitleft_14',['ResizableSplitLeft',['../group__component.html#gae2205fc172615b43e1e3307bb614be4c',1,'ftxui']]], + ['resizablesplitright_15',['ResizableSplitRight',['../group__component.html#ga9030d0beb64f653603cab382b02750a8',1,'ftxui']]], + ['resizablesplittop_16',['ResizableSplitTop',['../group__component.html#ga238b4b650aca14716b82b2198695e008',1,'ftxui']]], + ['rgb_17',['RGB',['../group__screen.html#aacec69e0aa1063fbec2cc305e7b076dd',1,'ftxui::Color']]], + ['rgba_18',['RGBA',['../group__screen.html#a2649c83ca263094811d2c537d44b59b4',1,'ftxui::Color']]], + ['run_19',['Run',['../group__component.html#aa3eca255b6be227d7d901cc2a72017a5',1,'ftxui::Loop::Run()'],['../classftxui_1_1task_1_1TaskRunner.html#a58f2f0e6ed3d38c3e6a081f7c99a544f',1,'ftxui::task::TaskRunner::Run()']]], + ['runonce_20',['RunOnce',['../group__component.html#ad638ec512bc0d9876c2bf1c15913e9d3',1,'ftxui::Loop']]], + ['runonceblocking_21',['RunOnceBlocking',['../group__component.html#afe89c4e52cb64cd7271c3fa8a04e7b61',1,'ftxui::Loop']]], + ['rununtilidle_22',['RunUntilIdle',['../classftxui_1_1task_1_1TaskRunner.html#a7865ea610276e71d61633de0aab71753',1,'ftxui::task::TaskRunner']]] +]; diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 000000000..b06b72406 --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['component_0',['ftxui/component',['../group__component.html',1,'']]] +]; diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 000000000..74821f862 --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dom_0',['ftxui/dom',['../group__dom.html',1,'']]] +]; diff --git a/search/groups_2.js b/search/groups_2.js new file mode 100644 index 000000000..ce86a2e24 --- /dev/null +++ b/search/groups_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ftxui_20component_0',['ftxui/component',['../group__component.html',1,'']]], + ['ftxui_20dom_1',['ftxui/dom',['../group__dom.html',1,'']]], + ['ftxui_20screen_2',['ftxui/screen',['../group__screen.html',1,'']]] +]; diff --git a/search/groups_3.js b/search/groups_3.js new file mode 100644 index 000000000..a0bebd5a1 --- /dev/null +++ b/search/groups_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['screen_0',['ftxui/screen',['../group__screen.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 000000000..ffb6cf0d0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 000000000..4122773f9 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 000000000..553dba877 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 000000000..c906f84c8 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/modules_0.js b/search/modules_0.js new file mode 100644 index 000000000..1f476046a --- /dev/null +++ b/search/modules_0.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['ftxui_0',['ftxui',['../module__ftxui.html',1,'']]], + ['ftxui_2ecomponent_1',['ftxui.component',['../module__ftxui_8component.html',1,'']]], + ['ftxui_2ecomponent_2eanimation_2',['ftxui.component.animation',['../module__ftxui_8component_8animation.html',1,'']]], + ['ftxui_2ecomponent_2ecaptured_5fmouse_3',['ftxui.component.captured_mouse',['../module__ftxui_8component_8captured__mouse.html',1,'']]], + ['ftxui_2ecomponent_2ecomponent_4',['ftxui.component.component',['../module__ftxui_8component_8component.html',1,'']]], + ['ftxui_2ecomponent_2ecomponent_5fbase_5',['ftxui.component.component_base',['../module__ftxui_8component_8component__base.html',1,'']]], + ['ftxui_2ecomponent_2ecomponent_5foptions_6',['ftxui.component.component_options',['../module__ftxui_8component_8component__options.html',1,'']]], + ['ftxui_2ecomponent_2eevent_7',['ftxui.component.event',['../module__ftxui_8component_8event.html',1,'']]], + ['ftxui_2ecomponent_2eloop_8',['ftxui.component.loop',['../module__ftxui_8component_8loop.html',1,'']]], + ['ftxui_2ecomponent_2emouse_9',['ftxui.component.mouse',['../module__ftxui_8component_8mouse.html',1,'']]], + ['ftxui_2ecomponent_2ereceiver_10',['ftxui.component.receiver',['../module__ftxui_8component_8receiver.html',1,'']]], + ['ftxui_2ecomponent_2escreen_5finteractive_11',['ftxui.component.screen_interactive',['../module__ftxui_8component_8screen__interactive.html',1,'']]], + ['ftxui_2ecomponent_2etask_12',['ftxui.component.task',['../module__ftxui_8component_8task.html',1,'']]], + ['ftxui_2edom_13',['ftxui.dom',['../module__ftxui_8dom.html',1,'']]], + ['ftxui_2edom_2ecanvas_14',['ftxui.dom.canvas',['../module__ftxui_8dom_8canvas.html',1,'']]], + ['ftxui_2edom_2edeprecated_15',['ftxui.dom.deprecated',['../module__ftxui_8dom_8deprecated.html',1,'']]], + ['ftxui_2edom_2edirection_16',['ftxui.dom.direction',['../module__ftxui_8dom_8direction.html',1,'']]], + ['ftxui_2edom_2eelements_17',['ftxui.dom.elements',['../module__ftxui_8dom_8elements.html',1,'']]], + ['ftxui_2edom_2eflexbox_5fconfig_18',['ftxui.dom.flexbox_config',['../module__ftxui_8dom_8flexbox__config.html',1,'']]], + ['ftxui_2edom_2elinear_5fgradient_19',['ftxui.dom.linear_gradient',['../module__ftxui_8dom_8linear__gradient.html',1,'']]], + ['ftxui_2edom_2enode_20',['ftxui.dom.node',['../module__ftxui_8dom_8node.html',1,'']]], + ['ftxui_2edom_2erequirement_21',['ftxui.dom.requirement',['../module__ftxui_8dom_8requirement.html',1,'']]], + ['ftxui_2edom_2eselection_22',['ftxui.dom.selection',['../module__ftxui_8dom_8selection.html',1,'']]], + ['ftxui_2edom_2etable_23',['ftxui.dom.table',['../module__ftxui_8dom_8table.html',1,'']]], + ['ftxui_2escreen_24',['ftxui.screen',['../module__ftxui_8screen.html',1,'']]], + ['ftxui_2escreen_2ebox_25',['ftxui.screen.box',['../module__ftxui_8screen_8box.html',1,'']]], + ['ftxui_2escreen_2ecolor_26',['ftxui.screen.color',['../module__ftxui_8screen_8color.html',1,'']]], + ['ftxui_2escreen_2ecolor_5finfo_27',['ftxui.screen.color_info',['../module__ftxui_8screen_8color__info.html',1,'']]], + ['ftxui_2escreen_2edeprecated_28',['ftxui.screen.deprecated',['../module__ftxui_8screen_8deprecated.html',1,'']]], + ['ftxui_2escreen_2eimage_29',['ftxui.screen.image',['../module__ftxui_8screen_8image.html',1,'']]], + ['ftxui_2escreen_2epixel_30',['ftxui.screen.pixel',['../module__ftxui_8screen_8pixel.html',1,'']]], + ['ftxui_2escreen_2escreen_31',['ftxui.screen.screen',['../module__ftxui_8screen_8screen.html',1,'']]], + ['ftxui_2escreen_2estring_32',['ftxui.screen.string',['../module__ftxui_8screen_8string.html',1,'']]], + ['ftxui_2escreen_2eterminal_33',['ftxui.screen.terminal',['../module__ftxui_8screen_8terminal.html',1,'']]], + ['ftxui_2eutil_34',['ftxui.util',['../module__ftxui_8util.html',1,'']]], + ['ftxui_2eutil_2eautoreset_35',['ftxui.util.autoreset',['../module__ftxui_8util_8autoreset.html',1,'']]], + ['ftxui_2eutil_2eref_36',['ftxui.util.ref',['../module__ftxui_8util_8ref.html',1,'']]] +]; diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 000000000..c69815f7f --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['easing_0',['easing',['../namespaceeasing.html',1,'']]] +]; diff --git a/search/namespaces_1.js b/search/namespaces_1.js new file mode 100644 index 000000000..4ea61d6a3 --- /dev/null +++ b/search/namespaces_1.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['ftxui_0',['ftxui',['../namespaceftxui.html',1,'']]], + ['ftxui_3a_3aanimation_1',['animation',['../namespaceftxui_1_1animation.html',1,'ftxui']]], + ['ftxui_3a_3aanimation_3a_3aeasing_2',['easing',['../namespaceftxui_1_1animation_1_1easing.html',1,'ftxui::animation']]], + ['ftxui_3a_3abox_5fhelper_3',['box_helper',['../namespaceftxui_1_1box__helper.html',1,'ftxui']]], + ['ftxui_3a_3acontainer_4',['Container',['../namespaceftxui_1_1Container.html',1,'ftxui']]], + ['ftxui_3a_3adimension_5',['Dimension',['../namespaceftxui_1_1Dimension.html',1,'ftxui']]], + ['ftxui_3a_3aflexbox_5fhelper_6',['flexbox_helper',['../namespaceftxui_1_1flexbox__helper.html',1,'ftxui']]], + ['ftxui_3a_3aliterals_7',['literals',['../namespaceftxui_1_1literals.html',1,'ftxui']]], + ['ftxui_3a_3atask_8',['task',['../namespaceftxui_1_1task.html',1,'ftxui']]], + ['ftxui_3a_3aterminal_9',['Terminal',['../namespaceftxui_1_1Terminal.html',1,'ftxui']]], + ['ftxui_3a_3autil_10',['util',['../namespaceftxui_1_1util.html',1,'ftxui']]] +]; diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 000000000..e4388f31c --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['20_20modules_0',['C++20 Modules',['../cpp20-modules.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 000000000..a89a44d7a --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['arch_20linux_0',['Arch Linux',['../installation_arch.html',1,'installation']]] +]; diff --git a/search/pages_10.js b/search/pages_10.js new file mode 100644 index 000000000..57efe2435 --- /dev/null +++ b/search/pages_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vcpkg_0',['Vcpkg',['../installation_vcpkg.html',1,'installation']]] +]; diff --git a/search/pages_11.js b/search/pages_11.js new file mode 100644 index 000000000..920258b15 --- /dev/null +++ b/search/pages_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xmake_0',['XMake',['../installation_xmake.html',1,'installation']]] +]; diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 000000000..88536ee81 --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bazel_0',['Bazel',['../installation_bazel.html',1,'installation']]] +]; diff --git a/search/pages_3.js b/search/pages_3.js new file mode 100644 index 000000000..c9dd37b0a --- /dev/null +++ b/search/pages_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['c_2020_20modules_0',['C++20 Modules',['../cpp20-modules.html',1,'']]], + ['cmake_1',['CMake',['../installation_cmake.html',1,'installation']]], + ['component_2',['ftxui / component',['../module-component.html',1,'']]], + ['conan_3',['Conan',['../installation_conan.html',1,'installation']]] +]; diff --git a/search/pages_4.js b/search/pages_4.js new file mode 100644 index 000000000..9df6d9011 --- /dev/null +++ b/search/pages_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['debian_20ubuntu_0',['Debian/Ubuntu',['../installation_debian.html',1,'installation']]], + ['dom_1',['ftxui / dom',['../module-dom.html',1,'']]] +]; diff --git a/search/pages_5.js b/search/pages_5.js new file mode 100644 index 000000000..53fe39199 --- /dev/null +++ b/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['example_0',['Example',['../module-component-examples.html',1,'Example'],['../module-dom-examples.html',1,'Example']]] +]; diff --git a/search/pages_6.js b/search/pages_6.js new file mode 100644 index 000000000..7429facb9 --- /dev/null +++ b/search/pages_6.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ftxui_0',['ftxui',['../ftxui.html',1,'']]], + ['ftxui_20component_1',['ftxui / component',['../module-component.html',1,'']]], + ['ftxui_20dom_2',['ftxui / dom',['../module-dom.html',1,'']]], + ['ftxui_20screen_3',['ftxui / screen',['../module-screen.html',1,'']]] +]; diff --git a/search/pages_7.js b/search/pages_7.js new file mode 100644 index 000000000..0f4d48807 --- /dev/null +++ b/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['getting_20started_0',['Getting Started',['../getting-started.html',1,'']]] +]; diff --git a/search/pages_8.js b/search/pages_8.js new file mode 100644 index 000000000..b8420beff --- /dev/null +++ b/search/pages_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['installation_0',['Installation',['../installation.html',1,'']]], + ['introduction_1',['Introduction',['../index.html',1,'']]] +]; diff --git a/search/pages_9.js b/search/pages_9.js new file mode 100644 index 000000000..3c298c8d3 --- /dev/null +++ b/search/pages_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['linux_0',['Arch Linux',['../installation_arch.html',1,'installation']]], + ['list_1',['Todo List',['../todo.html',1,'']]] +]; diff --git a/search/pages_a.js b/search/pages_a.js new file mode 100644 index 000000000..4aa4557d3 --- /dev/null +++ b/search/pages_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['manual_0',['Manual',['../installation_manual.html',1,'installation']]], + ['modules_1',['C++20 Modules',['../cpp20-modules.html',1,'']]] +]; diff --git a/search/pages_b.js b/search/pages_b.js new file mode 100644 index 000000000..306b65760 --- /dev/null +++ b/search/pages_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nix_0',['Nix',['../installation_nix.html',1,'installation']]] +]; diff --git a/search/pages_c.js b/search/pages_c.js new file mode 100644 index 000000000..04dffed31 --- /dev/null +++ b/search/pages_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['opensuse_0',['openSUSE',['../installation_opensuse.html',1,'installation']]] +]; diff --git a/search/pages_d.js b/search/pages_d.js new file mode 100644 index 000000000..98dd2ad76 --- /dev/null +++ b/search/pages_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['screen_0',['ftxui / screen',['../module-screen.html',1,'']]], + ['started_1',['Getting Started',['../getting-started.html',1,'']]] +]; diff --git a/search/pages_e.js b/search/pages_e.js new file mode 100644 index 000000000..83220efb8 --- /dev/null +++ b/search/pages_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['todo_20list_0',['Todo List',['../todo.html',1,'']]] +]; diff --git a/search/pages_f.js b/search/pages_f.js new file mode 100644 index 000000000..add3757f3 --- /dev/null +++ b/search/pages_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ubuntu_0',['Debian/Ubuntu',['../installation_debian.html',1,'installation']]] +]; diff --git a/search/related_0.js b/search/related_0.js new file mode 100644 index 000000000..748e28a12 --- /dev/null +++ b/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['render_0',['Render',['../group__dom.html#ab35030b64136afa183d474d11bd1f6dd',1,'ftxui::Node']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 000000000..0789eba4d --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  3. object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: url('mag_sel.svg'); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: url('mag.svg'); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial,Verdana,sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: black; +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #719AED; + background-color: #F7F9FE; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial,Verdana,sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: black; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: black; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: white; + background-color: #154AB3; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid black; + background-color: #E9EFFC; + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: #E9EFFC; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #1750C2; + font-family: Arial,Verdana,sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #1750C2; + font-family: Arial,Verdana,sans-serif; + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial,Verdana,sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial,Verdana,sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 000000000..666af01e5 --- /dev/null +++ b/search/search.js @@ -0,0 +1,694 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c + + + + + + + +FTXUI: selection.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    selection.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/selection_8cppm_source.html b/selection_8cppm_source.html new file mode 100644 index 000000000..309c72399 --- /dev/null +++ b/selection_8cppm_source.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: selection.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    selection.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.dom.selection
    +
    2/// @brief Module file for the Selection class of the Dom module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.dom.selection;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::Selection;
    +
    16}
    +
    Represents a selection in a terminal user interface.
    Definition selection.hpp:22
    +
    Module file for the Selection class of the Dom module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/selection_8hpp.html b/selection_8hpp.html new file mode 100644 index 000000000..1111a6a62 --- /dev/null +++ b/selection_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: selection.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    selection.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    class  Selection
     Represents a selection in a terminal user interface. More...
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/selection_8hpp_source.html b/selection_8hpp_source.html new file mode 100644 index 000000000..74e89b20c --- /dev/null +++ b/selection_8hpp_source.html @@ -0,0 +1,280 @@ + + + + + + + + +FTXUI: selection.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    selection.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4
    +
    5#ifndef FTXUI_DOM_SELECTION_HPP
    +
    6#define FTXUI_DOM_SELECTION_HPP
    +
    7
    +
    8#include <functional>
    +
    9
    +
    10#include <sstream>
    +
    11#include "ftxui/screen/box.hpp" // for Box
    +
    12#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    13
    +
    14namespace ftxui {
    +
    15
    +
    16/// @brief Represents a selection in a terminal user interface.
    +
    17///
    +
    18/// Selection is a class that represents the two endpoints of a selection in a
    +
    19/// terminal user interface.
    +
    20///
    +
    21/// @ingroup dom
    +
    +
    22class Selection {
    +
    23 public:
    +
    24 Selection(); // Empty selection.
    +
    25 Selection(int start_x, int start_y, int end_x, int end_y);
    +
    26
    +
    27 const Box& GetBox() const;
    +
    28
    + + +
    31 bool IsEmpty() const { return empty_; }
    +
    32
    +
    33 void AddPart(const std::string& part, int y, int left, int right);
    +
    34 std::string GetParts() { return parts_.str(); }
    +
    35
    +
    36 private:
    +
    37 Selection(int start_x, int start_y, int end_x, int end_y, Selection* parent);
    +
    38
    +
    39 const int start_x_ = 0;
    +
    40 const int start_y_ = 0;
    +
    41 const int end_x_ = 0;
    +
    42 const int end_y_ = 0;
    +
    43 const Box box_ = {};
    +
    44 Selection* const parent_ = this;
    +
    45 const bool empty_ = true;
    +
    46 std::stringstream parts_;
    +
    47
    +
    48 // The position of the last inserted part.
    +
    49 int x_ = 0;
    +
    50 int y_ = 0;
    +
    51};
    +
    +
    52
    +
    53} // namespace ftxui
    +
    54
    +
    55#endif /* end of include guard: FTXUI_DOM_SELECTION_HPP */
    + +
    const Box & GetBox() const
    Get the box of the selection.
    +
    std::string GetParts()
    Definition selection.hpp:34
    +
    bool IsEmpty() const
    Definition selection.hpp:31
    +
    void AddPart(const std::string &part, int y, int left, int right)
    +
    Selection SaturateVertical(Box box)
    Saturate the selection to be inside the box. This is called by vbox to propagate the selection to its...
    +
    Selection()
    Create an empty selection.
    +
    Selection SaturateHorizontal(Box box)
    Saturate the selection to be inside the box. This is called by hbox to propagate the selection to its...
    +
    Represents a selection in a terminal user interface.
    Definition selection.hpp:22
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t right
    Definition screen.cpp:132
    +
    +
    + + + + + diff --git a/selection__style_8cpp.html b/selection__style_8cpp.html new file mode 100644 index 000000000..af6de0b49 --- /dev/null +++ b/selection__style_8cpp.html @@ -0,0 +1,256 @@ + + + + + + + + +FTXUI: selection_style.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    selection_style.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + +

    +Functions

    Element selectionStyleReset (Element child)
     Reset the selection style of an element.
     
    Decorator selectionBackgroundColor (Color foreground)
     Set the background color of an element when selected. Note that the style is applied on top of the existing style.
     
    Decorator selectionForegroundColor (Color foreground)
     Set the foreground color of an element when selected. Note that the style is applied on top of the existing style.
     
    Decorator selectionColor (Color foreground)
     Set the color of an element when selected.
     
    Decorator selectionStyle (std::function< void(Pixel &)> style)
     Set the style of an element when selected.
     
    +

    Variable Documentation

    + +

    ◆ style_

    + +
    +
    + + + + +
    std::function<void(Pixel&)> style_
    +
    + +

    Definition at line 47 of file selection_style.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/selection__style_8cpp.js b/selection__style_8cpp.js new file mode 100644 index 000000000..b753844ae --- /dev/null +++ b/selection__style_8cpp.js @@ -0,0 +1,9 @@ +var selection__style_8cpp = +[ + [ "selectionStyleReset", "selection__style_8cpp.html#aa7e1317c76cefc5018503de4f6e09ea3", null ], + [ "selectionBackgroundColor", "selection__style_8cpp.html#a6c965b8f6450a50a938120b5f6ddea96", null ], + [ "selectionForegroundColor", "selection__style_8cpp.html#a5d98498c51cfbc03f37e46d46ec8acf5", null ], + [ "selectionColor", "selection__style_8cpp.html#a925a73b7f0eb4b5bc11af23f4ca18019", null ], + [ "selectionStyle", "selection__style_8cpp.html#a4080865d947eea48cf695531f66a5160", null ], + [ "style_", "selection__style_8cpp.html#a4e933ebfcd587caa8c7a7c518ee9e4f6", null ] +]; \ No newline at end of file diff --git a/selection__style_8cpp_source.html b/selection__style_8cpp_source.html new file mode 100644 index 000000000..1b32051ad --- /dev/null +++ b/selection__style_8cpp_source.html @@ -0,0 +1,331 @@ + + + + + + + + +FTXUI: selection_style.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    selection_style.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <memory> // for make_shared
    +
    6#include <utility> // for move
    +
    7
    +
    8#include "ftxui/dom/elements.hpp" // for Element, Decorator, bgcolor, color
    +
    9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    10#include "ftxui/screen/color.hpp" // for Color
    +
    11#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    12#include "ftxui/screen/screen.hpp" // for Screen
    +
    13
    +
    14namespace ftxui {
    +
    15
    +
    16namespace {
    +
    17
    +
    18class SelectionStyleReset : public NodeDecorator {
    +
    19 public:
    +
    20 explicit SelectionStyleReset(Element child)
    +
    21 : NodeDecorator(std::move(child)) {}
    +
    22
    +
    23 void Render(Screen& screen) final {
    +
    24 auto old_style = screen.GetSelectionStyle();
    +
    25 screen.SetSelectionStyle([](Pixel&) {});
    + +
    27 screen.SetSelectionStyle(old_style);
    +
    28 }
    +
    29};
    +
    30
    +
    31class SelectionStyle : public NodeDecorator {
    +
    32 public:
    +
    33 SelectionStyle(Element child, const std::function<void(Pixel&)>& style)
    +
    34 : NodeDecorator(std::move(child)), style_(style) {}
    +
    35
    +
    36 void Render(Screen& screen) final {
    +
    37 auto old_style = screen.GetSelectionStyle();
    +
    38 auto new_style = [&, old_style](Pixel& pixel) {
    +
    39 old_style(pixel);
    +
    40 style_(pixel);
    +
    41 };
    +
    42 screen.SetSelectionStyle(new_style);
    + +
    44 screen.SetSelectionStyle(old_style);
    +
    45 }
    +
    46
    +
    47 std::function<void(Pixel&)> style_;
    +
    48};
    +
    49
    +
    50} // namespace
    +
    51
    +
    52/// @brief Reset the selection style of an element.
    +
    53/// @param child The input element.
    +
    54/// @return The output element with the selection style reset.
    +
    + +
    56 return std::make_shared<SelectionStyleReset>(std::move(child));
    +
    57}
    +
    +
    58
    +
    59/// @brief Set the background color of an element when selected.
    +
    60/// Note that the style is applied on top of the existing style.
    +
    + +
    62 return selectionStyle([foreground](Pixel& pixel) { //
    +
    63 pixel.background_color = foreground;
    +
    64 });
    +
    65}
    +
    +
    66
    +
    67/// @brief Set the foreground color of an element when selected.
    +
    68/// Note that the style is applied on top of the existing style.
    +
    + +
    70 return selectionStyle([foreground](Pixel& pixel) { //
    +
    71 pixel.foreground_color = foreground;
    +
    72 });
    +
    73}
    +
    +
    74
    +
    75/// @brief Set the color of an element when selected.
    +
    76/// @param foreground The color to be applied.
    +
    77/// Note that the style is applied on top of the existing style.
    +
    + +
    79 return selectionForegroundColor(foreground);
    +
    80}
    +
    +
    81
    +
    82/// @brief Set the style of an element when selected.
    +
    83/// @param style The style to be applied.
    +
    84/// Note that the style is applied on top of the existing style.
    +
    85// NOLINTNEXTLINE
    +
    +
    86Decorator selectionStyle(std::function<void(Pixel&)> style) {
    +
    87 return [style](Element child) -> Element {
    +
    88 return std::make_shared<SelectionStyle>(std::move(child), style);
    +
    89 };
    +
    90}
    +
    +
    91
    +
    92} // namespace ftxui
    + + +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Color foreground_color
    Definition pixel.hpp:49
    +
    Color background_color
    Definition pixel.hpp:48
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Decorator selectionStyle(std::function< void(Pixel &)> style)
    Set the style of an element when selected.
    +
    Decorator selectionForegroundColor(Color foreground)
    Set the foreground color of an element when selected. Note that the style is applied on top of the ex...
    +
    Decorator selectionBackgroundColor(Color foreground)
    Set the background color of an element when selected. Note that the style is applied on top of the ex...
    +
    Decorator selectionColor(Color foreground)
    Set the color of an element when selected.
    +
    Element selectionStyleReset(Element)
    Reset the selection style of an element.
    + + + +
    std::function< void(Pixel &)> style_
    +
    +
    + + + + + diff --git a/separator__style_8cpp.html b/separator__style_8cpp.html new file mode 100644 index 000000000..de0642fdf --- /dev/null +++ b/separator__style_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: separator_style.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    separator_style.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file separator_style.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/separator__style_8cpp.js b/separator__style_8cpp.js new file mode 100644 index 000000000..2b7daf6e2 --- /dev/null +++ b/separator__style_8cpp.js @@ -0,0 +1,4 @@ +var separator__style_8cpp = +[ + [ "main", "separator__style_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/separator__style_8cpp_source.html b/separator__style_8cpp_source.html new file mode 100644 index 000000000..0a53fd261 --- /dev/null +++ b/separator__style_8cpp_source.html @@ -0,0 +1,263 @@ + + + + + + + + +FTXUI: separator_style.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    separator_style.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/screen/screen.hpp> // for Screen
    +
    5#include <iostream> // for endl, cout, ostream
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/elements.hpp" // for text, hbox, separatorDouble, separatorHeavy, separatorLight, vbox, operator|, Element, Fit, borderDouble, borderHeavy, borderLight
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/box.hpp" // for ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14
    +
    15 auto document = vbox({
    +
    16 vbox({
    +
    17 text("separatorLight"),
    +
    18 separatorLight(),
    +
    19 hbox(text("left"), separatorLight(), text("right")),
    +
    20 }) | borderLight,
    +
    21
    +
    22 vbox({
    +
    23 text("separatorDashed"),
    +
    24 separatorDashed(),
    +
    25 hbox(text("left"), separatorDashed(), text("right")),
    +
    26 }) | borderDashed,
    +
    27
    +
    28 vbox({
    +
    29 text("separatorHeavy"),
    +
    30 separatorHeavy(),
    +
    31 hbox(text("left"), separatorHeavy(), text("right")),
    +
    32 }) | borderHeavy,
    +
    33
    +
    34 vbox({
    +
    35 text("separatorDouble"),
    +
    36 separatorDouble(),
    +
    37 hbox(text("left"), separatorDouble(), text("right")),
    +
    38 }) | borderDouble,
    +
    39 });
    +
    40
    +
    41 auto screen =
    +
    42 Screen::Create(Dimension::Fit(document), Dimension::Fit(document));
    +
    43 Render(screen, document);
    +
    44 screen.Print();
    +
    45 std::cout << std::endl;
    +
    46}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/slider__direction_8cpp.html b/slider__direction_8cpp.html new file mode 100644 index 000000000..3d8b34bc5 --- /dev/null +++ b/slider__direction_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: slider_direction.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    slider_direction.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 19 of file slider_direction.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/slider__direction_8cpp.js b/slider__direction_8cpp.js new file mode 100644 index 000000000..f3d603603 --- /dev/null +++ b/slider__direction_8cpp.js @@ -0,0 +1,4 @@ +var slider__direction_8cpp = +[ + [ "main", "slider__direction_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/slider__direction_8cpp_source.html b/slider__direction_8cpp_source.html new file mode 100644 index 000000000..e393a895e --- /dev/null +++ b/slider__direction_8cpp_source.html @@ -0,0 +1,281 @@ + + + + + + + + +FTXUI: slider_direction.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    slider_direction.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <array> // for array
    +
    5#include <cmath> // for sin
    +
    6#include <ftxui/component/component_base.hpp> // for ComponentBase
    +
    7#include <ftxui/component/component_options.hpp> // for SliderOption
    +
    8#include <ftxui/dom/direction.hpp> // for Direction, Direction::Up
    +
    9#include <ftxui/dom/elements.hpp> // for size, GREATER_THAN, HEIGHT
    +
    10#include <ftxui/util/ref.hpp> // for ConstRef, Ref
    +
    11#include <memory> // for shared_ptr, __shared_ptr_access
    +
    12
    +
    13#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    14#include "ftxui/component/component.hpp" // for Horizontal, Slider, operator|=
    +
    15#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    16
    +
    17using namespace ftxui;
    +
    18
    +
    +
    19int main() {
    + +
    21 std::array<int, 30> values;
    +
    22 for (size_t i = 0; i < values.size(); ++i) {
    +
    23 values[i] = 50 + 20 * std::sin(i * 0.3);
    +
    24 }
    +
    25
    +
    26 auto layout_horizontal = Container::Horizontal({});
    +
    27 for (auto& value : values) {
    +
    28 // In C++17:
    +
    29 SliderOption<int> option;
    +
    30 option.value = &value;
    +
    31 option.max = 100;
    +
    32 option.increment = 5;
    +
    33 option.direction = Direction::Up;
    +
    34 layout_horizontal->Add(Slider<int>(option));
    +
    35
    +
    36 /* In C++20:
    +
    37 layout_horizontal->Add(Slider<int>({
    +
    38 .value = &values[i],
    +
    39 .max = 100,
    +
    40 .increment = 5,
    +
    41 .direction = Direction::Up,
    +
    42 }));
    +
    43 */
    +
    44 }
    +
    45
    +
    46 layout_horizontal |= size(HEIGHT, GREATER_THAN, 20);
    +
    47
    +
    48 screen.Loop(layout_horizontal);
    +
    49}
    +
    + + + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    @ GREATER_THAN
    Definition elements.hpp:162
    + + +
    int main()
    + + + + + +
    +
    + + + + + diff --git a/slider__rgb_8cpp.html b/slider__rgb_8cpp.html new file mode 100644 index 000000000..7aa8ff3a7 --- /dev/null +++ b/slider__rgb_8cpp.html @@ -0,0 +1,299 @@ + + + + + + + + +FTXUI: slider_rgb.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    slider_rgb.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + +

    +Functions

    Element ColorTile (int red, int green, int blue)
     
    Element ColorString (int red, int green, int blue)
     
    int main ()
     
    +

    Function Documentation

    + +

    ◆ ColorTile()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Element ColorTile (int red,
    int green,
    int blue )
    +
    + +

    Definition at line 16 of file slider_rgb.cpp.

    + +
    +
    + +

    ◆ ColorString()

    + +
    +
    + + + + + + + + + + + + + + + + +
    Element ColorString (int red,
    int green,
    int blue )
    +
    + +

    Definition at line 21 of file slider_rgb.cpp.

    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 29 of file slider_rgb.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/slider__rgb_8cpp.js b/slider__rgb_8cpp.js new file mode 100644 index 000000000..3b0875234 --- /dev/null +++ b/slider__rgb_8cpp.js @@ -0,0 +1,6 @@ +var slider__rgb_8cpp = +[ + [ "ColorTile", "slider__rgb_8cpp.html#ac5038fb3740e7d9137dfb4969a9a8035", null ], + [ "ColorString", "slider__rgb_8cpp.html#acfbf512737b012658b0c3b6997da144e", null ], + [ "main", "slider__rgb_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/slider__rgb_8cpp_source.html b/slider__rgb_8cpp_source.html new file mode 100644 index 000000000..513ebcf36 --- /dev/null +++ b/slider__rgb_8cpp_source.html @@ -0,0 +1,303 @@ + + + + + + + + +FTXUI: slider_rgb.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    slider_rgb.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, shared_ptr, __shared_ptr_access
    +
    5#include <string> // for char_traits, operator+, to_string
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Slider, Renderer, Vertical
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    11#include "ftxui/dom/elements.hpp" // for separator, operator|, Element, size, text, vbox, xflex, bgcolor, hbox, GREATER_THAN, WIDTH, border, HEIGHT, LESS_THAN
    +
    12#include "ftxui/screen/color.hpp" // for Color
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16Element ColorTile(int red, int green, int blue) {
    +
    17 return text("") | size(WIDTH, GREATER_THAN, 14) |
    +
    18 size(HEIGHT, GREATER_THAN, 7) | bgcolor(Color::RGB(red, green, blue));
    +
    19}
    +
    +
    20
    +
    +
    21Element ColorString(int red, int green, int blue) {
    +
    22 return text("RGB = (" + //
    +
    23 std::to_string(red) + "," + //
    +
    24 std::to_string(green) + "," + //
    +
    25 std::to_string(blue) + ")" //
    +
    26 );
    +
    27}
    +
    +
    28
    +
    +
    29int main() {
    +
    30 int red = 128;
    +
    31 int green = 25;
    +
    32 int blue = 100;
    +
    33 auto slider_red = Slider("Red :", &red, 0, 255, 1);
    +
    34 auto slider_green = Slider("Green:", &green, 0, 255, 1);
    +
    35 auto slider_blue = Slider("Blue :", &blue, 0, 255, 1);
    +
    36
    +
    37 auto container = Container::Vertical({
    +
    38 slider_red,
    +
    39 slider_green,
    +
    40 slider_blue,
    +
    41 });
    +
    42
    +
    43 auto renderer = Renderer(container, [&] {
    +
    44 return hbox({
    +
    45 ColorTile(red, green, blue),
    +
    46 separator(),
    +
    47 vbox({
    +
    48 slider_red->Render(),
    +
    49 separator(),
    +
    50 slider_green->Render(),
    +
    51 separator(),
    +
    52 slider_blue->Render(),
    +
    53 separator(),
    +
    54 ColorString(red, green, blue),
    +
    55 }) | xflex,
    +
    56 }) |
    +
    57 border | size(WIDTH, LESS_THAN, 80);
    +
    58 });
    + +
    60 screen.Loop(renderer);
    +
    61}
    +
    + + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
    Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    @ LESS_THAN
    Definition elements.hpp:162
    +
    @ GREATER_THAN
    Definition elements.hpp:162
    + +
    Element ColorTile(int red, int green, int blue)
    +
    Element ColorString(int red, int green, int blue)
    +
    int main()
    +
    +
    + + + + + diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff2524fc1257865e03cd10012d89305ba40cf1d GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6d%$_ceAr*{o?;2)_BnUV> z%;)9cnsiM12}`EP5oV6Aj=4$m)wW6m%@DbF;9k~R71s|uO;goR@G^M|@UR@3)o|9N z?6z&ie-Zh5Lj&;}R#EHr)&BgF_x{7p+0Dz>+u2n8`^R@i+*QI=&@HefP$W@=7^d`+ z$@2Ai&wd{LY9FPur>^M#)5q2P+qc{8yBjB?8~$5guIAsr>hkCB)^A>Y_W!P>Uw@Tt zy*z)q`R5<6UERA4x|DhraV*w2q|rqj^Z$i-rrEZ9RhJh00EP;Kr>mdKI;Vst0K5); A2LJ#7 literal 0 HcmV?d00001 diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..fed0d8633e742d5b6a6801931c870d9c004cc975 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@Vh8#_e;B-}1; zHhytxkxs`Uj#)E1XWl&4%{rrF=CfOk5&a2Cl4Va7bbg2`sC_TIFE6uCsc-u7*~|0m zZ7S-j-+x^F`0D1ve_u1d=~wazY|-p8a1~spaY)2<#v+bjk;E<>f*1EI01dgkJN|j~ z-)Faf&ilQ2mxWE$-=~L + + + + + + + +FTXUI: button.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    button.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Component Button (ButtonOption option)
     Draw a button. Execute a function when clicked.
     
    Component Button (ConstStringRef label, std::function< void()> on_click, ButtonOption option)
     Draw a button. Execute a function when clicked.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2button_8cpp.js b/src_2ftxui_2component_2button_8cpp.js new file mode 100644 index 000000000..5c993ed05 --- /dev/null +++ b/src_2ftxui_2component_2button_8cpp.js @@ -0,0 +1,5 @@ +var src_2ftxui_2component_2button_8cpp = +[ + [ "Button", "src_2ftxui_2component_2button_8cpp.html#ga4e8295ec77dd31b0acc5063b134473e7", null ], + [ "Button", "src_2ftxui_2component_2button_8cpp.html#ga0488e28ee9388e0ddca26f1d03d827d1", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2button_8cpp_source.html b/src_2ftxui_2component_2button_8cpp_source.html new file mode 100644 index 000000000..702741c76 --- /dev/null +++ b/src_2ftxui_2component_2button_8cpp_source.html @@ -0,0 +1,458 @@ + + + + + + + + +FTXUI: button.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/button.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4
    +
    5#include <functional> // for function
    +
    6#include <utility> // for move
    +
    7
    +
    8#include "ftxui/component/animation.hpp" // for Animator, Params (ptr only)
    +
    9#include "ftxui/component/component.hpp" // for Make, Button
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/component_options.hpp" // for ButtonOption, AnimatedColorOption, AnimatedColorsOption, EntryState
    +
    12#include "ftxui/component/event.hpp" // for Event, Event::Return
    +
    13#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Pressed
    +
    14#include "ftxui/component/screen_interactive.hpp" // for Component
    +
    15#include "ftxui/dom/elements.hpp" // for operator|, Decorator, Element, operator|=, bgcolor, color, reflect, text, bold, border, inverted, nothing
    +
    16#include "ftxui/screen/box.hpp" // for Box
    +
    17#include "ftxui/screen/color.hpp" // for Color
    +
    18#include "ftxui/util/ref.hpp" // for Ref, ConstStringRef
    +
    19
    +
    20namespace ftxui {
    +
    21
    +
    22namespace {
    +
    23
    +
    24Element DefaultTransform(EntryState params) { // NOLINT
    +
    25 auto element = text(params.label) | border;
    +
    26 if (params.active) {
    +
    27 element |= bold;
    +
    28 }
    +
    29 if (params.focused) {
    +
    30 element |= inverted;
    +
    31 }
    +
    32 return element;
    +
    33}
    +
    34
    +
    35class ButtonBase : public ComponentBase, public ButtonOption {
    +
    36 public:
    +
    37 explicit ButtonBase(ButtonOption option) : ButtonOption(std::move(option)) {}
    +
    38
    +
    39 // Component implementation:
    +
    40 Element OnRender() override {
    +
    41 const bool active = Active();
    +
    42 const bool focused = Focused();
    +
    43 const bool focused_or_hover = focused || mouse_hover_;
    +
    44
    +
    45 float target = focused_or_hover ? 1.f : 0.f; // NOLINT
    +
    46 if (target != animator_background_.to()) {
    +
    47 SetAnimationTarget(target);
    +
    48 }
    +
    49
    +
    50 const EntryState state{
    +
    51 *label, false, active, focused_or_hover, Index(),
    +
    52 };
    +
    53
    +
    54 auto element = (transform ? transform : DefaultTransform) //
    +
    55 (state);
    +
    56 element |= AnimatedColorStyle();
    +
    57 element |= focus;
    +
    58 element |= reflect(box_);
    +
    59 return element;
    +
    60 }
    +
    61
    +
    62 Decorator AnimatedColorStyle() {
    +
    63 Decorator style = nothing;
    +
    64 if (animated_colors.background.enabled) {
    +
    65 style = style |
    +
    66 bgcolor(Color::Interpolate(animation_foreground_, //
    +
    67 animated_colors.background.inactive,
    +
    68 animated_colors.background.active));
    +
    69 }
    +
    70 if (animated_colors.foreground.enabled) {
    +
    71 style =
    +
    72 style | color(Color::Interpolate(animation_foreground_, //
    +
    73 animated_colors.foreground.inactive,
    +
    74 animated_colors.foreground.active));
    +
    75 }
    +
    76 return style;
    +
    77 }
    +
    78
    +
    79 void SetAnimationTarget(float target) {
    +
    80 if (animated_colors.foreground.enabled) {
    +
    81 animator_foreground_ = animation::Animator(
    +
    82 &animation_foreground_, target, animated_colors.foreground.duration,
    +
    83 animated_colors.foreground.function);
    +
    84 }
    +
    85 if (animated_colors.background.enabled) {
    +
    86 animator_background_ = animation::Animator(
    +
    87 &animation_background_, target, animated_colors.background.duration,
    +
    88 animated_colors.background.function);
    +
    89 }
    +
    90 }
    +
    91
    +
    92 void OnAnimation(animation::Params& p) override {
    +
    93 animator_background_.OnAnimation(p);
    +
    94 animator_foreground_.OnAnimation(p);
    +
    95 }
    +
    96
    +
    97 void OnClick() {
    +
    98 animation_background_ = 0.5F; // NOLINT
    +
    99 animation_foreground_ = 0.5F; // NOLINT
    +
    100 SetAnimationTarget(1.F); // NOLINT
    +
    101
    +
    102 // TODO(arthursonzogni): Consider posting the task to the main loop, instead
    +
    103 // of invoking it immediately.
    +
    104 on_click(); // May delete this.
    +
    105 }
    +
    106
    +
    107 bool OnEvent(Event event) override {
    +
    108 if (event.is_mouse()) {
    +
    109 return OnMouseEvent(event);
    +
    110 }
    +
    111
    +
    112 if (event == Event::Return) {
    +
    113 OnClick(); // May delete this.
    +
    114 return true;
    +
    115 }
    +
    116 return false;
    +
    117 }
    +
    118
    +
    119 bool OnMouseEvent(Event event) {
    +
    120 mouse_hover_ =
    +
    121 box_.Contain(event.mouse().x, event.mouse().y) && CaptureMouse(event);
    +
    122
    +
    123 if (!mouse_hover_) {
    +
    124 return false;
    +
    125 }
    +
    126
    +
    127 if (event.mouse().button == Mouse::Left &&
    +
    128 event.mouse().motion == Mouse::Pressed) {
    +
    129 TakeFocus();
    +
    130 OnClick(); // May delete this.
    +
    131 return true;
    +
    132 }
    +
    133
    +
    134 return false;
    +
    135 }
    +
    136
    +
    137 bool Focusable() const final { return true; }
    +
    138
    +
    139 private:
    +
    140 bool mouse_hover_ = false;
    +
    141 Box box_;
    +
    142 float animation_background_ = 0;
    +
    143 float animation_foreground_ = 0;
    +
    144 animation::Animator animator_background_ =
    +
    145 animation::Animator(&animation_background_);
    +
    146 animation::Animator animator_foreground_ =
    +
    147 animation::Animator(&animation_foreground_);
    +
    148};
    +
    149
    +
    150} // namespace
    +
    151
    +
    152/// @brief Draw a button. Execute a function when clicked.
    +
    153/// @param option Additional optional parameters.
    +
    154/// @ingroup component
    +
    155/// @see ButtonBase
    +
    156///
    +
    157/// ### Example
    +
    158///
    +
    159/// ```cpp
    +
    160/// auto screen = ScreenInteractive::FitComponent();
    +
    161/// Component button = Button({
    +
    162/// .label = "Click to quit",
    +
    163/// .on_click = screen.ExitLoopClosure(),
    +
    164/// });
    +
    165/// screen.Loop(button)
    +
    166/// ```
    +
    167///
    +
    168/// ### Output
    +
    169///
    +
    170/// ```bash
    +
    171/// ┌─────────────┐
    +
    172/// │Click to quit│
    +
    173/// └─────────────┘
    +
    174/// ```
    +
    + +
    176 return Make<ButtonBase>(std::move(option));
    +
    177}
    +
    +
    178
    +
    179/// @brief Draw a button. Execute a function when clicked.
    +
    180/// @param label The label of the button.
    +
    181/// @param on_click The action to execute when clicked.
    +
    182/// @param option Additional optional parameters.
    +
    183/// @ingroup component
    +
    184/// @see ButtonBase
    +
    185///
    +
    186/// ### Example
    +
    187///
    +
    188/// ```cpp
    +
    189/// auto screen = ScreenInteractive::FitComponent();
    +
    190/// std::string label = "Click to quit";
    +
    191/// Component button = Button(&label, screen.ExitLoopClosure());
    +
    192/// screen.Loop(button)
    +
    193/// ```
    +
    194///
    +
    195/// ### Output
    +
    196///
    +
    197/// ```bash
    +
    198/// ┌─────────────┐
    +
    199/// │Click to quit│
    +
    200/// └─────────────┘
    +
    201/// ```
    +
    202// NOLINTNEXTLINE
    +
    + +
    204 std::function<void()> on_click,
    +
    205 ButtonOption option) {
    +
    206 option.label = std::move(label);
    +
    207 option.on_click = std::move(on_click);
    +
    208 return Make<ButtonBase>(std::move(option));
    +
    209}
    +
    +
    210
    +
    211} // namespace ftxui
    + + +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    + + + + + + + + +
    std::function< void()> on_click
    + +
    static const Event Return
    Definition event.hpp:53
    +
    Component Button(ButtonOption options)
    Draw a button. Execute a function when clicked.
    +
    Option for the AnimatedButton component.
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element nothing(Element element)
    A decoration doing absolutely nothing.
    Definition dom/util.cpp:28
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    +
    Element border(Element)
    Draw a border around the element.
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    static Color Interpolate(float t, const Color &a, const Color &b)
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    std::shared_ptr< ComponentBase > Component
    + + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2checkbox_8cpp.html b/src_2ftxui_2component_2checkbox_8cpp.html new file mode 100644 index 000000000..2447ef1c5 --- /dev/null +++ b/src_2ftxui_2component_2checkbox_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: checkbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    checkbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Component Checkbox (CheckboxOption option)
     Draw checkable element.
     
    Component Checkbox (ConstStringRef label, bool *checked, CheckboxOption option)
     Draw checkable element.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2checkbox_8cpp.js b/src_2ftxui_2component_2checkbox_8cpp.js new file mode 100644 index 000000000..608b0f733 --- /dev/null +++ b/src_2ftxui_2component_2checkbox_8cpp.js @@ -0,0 +1,5 @@ +var src_2ftxui_2component_2checkbox_8cpp = +[ + [ "Checkbox", "src_2ftxui_2component_2checkbox_8cpp.html#gae0d441d2c83740f187f62db566bbefcd", null ], + [ "Checkbox", "src_2ftxui_2component_2checkbox_8cpp.html#ga5e9dbb03c44d549f10c96f134269366f", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2checkbox_8cpp_source.html b/src_2ftxui_2component_2checkbox_8cpp_source.html new file mode 100644 index 000000000..769ead14e --- /dev/null +++ b/src_2ftxui_2component_2checkbox_8cpp_source.html @@ -0,0 +1,378 @@ + + + + + + + + +FTXUI: checkbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/checkbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/component/component.hpp" // for Make, Checkbox
    +
    8#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    9#include "ftxui/component/component_options.hpp" // for CheckboxOption, EntryState
    +
    10#include "ftxui/component/event.hpp" // for Event, Event::Return
    +
    11#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Pressed
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, reflect, focus, nothing, select
    +
    13#include "ftxui/screen/box.hpp" // for Box
    +
    14#include "ftxui/util/ref.hpp" // for Ref, ConstStringRef
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18namespace {
    +
    19class CheckboxBase : public ComponentBase, public CheckboxOption {
    +
    20 public:
    +
    21 explicit CheckboxBase(CheckboxOption option)
    +
    22 : CheckboxOption(std::move(option)) {}
    +
    23
    +
    24 private:
    +
    25 // Component implementation.
    +
    26 Element OnRender() override {
    +
    27 const bool is_focused = Focused();
    +
    28 const bool is_active = Active();
    +
    29 auto entry_state = EntryState{
    +
    30 *label, *checked, is_active, is_focused || hovered_, -1,
    +
    31 };
    +
    32 auto element = (transform ? transform : CheckboxOption::Simple().transform)(
    +
    33 entry_state);
    +
    34 element |= focus;
    +
    35 element |= reflect(box_);
    +
    36 return element;
    +
    37 }
    +
    38
    +
    39 bool OnEvent(Event event) override {
    +
    40 if (!CaptureMouse(event)) {
    +
    41 return false;
    +
    42 }
    +
    43
    +
    44 if (event.is_mouse()) {
    +
    45 return OnMouseEvent(event);
    +
    46 }
    +
    47
    +
    48 hovered_ = false;
    +
    49 if (event == Event::Character(' ') || event == Event::Return) {
    +
    50 *checked = !*checked;
    +
    51 on_change();
    +
    52 TakeFocus();
    +
    53 return true;
    +
    54 }
    +
    55 return false;
    +
    56 }
    +
    57
    +
    58 bool OnMouseEvent(Event event) {
    +
    59 hovered_ = box_.Contain(event.mouse().x, event.mouse().y);
    +
    60
    +
    61 if (!CaptureMouse(event)) {
    +
    62 return false;
    +
    63 }
    +
    64
    +
    65 if (!hovered_) {
    +
    66 return false;
    +
    67 }
    +
    68
    +
    69 if (event.mouse().button == Mouse::Left &&
    +
    70 event.mouse().motion == Mouse::Pressed) {
    +
    71 *checked = !*checked;
    +
    72 on_change();
    +
    73 return true;
    +
    74 }
    +
    75
    +
    76 return false;
    +
    77 }
    +
    78
    +
    79 bool Focusable() const final { return true; }
    +
    80
    +
    81 bool hovered_ = false;
    +
    82 Box box_;
    +
    83};
    +
    84} // namespace
    +
    85
    +
    86/// @brief Draw checkable element.
    +
    87/// @param option Additional optional parameters.
    +
    88/// @ingroup component
    +
    89/// @see CheckboxBase
    +
    90///
    +
    91/// ### Example
    +
    92///
    +
    93/// ```cpp
    +
    94/// auto screen = ScreenInteractive::FitComponent();
    +
    95/// CheckboxOption option;
    +
    96/// option.label = "Make a sandwidth";
    +
    97/// option.checked = false;
    +
    98/// Component checkbox = Checkbox(option);
    +
    99/// screen.Loop(checkbox)
    +
    100/// ```
    +
    101///
    +
    102/// ### Output
    +
    103///
    +
    104/// ```bash
    +
    105/// ☐ Make a sandwitch
    +
    106/// ```
    +
    107// NOLINTNEXTLINE
    +
    + +
    109 return Make<CheckboxBase>(std::move(option));
    +
    110}
    +
    +
    111
    +
    112/// @brief Draw checkable element.
    +
    113/// @param label The label of the checkbox.
    +
    114/// @param checked Whether the checkbox is checked or not.
    +
    115/// @param option Additional optional parameters.
    +
    116/// @ingroup component
    +
    117/// @see CheckboxBase
    +
    118///
    +
    119/// ### Example
    +
    120///
    +
    121/// ```cpp
    +
    122/// auto screen = ScreenInteractive::FitComponent();
    +
    123/// std::string label = "Make a sandwidth";
    +
    124/// bool checked = false;
    +
    125/// Component checkbox = Checkbox(&label, &checked);
    +
    126/// screen.Loop(checkbox)
    +
    127/// ```
    +
    128///
    +
    129/// ### Output
    +
    130///
    +
    131/// ```bash
    +
    132/// ☐ Make a sandwitch
    +
    133/// ```
    +
    134// NOLINTNEXTLINE
    +
    +
    135Component Checkbox(ConstStringRef label, bool* checked, CheckboxOption option) {
    +
    136 option.label = std::move(label);
    +
    137 option.checked = checked;
    +
    138 return Make<CheckboxBase>(std::move(option));
    +
    139}
    +
    +
    140
    +
    141} // namespace ftxui
    + +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    + + + + + + + + +
    static CheckboxOption Simple()
    Option for standard Checkbox.
    + +
    static const Event Return
    Definition event.hpp:53
    +
    std::function< Element(const EntryState &)> transform
    +
    Component Checkbox(CheckboxOption options)
    Draw checkable element.
    +
    Option for the Checkbox component.
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2collapsible_8cpp.html b/src_2ftxui_2component_2collapsible_8cpp.html new file mode 100644 index 000000000..066fdf281 --- /dev/null +++ b/src_2ftxui_2component_2collapsible_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: collapsible.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    collapsible.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Component Collapsible (ConstStringRef label, Component child, Ref< bool > show)
     A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2collapsible_8cpp.js b/src_2ftxui_2component_2collapsible_8cpp.js new file mode 100644 index 000000000..cd5c55639 --- /dev/null +++ b/src_2ftxui_2component_2collapsible_8cpp.js @@ -0,0 +1,4 @@ +var src_2ftxui_2component_2collapsible_8cpp = +[ + [ "Collapsible", "src_2ftxui_2component_2collapsible_8cpp.html#a760cd5eb9a72c008ca18f1e6b366c796", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2collapsible_8cpp_source.html b/src_2ftxui_2component_2collapsible_8cpp_source.html new file mode 100644 index 000000000..ddb39cefe --- /dev/null +++ b/src_2ftxui_2component_2collapsible_8cpp_source.html @@ -0,0 +1,286 @@ + + + + + + + + +FTXUI: collapsible.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/collapsible.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/component/component.hpp" // for Checkbox, Maybe, Make, Vertical, Collapsible
    +
    8#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    9#include "ftxui/component/component_options.hpp" // for CheckboxOption, EntryState
    +
    10#include "ftxui/dom/elements.hpp" // for operator|=, text, hbox, Element, bold, inverted
    +
    11#include "ftxui/util/ref.hpp" // for Ref, ConstStringRef
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief A collapsible component. It displays a checkbox with an arrow. Once
    +
    16/// activated, the child is displayed.
    +
    17/// @param label The label of the checkbox.
    +
    18/// @param child The child to display.
    +
    19/// @param show Hold the state about whether the child is displayed or not.
    +
    20///
    +
    21/// ### Example
    +
    22/// ```cpp
    +
    23/// auto component = Collapsible("Show details", details);
    +
    24/// ```
    +
    25///
    +
    26/// ### Output
    +
    27/// ```
    +
    28///
    +
    29/// ▼ Show details
    +
    30/// <details component>
    +
    31/// ```
    +
    32// NOLINTNEXTLINE
    +
    + +
    34 class Impl : public ComponentBase {
    +
    35 public:
    +
    36 Impl(ConstStringRef label, Component child, Ref<bool> show) : show_(show) {
    + +
    38 opt.transform = [](EntryState s) { // NOLINT
    +
    39 auto prefix = text(s.state ? "▼ " : "▶ "); // NOLINT
    +
    40 auto t = text(s.label);
    +
    41 if (s.active) {
    +
    42 t |= bold;
    +
    43 }
    +
    44 if (s.focused) {
    +
    45 t |= inverted;
    +
    46 }
    +
    47 return hbox({prefix, t});
    +
    48 };
    +
    49 Add(Container::Vertical({
    +
    50 Checkbox(std::move(label), show_.operator->(), opt),
    +
    51 Maybe(std::move(child), show_.operator->()),
    +
    52 }));
    +
    53 }
    +
    54 Ref<bool> show_;
    +
    55 };
    +
    56
    +
    57 return Make<Impl>(std::move(label), std::move(child), show);
    +
    58}
    +
    +
    59
    +
    60} // namespace ftxui
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    +
    An adapter. Own or reference an mutable object.
    Definition ref.hpp:46
    + + + + +
    std::function< Element(const EntryState &)> transform
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Option for the Checkbox component.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
    A collapsible component. It displays a checkbox with an arrow. Once activated, the child is displayed...
    +
    std::shared_ptr< ComponentBase > Component
    + +
    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2dropdown_8cpp.html b/src_2ftxui_2component_2dropdown_8cpp.html new file mode 100644 index 000000000..c39af6d5f --- /dev/null +++ b/src_2ftxui_2component_2dropdown_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: dropdown.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dropdown.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Component Dropdown (ConstStringListRef entries, int *selected)
     A dropdown menu.
     
    Component Dropdown (DropdownOption option)
     A dropdown menu.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2dropdown_8cpp.js b/src_2ftxui_2component_2dropdown_8cpp.js new file mode 100644 index 000000000..808c4ce55 --- /dev/null +++ b/src_2ftxui_2component_2dropdown_8cpp.js @@ -0,0 +1,5 @@ +var src_2ftxui_2component_2dropdown_8cpp = +[ + [ "Dropdown", "src_2ftxui_2component_2dropdown_8cpp.html#gaa22bddff4aeed66e20f30d0715596999", null ], + [ "Dropdown", "src_2ftxui_2component_2dropdown_8cpp.html#gaa4b353566017558bac648ee1409930de", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2dropdown_8cpp_source.html b/src_2ftxui_2component_2dropdown_8cpp_source.html new file mode 100644 index 000000000..e2ddb3ede --- /dev/null +++ b/src_2ftxui_2component_2dropdown_8cpp_source.html @@ -0,0 +1,380 @@ + + + + + + + + +FTXUI: dropdown.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/dropdown.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5#include <functional> // for function
    +
    6#include <string> // for string
    +
    7
    +
    8#include <utility>
    +
    9#include "ftxui/component/component.hpp" // for Maybe, Checkbox, Make, Radiobox, Vertical, Dropdown
    +
    10#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    11#include "ftxui/component/component_options.hpp" // for CheckboxOption, EntryState
    +
    12#include "ftxui/dom/elements.hpp" // for operator|, Element, border, filler, operator|=, separator, size, text, vbox, frame, vscroll_indicator, hbox, HEIGHT, LESS_THAN, bold, inverted
    +
    13#include "ftxui/screen/util.hpp" // for clamp
    +
    14#include "ftxui/util/ref.hpp" // for ConstStringListRef
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18/// @brief A dropdown menu.
    +
    19/// @ingroup component
    +
    20/// @param entries The list of entries to display.
    +
    21/// @param selected The index of the selected entry.
    +
    +
    22Component Dropdown(ConstStringListRef entries, int* selected) {
    +
    23 DropdownOption option;
    +
    24 option.radiobox.entries = std::move(entries);
    +
    25 option.radiobox.selected = selected;
    +
    26 return Dropdown(option);
    +
    27}
    +
    +
    28
    +
    29/// @brief A dropdown menu.
    +
    30/// @ingroup component
    +
    31/// @param option The options for the dropdown.
    +
    32// NOLINTNEXTLINE
    +
    + +
    34 class Impl : public ComponentBase, public DropdownOption {
    +
    35 public:
    +
    36 explicit Impl(DropdownOption option) : DropdownOption(std::move(option)) {
    +
    37 FillDefault();
    +
    38 checkbox_ = Checkbox(checkbox);
    +
    39 radiobox_ = Radiobox(radiobox);
    +
    40
    +
    41 Add(Container::Vertical({
    +
    42 checkbox_,
    +
    43 Maybe(radiobox_, checkbox.checked),
    +
    44 }));
    +
    45 }
    +
    46
    +
    47 Element OnRender() override {
    +
    48 selected_ =
    +
    49 util::clamp(radiobox.selected(), 0, int(radiobox.entries.size()) - 1);
    +
    50 selected_ = util::clamp(selected_(), 0, int(radiobox.entries.size()) - 1);
    +
    51
    +
    52 if (selected_() >= 0 && selected_() < int(radiobox.entries.size())) {
    +
    53 title_ = radiobox.entries[selected_()];
    +
    54 }
    +
    55
    +
    56 return transform(*open_, checkbox_->Render(), radiobox_->Render());
    +
    57 }
    +
    58
    +
    59 // Switch focus in between the checkbox and the radiobox when selecting it.
    +
    60 bool OnEvent(ftxui::Event event) override {
    +
    61 const bool open_old = open_();
    +
    62 const int selected_old = selected_();
    +
    63 bool handled = ComponentBase::OnEvent(event);
    +
    64
    +
    65 // Transfer focus to the radiobox when the dropdown is opened.
    +
    66 if (!open_old && open_()) {
    +
    67 radiobox_->TakeFocus();
    +
    68 }
    +
    69
    +
    70 // Auto-close the dropdown when the user selects an item, even if the item
    +
    71 // it the same as the previous one.
    +
    72 if (open_old && open_()) {
    +
    73 const bool should_close =
    +
    74 (selected_() != selected_old) || //
    +
    75 (event == Event::Return) || //
    +
    76 (event == Event::Character(' ')) || //
    +
    77 (event == Event::Escape) || //
    +
    78 (event.is_mouse() && event.mouse().button == Mouse::Left &&
    +
    79 event.mouse().motion == Mouse::Pressed);
    +
    80
    +
    81 if (should_close) {
    +
    82 checkbox_->TakeFocus();
    +
    83 open_ = false;
    +
    84 handled = true;
    +
    85 }
    +
    86 }
    +
    87
    +
    88 return handled;
    +
    89 }
    +
    90
    +
    91 void FillDefault() {
    +
    92 open_ = checkbox.checked;
    +
    93 selected_ = radiobox.selected;
    +
    94 checkbox.checked = &*open_;
    +
    95 radiobox.selected = &*selected_;
    +
    96 checkbox.label = &title_;
    +
    97
    +
    98 if (!checkbox.transform) {
    +
    99 checkbox.transform = [](const EntryState& s) {
    +
    100 auto prefix = text(s.state ? "↓ " : "→ "); // NOLINT
    +
    101 auto t = text(s.label);
    +
    102 if (s.active) {
    +
    103 t |= bold;
    +
    104 }
    +
    105 if (s.focused) {
    +
    106 t |= inverted;
    +
    107 }
    +
    108 return hbox({prefix, t});
    +
    109 };
    +
    110 }
    +
    111
    +
    112 if (!transform) {
    +
    113 transform = [](bool is_open, Element checkbox_element,
    +
    114 Element radiobox_element) {
    +
    115 if (is_open) {
    +
    116 const int max_height = 12;
    +
    117 return vbox({
    +
    118 std::move(checkbox_element),
    +
    119 separator(),
    +
    120 std::move(radiobox_element) | vscroll_indicator | frame |
    +
    121 size(HEIGHT, LESS_THAN, max_height),
    +
    122 }) |
    +
    123 border;
    +
    124 }
    +
    125 return vbox({std::move(checkbox_element), filler()}) | border;
    +
    126 };
    +
    127 }
    +
    128 }
    +
    129
    +
    130 private:
    +
    131 Ref<bool> open_;
    +
    132 Ref<int> selected_;
    +
    133 Component checkbox_;
    +
    134 Component radiobox_;
    +
    135 std::string title_;
    +
    136 };
    +
    137
    +
    138 return Make<Impl>(option);
    +
    139}
    +
    +
    140
    +
    141} // namespace ftxui
    +
    An adapter. Reference a list of strings.
    Definition ref.hpp:116
    +
    An adapter. Own or reference an mutable object.
    Definition ref.hpp:46
    + + + + + +
    struct Mouse mouse
    Definition event.hpp:144
    +
    ConstStringListRef entries
    + +
    Button button
    Definition mouse.hpp:30
    + +
    Motion motion
    Definition mouse.hpp:33
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Dropdown(ConstStringListRef entries, int *selected)
    A dropdown menu.
    +
    Option for the Dropdown component.A dropdown menu is a checkbox opening/closing a radiobox.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    @ LESS_THAN
    Definition elements.hpp:162
    +
    std::shared_ptr< ComponentBase > Component
    + +
    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
    + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2input_8cpp.html b/src_2ftxui_2component_2input_8cpp.html new file mode 100644 index 000000000..397f00c8b --- /dev/null +++ b/src_2ftxui_2component_2input_8cpp.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: input.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    input.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + +

    +Functions

    Component Input (InputOption option)
     An input box for editing text.
     
    Component Input (StringRef content, InputOption option)
     An input box for editing text.
     
    Component Input (StringRef content, StringRef placeholder, InputOption option)
     An input box for editing text.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2input_8cpp.js b/src_2ftxui_2component_2input_8cpp.js new file mode 100644 index 000000000..48eb10c9d --- /dev/null +++ b/src_2ftxui_2component_2input_8cpp.js @@ -0,0 +1,6 @@ +var src_2ftxui_2component_2input_8cpp = +[ + [ "Input", "src_2ftxui_2component_2input_8cpp.html#ga7f285fcbc4dd0a0767b89a255fd062dc", null ], + [ "Input", "src_2ftxui_2component_2input_8cpp.html#ga9d118d596e33bf5bee9d5eccb6265d15", null ], + [ "Input", "src_2ftxui_2component_2input_8cpp.html#ga82ba18065d2c29514f034c7278dead74", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2input_8cpp_source.html b/src_2ftxui_2component_2input_8cpp_source.html new file mode 100644 index 000000000..2207ce97a --- /dev/null +++ b/src_2ftxui_2component_2input_8cpp_source.html @@ -0,0 +1,918 @@ + + + + + + + + +FTXUI: input.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/input.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max, min
    +
    5#include <cstddef> // for size_t
    +
    6#include <cstdint> // for uint32_t
    +
    7#include <functional> // for function
    +
    8#include <sstream> // for basic_istream, stringstream
    +
    9#include <string> // for string, basic_string, operator==, getline
    +
    10#include <utility> // for move
    +
    11#include <vector> // for vector
    +
    12
    +
    13#include "ftxui/component/component.hpp" // for Make, Input
    +
    14#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    15#include "ftxui/component/component_options.hpp" // for InputOption
    +
    16#include "ftxui/component/event.hpp" // for Event, Event::ArrowDown, Event::ArrowLeft, Event::ArrowLeftCtrl, Event::ArrowRight, Event::ArrowRightCtrl, Event::ArrowUp, Event::Backspace, Event::Delete, Event::End, Event::Home, Event::Return
    +
    17#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Pressed
    +
    18#include "ftxui/component/screen_interactive.hpp" // for Component
    +
    19#include "ftxui/dom/elements.hpp" // for operator|, reflect, text, Element, xflex, hbox, Elements, frame, operator|=, vbox, focus, focusCursorBarBlinking, select
    +
    20#include "ftxui/screen/box.hpp" // for Box
    +
    21#include "ftxui/screen/string.hpp" // for string_width
    +
    22#include "ftxui/screen/string_internal.hpp" // for GlyphNext, GlyphPrevious, WordBreakProperty, EatCodePoint, CodepointToWordBreakProperty, IsFullWidth, WordBreakProperty::ALetter, WordBreakProperty::CR, WordBreakProperty::Double_Quote, WordBreakProperty::Extend, WordBreakProperty::ExtendNumLet, WordBreakProperty::Format, WordBreakProperty::Hebrew_Letter, WordBreakProperty::Katakana, WordBreakProperty::LF, WordBreakProperty::MidLetter, WordBreakProperty::MidNum, WordBreakProperty::MidNumLet, WordBreakProperty::Newline, WordBreakProperty::Numeric, WordBreakProperty::Regional_Indicator, WordBreakProperty::Single_Quote, WordBreakProperty::WSegSpace, WordBreakProperty::ZWJ
    +
    23#include "ftxui/screen/util.hpp" // for clamp
    +
    24#include "ftxui/util/ref.hpp" // for StringRef, Ref
    +
    25
    +
    26namespace ftxui {
    +
    27
    +
    28namespace {
    +
    29
    +
    30std::vector<std::string> Split(const std::string& input) {
    +
    31 std::vector<std::string> output;
    +
    32 std::stringstream ss(input);
    +
    33 std::string line;
    +
    34 while (std::getline(ss, line)) {
    +
    35 output.push_back(line);
    +
    36 }
    +
    37 if (input.back() == '\n') {
    +
    38 output.emplace_back("");
    +
    39 }
    +
    40 return output;
    +
    41}
    +
    42
    +
    43size_t GlyphWidth(const std::string& input, size_t iter) {
    +
    44 uint32_t ucs = 0;
    +
    45 if (!EatCodePoint(input, iter, &iter, &ucs)) {
    +
    46 return 0;
    +
    47 }
    +
    48 if (IsFullWidth(ucs)) {
    +
    49 return 2;
    +
    50 }
    +
    51 return 1;
    +
    52}
    +
    53
    +
    54bool IsWordCodePoint(uint32_t codepoint) {
    +
    55 switch (CodepointToWordBreakProperty(codepoint)) {
    + + + + +
    60 return true;
    +
    61
    + + + + + + + + + +
    71 // Unexpected/Unsure
    + + + + + +
    77 return false;
    +
    78 }
    +
    79 return false; // NOT_REACHED();
    +
    80}
    +
    81
    +
    82bool IsWordCharacter(const std::string& input, size_t iter) {
    +
    83 uint32_t ucs = 0;
    +
    84 if (!EatCodePoint(input, iter, &iter, &ucs)) {
    +
    85 return false;
    +
    86 }
    +
    87
    +
    88 return IsWordCodePoint(ucs);
    +
    89}
    +
    90
    +
    91// An input box. The user can type text into it.
    +
    92class InputBase : public ComponentBase, public InputOption {
    +
    93 public:
    +
    94 // NOLINTNEXTLINE
    +
    95 InputBase(InputOption option) : InputOption(std::move(option)) {}
    +
    96
    +
    97 private:
    +
    98 // Component implementation:
    +
    99 Element OnRender() override {
    +
    100 const bool is_focused = Focused();
    +
    101 const auto focused = (!is_focused && !hovered_) ? nothing
    +
    102 : insert() ? focusCursorBarBlinking
    +
    103 : focusCursorBlockBlinking;
    +
    104
    +
    105 auto transform_func =
    +
    106 transform ? transform : InputOption::Default().transform;
    +
    107
    +
    108 // placeholder.
    +
    109 if (content->empty()) {
    +
    110 auto element = text(placeholder()) | xflex | frame;
    +
    111
    +
    112 return transform_func({
    +
    113 std::move(element), hovered_, is_focused,
    +
    114 true // placeholder
    +
    115 }) |
    +
    116 focus | reflect(box_);
    +
    117 }
    +
    118
    +
    119 Elements elements;
    +
    120 const std::vector<std::string> lines = Split(*content);
    +
    121
    +
    122 cursor_position() = util::clamp(cursor_position(), 0, (int)content->size());
    +
    123
    +
    124 // Find the line and index of the cursor.
    +
    125 int cursor_line = 0;
    +
    126 int cursor_char_index = cursor_position();
    +
    127 for (const auto& line : lines) {
    +
    128 if (cursor_char_index <= (int)line.size()) {
    +
    129 break;
    +
    130 }
    +
    131
    +
    132 cursor_char_index -= static_cast<int>(line.size() + 1);
    +
    133 cursor_line++;
    +
    134 }
    +
    135
    +
    136 if (lines.empty()) {
    +
    137 elements.push_back(text("") | focused);
    +
    138 }
    +
    139
    +
    140 elements.reserve(lines.size());
    +
    141 for (size_t i = 0; i < lines.size(); ++i) {
    +
    142 const std::string& line = lines[i];
    +
    143
    +
    144 // This is not the cursor line.
    +
    145 if (int(i) != cursor_line) {
    +
    146 elements.push_back(Text(line));
    +
    147 continue;
    +
    148 }
    +
    149
    +
    150 // The cursor is at the end of the line.
    +
    151 if (cursor_char_index >= (int)line.size()) {
    +
    152 elements.push_back(hbox({
    +
    153 Text(line),
    +
    154 text(" ") | focused | reflect(cursor_box_),
    +
    155 }) |
    +
    156 xflex);
    +
    157 continue;
    +
    158 }
    +
    159
    +
    160 // The cursor is on this line.
    +
    161 const int glyph_start = cursor_char_index;
    +
    162 const int glyph_end = static_cast<int>(GlyphNext(line, glyph_start));
    +
    163 const std::string part_before_cursor = line.substr(0, glyph_start);
    +
    164 const std::string part_at_cursor =
    +
    165 line.substr(glyph_start, glyph_end - glyph_start);
    +
    166 const std::string part_after_cursor = line.substr(glyph_end);
    +
    167 auto element = hbox({
    +
    168 Text(part_before_cursor),
    +
    169 Text(part_at_cursor) | focused | reflect(cursor_box_),
    +
    170 Text(part_after_cursor),
    +
    171 }) |
    +
    172 xflex;
    +
    173 elements.push_back(element);
    +
    174 }
    +
    175
    +
    176 auto element = vbox(std::move(elements), cursor_line) | frame;
    +
    177 return transform_func({
    +
    178 std::move(element), hovered_, is_focused,
    +
    179 false // placeholder
    +
    180 }) |
    +
    181 xflex | reflect(box_);
    +
    182 }
    +
    183
    +
    184 Element Text(const std::string& input) {
    +
    185 if (!password()) {
    +
    186 return text(input);
    +
    187 }
    +
    188
    +
    189 std::string out;
    +
    190 out.reserve(10 + input.size() * 3 / 2);
    +
    191 for (size_t i = 0; i < input.size(); ++i) {
    +
    192 out += "•";
    +
    193 }
    +
    194 return text(out);
    +
    195 }
    +
    196
    +
    197 bool HandleBackspace() {
    +
    198 if (cursor_position() == 0) {
    +
    199 return false;
    +
    200 }
    +
    201 const size_t start = GlyphPrevious(content(), cursor_position());
    +
    202 const size_t end = cursor_position();
    +
    203 content->erase(start, end - start);
    +
    204 cursor_position() = static_cast<int>(start);
    +
    205 on_change();
    +
    206 return true;
    +
    207 }
    +
    208
    +
    209 bool DeleteImpl() {
    +
    210 if (cursor_position() == (int)content->size()) {
    +
    211 return false;
    +
    212 }
    +
    213 const size_t start = cursor_position();
    +
    214 const size_t end = GlyphNext(content(), cursor_position());
    +
    215 content->erase(start, end - start);
    +
    216 return true;
    +
    217 }
    +
    218
    +
    219 bool HandleDelete() {
    +
    220 if (DeleteImpl()) {
    +
    221 on_change();
    +
    222 return true;
    +
    223 }
    +
    224 return false;
    +
    225 }
    +
    226
    +
    227 bool HandleArrowLeft() {
    +
    228 if (cursor_position() == 0) {
    +
    229 return false;
    +
    230 }
    +
    231
    +
    232 cursor_position() =
    +
    233 static_cast<int>(GlyphPrevious(content(), cursor_position()));
    +
    234 return true;
    +
    235 }
    +
    236
    +
    237 bool HandleArrowRight() {
    +
    238 if (cursor_position() == (int)content->size()) {
    +
    239 return false;
    +
    240 }
    +
    241
    +
    242 cursor_position() =
    +
    243 static_cast<int>(GlyphNext(content(), cursor_position()));
    +
    244 return true;
    +
    245 }
    +
    246
    +
    247 size_t CursorColumn() {
    +
    248 size_t iter = cursor_position();
    +
    249 int width = 0;
    +
    250 while (true) {
    +
    251 if (iter == 0) {
    +
    252 break;
    +
    253 }
    +
    254 iter = GlyphPrevious(content(), iter);
    +
    255 if (content()[iter] == '\n') {
    +
    256 break;
    +
    257 }
    +
    258 width += static_cast<int>(GlyphWidth(content(), iter));
    +
    259 }
    +
    260 return width;
    +
    261 }
    +
    262
    +
    263 // Move the cursor `columns` on the right, if possible.
    +
    264 void MoveCursorColumn(int columns) {
    +
    265 while (columns > 0) {
    +
    266 if (cursor_position() == (int)content().size() ||
    +
    267 content()[cursor_position()] == '\n') {
    +
    268 return;
    +
    269 }
    +
    270
    +
    271 columns -= static_cast<int>(GlyphWidth(content(), cursor_position()));
    +
    272 cursor_position() =
    +
    273 static_cast<int>(GlyphNext(content(), cursor_position()));
    +
    274 }
    +
    275 }
    +
    276
    +
    277 bool HandleArrowUp() {
    +
    278 if (cursor_position() == 0) {
    +
    279 return false;
    +
    280 }
    +
    281
    +
    282 const size_t columns = CursorColumn();
    +
    283
    +
    284 // Move cursor at the beginning of 2 lines above.
    +
    285 while (true) {
    +
    286 if (cursor_position() == 0) {
    +
    287 return true;
    +
    288 }
    +
    289 const size_t previous = GlyphPrevious(content(), cursor_position());
    +
    290 if (content()[previous] == '\n') {
    +
    291 break;
    +
    292 }
    +
    293 cursor_position() = static_cast<int>(previous);
    +
    294 }
    +
    295 cursor_position() =
    +
    296 static_cast<int>(GlyphPrevious(content(), cursor_position()));
    +
    297 while (true) {
    +
    298 if (cursor_position() == 0) {
    +
    299 break;
    +
    300 }
    +
    301 const size_t previous = GlyphPrevious(content(), cursor_position());
    +
    302 if (content()[previous] == '\n') {
    +
    303 break;
    +
    304 }
    +
    305 cursor_position() = static_cast<int>(previous);
    +
    306 }
    +
    307
    +
    308 MoveCursorColumn(static_cast<int>(columns));
    +
    309 return true;
    +
    310 }
    +
    311
    +
    312 bool HandleArrowDown() {
    +
    313 if (cursor_position() == (int)content->size()) {
    +
    314 return false;
    +
    315 }
    +
    316
    +
    317 const size_t columns = CursorColumn();
    +
    318
    +
    319 // Move cursor at the beginning of the next line
    +
    320 while (true) {
    +
    321 if (content()[cursor_position()] == '\n') {
    +
    322 break;
    +
    323 }
    +
    324 cursor_position() =
    +
    325 static_cast<int>(GlyphNext(content(), cursor_position()));
    +
    326 if (cursor_position() == (int)content().size()) {
    +
    327 return true;
    +
    328 }
    +
    329 }
    +
    330 cursor_position() =
    +
    331 static_cast<int>(GlyphNext(content(), cursor_position()));
    +
    332
    +
    333 MoveCursorColumn(static_cast<int>(columns));
    +
    334 return true;
    +
    335 }
    +
    336
    +
    337 bool HandleHome() {
    +
    338 cursor_position() = 0;
    +
    339 return true;
    +
    340 }
    +
    341
    +
    342 bool HandleEnd() {
    +
    343 cursor_position() = static_cast<int>(content->size());
    +
    344 return true;
    +
    345 }
    +
    346
    +
    347 bool HandleReturn() {
    +
    348 if (multiline()) {
    +
    349 HandleCharacter("\n");
    +
    350 }
    +
    351 on_enter();
    +
    352 return true;
    +
    353 }
    +
    354
    +
    355 bool HandleCharacter(const std::string& character) {
    +
    356 if (!insert() && cursor_position() < (int)content->size() &&
    +
    357 content()[cursor_position()] != '\n') {
    +
    358 DeleteImpl();
    +
    359 }
    +
    360 content->insert(cursor_position(), character);
    +
    361 cursor_position() += static_cast<int>(character.size());
    +
    362 on_change();
    +
    363 return true;
    +
    364 }
    +
    365
    +
    366 bool OnEvent(Event event) override {
    +
    367 cursor_position() = util::clamp(cursor_position(), 0, (int)content->size());
    +
    368
    +
    369 if (event == Event::Return) {
    +
    370 return HandleReturn();
    +
    371 }
    +
    372 if (event.is_character()) {
    +
    373 return HandleCharacter(event.character());
    +
    374 }
    +
    375 if (event.is_mouse()) {
    +
    376 return HandleMouse(event);
    +
    377 }
    +
    378 if (event == Event::Backspace) {
    +
    379 return HandleBackspace();
    +
    380 }
    +
    381 if (event == Event::Delete) {
    +
    382 return HandleDelete();
    +
    383 }
    +
    384 if (event == Event::ArrowLeft) {
    +
    385 return HandleArrowLeft();
    +
    386 }
    +
    387 if (event == Event::ArrowRight) {
    +
    388 return HandleArrowRight();
    +
    389 }
    +
    390 if (event == Event::ArrowUp) {
    +
    391 return HandleArrowUp();
    +
    392 }
    +
    393 if (event == Event::ArrowDown) {
    +
    394 return HandleArrowDown();
    +
    395 }
    +
    396 if (event == Event::Home) {
    +
    397 return HandleHome();
    +
    398 }
    +
    399 if (event == Event::End) {
    +
    400 return HandleEnd();
    +
    401 }
    +
    402 if (event == Event::ArrowLeftCtrl) {
    +
    403 return HandleLeftCtrl();
    +
    404 }
    +
    405 if (event == Event::ArrowRightCtrl) {
    +
    406 return HandleRightCtrl();
    +
    407 }
    +
    408 if (event == Event::Insert) {
    +
    409 return HandleInsert();
    +
    410 }
    +
    411 return false;
    +
    412 }
    +
    413
    +
    414 bool HandleLeftCtrl() {
    +
    415 if (cursor_position() == 0) {
    +
    416 return false;
    +
    417 }
    +
    418
    +
    419 // Move left, as long as left it not a word.
    +
    420 while (cursor_position()) {
    +
    421 const size_t previous = GlyphPrevious(content(), cursor_position());
    +
    422 if (IsWordCharacter(content(), previous)) {
    +
    423 break;
    +
    424 }
    +
    425 cursor_position() = static_cast<int>(previous);
    +
    426 }
    +
    427 // Move left, as long as left is a word character:
    +
    428 while (cursor_position()) {
    +
    429 const size_t previous = GlyphPrevious(content(), cursor_position());
    +
    430 if (!IsWordCharacter(content(), previous)) {
    +
    431 break;
    +
    432 }
    +
    433 cursor_position() = static_cast<int>(previous);
    +
    434 }
    +
    435 return true;
    +
    436 }
    +
    437
    +
    438 bool HandleRightCtrl() {
    +
    439 if (cursor_position() == (int)content().size()) {
    +
    440 return false;
    +
    441 }
    +
    442
    +
    443 // Move right, until entering a word.
    +
    444 while (cursor_position() < (int)content().size()) {
    +
    445 cursor_position() =
    +
    446 static_cast<int>(GlyphNext(content(), cursor_position()));
    +
    447 if (IsWordCharacter(content(), cursor_position())) {
    +
    448 break;
    +
    449 }
    +
    450 }
    +
    451 // Move right, as long as right is a word character:
    +
    452 while (cursor_position() < (int)content().size()) {
    +
    453 const size_t next = GlyphNext(content(), cursor_position());
    +
    454 if (!IsWordCharacter(content(), cursor_position())) {
    +
    455 break;
    +
    456 }
    +
    457 cursor_position() = static_cast<int>(next);
    +
    458 }
    +
    459
    +
    460 return true;
    +
    461 }
    +
    462
    +
    463 bool HandleMouse(Event event) {
    +
    464 hovered_ = box_.Contain(event.mouse().x, //
    +
    465 event.mouse().y) &&
    +
    466 CaptureMouse(event);
    +
    467 if (!hovered_) {
    +
    468 return false;
    +
    469 }
    +
    470
    +
    471 if (event.mouse().button != Mouse::Left) {
    +
    472 return false;
    +
    473 }
    +
    474 if (event.mouse().motion != Mouse::Pressed) {
    +
    475 return false;
    +
    476 }
    +
    477
    +
    478 TakeFocus();
    +
    479
    +
    480 if (content->empty()) {
    +
    481 cursor_position() = 0;
    +
    482 return true;
    +
    483 }
    +
    484
    +
    485 // Find the line and index of the cursor.
    +
    486 std::vector<std::string> lines = Split(*content);
    +
    487 int cursor_line = 0;
    +
    488 int cursor_char_index = cursor_position();
    +
    489 for (const auto& line : lines) {
    +
    490 if (cursor_char_index <= (int)line.size()) {
    +
    491 break;
    +
    492 }
    +
    493
    +
    494 cursor_char_index -= static_cast<int>(line.size() + 1);
    +
    495 cursor_line++;
    +
    496 }
    +
    497 const int cursor_column =
    +
    498 string_width(lines[cursor_line].substr(0, cursor_char_index));
    +
    499
    +
    500 int new_cursor_column = cursor_column + event.mouse().x - cursor_box_.x_min;
    +
    501 int new_cursor_line = cursor_line + event.mouse().y - cursor_box_.y_min;
    +
    502
    +
    503 // Fix the new cursor position:
    +
    504 new_cursor_line = std::max(std::min(new_cursor_line, (int)lines.size()), 0);
    +
    505
    +
    506 const std::string empty_string;
    +
    507 const std::string& line = new_cursor_line < (int)lines.size()
    +
    508 ? lines[new_cursor_line]
    +
    509 : empty_string;
    +
    510 new_cursor_column = util::clamp(new_cursor_column, 0, string_width(line));
    +
    511
    +
    512 if (new_cursor_column == cursor_column && //
    +
    513 new_cursor_line == cursor_line) {
    +
    514 return false;
    +
    515 }
    +
    516
    +
    517 // Convert back the new_cursor_{line,column} toward cursor_position:
    +
    518 cursor_position() = 0;
    +
    519 for (int i = 0; i < new_cursor_line; ++i) {
    +
    520 cursor_position() += static_cast<int>(lines[i].size() + 1);
    +
    521 }
    +
    522 while (new_cursor_column > 0) {
    +
    523 new_cursor_column -=
    +
    524 static_cast<int>(GlyphWidth(content(), cursor_position()));
    +
    525 cursor_position() =
    +
    526 static_cast<int>(GlyphNext(content(), cursor_position()));
    +
    527 }
    +
    528
    +
    529 on_change();
    +
    530 return true;
    +
    531 }
    +
    532
    +
    533 bool HandleInsert() {
    +
    534 insert() = !insert();
    +
    535 return true;
    +
    536 }
    +
    537
    +
    538 bool Focusable() const final { return true; }
    +
    539
    +
    540 bool hovered_ = false;
    +
    541
    +
    542 Box box_;
    +
    543 Box cursor_box_;
    +
    544};
    +
    545
    +
    546} // namespace
    +
    547
    +
    548/// @brief An input box for editing text.
    +
    549/// @param option Additional optional parameters.
    +
    550/// @ingroup component
    +
    551/// @see InputBase
    +
    552///
    +
    553/// ### Example
    +
    554///
    +
    555/// ```cpp
    +
    556/// auto screen = ScreenInteractive::FitComponent();
    +
    557/// std::string content= "";
    +
    558/// std::string placeholder = "placeholder";
    +
    559/// Component input = Input({
    +
    560/// .content = &content,
    +
    561/// .placeholder = &placeholder,
    +
    562/// })
    +
    563/// screen.Loop(input);
    +
    564/// ```
    +
    565///
    +
    566/// ### Output
    +
    567///
    +
    568/// ```bash
    +
    569/// placeholder
    +
    570/// ```
    +
    + +
    572 return Make<InputBase>(std::move(option));
    +
    573}
    +
    +
    574
    +
    575/// @brief An input box for editing text.
    +
    576/// @param content The editable content.
    +
    577/// @param option Additional optional parameters.
    +
    578/// @ingroup component
    +
    579/// @see InputBase
    +
    580///
    +
    581/// ### Example
    +
    582///
    +
    583/// ```cpp
    +
    584/// auto screen = ScreenInteractive::FitComponent();
    +
    585/// std::string content= "";
    +
    586/// std::string placeholder = "placeholder";
    +
    587/// Component input = Input(content, {
    +
    588/// .placeholder = &placeholder,
    +
    589/// .password = true,
    +
    590/// })
    +
    591/// screen.Loop(input);
    +
    592/// ```
    +
    593///
    +
    594/// ### Output
    +
    595///
    +
    596/// ```bash
    +
    597/// placeholder
    +
    598/// ```
    +
    + +
    600 option.content = std::move(content);
    +
    601 return Make<InputBase>(std::move(option));
    +
    602}
    +
    +
    603
    +
    604/// @brief An input box for editing text.
    +
    605/// @param content The editable content.
    +
    606/// @param placeholder The placeholder text.
    +
    607/// @param option Additional optional parameters.
    +
    608/// @ingroup component
    +
    609/// @see InputBase
    +
    610///
    +
    611/// ### Example
    +
    612///
    +
    613/// ```cpp
    +
    614/// auto screen = ScreenInteractive::FitComponent();
    +
    615/// std::string content= "";
    +
    616/// std::string placeholder = "placeholder";
    +
    617/// Component input = Input(content, placeholder);
    +
    618/// screen.Loop(input);
    +
    619/// ```
    +
    620///
    +
    621/// ### Output
    +
    622///
    +
    623/// ```bash
    +
    624/// placeholder
    +
    625/// ```
    +
    +
    626Component Input(StringRef content, StringRef placeholder, InputOption option) {
    +
    627 option.content = std::move(content);
    +
    628 option.placeholder = std::move(placeholder);
    +
    629 return Make<InputBase>(std::move(option));
    +
    630}
    +
    +
    631
    +
    632} // namespace ftxui
    + +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable ...
    Definition ref.hpp:82
    + + + + + + +
    static const Event ArrowLeftCtrl
    Definition event.hpp:45
    + +
    static InputOption Default()
    Create the default input style:
    +
    static const Event Backspace
    Definition event.hpp:51
    +
    static const Event ArrowUp
    Definition event.hpp:42
    +
    std::function< Element(InputState)> transform
    +
    static const Event ArrowDown
    Definition event.hpp:43
    +
    static const Event End
    Definition event.hpp:61
    +
    StringRef placeholder
    The content of the input when it's empty.
    +
    static const Event Home
    Definition event.hpp:60
    +
    StringRef content
    The content of the input.
    +
    static const Event Return
    Definition event.hpp:53
    +
    static const Event ArrowLeft
    Definition event.hpp:40
    +
    static const Event Delete
    Definition event.hpp:52
    +
    static const Event Insert
    Definition event.hpp:59
    +
    static const Event ArrowRightCtrl
    Definition event.hpp:46
    +
    static const Event ArrowRight
    Definition event.hpp:41
    +
    Component Input(InputOption options={})
    An input box for editing text.
    +
    Option for the Input component.
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + +
    constexpr const T & clamp(const T &v, const T &lo, const T &hi)
    Definition util.hpp:11
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    size_t GlyphNext(const std::string &input, size_t start)
    Definition string.cpp:1425
    +
    WordBreakProperty CodepointToWordBreakProperty(uint32_t codepoint)
    Definition string.cpp:1308
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    int string_width(const std::string &)
    Definition string.cpp:1331
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    + + + + + + + + + + + + + + + + + + +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    bool EatCodePoint(const std::string &input, size_t start, size_t *end, uint32_t *ucs)
    Definition string.cpp:1174
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    bool IsFullWidth(uint32_t ucs)
    Definition string.cpp:1286
    +
    Element frame(Element)
    Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container....
    Definition frame.cpp:118
    +
    size_t GlyphPrevious(const std::string &input, size_t start)
    Definition string.cpp:1400
    +
    std::shared_ptr< ComponentBase > Component
    + + + + + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2maybe_8cpp.html b/src_2ftxui_2component_2maybe_8cpp.html new file mode 100644 index 000000000..803f8d303 --- /dev/null +++ b/src_2ftxui_2component_2maybe_8cpp.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: maybe.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    maybe.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + +

    +Functions

    Component Maybe (Component child, std::function< bool()> show)
     Decorate a component |child|. It is shown only when |show| returns true.
     
    ComponentDecorator Maybe (std::function< bool()> show)
     Decorate a component. It is shown only when the |show| function returns true.
     
    Component Maybe (Component child, const bool *show)
     Decorate a component |child|. It is shown only when |show| is true.
     
    ComponentDecorator Maybe (const bool *show)
     Decorate a component. It is shown only when |show| is true.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2maybe_8cpp.js b/src_2ftxui_2component_2maybe_8cpp.js new file mode 100644 index 000000000..2cac8c9cd --- /dev/null +++ b/src_2ftxui_2component_2maybe_8cpp.js @@ -0,0 +1,7 @@ +var src_2ftxui_2component_2maybe_8cpp = +[ + [ "Maybe", "src_2ftxui_2component_2maybe_8cpp.html#ga70afe9695167fb736631173201969730", null ], + [ "Maybe", "src_2ftxui_2component_2maybe_8cpp.html#gae39ad8b223e6bb7704c77a3708571a7d", null ], + [ "Maybe", "src_2ftxui_2component_2maybe_8cpp.html#ga20b66a70c1cd4ff3f0ff571a4507d2b4", null ], + [ "Maybe", "src_2ftxui_2component_2maybe_8cpp.html#ga83b6fd5e1524023722a7450f987f15d0", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2maybe_8cpp_source.html b/src_2ftxui_2component_2maybe_8cpp_source.html new file mode 100644 index 000000000..26b9c8acd --- /dev/null +++ b/src_2ftxui_2component_2maybe_8cpp_source.html @@ -0,0 +1,322 @@ + + + + + + + + +FTXUI: maybe.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/maybe.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <memory> // for make_unique, __shared_ptr_access, __shared_ptr_access<>::element_type, shared_ptr
    +
    6#include <utility> // for move
    +
    7
    +
    8#include "ftxui/component/component.hpp" // for ComponentDecorator, Maybe, Make
    +
    9#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    10#include "ftxui/component/event.hpp" // for Event
    +
    11#include "ftxui/dom/elements.hpp" // for Element
    +
    12#include "ftxui/dom/node.hpp" // for Node
    +
    13
    +
    14namespace ftxui {
    +
    15
    +
    16/// @brief Decorate a component |child|. It is shown only when |show| returns
    +
    17/// true.
    +
    18/// @param child the component to decorate.
    +
    19/// @param show a function returning whether |child| should shown.
    +
    20/// @ingroup component
    +
    +
    21Component Maybe(Component child, std::function<bool()> show) {
    +
    22 class Impl : public ComponentBase {
    +
    23 public:
    +
    24 explicit Impl(std::function<bool()> show) : show_(std::move(show)) {}
    +
    25
    +
    26 private:
    +
    27 Element OnRender() override {
    +
    28 return show_() ? ComponentBase::OnRender() : std::make_unique<Node>();
    +
    29 }
    +
    30 bool Focusable() const override {
    +
    31 return show_() && ComponentBase::Focusable();
    +
    32 }
    +
    33 bool OnEvent(Event event) override {
    +
    34 return show_() && ComponentBase::OnEvent(event);
    +
    35 }
    +
    36
    +
    37 std::function<bool()> show_;
    +
    38 };
    +
    39
    +
    40 auto maybe = Make<Impl>(std::move(show));
    +
    41 maybe->Add(std::move(child));
    +
    42 return maybe;
    +
    43}
    +
    +
    44
    +
    45/// @brief Decorate a component. It is shown only when the |show| function
    +
    46/// returns true.
    +
    47/// @param show a function returning whether the decorated component should
    +
    48/// be shown.
    +
    49/// @ingroup component
    +
    50///
    +
    51/// ### Example
    +
    52///
    +
    53/// ```cpp
    +
    54/// auto component = Renderer([]{ return text("Hello World!"); });
    +
    55/// auto maybe_component = component | Maybe([&]{ return counter == 42; });
    +
    56/// ```
    +
    +
    57ComponentDecorator Maybe(std::function<bool()> show) {
    +
    58 return [show = std::move(show)](Component child) mutable {
    +
    59 return Maybe(std::move(child), std::move(show));
    +
    60 };
    +
    61}
    +
    +
    62
    +
    63/// @brief Decorate a component |child|. It is shown only when |show| is true.
    +
    64/// @param child the component to decorate.
    +
    65/// @param show a boolean. |child| is shown when |show| is true.
    +
    66/// @ingroup component
    +
    67///
    +
    68/// ### Example
    +
    69///
    +
    70/// ```cpp
    +
    71/// auto component = Renderer([]{ return text("Hello World!"); });
    +
    72/// auto maybe_component = Maybe(component, &show);
    +
    73/// ```
    +
    +
    74Component Maybe(Component child, const bool* show) {
    +
    75 return Maybe(std::move(child), [show] { return *show; });
    +
    76}
    +
    +
    77
    +
    78/// @brief Decorate a component. It is shown only when |show| is true.
    +
    79/// @param show a boolean. |child| is shown when |show| is true.
    +
    80/// @ingroup component
    +
    81///
    +
    82/// ### Example
    +
    83///
    +
    84/// ```cpp
    +
    85/// auto component = Renderer([]{ return text("Hello World!"); });
    +
    86/// auto maybe_component = component | Maybe(&show);
    +
    87/// ```
    +
    +
    88ComponentDecorator Maybe(const bool* show) {
    +
    89 return [show](Component child) { return Maybe(std::move(child), show); };
    +
    90}
    +
    +
    91
    +
    92} // namespace ftxui
    + + + + +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Maybe(Component, const bool *show)
    Decorate a component |child|. It is shown only when |show| is true.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::function< Component(Component)> ComponentDecorator
    Definition component.hpp:32
    +
    std::shared_ptr< ComponentBase > Component
    + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2menu_8cpp.html b/src_2ftxui_2component_2menu_8cpp.html new file mode 100644 index 000000000..f73bea987 --- /dev/null +++ b/src_2ftxui_2component_2menu_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: menu.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    menu.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + +

    +Functions

    Component Menu (MenuOption option)
     A list of text. The focused element is selected.
     
    Component Menu (ConstStringListRef entries, int *selected, MenuOption option)
     A list of text. The focused element is selected.
     
    Component Toggle (ConstStringListRef entries, int *selected)
     An horizontal list of elements. The user can navigate through them.
     
    Component MenuEntry (ConstStringRef label, MenuEntryOption option)
     A specific menu entry. They can be put into a Container::Vertical to form a menu.
     
    Component MenuEntry (MenuEntryOption option)
     A specific menu entry. They can be put into a Container::Vertical to form a menu.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2menu_8cpp.js b/src_2ftxui_2component_2menu_8cpp.js new file mode 100644 index 000000000..677be9035 --- /dev/null +++ b/src_2ftxui_2component_2menu_8cpp.js @@ -0,0 +1,8 @@ +var src_2ftxui_2component_2menu_8cpp = +[ + [ "Menu", "src_2ftxui_2component_2menu_8cpp.html#ga27828fc39da10a18478ba84b1b162039", null ], + [ "Menu", "src_2ftxui_2component_2menu_8cpp.html#gad793a3a507766ffa711c4332a3815e24", null ], + [ "Toggle", "src_2ftxui_2component_2menu_8cpp.html#ga3537fccac66b07cd792874c9a6086811", null ], + [ "MenuEntry", "src_2ftxui_2component_2menu_8cpp.html#gafca94c5cdae5fbf3c6aa81fc1cd7b1c0", null ], + [ "MenuEntry", "src_2ftxui_2component_2menu_8cpp.html#ga2c0a27959e6a5d90109f6d4506e00f69", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2menu_8cpp_source.html b/src_2ftxui_2component_2menu_8cpp_source.html new file mode 100644 index 000000000..f0c6f6eaa --- /dev/null +++ b/src_2ftxui_2component_2menu_8cpp_source.html @@ -0,0 +1,1046 @@ + + + + + + + + +FTXUI: menu.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/menu.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max, fill_n, reverse
    +
    5#include <chrono> // for milliseconds
    +
    6#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
    +
    7#include <functional> // for function
    +
    8#include <string> // for operator+, string
    +
    9#include <utility> // for move
    +
    10#include <vector> // for vector, __alloc_traits<>::value_type
    +
    11
    +
    12#include "ftxui/component/animation.hpp" // for Animator, Linear
    +
    13#include "ftxui/component/component.hpp" // for Make, Menu, MenuEntry, Toggle
    +
    14#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    15#include "ftxui/component/component_options.hpp" // for MenuOption, MenuEntryOption, UnderlineOption, AnimatedColorOption, AnimatedColorsOption, EntryState
    +
    16#include "ftxui/component/event.hpp" // for Event, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp, Event::End, Event::Home, Event::PageDown, Event::PageUp, Event::Return, Event::Tab, Event::TabReverse
    +
    17#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Released, Mouse::WheelDown, Mouse::WheelUp, Mouse::None
    +
    18#include "ftxui/component/screen_interactive.hpp" // for Component
    +
    19#include "ftxui/dom/elements.hpp" // for operator|, Element, reflect, Decorator, nothing, Elements, bgcolor, color, hbox, separatorHSelector, separatorVSelector, vbox, xflex, yflex, text, bold, focus, inverted, select
    +
    20#include "ftxui/screen/box.hpp" // for Box
    +
    21#include "ftxui/screen/color.hpp" // for Color
    +
    22#include "ftxui/screen/util.hpp" // for clamp
    +
    23#include "ftxui/util/ref.hpp" // for Ref, ConstStringListRef, ConstStringRef
    +
    24
    +
    25namespace ftxui {
    +
    26
    +
    27namespace {
    +
    28
    +
    29Element DefaultOptionTransform(const EntryState& state) {
    +
    30 std::string label = (state.active ? "> " : " ") + state.label; // NOLINT
    +
    31 Element e = text(std::move(label));
    +
    32 if (state.focused) {
    +
    33 e = e | inverted;
    +
    34 }
    +
    35 if (state.active) {
    +
    36 e = e | bold;
    +
    37 }
    +
    38 return e;
    +
    39}
    +
    40
    +
    41bool IsInverted(Direction direction) {
    +
    42 switch (direction) {
    +
    43 case Direction::Up:
    +
    44 case Direction::Left:
    +
    45 return true;
    +
    46 case Direction::Down:
    + +
    48 return false;
    +
    49 }
    +
    50 return false; // NOT_REACHED()
    +
    51}
    +
    52
    +
    53bool IsHorizontal(Direction direction) {
    +
    54 switch (direction) {
    +
    55 case Direction::Left:
    + +
    57 return true;
    +
    58 case Direction::Down:
    +
    59 case Direction::Up:
    +
    60 return false;
    +
    61 }
    +
    62 return false; // NOT_REACHED()
    +
    63}
    +
    64
    +
    65} // namespace
    +
    66
    +
    67/// @brief A list of items. The user can navigate through them.
    +
    68/// @ingroup component
    +
    69class MenuBase : public ComponentBase, public MenuOption {
    +
    70 public:
    +
    71 explicit MenuBase(const MenuOption& option) : MenuOption(option) {}
    +
    72
    +
    73 bool IsHorizontal() { return ftxui::IsHorizontal(direction); }
    +
    74 void OnChange() {
    +
    75 if (on_change) {
    +
    76 on_change();
    +
    77 }
    +
    78 }
    +
    79
    +
    80 void OnEnter() {
    +
    81 if (on_enter) {
    +
    82 on_enter();
    +
    83 }
    +
    84 }
    +
    85
    +
    86 void Clamp() {
    +
    87 if (selected() != selected_previous_) {
    +
    88 SelectedTakeFocus();
    +
    89 }
    +
    90 boxes_.resize(size());
    +
    91 selected() = util::clamp(selected(), 0, size() - 1);
    +
    92 selected_previous_ = util::clamp(selected_previous_, 0, size() - 1);
    +
    93 selected_focus_ = util::clamp(selected_focus_, 0, size() - 1);
    +
    94 focused_entry() = util::clamp(focused_entry(), 0, size() - 1);
    +
    95 }
    +
    96
    +
    97 void OnAnimation(animation::Params& params) override {
    +
    98 animator_first_.OnAnimation(params);
    +
    99 animator_second_.OnAnimation(params);
    +
    100 for (auto& animator : animator_background_) {
    +
    101 animator.OnAnimation(params);
    +
    102 }
    +
    103 for (auto& animator : animator_foreground_) {
    +
    104 animator.OnAnimation(params);
    +
    105 }
    +
    106 }
    +
    107
    +
    108 Element OnRender() override {
    +
    109 Clamp();
    +
    110 UpdateAnimationTarget();
    +
    111
    +
    112 Elements elements;
    +
    113 const bool is_menu_focused = Focused();
    +
    114 if (elements_prefix) {
    +
    115 elements.push_back(elements_prefix());
    +
    116 }
    +
    117 elements.reserve(size());
    +
    118 for (int i = 0; i < size(); ++i) {
    +
    119 if (i != 0 && elements_infix) {
    +
    120 elements.push_back(elements_infix());
    +
    121 }
    +
    122 const bool is_focused = (focused_entry() == i) && is_menu_focused;
    +
    123 const bool is_selected = (selected() == i);
    +
    124
    +
    125 const EntryState state = {
    +
    126 entries[i], false, is_selected, is_focused, i,
    +
    127 };
    +
    128
    + +
    130 : DefaultOptionTransform) //
    +
    131 (state);
    +
    132 if (selected_focus_ == i) {
    +
    133 element |= focus;
    +
    134 }
    +
    135 element |= AnimatedColorStyle(i);
    +
    136 element |= reflect(boxes_[i]);
    +
    137 elements.push_back(element);
    +
    138 }
    +
    139 if (elements_postfix) {
    +
    140 elements.push_back(elements_postfix());
    +
    141 }
    +
    142
    +
    143 if (IsInverted(direction)) {
    +
    144 std::reverse(elements.begin(), elements.end());
    +
    145 }
    +
    146
    +
    147 const Element bar = IsHorizontal()
    +
    148 ? hbox(std::move(elements), selected_focus_)
    +
    149 : vbox(std::move(elements), selected_focus_);
    +
    150
    +
    151 if (!underline.enabled) {
    +
    152 return bar | reflect(box_);
    +
    153 }
    +
    154
    +
    155 if (IsHorizontal()) {
    +
    156 return vbox({
    +
    157 bar | xflex,
    +
    158 separatorHSelector(first_, second_, //
    + + +
    161 }) |
    +
    162 reflect(box_);
    +
    163 } else {
    +
    164 return hbox({
    +
    165 separatorVSelector(first_, second_, //
    + + +
    168 bar | yflex,
    +
    169 }) |
    +
    170 reflect(box_);
    +
    171 }
    +
    172 }
    +
    173
    +
    174 void SelectedTakeFocus() {
    +
    175 selected_previous_ = selected();
    +
    176 selected_focus_ = selected();
    +
    177 }
    +
    178
    +
    179 void OnUp() {
    +
    180 switch (direction) {
    +
    181 case Direction::Up:
    +
    182 selected()++;
    +
    183 break;
    +
    184 case Direction::Down:
    +
    185 selected()--;
    +
    186 break;
    +
    187 case Direction::Left:
    +
    188 case Direction::Right:
    +
    189 break;
    +
    190 }
    +
    191 }
    +
    192
    +
    193 void OnDown() {
    +
    194 switch (direction) {
    +
    195 case Direction::Up:
    +
    196 selected()--;
    +
    197 break;
    +
    198 case Direction::Down:
    +
    199 selected()++;
    +
    200 break;
    +
    201 case Direction::Left:
    +
    202 case Direction::Right:
    +
    203 break;
    +
    204 }
    +
    205 }
    +
    206
    +
    207 void OnLeft() {
    +
    208 switch (direction) {
    +
    209 case Direction::Left:
    +
    210 selected()++;
    +
    211 break;
    +
    212 case Direction::Right:
    +
    213 selected()--;
    +
    214 break;
    +
    215 case Direction::Down:
    +
    216 case Direction::Up:
    +
    217 break;
    +
    218 }
    +
    219 }
    +
    220
    +
    221 void OnRight() {
    +
    222 switch (direction) {
    +
    223 case Direction::Left:
    +
    224 selected()--;
    +
    225 break;
    +
    226 case Direction::Right:
    +
    227 selected()++;
    +
    228 break;
    +
    229 case Direction::Down:
    +
    230 case Direction::Up:
    +
    231 break;
    +
    232 }
    +
    233 }
    +
    234
    +
    235 // NOLINTNEXTLINE(readability-function-cognitive-complexity)
    +
    236 bool OnEvent(Event event) override {
    +
    237 Clamp();
    +
    238 if (!CaptureMouse(event)) {
    +
    239 return false;
    +
    240 }
    +
    241
    +
    242 if (event.is_mouse()) {
    +
    243 return OnMouseEvent(event);
    +
    244 }
    +
    245
    +
    246 if (Focused()) {
    +
    247 const int old_selected = selected();
    +
    248 if (event == Event::ArrowUp || event == Event::Character('k')) {
    +
    249 OnUp();
    +
    250 }
    +
    251 if (event == Event::ArrowDown || event == Event::Character('j')) {
    +
    252 OnDown();
    +
    253 }
    +
    254 if (event == Event::ArrowLeft || event == Event::Character('h')) {
    +
    255 OnLeft();
    +
    256 }
    +
    257 if (event == Event::ArrowRight || event == Event::Character('l')) {
    +
    258 OnRight();
    +
    259 }
    +
    260 if (event == Event::PageUp) {
    +
    261 selected() -= box_.y_max - box_.y_min;
    +
    262 }
    +
    263 if (event == Event::PageDown) {
    +
    264 selected() += box_.y_max - box_.y_min;
    +
    265 }
    +
    266 if (event == Event::Home) {
    +
    267 selected() = 0;
    +
    268 }
    +
    269 if (event == Event::End) {
    +
    270 selected() = size() - 1;
    +
    271 }
    +
    272 if (event == Event::Tab && size()) {
    +
    273 selected() = (selected() + 1) % size();
    +
    274 }
    +
    275 if (event == Event::TabReverse && size()) {
    +
    276 selected() = (selected() + size() - 1) % size();
    +
    277 }
    +
    278
    +
    279 selected() = util::clamp(selected(), 0, size() - 1);
    +
    280
    +
    281 if (selected() != old_selected) {
    + +
    283 SelectedTakeFocus();
    +
    284 OnChange();
    +
    285 return true;
    +
    286 }
    +
    287 }
    +
    288
    +
    289 if (event == Event::Return) {
    +
    290 OnEnter();
    +
    291 return true;
    +
    292 }
    +
    293
    +
    294 return false;
    +
    295 }
    +
    296
    +
    297 bool OnMouseEvent(Event event) {
    +
    298 if (event.mouse().button == Mouse::WheelDown ||
    +
    299 event.mouse().button == Mouse::WheelUp) {
    +
    300 return OnMouseWheel(event);
    +
    301 }
    +
    302
    +
    303 if (event.mouse().button != Mouse::None &&
    +
    304 event.mouse().button != Mouse::Left) {
    +
    305 return false;
    +
    306 }
    +
    307 if (!CaptureMouse(event)) {
    +
    308 return false;
    +
    309 }
    +
    310 for (int i = 0; i < size(); ++i) {
    +
    311 if (!boxes_[i].Contain(event.mouse().x, event.mouse().y)) {
    +
    312 continue;
    +
    313 }
    +
    314
    +
    315 TakeFocus();
    +
    316 focused_entry() = i;
    +
    317
    +
    318 if (event.mouse().button == Mouse::Left &&
    +
    319 event.mouse().motion == Mouse::Pressed) {
    +
    320 if (selected() != i) {
    +
    321 selected() = i;
    +
    322 selected_previous_ = selected();
    +
    323 OnChange();
    +
    324 }
    +
    325 return true;
    +
    326 }
    +
    327 }
    +
    328 return false;
    +
    329 }
    +
    330
    +
    331 bool OnMouseWheel(Event event) {
    +
    332 if (!box_.Contain(event.mouse().x, event.mouse().y)) {
    +
    333 return false;
    +
    334 }
    +
    335 const int old_selected = selected();
    +
    336
    +
    337 if (event.mouse().button == Mouse::WheelUp) {
    +
    338 selected()--;
    +
    339 }
    +
    340 if (event.mouse().button == Mouse::WheelDown) {
    +
    341 selected()++;
    +
    342 }
    +
    343
    +
    344 selected() = util::clamp(selected(), 0, size() - 1);
    +
    345
    +
    346 if (selected() != old_selected) {
    +
    347 SelectedTakeFocus();
    +
    348 OnChange();
    +
    349 }
    +
    350 return true;
    +
    351 }
    +
    352
    +
    353 void UpdateAnimationTarget() {
    +
    354 UpdateColorTarget();
    +
    355 UpdateUnderlineTarget();
    +
    356 }
    +
    357
    +
    358 void UpdateColorTarget() {
    +
    359 if (size() != int(animation_background_.size())) {
    +
    360 animation_background_.resize(size());
    +
    361 animation_foreground_.resize(size());
    +
    362 animator_background_.clear();
    +
    363 animator_foreground_.clear();
    +
    364
    +
    365 const int len = size();
    +
    366 animator_background_.reserve(len);
    +
    367 animator_foreground_.reserve(len);
    +
    368 for (int i = 0; i < len; ++i) {
    +
    369 animation_background_[i] = 0.F;
    +
    370 animation_foreground_[i] = 0.F;
    +
    371 animator_background_.emplace_back(&animation_background_[i], 0.F,
    +
    372 std::chrono::milliseconds(0),
    + +
    374 animator_foreground_.emplace_back(&animation_foreground_[i], 0.F,
    +
    375 std::chrono::milliseconds(0),
    + +
    377 }
    +
    378 }
    +
    379
    +
    380 const bool is_menu_focused = Focused();
    +
    381 for (int i = 0; i < size(); ++i) {
    +
    382 const bool is_focused = (focused_entry() == i) && is_menu_focused;
    +
    383 const bool is_selected = (selected() == i);
    +
    384 float target = is_selected ? 1.F : is_focused ? 0.5F : 0.F; // NOLINT
    +
    385 if (animator_background_[i].to() != target) {
    +
    386 animator_background_[i] = animation::Animator(
    +
    387 &animation_background_[i], target,
    + + +
    390 animator_foreground_[i] = animation::Animator(
    +
    391 &animation_foreground_[i], target,
    + + +
    394 }
    +
    395 }
    +
    396 }
    +
    397
    +
    398 Decorator AnimatedColorStyle(int i) {
    +
    399 Decorator style = nothing;
    + +
    401 style = style | color(Color::Interpolate(
    +
    402 animation_foreground_[i],
    + + +
    405 }
    +
    406
    + +
    408 style = style | bgcolor(Color::Interpolate(
    +
    409 animation_background_[i],
    + + +
    412 }
    +
    413 return style;
    +
    414 }
    +
    415
    +
    416 void UpdateUnderlineTarget() {
    +
    417 if (!underline.enabled) {
    +
    418 return;
    +
    419 }
    +
    420
    +
    421 if (FirstTarget() == animator_first_.to() &&
    +
    422 SecondTarget() == animator_second_.to()) {
    +
    423 return;
    +
    424 }
    +
    425
    +
    426 if (FirstTarget() >= animator_first_.to()) {
    +
    427 animator_first_ = animation::Animator(
    +
    428 &first_, FirstTarget(), underline.follower_duration,
    + +
    430
    +
    431 animator_second_ = animation::Animator(
    +
    432 &second_, SecondTarget(), underline.leader_duration,
    + +
    434 } else {
    +
    435 animator_first_ = animation::Animator(
    +
    436 &first_, FirstTarget(), underline.leader_duration,
    + +
    438
    +
    439 animator_second_ = animation::Animator(
    +
    440 &second_, SecondTarget(), underline.follower_duration,
    + +
    442 }
    +
    443 }
    +
    444
    +
    445 bool Focusable() const final { return entries.size(); }
    +
    446 int size() const { return int(entries.size()); }
    +
    447 float FirstTarget() {
    +
    448 if (boxes_.empty()) {
    +
    449 return 0.F;
    +
    450 }
    +
    451 const int value = IsHorizontal() ? boxes_[selected()].x_min - box_.x_min
    +
    452 : boxes_[selected()].y_min - box_.y_min;
    +
    453 return float(value);
    +
    454 }
    +
    455 float SecondTarget() {
    +
    456 if (boxes_.empty()) {
    +
    457 return 0.F;
    +
    458 }
    +
    459 const int value = IsHorizontal() ? boxes_[selected()].x_max - box_.x_min
    +
    460 : boxes_[selected()].y_max - box_.y_min;
    +
    461 return float(value);
    +
    462 }
    +
    463
    +
    464 protected:
    +
    465 int selected_previous_ = selected();
    +
    466 int selected_focus_ = selected();
    +
    467
    +
    468 // Mouse click support:
    +
    469 std::vector<Box> boxes_;
    +
    470 Box box_;
    +
    471
    +
    472 // Animation support:
    +
    473 float first_ = 0.F;
    +
    474 float second_ = 0.F;
    +
    475 animation::Animator animator_first_ = animation::Animator(&first_, 0.F);
    +
    476 animation::Animator animator_second_ = animation::Animator(&second_, 0.F);
    +
    477 std::vector<animation::Animator> animator_background_;
    +
    478 std::vector<animation::Animator> animator_foreground_;
    +
    479 std::vector<float> animation_background_;
    +
    480 std::vector<float> animation_foreground_;
    +
    481};
    +
    482
    +
    483/// @brief A list of text. The focused element is selected.
    +
    484/// @param option a structure containing all the paramters.
    +
    485/// @ingroup component
    +
    486///
    +
    487/// ### Example
    +
    488///
    +
    489/// ```cpp
    +
    490/// auto screen = ScreenInteractive::TerminalOutput();
    +
    491/// std::vector<std::string> entries = {
    +
    492/// "entry 1",
    +
    493/// "entry 2",
    +
    494/// "entry 3",
    +
    495/// };
    +
    496/// int selected = 0;
    +
    497/// auto menu = Menu({
    +
    498/// .entries = &entries,
    +
    499/// .selected = &selected,
    +
    500/// });
    +
    501/// screen.Loop(menu);
    +
    502/// ```
    +
    503///
    +
    504/// ### Output
    +
    505///
    +
    506/// ```bash
    +
    507/// > entry 1
    +
    508/// entry 2
    +
    509/// entry 3
    +
    510/// ```
    +
    511// NOLINTNEXTLINE
    +
    + +
    513 return Make<MenuBase>(std::move(option));
    +
    514}
    +
    +
    515
    +
    516/// @brief A list of text. The focused element is selected.
    +
    517/// @param entries The list of entries in the menu.
    +
    518/// @param selected The index of the currently selected element.
    +
    519/// @param option Additional optional parameters.
    +
    520/// @ingroup component
    +
    521///
    +
    522/// ### Example
    +
    523///
    +
    524/// ```cpp
    +
    525/// auto screen = ScreenInteractive::TerminalOutput();
    +
    526/// std::vector<std::string> entries = {
    +
    527/// "entry 1",
    +
    528/// "entry 2",
    +
    529/// "entry 3",
    +
    530/// };
    +
    531/// int selected = 0;
    +
    532/// auto menu = Menu(&entries, &selected);
    +
    533/// screen.Loop(menu);
    +
    534/// ```
    +
    535///
    +
    536/// ### Output
    +
    537///
    +
    538/// ```bash
    +
    539/// > entry 1
    +
    540/// entry 2
    +
    541/// entry 3
    +
    542/// ```
    +
    +
    543Component Menu(ConstStringListRef entries, int* selected, MenuOption option) {
    +
    544 option.entries = std::move(entries);
    +
    545 option.selected = selected;
    +
    546 return Menu(option);
    +
    547}
    +
    +
    548
    +
    549/// @brief An horizontal list of elements. The user can navigate through them.
    +
    550/// @param entries The list of selectable entries to display.
    +
    551/// @param selected Reference the selected entry.
    +
    552/// See also |Menu|.
    +
    553/// @ingroup component
    +
    +
    554Component Toggle(ConstStringListRef entries, int* selected) {
    +
    555 return Menu(std::move(entries), selected, MenuOption::Toggle());
    +
    556}
    +
    +
    557
    +
    558/// @brief A specific menu entry. They can be put into a Container::Vertical to
    +
    559/// form a menu.
    +
    560/// @param label The text drawn representing this element.
    +
    561/// @param option Additional optional parameters.
    +
    562/// @ingroup component
    +
    563///
    +
    564/// ### Example
    +
    565///
    +
    566/// ```cpp
    +
    567/// auto screen = ScreenInteractive::TerminalOutput();
    +
    568/// int selected = 0;
    +
    569/// auto menu = Container::Vertical({
    +
    570/// MenuEntry("entry 1"),
    +
    571/// MenuEntry("entry 2"),
    +
    572/// MenuEntry("entry 3"),
    +
    573/// }, &selected);
    +
    574/// screen.Loop(menu);
    +
    575/// ```
    +
    576///
    +
    577/// ### Output
    +
    578///
    +
    579/// ```bash
    +
    580/// > entry 1
    +
    581/// entry 2
    +
    582/// entry 3
    +
    583/// ```
    +
    + +
    585 option.label = std::move(label);
    +
    586 return MenuEntry(std::move(option));
    +
    587}
    +
    +
    588
    +
    589/// @brief A specific menu entry. They can be put into a Container::Vertical to
    +
    590/// form a menu.
    +
    591/// @param option The parameters.
    +
    592/// @ingroup component
    +
    593///
    +
    594/// ### Example
    +
    595///
    +
    596/// ```cpp
    +
    597/// auto screen = ScreenInteractive::TerminalOutput();
    +
    598/// int selected = 0;
    +
    599/// auto menu = Container::Vertical({
    +
    600/// MenuEntry({.label = "entry 1"}),
    +
    601/// MenuEntry({.label = "entry 2"}),
    +
    602/// MenuEntry({.label = "entry 3"}),
    +
    603/// }, &selected);
    +
    604/// screen.Loop(menu);
    +
    605/// ```
    +
    606///
    +
    607/// ### Output
    +
    608///
    +
    609/// ```bash
    +
    610/// > entry 1
    +
    611/// entry 2
    +
    612/// entry 3
    +
    613/// ```
    +
    + +
    615 class Impl : public ComponentBase, public MenuEntryOption {
    +
    616 public:
    +
    617 explicit Impl(MenuEntryOption option)
    +
    618 : MenuEntryOption(std::move(option)) {}
    +
    619
    +
    620 private:
    +
    621 Element OnRender() override {
    +
    622 const bool is_focused = Focused();
    +
    623 UpdateAnimationTarget();
    +
    624
    +
    625 const EntryState state{
    +
    626 label(), false, hovered_, is_focused, Index(),
    +
    627 };
    +
    628
    +
    629 Element element = (transform ? transform : DefaultOptionTransform) //
    +
    630 (state);
    +
    631
    +
    632 if (is_focused) {
    +
    633 element |= focus;
    +
    634 }
    +
    635
    +
    636 return element | AnimatedColorStyle() | reflect(box_);
    +
    637 }
    +
    638
    +
    639 void UpdateAnimationTarget() {
    +
    640 const bool focused = Focused();
    +
    641 float target = focused ? 1.F : hovered_ ? 0.5F : 0.F; // NOLINT
    +
    642 if (target == animator_background_.to()) {
    +
    643 return;
    +
    644 }
    +
    645 animator_background_ = animation::Animator(
    +
    646 &animation_background_, target, animated_colors.background.duration,
    +
    647 animated_colors.background.function);
    +
    648 animator_foreground_ = animation::Animator(
    +
    649 &animation_foreground_, target, animated_colors.foreground.duration,
    +
    650 animated_colors.foreground.function);
    +
    651 }
    +
    652
    +
    653 Decorator AnimatedColorStyle() {
    +
    654 Decorator style = nothing;
    +
    655 if (animated_colors.foreground.enabled) {
    +
    656 style = style |
    +
    657 color(Color::Interpolate(animation_foreground_,
    +
    658 animated_colors.foreground.inactive,
    +
    659 animated_colors.foreground.active));
    +
    660 }
    +
    661
    +
    662 if (animated_colors.background.enabled) {
    +
    663 style = style |
    +
    664 bgcolor(Color::Interpolate(animation_background_,
    +
    665 animated_colors.background.inactive,
    +
    666 animated_colors.background.active));
    +
    667 }
    +
    668 return style;
    +
    669 }
    +
    670
    +
    671 bool Focusable() const override { return true; }
    +
    672 bool OnEvent(Event event) override {
    +
    673 if (!event.is_mouse()) {
    +
    674 return false;
    +
    675 }
    +
    676
    +
    677 hovered_ = box_.Contain(event.mouse().x, event.mouse().y);
    +
    678
    +
    679 if (!hovered_) {
    +
    680 return false;
    +
    681 }
    +
    682
    +
    683 if (event.mouse().button == Mouse::Left &&
    +
    684 event.mouse().motion == Mouse::Pressed) {
    +
    685 TakeFocus();
    +
    686 return true;
    +
    687 }
    +
    688
    +
    689 return false;
    +
    690 }
    +
    691
    +
    692 void OnAnimation(animation::Params& params) override {
    +
    693 animator_background_.OnAnimation(params);
    +
    694 animator_foreground_.OnAnimation(params);
    +
    695 }
    +
    696
    +
    697 Box box_;
    +
    698 bool hovered_ = false;
    +
    699
    +
    700 float animation_background_ = 0.F;
    +
    701 float animation_foreground_ = 0.F;
    +
    702 animation::Animator animator_background_ =
    +
    703 animation::Animator(&animation_background_, 0.F);
    +
    704 animation::Animator animator_foreground_ =
    +
    705 animation::Animator(&animation_foreground_, 0.F);
    +
    706 };
    +
    707
    +
    708 return Make<Impl>(std::move(option));
    +
    709}
    +
    +
    710
    +
    711} // namespace ftxui
    + + +
    An adapter. Reference a list of strings.
    Definition ref.hpp:116
    +
    size_t size() const
    Definition ref.hpp:167
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    + + + + + + + + + + + +
    static const Event TabReverse
    Definition event.hpp:56
    + + + + + + +
    bool Focused() const
    Returns if the elements if focused by the user. True when the ComponentBase is focused by the user....
    +
    std::function< Element()> elements_prefix
    +
    static MenuOption Toggle()
    Standard options for a horizontal menu with some separator. This can be useful to implement a tab bar...
    +
    animation::Duration follower_duration
    +
    CapturedMouse CaptureMouse(const Event &event)
    Take the CapturedMouse if available. There is only one component of them. It represents a component t...
    +
    animation::easing::Function leader_function
    +
    MenuEntryOption entries_option
    +
    static const Event PageUp
    Definition event.hpp:62
    +
    animation::easing::Function function
    +
    animation::Duration follower_delay
    +
    bool is_mouse() const
    Definition event.hpp:109
    +
    void TakeFocus()
    Configure all the ancestors to give focus to this component.
    + +
    std::function< void()> on_enter
    + +
    UnderlineOption underline
    +
    std::function< Element(const EntryState &state)> transform
    + + +
    animation::Duration leader_duration
    + + +
    struct Mouse mouse
    Definition event.hpp:144
    +
    ConstStringListRef entries
    +
    animation::easing::Function follower_function
    + + +
    static const Event ArrowUp
    Definition event.hpp:42
    + +
    static const Event Tab
    Definition event.hpp:55
    +
    std::function< Element()> elements_infix
    +
    static const Event ArrowDown
    Definition event.hpp:43
    +
    static const Event End
    Definition event.hpp:61
    +
    Button button
    Definition mouse.hpp:30
    +
    static const Event Home
    Definition event.hpp:60
    +
    std::function< Element()> elements_postfix
    +
    AnimatedColorsOption animated_colors
    +
    std::function< void()> on_change
    + +
    static const Event PageDown
    Definition event.hpp:63
    +
    static const Event Return
    Definition event.hpp:53
    + +
    static const Event ArrowLeft
    Definition event.hpp:40
    +
    animation::Duration leader_delay
    +
    Motion motion
    Definition mouse.hpp:33
    +
    static const Event ArrowRight
    Definition event.hpp:41
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component MenuEntry(MenuEntryOption options)
    A specific menu entry. They can be put into a Container::Vertical to form a menu.
    +
    Component Toggle(ConstStringListRef entries, int *selected)
    An horizontal list of elements. The user can navigate through them.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    Option for the MenuEntry component.
    +
    Option for the Menu component.
    +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Element nothing(Element element)
    A decoration doing absolutely nothing.
    Definition dom/util.cpp:28
    +
    Direction
    Direction is an enumeration that represents the four cardinal directions.
    Definition direction.hpp:13
    +
    Element bold(Element)
    Use a bold font, for elements with more emphasis.
    Definition bold.cpp:33
    +
    Element yflex(Element)
    Expand/Minimize if possible/needed on the Y axis.
    Definition flex.cpp:135
    +
    Element inverted(Element)
    Add a filter that will invert the foreground and the background colors.
    Definition inverted.cpp:34
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + +
    bool Contain(int x, int y) const
    Definition box.cpp:42
    +
    int y_min
    Definition box.hpp:19
    +
    int y_max
    Definition box.hpp:20
    +
    int x_min
    Definition box.hpp:17
    +
    static Color Interpolate(float t, const Color &a, const Color &b)
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    + +
    float Linear(float p)
    Modeled after the line y = x.
    Definition animation.cpp:29
    +
    constexpr const T & clamp(const T &v, const T &lo, const T &hi)
    Definition util.hpp:11
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    Element separatorVSelector(float up, float down, Color unselected_color, Color selected_color)
    Draw an vertical bar, with the area in between up/downcolored differently.
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)
    Draw a horizontal bar, with the area in between left/right colored differently.
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    std::shared_ptr< ComponentBase > Component
    + + + + +
    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|,...
    + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2radiobox_8cpp.html b/src_2ftxui_2component_2radiobox_8cpp.html new file mode 100644 index 000000000..1fd071d05 --- /dev/null +++ b/src_2ftxui_2component_2radiobox_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: radiobox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    radiobox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Component Radiobox (RadioboxOption option)
     A list of element, where only one can be selected.
     
    Component Radiobox (ConstStringListRef entries, int *selected, RadioboxOption option)
     A list of element, where only one can be selected.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2radiobox_8cpp.js b/src_2ftxui_2component_2radiobox_8cpp.js new file mode 100644 index 000000000..14f142465 --- /dev/null +++ b/src_2ftxui_2component_2radiobox_8cpp.js @@ -0,0 +1,5 @@ +var src_2ftxui_2component_2radiobox_8cpp = +[ + [ "Radiobox", "src_2ftxui_2component_2radiobox_8cpp.html#ga3e7a44f321fa910f07aef5879e67af95", null ], + [ "Radiobox", "src_2ftxui_2component_2radiobox_8cpp.html#gac73eebf15ff6b5386b7ee6c6cb4a4890", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2radiobox_8cpp_source.html b/src_2ftxui_2component_2radiobox_8cpp_source.html new file mode 100644 index 000000000..b7012d950 --- /dev/null +++ b/src_2ftxui_2component_2radiobox_8cpp_source.html @@ -0,0 +1,497 @@ + + + + + + + + +FTXUI: radiobox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/radiobox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <utility> // for move
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/component.hpp" // for Make, Radiobox
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    10#include "ftxui/component/component_options.hpp" // for RadioboxOption, EntryState
    +
    11#include "ftxui/component/event.hpp" // for Event, Event::ArrowDown, Event::ArrowUp, Event::End, Event::Home, Event::PageDown, Event::PageUp, Event::Return, Event::Tab, Event::TabReverse
    +
    12#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::WheelDown, Mouse::WheelUp, Mouse::Left, Mouse::Released
    +
    13#include "ftxui/component/screen_interactive.hpp" // for Component
    +
    14#include "ftxui/dom/elements.hpp" // for operator|, reflect, Element, vbox, Elements, focus, nothing, select
    +
    15#include "ftxui/screen/box.hpp" // for Box
    +
    16#include "ftxui/screen/util.hpp" // for clamp
    +
    17#include "ftxui/util/ref.hpp" // for Ref, ConstStringListRef
    +
    18
    +
    19namespace ftxui {
    +
    20
    +
    21namespace {
    +
    22/// @brief A list of selectable element. One and only one can be selected at
    +
    23/// the same time.
    +
    24/// @ingroup component
    +
    25class RadioboxBase : public ComponentBase, public RadioboxOption {
    +
    26 public:
    +
    27 explicit RadioboxBase(const RadioboxOption& option)
    +
    28 : RadioboxOption(option) {}
    +
    29
    +
    30 private:
    +
    31 Element OnRender() override {
    +
    32 Clamp();
    +
    33 Elements elements;
    +
    34 const bool is_menu_focused = Focused();
    +
    35 elements.reserve(size());
    +
    36 for (int i = 0; i < size(); ++i) {
    +
    37 const bool is_focused = (focused_entry() == i) && is_menu_focused;
    +
    38 const bool is_selected = (hovered_ == i);
    +
    39 auto state = EntryState{
    +
    40 entries[i], selected() == i, is_selected, is_focused, i,
    +
    41 };
    +
    42 auto element =
    +
    43 (transform ? transform : RadioboxOption::Simple().transform)(state);
    +
    44 if (is_selected) {
    +
    45 element |= focus;
    +
    46 }
    +
    47 elements.push_back(element | reflect(boxes_[i]));
    +
    48 }
    +
    49 return vbox(std::move(elements), hovered_) | reflect(box_);
    +
    50 }
    +
    51
    +
    52 // NOLINTNEXTLINE(readability-function-cognitive-complexity)
    +
    53 bool OnEvent(Event event) override {
    +
    54 Clamp();
    +
    55 if (!CaptureMouse(event)) {
    +
    56 return false;
    +
    57 }
    +
    58
    +
    59 if (event.is_mouse()) {
    +
    60 return OnMouseEvent(event);
    +
    61 }
    +
    62
    +
    63 if (Focused()) {
    +
    64 const int old_hovered = hovered_;
    +
    65 if (event == Event::ArrowUp || event == Event::Character('k')) {
    +
    66 (hovered_)--;
    +
    67 }
    +
    68 if (event == Event::ArrowDown || event == Event::Character('j')) {
    +
    69 (hovered_)++;
    +
    70 }
    +
    71 if (event == Event::PageUp) {
    +
    72 (hovered_) -= box_.y_max - box_.y_min;
    +
    73 }
    +
    74 if (event == Event::PageDown) {
    +
    75 (hovered_) += box_.y_max - box_.y_min;
    +
    76 }
    +
    77 if (event == Event::Home) {
    +
    78 (hovered_) = 0;
    +
    79 }
    +
    80 if (event == Event::End) {
    +
    81 (hovered_) = size() - 1;
    +
    82 }
    +
    83 if (event == Event::Tab && size()) {
    +
    84 hovered_ = (hovered_ + 1) % size();
    +
    85 }
    +
    86 if (event == Event::TabReverse && size()) {
    +
    87 hovered_ = (hovered_ + size() - 1) % size();
    +
    88 }
    +
    89
    +
    90 hovered_ = util::clamp(hovered_, 0, size() - 1);
    +
    91
    +
    92 if (hovered_ != old_hovered) {
    +
    93 focused_entry() = hovered_;
    +
    94 on_change();
    +
    95 return true;
    +
    96 }
    +
    97 }
    +
    98
    +
    99 if (event == Event::Character(' ') || event == Event::Return) {
    +
    100 selected() = hovered_;
    +
    101 on_change();
    +
    102 return true;
    +
    103 }
    +
    104
    +
    105 return false;
    +
    106 }
    +
    107
    +
    108 bool OnMouseEvent(Event event) {
    +
    109 if (event.mouse().button == Mouse::WheelDown ||
    +
    110 event.mouse().button == Mouse::WheelUp) {
    +
    111 return OnMouseWheel(event);
    +
    112 }
    +
    113
    +
    114 for (int i = 0; i < size(); ++i) {
    +
    115 if (!boxes_[i].Contain(event.mouse().x, event.mouse().y)) {
    +
    116 continue;
    +
    117 }
    +
    118
    +
    119 TakeFocus();
    +
    120 focused_entry() = i;
    +
    121 if (event.mouse().button == Mouse::Left &&
    +
    122 event.mouse().motion == Mouse::Pressed) {
    +
    123 if (selected() != i) {
    +
    124 selected() = i;
    +
    125 on_change();
    +
    126 }
    +
    127
    +
    128 return true;
    +
    129 }
    +
    130 }
    +
    131 return false;
    +
    132 }
    +
    133
    +
    134 bool OnMouseWheel(Event event) {
    +
    135 if (!box_.Contain(event.mouse().x, event.mouse().y)) {
    +
    136 return false;
    +
    137 }
    +
    138
    +
    139 const int old_hovered = hovered_;
    +
    140
    +
    141 if (event.mouse().button == Mouse::WheelUp) {
    +
    142 (hovered_)--;
    +
    143 }
    +
    144 if (event.mouse().button == Mouse::WheelDown) {
    +
    145 (hovered_)++;
    +
    146 }
    +
    147
    +
    148 hovered_ = util::clamp(hovered_, 0, size() - 1);
    +
    149
    +
    150 if (hovered_ != old_hovered) {
    +
    151 on_change();
    +
    152 }
    +
    153
    +
    154 return true;
    +
    155 }
    +
    156
    +
    157 void Clamp() {
    +
    158 boxes_.resize(size());
    +
    159 selected() = util::clamp(selected(), 0, size() - 1);
    +
    160 focused_entry() = util::clamp(focused_entry(), 0, size() - 1);
    +
    161 hovered_ = util::clamp(hovered_, 0, size() - 1);
    +
    162 }
    +
    163
    +
    164 bool Focusable() const final { return entries.size(); }
    +
    165 int size() const { return int(entries.size()); }
    +
    166
    +
    167 int hovered_ = selected();
    +
    168 std::vector<Box> boxes_;
    +
    169 Box box_;
    +
    170};
    +
    171
    +
    172} // namespace
    +
    173
    +
    174/// @brief A list of element, where only one can be selected.
    +
    175/// @param option The parameters
    +
    176/// @ingroup component
    +
    177/// @see RadioboxBase
    +
    178///
    +
    179/// ### Example
    +
    180///
    +
    181/// ```cpp
    +
    182/// auto screen = ScreenInteractive::TerminalOutput();
    +
    183/// std::vector<std::string> entries = {
    +
    184/// "entry 1",
    +
    185/// "entry 2",
    +
    186/// "entry 3",
    +
    187/// };
    +
    188/// int selected = 0;
    +
    189/// auto menu = Radiobox({
    +
    190/// .entries = entries,
    +
    191/// .selected = &selected,
    +
    192/// });
    +
    193/// screen.Loop(menu);
    +
    194/// ```
    +
    195///
    +
    196/// ### Output
    +
    197///
    +
    198/// ```bash
    +
    199/// ◉ entry 1
    +
    200/// ○ entry 2
    +
    201/// ○ entry 3
    +
    202/// ```
    +
    203/// NOLINTNEXTLINE
    +
    + +
    205 return Make<RadioboxBase>(std::move(option));
    +
    206}
    +
    +
    207
    +
    208/// @brief A list of element, where only one can be selected.
    +
    209/// @param entries The list of entries in the list.
    +
    210/// @param selected The index of the currently selected element.
    +
    211/// @param option Additional optional parameters.
    +
    212/// @ingroup component
    +
    213/// @see RadioboxBase
    +
    214///
    +
    215/// ### Example
    +
    216///
    +
    217/// ```cpp
    +
    218/// auto screen = ScreenInteractive::TerminalOutput();
    +
    219/// std::vector<std::string> entries = {
    +
    220/// "entry 1",
    +
    221/// "entry 2",
    +
    222/// "entry 3",
    +
    223/// };
    +
    224/// int selected = 0;
    +
    225/// auto menu = Radiobox(&entries, &selected);
    +
    226/// screen.Loop(menu);
    +
    227/// ```
    +
    228///
    +
    229/// ### Output
    +
    230///
    +
    231/// ```bash
    +
    232/// ◉ entry 1
    +
    233/// ○ entry 2
    +
    234/// ○ entry 3
    +
    235/// ```
    +
    + +
    237 int* selected,
    +
    238 RadioboxOption option) {
    +
    239 option.entries = std::move(entries);
    +
    240 option.selected = selected;
    +
    241 return Make<RadioboxBase>(std::move(option));
    +
    242}
    +
    +
    243
    +
    244} // namespace ftxui
    + +
    An adapter. Reference a list of strings.
    Definition ref.hpp:116
    + + + + + +
    static const Event TabReverse
    Definition event.hpp:56
    + + + + +
    static const Event PageUp
    Definition event.hpp:62
    +
    ConstStringListRef entries
    +
    static const Event ArrowUp
    Definition event.hpp:42
    +
    static const Event Tab
    Definition event.hpp:55
    +
    static const Event ArrowDown
    Definition event.hpp:43
    +
    static const Event End
    Definition event.hpp:61
    +
    static const Event Home
    Definition event.hpp:60
    + +
    static const Event PageDown
    Definition event.hpp:63
    +
    static const Event Return
    Definition event.hpp:53
    +
    static RadioboxOption Simple()
    Option for standard Radiobox.
    +
    std::function< Element(const EntryState &)> transform
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Option for the Radiobox component.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + +
    constexpr const T & clamp(const T &v, const T &lo, const T &hi)
    Definition util.hpp:11
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    std::shared_ptr< ComponentBase > Component
    + + + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2renderer_8cpp.html b/src_2ftxui_2component_2renderer_8cpp.html new file mode 100644 index 000000000..2ab7cea3e --- /dev/null +++ b/src_2ftxui_2component_2renderer_8cpp.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: renderer.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    renderer.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + +

    +Functions

    Component Renderer (std::function< Element()> render)
     Return a component, using |render| to render its interface.
     
    Component Renderer (Component child, std::function< Element()> render)
     Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
     
    Component Renderer (std::function< Element(bool)> render)
     Return a focusable component, using |render| to render its interface.
     
    ComponentDecorator Renderer (ElementDecorator decorator)
     Decorate a component, by decorating what it renders.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2renderer_8cpp.js b/src_2ftxui_2component_2renderer_8cpp.js new file mode 100644 index 000000000..0e40a2d7a --- /dev/null +++ b/src_2ftxui_2component_2renderer_8cpp.js @@ -0,0 +1,7 @@ +var src_2ftxui_2component_2renderer_8cpp = +[ + [ "Renderer", "src_2ftxui_2component_2renderer_8cpp.html#gaf03d3df7243bf71bb1a73686628f7f2b", null ], + [ "Renderer", "src_2ftxui_2component_2renderer_8cpp.html#ga533e883e2aeea28de2b60564fcaf0361", null ], + [ "Renderer", "src_2ftxui_2component_2renderer_8cpp.html#ga099cb57274a99396ee10f38acbfe62a7", null ], + [ "Renderer", "src_2ftxui_2component_2renderer_8cpp.html#ga41d63b7af41dee1570b54915821abd30", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2renderer_8cpp_source.html b/src_2ftxui_2component_2renderer_8cpp_source.html new file mode 100644 index 000000000..e96939386 --- /dev/null +++ b/src_2ftxui_2component_2renderer_8cpp_source.html @@ -0,0 +1,371 @@ + + + + + + + + +FTXUI: renderer.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/renderer.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/component/component.hpp" // for Make, Renderer
    +
    8#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    9#include "ftxui/component/event.hpp" // for Event
    +
    10#include "ftxui/component/mouse.hpp" // for Mouse
    +
    11#include "ftxui/dom/elements.hpp" // for Element, operator|, reflect
    +
    12#include "ftxui/screen/box.hpp" // for Box
    +
    13
    +
    14namespace ftxui {
    +
    15
    +
    16/// @brief Return a component, using |render| to render its interface.
    +
    17/// @param render The function drawing the interface.
    +
    18/// @ingroup component
    +
    19///
    +
    20/// ### Example
    +
    21///
    +
    22/// ```cpp
    +
    23/// auto screen = ScreenInteractive::TerminalOutput();
    +
    24/// auto renderer = Renderer([] {
    +
    25/// return text("My interface");
    +
    26/// });
    +
    27/// screen.Loop(renderer);
    +
    28/// ```
    +
    +
    29Component Renderer(std::function<Element()> render) {
    +
    30 class Impl : public ComponentBase {
    +
    31 public:
    +
    32 explicit Impl(std::function<Element()> render)
    +
    33 : render_(std::move(render)) {}
    +
    34 Element OnRender() override { return render_(); }
    +
    35 std::function<Element()> render_;
    +
    36 };
    +
    37
    +
    38 return Make<Impl>(std::move(render));
    +
    39}
    +
    +
    40
    +
    41/// @brief Return a new Component, similar to |child|, but using |render| as the
    +
    42/// Component::Render() event.
    +
    43/// @param child The component to forward events to.
    +
    44/// @param render The function drawing the interface.
    +
    45/// @ingroup component
    +
    46///
    +
    47/// ### Example
    +
    48///
    +
    49/// ```cpp
    +
    50/// auto screen = ScreenInteractive::TerminalOutput();
    +
    51/// std::string label = "Click to quit";
    +
    52/// auto button = Button(&label, screen.ExitLoopClosure());
    +
    53/// auto renderer = Renderer(button, [&] {
    +
    54/// return hbox({
    +
    55/// text("A button:"),
    +
    56/// button->Render(),
    +
    57/// });
    +
    58/// });
    +
    59/// screen.Loop(renderer);
    +
    60/// ```
    +
    +
    61Component Renderer(Component child, std::function<Element()> render) {
    +
    62 Component renderer = Renderer(std::move(render));
    +
    63 renderer->Add(std::move(child));
    +
    64 return renderer;
    +
    65}
    +
    +
    66
    +
    67/// @brief Return a focusable component, using |render| to render its interface.
    +
    68/// @param render The function drawing the interface, taking a boolean telling
    +
    69/// whether the component is focused or not.
    +
    70/// @ingroup component
    +
    71///
    +
    72/// ### Example
    +
    73///
    +
    74/// ```cpp
    +
    75/// auto screen = ScreenInteractive::TerminalOutput();
    +
    76/// auto renderer = Renderer([] (bool focused) {
    +
    77/// if (focused)
    +
    78/// return text("My interface") | inverted;
    +
    79/// else
    +
    80/// return text("My interface");
    +
    81/// });
    +
    82/// screen.Loop(renderer);
    +
    83/// ```
    +
    +
    84Component Renderer(std::function<Element(bool)> render) {
    +
    85 class Impl : public ComponentBase {
    +
    86 public:
    +
    87 explicit Impl(std::function<Element(bool)> render)
    +
    88 : render_(std::move(render)) {}
    +
    89
    +
    90 private:
    +
    91 Element OnRender() override { return render_(Focused()) | reflect(box_); }
    +
    92 bool Focusable() const override { return true; }
    +
    93 bool OnEvent(Event event) override {
    +
    94 if (event.is_mouse() && box_.Contain(event.mouse().x, event.mouse().y)) {
    +
    95 if (!CaptureMouse(event)) {
    +
    96 return false;
    +
    97 }
    +
    98
    +
    99 TakeFocus();
    +
    100 }
    +
    101
    +
    102 return false;
    +
    103 }
    +
    104 Box box_;
    +
    105
    +
    106 std::function<Element(bool)> render_;
    +
    107 };
    +
    108 return Make<Impl>(std::move(render));
    +
    109}
    +
    +
    110
    +
    111/// @brief Decorate a component, by decorating what it renders.
    +
    112/// @param decorator the function modifying the element it renders.
    +
    113/// @ingroup component
    +
    114///
    +
    115/// ### Example
    +
    116///
    +
    117/// ```cpp
    +
    118/// auto screen = ScreenInteractive::TerminalOutput();
    +
    119/// auto renderer =
    +
    120// Renderer([] { return text("Hello");)
    +
    121/// | Renderer(bold)
    +
    122/// | Renderer(inverted);
    +
    123/// screen.Loop(renderer);
    +
    124/// ```
    +
    + +
    126 return [decorator](Component component) { // NOLINT
    +
    127 return Renderer(component, [component, decorator] {
    +
    128 return component->Render() | decorator;
    +
    129 });
    +
    130 };
    +
    131}
    +
    +
    132
    +
    133} // namespace ftxui
    + + + + + + +
    void Add(Component children)
    Add a child. @param child The child to be attached.
    Definition component.cpp:70
    +
    bool is_mouse() const
    Definition event.hpp:109
    + +
    struct Mouse mouse
    Definition event.hpp:144
    +
    It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::function< Element(Element)> ElementDecorator
    Definition component.hpp:33
    +
    std::function< Component(Component)> ComponentDecorator
    Definition component.hpp:32
    +
    std::shared_ptr< ComponentBase > Component
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2resizable__split_8cpp.html b/src_2ftxui_2component_2resizable__split_8cpp.html new file mode 100644 index 000000000..5b5066675 --- /dev/null +++ b/src_2ftxui_2component_2resizable__split_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: resizable_split.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    resizable_split.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + +

    +Functions

    Component ResizableSplit (ResizableSplitOption options)
     A split in between two components.
     
    Component ResizableSplitLeft (Component main, Component back, int *main_size)
     An horizontal split in between two components, configurable using the mouse.
     
    Component ResizableSplitRight (Component main, Component back, int *main_size)
     An horizontal split in between two components, configurable using the mouse.
     
    Component ResizableSplitTop (Component main, Component back, int *main_size)
     An vertical split in between two components, configurable using the mouse.
     
    Component ResizableSplitBottom (Component main, Component back, int *main_size)
     An vertical split in between two components, configurable using the mouse.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2resizable__split_8cpp.js b/src_2ftxui_2component_2resizable__split_8cpp.js new file mode 100644 index 000000000..81639477a --- /dev/null +++ b/src_2ftxui_2component_2resizable__split_8cpp.js @@ -0,0 +1,8 @@ +var src_2ftxui_2component_2resizable__split_8cpp = +[ + [ "ResizableSplit", "src_2ftxui_2component_2resizable__split_8cpp.html#a5ce41caeafc35dedc5c7da5347386e80", null ], + [ "ResizableSplitLeft", "src_2ftxui_2component_2resizable__split_8cpp.html#gae2205fc172615b43e1e3307bb614be4c", null ], + [ "ResizableSplitRight", "src_2ftxui_2component_2resizable__split_8cpp.html#ga9030d0beb64f653603cab382b02750a8", null ], + [ "ResizableSplitTop", "src_2ftxui_2component_2resizable__split_8cpp.html#ga238b4b650aca14716b82b2198695e008", null ], + [ "ResizableSplitBottom", "src_2ftxui_2component_2resizable__split_8cpp.html#gacb75e6e61a021829893f7b57aeb7e3a2", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2resizable__split_8cpp_source.html b/src_2ftxui_2component_2resizable__split_8cpp_source.html new file mode 100644 index 000000000..914103a07 --- /dev/null +++ b/src_2ftxui_2component_2resizable__split_8cpp_source.html @@ -0,0 +1,586 @@ + + + + + + + + +FTXUI: resizable_split.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/resizable_split.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/component/component_options.hpp> // for ResizableSplitOption
    +
    5#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
    +
    6#include <ftxui/util/ref.hpp> // for Ref
    +
    7#include <functional> // for function
    +
    8#include <utility> // for move
    +
    9
    +
    10#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
    +
    11#include "ftxui/component/component.hpp" // for Horizontal, Make, ResizableSplit, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
    +
    12#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
    +
    13#include "ftxui/component/event.hpp" // for Event
    +
    14#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Pressed, Mouse::Released
    +
    15#include "ftxui/dom/elements.hpp" // for operator|, reflect, Element, size, EQUAL, xflex, yflex, hbox, vbox, HEIGHT, WIDTH, text
    +
    16#include "ftxui/screen/box.hpp" // for Box
    +
    17
    +
    18namespace ftxui {
    +
    19namespace {
    +
    20
    +
    21class ResizableSplitBase : public ComponentBase {
    +
    22 public:
    +
    23 explicit ResizableSplitBase(ResizableSplitOption options)
    +
    24 : options_(std::move(options)) {
    +
    25 switch (options_->direction()) {
    +
    26 case Direction::Left:
    +
    27 Add(Container::Horizontal({
    +
    28 options_->main,
    +
    29 options_->back,
    +
    30 }));
    +
    31 break;
    + + +
    34 options_->back,
    +
    35 options_->main,
    +
    36 }));
    +
    37 break;
    +
    38 case Direction::Up:
    + +
    40 options_->main,
    +
    41 options_->back,
    +
    42 }));
    +
    43 break;
    +
    44 case Direction::Down:
    + +
    46 options_->back,
    +
    47 options_->main,
    +
    48 }));
    +
    49 break;
    +
    50 }
    +
    51 }
    +
    52
    +
    53 bool OnEvent(Event event) final {
    +
    54 if (event.is_mouse()) {
    +
    55 return OnMouseEvent(std::move(event));
    +
    56 }
    +
    57 return ComponentBase::OnEvent(std::move(event));
    +
    58 }
    +
    59
    +
    60 bool OnMouseEvent(Event event) {
    +
    61 if (captured_mouse_ && event.mouse().motion == Mouse::Released) {
    +
    62 captured_mouse_.reset();
    +
    63 return true;
    +
    64 }
    +
    65
    +
    66 if (event.mouse().button == Mouse::Left &&
    +
    67 event.mouse().motion == Mouse::Pressed &&
    +
    68 separator_box_.Contain(event.mouse().x, event.mouse().y) &&
    +
    69 !captured_mouse_) {
    +
    70 captured_mouse_ = CaptureMouse(event);
    +
    71 return true;
    +
    72 }
    +
    73
    +
    74 if (!captured_mouse_) {
    +
    75 return ComponentBase::OnEvent(event);
    +
    76 }
    +
    77
    +
    78 switch (options_->direction()) {
    +
    79 case Direction::Left:
    +
    80 options_->main_size() = std::max(0, event.mouse().x - box_.x_min);
    +
    81 return true;
    + +
    83 options_->main_size() = std::max(0, box_.x_max - event.mouse().x);
    +
    84 return true;
    +
    85 case Direction::Up:
    +
    86 options_->main_size() = std::max(0, event.mouse().y - box_.y_min);
    +
    87 return true;
    +
    88 case Direction::Down:
    +
    89 options_->main_size() = std::max(0, box_.y_max - event.mouse().y);
    +
    90 return true;
    +
    91 }
    +
    92
    +
    93 // NOTREACHED()
    +
    94 return false;
    +
    95 }
    +
    96
    +
    97 Element OnRender() final {
    +
    98 switch (options_->direction()) {
    +
    99 case Direction::Left:
    +
    100 return RenderLeft();
    +
    101 case Direction::Right:
    +
    102 return RenderRight();
    +
    103 case Direction::Up:
    +
    104 return RenderTop();
    +
    105 case Direction::Down:
    +
    106 return RenderBottom();
    +
    107 }
    +
    108 // NOTREACHED()
    +
    109 return text("unreacheable");
    +
    110 }
    +
    111
    +
    112 Element RenderLeft() {
    +
    113 return hbox({
    +
    114 options_->main->Render() |
    +
    115 size(WIDTH, EQUAL, options_->main_size()),
    +
    116 options_->separator_func() | reflect(separator_box_),
    +
    117 options_->back->Render() | xflex,
    +
    118 }) |
    +
    119 reflect(box_);
    +
    120 }
    +
    121
    +
    122 Element RenderRight() {
    +
    123 return hbox({
    +
    124 options_->back->Render() | xflex,
    +
    125 options_->separator_func() | reflect(separator_box_),
    +
    126 options_->main->Render() |
    +
    127 size(WIDTH, EQUAL, options_->main_size()),
    +
    128 }) |
    +
    129 reflect(box_);
    +
    130 }
    +
    131
    +
    132 Element RenderTop() {
    +
    133 return vbox({
    +
    134 options_->main->Render() |
    +
    135 size(HEIGHT, EQUAL, options_->main_size()),
    +
    136 options_->separator_func() | reflect(separator_box_),
    +
    137 options_->back->Render() | yflex,
    +
    138 }) |
    +
    139 reflect(box_);
    +
    140 }
    +
    141
    +
    142 Element RenderBottom() {
    +
    143 return vbox({
    +
    144 options_->back->Render() | yflex,
    +
    145 options_->separator_func() | reflect(separator_box_),
    +
    146 options_->main->Render() |
    +
    147 size(HEIGHT, EQUAL, options_->main_size()),
    +
    148 }) |
    +
    149 reflect(box_);
    +
    150 }
    +
    151
    +
    152 private:
    +
    153 Ref<ResizableSplitOption> options_;
    +
    154 CapturedMouse captured_mouse_;
    +
    155 Box separator_box_;
    +
    156 Box box_;
    +
    157};
    +
    158
    +
    159} // namespace
    +
    160
    +
    161/// @brief A split in between two components.
    +
    162/// @param options all the parameters.
    +
    163///
    +
    164/// ### Example
    +
    165///
    +
    166/// ```cpp
    +
    167/// auto left = Renderer([] { return text("Left") | center;});
    +
    168/// auto right = Renderer([] { return text("right") | center;});
    +
    169/// int left_size = 10;
    +
    170/// auto component = ResizableSplit({
    +
    171/// .main = left,
    +
    172/// .back = right,
    +
    173/// .direction = Direction::Left,
    +
    174/// .main_size = &left_size,
    +
    175/// .separator_func = [] { return separatorDouble(); },
    +
    176/// });
    +
    177/// ```
    +
    178///
    +
    179/// ### Output
    +
    180///
    +
    181/// ```bash
    +
    182/// ║
    +
    183/// left ║ right
    +
    184/// ║
    +
    185/// ```
    +
    +
    186Component ResizableSplit(ResizableSplitOption options) {
    +
    187 return Make<ResizableSplitBase>(std::move(options));
    +
    188}
    +
    +
    189
    +
    190/// @brief An horizontal split in between two components, configurable using the
    +
    191/// mouse.
    +
    192/// @param main The main component of size |main_size|, on the left.
    +
    193/// @param back The back component taking the remaining size, on the right.
    +
    194/// @param main_size The size of the |main| component.
    +
    195/// @ingroup component
    +
    196///
    +
    197/// ### Example
    +
    198///
    +
    199/// ```cpp
    +
    200/// auto screen = ScreenInteractive::Fullscreen();
    +
    201/// int left_size = 10;
    +
    202/// auto left = Renderer([] { return text("Left") | center;});
    +
    203/// auto right = Renderer([] { return text("right") | center;});
    +
    204/// auto split = ResizableSplitLeft(left, right, &left_size);
    +
    205/// screen.Loop(split);
    +
    206/// ```
    +
    207///
    +
    208/// ### Output
    +
    209///
    +
    210/// ```bash
    +
    211/// │
    +
    212/// left │ right
    +
    213/// │
    +
    214/// ```
    +
    +
    215Component ResizableSplitLeft(Component main, Component back, int* main_size) {
    +
    216 return ResizableSplit({
    +
    217 std::move(main),
    +
    218 std::move(back),
    +
    219 Direction::Left,
    +
    220 main_size,
    +
    221 });
    +
    222}
    +
    +
    223
    +
    224/// @brief An horizontal split in between two components, configurable using the
    +
    225/// mouse.
    +
    226/// @param main The main component of size |main_size|, on the right.
    +
    227/// @param back The back component taking the remaining size, on the left.
    +
    228/// @param main_size The size of the |main| component.
    +
    229/// @ingroup component
    +
    230///
    +
    231/// ### Example
    +
    232///
    +
    233/// ```cpp
    +
    234/// auto screen = ScreenInteractive::Fullscreen();
    +
    235/// int right_size = 10;
    +
    236/// auto left = Renderer([] { return text("Left") | center;});
    +
    237/// auto right = Renderer([] { return text("right") | center;});
    +
    238/// auto split = ResizableSplitRight(right, left, &right_size)
    +
    239/// screen.Loop(split);
    +
    240/// ```
    +
    241///
    +
    242/// ### Output
    +
    243///
    +
    244/// ```bash
    +
    245/// │
    +
    246/// left │ right
    +
    247/// │
    +
    248/// ```
    +
    +
    249Component ResizableSplitRight(Component main, Component back, int* main_size) {
    +
    250 return ResizableSplit({
    +
    251 std::move(main),
    +
    252 std::move(back),
    +
    253 Direction::Right,
    +
    254 main_size,
    +
    255 });
    +
    256}
    +
    +
    257
    +
    258/// @brief An vertical split in between two components, configurable using the
    +
    259/// mouse.
    +
    260/// @param main The main component of size |main_size|, on the top.
    +
    261/// @param back The back component taking the remaining size, on the bottom.
    +
    262/// @param main_size The size of the |main| component.
    +
    263/// @ingroup component
    +
    264///
    +
    265/// ### Example
    +
    266///
    +
    267/// ```cpp
    +
    268/// auto screen = ScreenInteractive::Fullscreen();
    +
    269/// int top_size = 1;
    +
    270/// auto top = Renderer([] { return text("Top") | center;});
    +
    271/// auto bottom = Renderer([] { return text("Bottom") | center;});
    +
    272/// auto split = ResizableSplitTop(top, bottom, &top_size)
    +
    273/// screen.Loop(split);
    +
    274/// ```
    +
    275///
    +
    276/// ### Output
    +
    277///
    +
    278/// ```bash
    +
    279/// top
    +
    280/// ────────────
    +
    281/// bottom
    +
    282/// ```
    +
    +
    283Component ResizableSplitTop(Component main, Component back, int* main_size) {
    +
    284 return ResizableSplit({
    +
    285 std::move(main),
    +
    286 std::move(back),
    +
    287 Direction::Up,
    +
    288 main_size,
    +
    289 });
    +
    290}
    +
    +
    291
    +
    292/// @brief An vertical split in between two components, configurable using the
    +
    293/// mouse.
    +
    294/// @param main The main component of size |main_size|, on the bottom.
    +
    295/// @param back The back component taking the remaining size, on the top.
    +
    296/// @param main_size The size of the |main| component.
    +
    297/// @ingroup component
    +
    298///
    +
    299/// ### Example
    +
    300///
    +
    301/// ```cpp
    +
    302/// auto screen = ScreenInteractive::Fullscreen();
    +
    303/// int bottom_size = 1;
    +
    304/// auto top = Renderer([] { return text("Top") | center;});
    +
    305/// auto bottom = Renderer([] { return text("Bottom") | center;});
    +
    306/// auto split = ResizableSplit::Bottom(bottom, top, &bottom_size)
    +
    307/// screen.Loop(split);
    +
    308/// ```
    +
    309///
    +
    310/// ### Output
    +
    311///
    +
    312/// ```bash
    +
    313/// top
    +
    314/// ────────────
    +
    315/// bottom
    +
    316/// ```
    +
    +
    317Component ResizableSplitBottom(Component main, Component back, int* main_size) {
    +
    318 return ResizableSplit({
    +
    319 std::move(main),
    +
    320 std::move(back),
    +
    321 Direction::Down,
    +
    322 main_size,
    +
    323 });
    +
    324}
    +
    +
    325
    +
    326} // namespace ftxui
    + + + + + + + + + + + + +
    virtual bool OnEvent(Event)
    Called in response to an event.
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element yflex(Element)
    Expand/Minimize if possible/needed on the Y axis.
    Definition flex.cpp:135
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + + + + +
    bool Contain(int x, int y) const
    Definition box.cpp:42
    +
    int x_max
    Definition box.hpp:18
    +
    int y_min
    Definition box.hpp:19
    +
    int y_max
    Definition box.hpp:20
    +
    int x_min
    Definition box.hpp:17
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    std::unique_ptr< CapturedMouseInterface > CapturedMouse
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    + +
    std::shared_ptr< ComponentBase > Component
    + + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2slider_8cpp.html b/src_2ftxui_2component_2slider_8cpp.html new file mode 100644 index 000000000..bca7f6088 --- /dev/null +++ b/src_2ftxui_2component_2slider_8cpp.html @@ -0,0 +1,255 @@ + + + + + + + + +FTXUI: slider.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    slider.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Component Slider (ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)
     An horizontal slider.
     
    Component Slider (ConstStringRef label, Ref< float > value, ConstRef< float > min=0.f, ConstRef< float > max=100.f, ConstRef< float > increment=5.f)
     
    Component Slider (ConstStringRef label, Ref< long > value, ConstRef< long > min=0L, ConstRef< long > max=100L, ConstRef< long > increment=5L)
     
    template<typename T >
    Component Slider (SliderOption< T > options)
     A slider in any direction.
     
    template Component Slider (SliderOption< int8_t >)
     
    template Component Slider (SliderOption< int16_t >)
     
    template Component Slider (SliderOption< int32_t >)
     
    template Component Slider (SliderOption< int64_t >)
     
    template Component Slider (SliderOption< uint8_t >)
     
    template Component Slider (SliderOption< uint16_t >)
     
    template Component Slider (SliderOption< uint32_t >)
     
    template Component Slider (SliderOption< uint64_t >)
     
    template Component Slider (SliderOption< float >)
     
    template Component Slider (SliderOption< double >)
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2slider_8cpp.js b/src_2ftxui_2component_2slider_8cpp.js new file mode 100644 index 000000000..c0a29ad96 --- /dev/null +++ b/src_2ftxui_2component_2slider_8cpp.js @@ -0,0 +1,17 @@ +var src_2ftxui_2component_2slider_8cpp = +[ + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#gafdce74ff1421c2f1bda336c8dacefcbd", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a8bfa2757905a4fb50e0ec263976d1f96", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#aba34419b025c881c07808816c81c5230", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#aa3558d992a72679e5e9c9c7b67abd727", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a877bf1673c86ac33e24facf81068e693", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a551dff4f473bdb27fde654341d08c618", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a8d1ae475487cb22769f127449380925e", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a217d120bd78c7e5fbe21c60d58f411ba", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a83667b04778e0206c7c9f05652c9110a", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a41e0cb91026c84d8767958a6c3d65d88", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a17babf521947301435a4f7c47835032c", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a69e9803a9d52936adf22dabd14df4289", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a453d7fc2e7bd34b00775062018daf96d", null ], + [ "Slider", "src_2ftxui_2component_2slider_8cpp.html#a9d64c6ad8cbbae0735eac76e4f4f5811", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2slider_8cpp_source.html b/src_2ftxui_2component_2slider_8cpp_source.html new file mode 100644 index 000000000..8da75f52e --- /dev/null +++ b/src_2ftxui_2component_2slider_8cpp_source.html @@ -0,0 +1,603 @@ + + + + + + + + +FTXUI: slider.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/slider.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max, min
    +
    5#include <ftxui/component/component_options.hpp> // for SliderOption
    +
    6#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
    +
    7#include <string> // for allocator
    +
    8#include <utility> // for move
    +
    9
    +
    10#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
    +
    11#include "ftxui/component/component.hpp" // for Make, Slider
    +
    12#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    13#include "ftxui/component/event.hpp" // for Event, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp
    +
    14#include "ftxui/component/mouse.hpp" // for Mouse, Mouse::Left, Mouse::Pressed, Mouse::Released
    +
    15#include "ftxui/component/screen_interactive.hpp" // for Component
    +
    16#include "ftxui/dom/elements.hpp" // for operator|, text, Element, xflex, hbox, color, underlined, reflect, Decorator, dim, vcenter, focus, nothing, select, yflex, gaugeDirection
    +
    17#include "ftxui/screen/box.hpp" // for Box
    +
    18#include "ftxui/screen/color.hpp" // for Color, Color::GrayDark, Color::White
    +
    19#include "ftxui/util/ref.hpp" // for ConstRef, Ref, ConstStringRef
    +
    20
    +
    21namespace ftxui {
    +
    22
    +
    23namespace {
    +
    24Decorator flexDirection(Direction direction) {
    +
    25 switch (direction) {
    +
    26 case Direction::Up:
    +
    27 case Direction::Down:
    +
    28 return yflex;
    +
    29 case Direction::Left:
    + +
    31 return xflex;
    +
    32 }
    +
    33 return xflex; // NOT_REACHED()
    +
    34}
    +
    35
    +
    36Direction Opposite(Direction d) {
    +
    37 switch (d) {
    +
    38 case Direction::Up:
    +
    39 return Direction::Down;
    +
    40 case Direction::Down:
    +
    41 return Direction::Up;
    +
    42 case Direction::Left:
    +
    43 return Direction::Right;
    + +
    45 return Direction::Left;
    +
    46 }
    +
    47 return d; // NOT_REACHED()
    +
    48}
    +
    49
    +
    50template <class T>
    +
    51class SliderBase : public SliderOption<T>, public ComponentBase {
    +
    52 public:
    +
    53 explicit SliderBase(SliderOption<T> options) : SliderOption<T>(options) {}
    +
    54
    +
    55 Element OnRender() override {
    +
    56 auto gauge_color =
    +
    57 Focused() ? color(this->color_active) : color(this->color_inactive);
    +
    58 const float percent =
    +
    59 float(this->value() - this->min()) / float(this->max() - this->min());
    +
    60 return gaugeDirection(percent, this->direction) |
    +
    61 flexDirection(this->direction) | reflect(gauge_box_) | gauge_color;
    +
    62 }
    +
    63
    +
    64 void OnDirection(Direction pressed) {
    +
    65 if (pressed == this->direction) {
    +
    66 this->value() += this->increment();
    +
    67 return;
    +
    68 }
    +
    69
    +
    70 if (pressed == Opposite(this->direction)) {
    +
    71 this->value() -= this->increment();
    +
    72 return;
    +
    73 }
    +
    74 }
    +
    75
    +
    76 bool OnEvent(Event event) final {
    +
    77 if (event.is_mouse()) {
    +
    78 return OnMouseEvent(event);
    +
    79 }
    +
    80
    +
    81 T old_value = this->value();
    +
    82 if (event == Event::ArrowLeft || event == Event::Character('h')) {
    +
    83 OnDirection(Direction::Left);
    +
    84 }
    +
    85 if (event == Event::ArrowRight || event == Event::Character('l')) {
    +
    86 OnDirection(Direction::Right);
    +
    87 }
    +
    88 if (event == Event::ArrowUp || event == Event::Character('k')) {
    +
    89 OnDirection(Direction::Up);
    +
    90 }
    +
    91 if (event == Event::ArrowDown || event == Event::Character('j')) {
    +
    92 OnDirection(Direction::Down);
    +
    93 }
    +
    94
    +
    95 this->value() = std::max(this->min(), std::min(this->max(), this->value()));
    +
    96 if (old_value != this->value()) {
    +
    97 if (this->on_change) {
    +
    98 this->on_change();
    +
    99 }
    +
    100 return true;
    +
    101 }
    +
    102
    +
    103 return ComponentBase::OnEvent(event);
    +
    104 }
    +
    105
    +
    106 bool OnCapturedMouseEvent(Event event) {
    +
    107 if (event.mouse().motion == Mouse::Released) {
    +
    108 captured_mouse_ = nullptr;
    +
    109 return true;
    +
    110 }
    +
    111
    +
    112 T old_value = this->value();
    +
    113 switch (this->direction) {
    +
    114 case Direction::Right: {
    +
    115 this->value() = this->min() + (event.mouse().x - gauge_box_.x_min) *
    +
    116 (this->max() - this->min()) /
    +
    117 (gauge_box_.x_max - gauge_box_.x_min);
    +
    118
    +
    119 break;
    +
    120 }
    +
    121 case Direction::Left: {
    +
    122 this->value() = this->max() - (event.mouse().x - gauge_box_.x_min) *
    +
    123 (this->max() - this->min()) /
    +
    124 (gauge_box_.x_max - gauge_box_.x_min);
    +
    125 break;
    +
    126 }
    +
    127 case Direction::Down: {
    +
    128 this->value() = this->min() + (event.mouse().y - gauge_box_.y_min) *
    +
    129 (this->max() - this->min()) /
    +
    130 (gauge_box_.y_max - gauge_box_.y_min);
    +
    131 break;
    +
    132 }
    +
    133 case Direction::Up: {
    +
    134 this->value() = this->max() - (event.mouse().y - gauge_box_.y_min) *
    +
    135 (this->max() - this->min()) /
    +
    136 (gauge_box_.y_max - gauge_box_.y_min);
    +
    137 break;
    +
    138 }
    +
    139 }
    +
    140
    +
    141 this->value() = std::max(this->min(), std::min(this->max(), this->value()));
    +
    142
    +
    143 if (old_value != this->value() && this->on_change) {
    +
    144 this->on_change();
    +
    145 }
    +
    146 return true;
    +
    147 }
    +
    148
    +
    149 bool OnMouseEvent(Event event) {
    +
    150 if (captured_mouse_) {
    +
    151 return OnCapturedMouseEvent(event);
    +
    152 }
    +
    153
    +
    154 if (event.mouse().button != Mouse::Left) {
    +
    155 return false;
    +
    156 }
    +
    157 if (event.mouse().motion != Mouse::Pressed) {
    +
    158 return false;
    +
    159 }
    +
    160
    +
    161 if (!gauge_box_.Contain(event.mouse().x, event.mouse().y)) {
    +
    162 return false;
    +
    163 }
    +
    164
    +
    165 captured_mouse_ = CaptureMouse(event);
    +
    166
    +
    167 if (captured_mouse_) {
    +
    168 TakeFocus();
    +
    169 return OnCapturedMouseEvent(event);
    +
    170 }
    +
    171
    +
    172 return false;
    +
    173 }
    +
    174
    +
    175 bool Focusable() const final { return true; }
    +
    176
    +
    177 private:
    +
    178 Box gauge_box_;
    +
    179 CapturedMouse captured_mouse_;
    +
    180};
    +
    181
    +
    182class SliderWithLabel : public ComponentBase {
    +
    183 public:
    +
    184 SliderWithLabel(ConstStringRef label, Component inner)
    +
    185 : label_(std::move(label)) {
    +
    186 Add(std::move(inner));
    +
    187 SetActiveChild(ChildAt(0));
    +
    188 }
    +
    189
    +
    190 private:
    +
    191 bool OnEvent(Event event) final {
    +
    192 if (ComponentBase::OnEvent(event)) {
    +
    193 return true;
    +
    194 }
    +
    195
    +
    196 if (!event.is_mouse()) {
    +
    197 return false;
    +
    198 }
    +
    199
    +
    200 mouse_hover_ = box_.Contain(event.mouse().x, event.mouse().y);
    +
    201
    +
    202 if (!mouse_hover_) {
    +
    203 return false;
    +
    204 }
    +
    205
    +
    206 if (!CaptureMouse(event)) {
    +
    207 return false;
    +
    208 }
    +
    209
    +
    210 return true;
    +
    211 }
    +
    212
    +
    213 Element OnRender() override {
    +
    214 auto gauge_color = (Focused() || mouse_hover_) ? color(Color::White)
    + +
    216 auto element = hbox({
    +
    217 text(label_()) | dim | vcenter,
    +
    218 hbox({
    +
    219 text("["),
    + +
    221 text("]"),
    +
    222 }) | xflex,
    +
    223 }) |
    +
    224 gauge_color | xflex | reflect(box_);
    +
    225
    +
    226 element |= focus;
    +
    227 return element;
    +
    228 }
    +
    229
    +
    230 ConstStringRef label_;
    +
    231 Box box_;
    +
    232 bool mouse_hover_ = false;
    +
    233};
    +
    234
    +
    235} // namespace
    +
    236
    +
    237/// @brief An horizontal slider.
    +
    238/// @param label The name of the slider.
    +
    239/// @param value The current value of the slider.
    +
    240/// @param min The minimum value.
    +
    241/// @param max The maximum value.
    +
    242/// @param increment The increment when used by the cursor.
    +
    243/// @ingroup component
    +
    244///
    +
    245/// ### Example
    +
    246///
    +
    247/// ```cpp
    +
    248/// auto screen = ScreenInteractive::TerminalOutput();
    +
    249/// int value = 50;
    +
    250/// auto slider = Slider("Value:", &value, 0, 100, 1);
    +
    251/// screen.Loop(slider);
    +
    252/// ```
    +
    253///
    +
    254/// ### Output
    +
    255///
    +
    256/// ```bash
    +
    257/// Value:[██████████████████████████ ]
    +
    258/// ```
    +
    + +
    260 Ref<int> value,
    +
    261 ConstRef<int> min,
    +
    262 ConstRef<int> max,
    +
    263 ConstRef<int> increment) {
    +
    264 SliderOption<int> option;
    +
    265 option.value = value;
    +
    266 option.min = min;
    +
    267 option.max = max;
    +
    268 option.increment = increment;
    +
    269 auto slider = Make<SliderBase<int>>(option);
    +
    270 return Make<SliderWithLabel>(std::move(label), slider);
    +
    271}
    +
    +
    272
    +
    + +
    274 Ref<float> value,
    +
    275 ConstRef<float> min,
    +
    276 ConstRef<float> max,
    +
    277 ConstRef<float> increment) {
    +
    278 SliderOption<float> option;
    +
    279 option.value = value;
    +
    280 option.min = min;
    +
    281 option.max = max;
    +
    282 option.increment = increment;
    +
    283 auto slider = Make<SliderBase<float>>(option);
    +
    284 return Make<SliderWithLabel>(std::move(label), slider);
    +
    285}
    +
    +
    + +
    287 Ref<long> value,
    +
    288 ConstRef<long> min,
    +
    289 ConstRef<long> max,
    +
    290 ConstRef<long> increment) {
    +
    291 SliderOption<long> option;
    +
    292 option.value = value;
    +
    293 option.min = min;
    +
    294 option.max = max;
    +
    295 option.increment = increment;
    +
    296 auto slider = Make<SliderBase<long>>(option);
    +
    297 return Make<SliderWithLabel>(std::move(label), slider);
    +
    298}
    +
    +
    299
    +
    300/// @brief A slider in any direction.
    +
    301/// @param options The options
    +
    302/// ### Example
    +
    303///
    +
    304/// ```cpp
    +
    305/// auto screen = ScreenInteractive::TerminalOutput();
    +
    306/// int value = 50;
    +
    307/// auto slider = Slider({
    +
    308/// .value = &value,
    +
    309/// .min = 0,
    +
    310/// .max = 100,
    +
    311/// .increment= 20,
    +
    312/// });
    +
    313/// screen.Loop(slider);
    +
    314/// ```
    +
    315template <typename T>
    +
    + +
    317 return Make<SliderBase<T>>(options);
    +
    318}
    +
    +
    319
    + + + + +
    324
    + + + + +
    329
    + + +
    332
    +
    333} // namespace ftxui
    + + +
    An adapter. Own or reference an immutable object.
    Definition ref.hpp:17
    +
    An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...
    Definition ref.hpp:94
    +
    An adapter. Own or reference an mutable object.
    Definition ref.hpp:46
    + + + + + + + + + + +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    static const Event ArrowUp
    Definition event.hpp:42
    +
    static const Event ArrowDown
    Definition event.hpp:43
    +
    virtual bool OnEvent(Event)
    Called in response to an event.
    +
    static const Event ArrowLeft
    Definition event.hpp:40
    +
    static const Event ArrowRight
    Definition event.hpp:41
    +
    Element xflex(Element)
    Expand/Minimize if possible/needed on the X axis.
    Definition flex.cpp:129
    +
    Element gaugeDirection(float progress, Direction direction)
    Draw a high definition progress bar progressing in specified direction.
    +
    Direction
    Direction is an enumeration that represents the four cardinal directions.
    Definition direction.hpp:13
    +
    Element yflex(Element)
    Expand/Minimize if possible/needed on the Y axis.
    Definition flex.cpp:135
    +
    Element underlined(Element)
    Underline the given element.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element focus(Element)
    Set the child to be the one focused among its siblings.
    Definition frame.cpp:101
    +
    Element vcenter(Element)
    Center an element vertically.
    +
    Decorator color(Color)
    Decorate using a foreground color.
    + + + + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::unique_ptr< CapturedMouseInterface > CapturedMouse
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Component Slider(SliderOption< T > options)
    A slider in any direction.
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    +
    std::shared_ptr< ComponentBase > Component
    + + + + + + + +
    +
    + + + + + diff --git a/src_2ftxui_2component_2window_8cpp.html b/src_2ftxui_2component_2window_8cpp.html new file mode 100644 index 000000000..419b508d4 --- /dev/null +++ b/src_2ftxui_2component_2window_8cpp.html @@ -0,0 +1,331 @@ + + + + + + + + +FTXUI: window.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    window.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + +

    +Macros

    #define NOMINMAX
     
    + + + + +

    +Functions

    Component Window (WindowOptions option)
     A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stacked({...}) component;.
     
    +

    Macro Definition Documentation

    + +

    ◆ NOMINMAX

    + +
    +
    + + + + +
    #define NOMINMAX
    +
    + +

    Definition at line 4 of file src/ftxui/component/window.cpp.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ color_

    + +
    +
    + + + + +
    Color color_
    +
    + +

    Definition at line 87 of file src/ftxui/component/window.cpp.

    + +
    +
    + +

    ◆ resize_left_

    + +
    +
    + + + + +
    bool resize_left_ = false
    +
    + +

    Definition at line 88 of file src/ftxui/component/window.cpp.

    + +
    +
    + +

    ◆ resize_right_

    + +
    +
    + + + + +
    bool resize_right_ = false
    +
    + +

    Definition at line 89 of file src/ftxui/component/window.cpp.

    + +
    +
    + +

    ◆ resize_top_

    + +
    +
    + + + + +
    bool resize_top_ = false
    +
    + +

    Definition at line 90 of file src/ftxui/component/window.cpp.

    + +
    +
    + +

    ◆ resize_down_

    + +
    +
    + + + + +
    bool resize_down_ = false
    +
    + +

    Definition at line 91 of file src/ftxui/component/window.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/src_2ftxui_2component_2window_8cpp.js b/src_2ftxui_2component_2window_8cpp.js new file mode 100644 index 000000000..11b3cf5e4 --- /dev/null +++ b/src_2ftxui_2component_2window_8cpp.js @@ -0,0 +1,10 @@ +var src_2ftxui_2component_2window_8cpp = +[ + [ "NOMINMAX", "src_2ftxui_2component_2window_8cpp.html#a9f918755b601cf4bffca775992e6fb90", null ], + [ "Window", "src_2ftxui_2component_2window_8cpp.html#ga638693abef9289912f5fa39606390b20", null ], + [ "color_", "src_2ftxui_2component_2window_8cpp.html#af75802a6553b2b23639f23d3c4b94217", null ], + [ "resize_left_", "src_2ftxui_2component_2window_8cpp.html#a11cd63ba8957337034d3351d3b416030", null ], + [ "resize_right_", "src_2ftxui_2component_2window_8cpp.html#a435bdeaeaea854a80f574fbfda91032f", null ], + [ "resize_top_", "src_2ftxui_2component_2window_8cpp.html#a12f0c5cd8f00f860d8fb47550f0af746", null ], + [ "resize_down_", "src_2ftxui_2component_2window_8cpp.html#abb5820730ee5ac08f5623d866a8b6777", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2component_2window_8cpp_source.html b/src_2ftxui_2component_2window_8cpp_source.html new file mode 100644 index 000000000..0f4ca2625 --- /dev/null +++ b/src_2ftxui_2component_2window_8cpp_source.html @@ -0,0 +1,573 @@ + + + + + + + + +FTXUI: window.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/component/window.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#define NOMINMAX
    +
    5#include <algorithm>
    + + + +
    9#include <ftxui/component/screen_interactive.hpp> // for ScreenInteractive
    +
    10#include <memory>
    +
    11#include <utility>
    +
    12#include "ftxui/dom/elements.hpp" // for text, window, hbox, vbox, size, clear_under, reflect, emptyElement
    +
    13#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    14#include "ftxui/screen/color.hpp" // for Color
    +
    15#include "ftxui/screen/screen.hpp" // for Screen
    +
    16
    +
    17namespace ftxui {
    +
    18
    +
    19namespace {
    +
    20
    +
    21Decorator PositionAndSize(int left, int top, int width, int height) {
    +
    22 return [=](Element element) {
    +
    23 element |= size(WIDTH, EQUAL, width);
    +
    24 element |= size(HEIGHT, EQUAL, height);
    +
    25
    +
    26 auto padding_left = emptyElement() | size(WIDTH, EQUAL, left);
    +
    27 auto padding_top = emptyElement() | size(HEIGHT, EQUAL, top);
    +
    28
    +
    29 return vbox({
    +
    30 padding_top,
    +
    31 hbox({
    +
    32 padding_left,
    +
    33 element,
    +
    34 }),
    +
    35 });
    +
    36 };
    +
    37}
    +
    38
    +
    39class ResizeDecorator : public NodeDecorator {
    +
    40 public:
    +
    41 ResizeDecorator(Element child,
    +
    42 bool resize_left,
    +
    43 bool resize_right,
    +
    44 bool resize_top,
    +
    45 bool resize_down,
    +
    46 Color color)
    +
    47 : NodeDecorator(std::move(child)),
    +
    48 color_(color),
    +
    49 resize_left_(resize_left),
    +
    50 resize_right_(resize_right),
    +
    51 resize_top_(resize_top),
    +
    52 resize_down_(resize_down) {}
    +
    53
    +
    54 void Render(Screen& screen) override {
    + +
    56
    +
    57 if (resize_left_) {
    +
    58 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    59 auto& cell = screen.PixelAt(box_.x_min, y);
    +
    60 cell.foreground_color = color_;
    +
    61 cell.automerge = false;
    +
    62 }
    +
    63 }
    +
    64 if (resize_right_) {
    +
    65 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    66 auto& cell = screen.PixelAt(box_.x_max, y);
    +
    67 cell.foreground_color = color_;
    +
    68 cell.automerge = false;
    +
    69 }
    +
    70 }
    +
    71 if (resize_top_) {
    +
    72 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    73 auto& cell = screen.PixelAt(x, box_.y_min);
    +
    74 cell.foreground_color = color_;
    +
    75 cell.automerge = false;
    +
    76 }
    +
    77 }
    +
    78 if (resize_down_) {
    +
    79 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    80 auto& cell = screen.PixelAt(x, box_.y_max);
    +
    81 cell.foreground_color = color_;
    +
    82 cell.automerge = false;
    +
    83 }
    +
    84 }
    +
    85 }
    +
    86
    +
    87 Color color_;
    +
    88 const bool resize_left_;
    +
    89 const bool resize_right_;
    +
    90 const bool resize_top_;
    +
    91 const bool resize_down_;
    +
    92};
    +
    93
    +
    94Element DefaultRenderState(const WindowRenderState& state) {
    +
    95 Element element = state.inner;
    +
    96 if (!state.active) {
    +
    97 element |= dim;
    +
    98 }
    +
    99
    +
    100 element = window(text(state.title), element);
    +
    101 element |= clear_under;
    +
    102
    +
    103 const Color color = Color::Red;
    +
    104
    +
    105 element = std::make_shared<ResizeDecorator>( //
    +
    106 element, //
    +
    107 state.hover_left, //
    +
    108 state.hover_right, //
    +
    109 state.hover_top, //
    +
    110 state.hover_down, //
    +
    111 color //
    +
    112 );
    +
    113
    +
    114 return element;
    +
    115}
    +
    116
    +
    117class WindowImpl : public ComponentBase, public WindowOptions {
    +
    118 public:
    +
    119 explicit WindowImpl(WindowOptions option) : WindowOptions(std::move(option)) {
    +
    120 if (!inner) {
    +
    121 inner = Make<ComponentBase>();
    +
    122 }
    +
    123 Add(inner);
    +
    124 }
    +
    125
    +
    126 private:
    +
    127 Element OnRender() final {
    +
    128 auto element = ComponentBase::Render();
    +
    129
    +
    130 const bool captureable =
    +
    131 captured_mouse_ || ScreenInteractive::Active()->CaptureMouse();
    +
    132
    +
    133 const WindowRenderState state = {
    +
    134 element,
    +
    135 title(),
    +
    136 Active(),
    +
    137 drag_,
    + +
    139 (resize_left_hover_ || resize_left_) && captureable,
    +
    140 (resize_right_hover_ || resize_right_) && captureable,
    +
    141 (resize_top_hover_ || resize_top_) && captureable,
    +
    142 (resize_down_hover_ || resize_down_) && captureable,
    +
    143 };
    +
    144
    +
    145 element = render ? render(state) : DefaultRenderState(state);
    +
    146
    +
    147 // Position and record the drawn area of the window.
    +
    148 element |= reflect(box_window_);
    +
    149 element |= PositionAndSize(left(), top(), width(), height());
    +
    150 element |= reflect(box_);
    +
    151
    +
    152 return element;
    +
    153 }
    +
    154
    +
    155 bool OnEvent(Event event) final {
    +
    156 if (ComponentBase::OnEvent(event)) {
    +
    157 return true;
    +
    158 }
    +
    159
    +
    160 if (!event.is_mouse()) {
    +
    161 return false;
    +
    162 }
    +
    163
    +
    164 mouse_hover_ = box_window_.Contain(event.mouse().x, event.mouse().y);
    +
    165
    +
    166 resize_down_hover_ = false;
    +
    167 resize_top_hover_ = false;
    +
    168 resize_left_hover_ = false;
    +
    169 resize_right_hover_ = false;
    +
    170
    +
    171 if (mouse_hover_) {
    +
    172 resize_left_hover_ = event.mouse().x == left() + box_.x_min;
    +
    173 resize_right_hover_ =
    +
    174 event.mouse().x == left() + width() - 1 + box_.x_min;
    +
    175 resize_top_hover_ = event.mouse().y == top() + box_.y_min;
    +
    176 resize_down_hover_ = event.mouse().y == top() + height() - 1 + box_.y_min;
    +
    177
    +
    178 // Apply the component options:
    +
    179 resize_top_hover_ &= resize_top();
    +
    180 resize_left_hover_ &= resize_left();
    +
    181 resize_down_hover_ &= resize_down();
    +
    182 resize_right_hover_ &= resize_right();
    +
    183 }
    +
    184
    +
    185 if (captured_mouse_) {
    +
    186 if (event.mouse().motion == Mouse::Released) {
    +
    187 captured_mouse_ = nullptr;
    +
    188 return true;
    +
    189 }
    +
    190
    +
    191 if (resize_left_) {
    +
    192 width() = left() + width() - event.mouse().x + box_.x_min;
    +
    193 left() = event.mouse().x - box_.x_min;
    +
    194 }
    +
    195
    +
    196 if (resize_right_) {
    +
    197 width() = event.mouse().x - resize_start_x - box_.x_min;
    +
    198 }
    +
    199
    +
    200 if (resize_top_) {
    +
    201 height() = top() + height() - event.mouse().y + box_.y_min;
    +
    202 top() = event.mouse().y - box_.y_min;
    +
    203 }
    +
    204
    +
    205 if (resize_down_) {
    +
    206 height() = event.mouse().y - resize_start_y - box_.y_min;
    +
    207 }
    +
    208
    +
    209 if (drag_) {
    +
    210 left() = event.mouse().x - drag_start_x - box_.x_min;
    +
    211 top() = event.mouse().y - drag_start_y - box_.y_min;
    +
    212 }
    +
    213
    +
    214 // Clamp the window size.
    +
    215 width() = std::max<int>(width(), static_cast<int>(title().size() + 2));
    +
    216 height() = std::max<int>(height(), 2);
    +
    217
    +
    218 return true;
    +
    219 }
    +
    220
    +
    221 resize_left_ = false;
    +
    222 resize_right_ = false;
    +
    223 resize_top_ = false;
    +
    224 resize_down_ = false;
    +
    225
    +
    226 if (!mouse_hover_) {
    +
    227 return false;
    +
    228 }
    +
    229
    +
    230 if (!CaptureMouse(event)) {
    +
    231 return true;
    +
    232 }
    +
    233
    +
    234 if (event.mouse().button != Mouse::Left) {
    +
    235 return true;
    +
    236 }
    +
    237 if (event.mouse().motion != Mouse::Pressed) {
    +
    238 return true;
    +
    239 }
    +
    240
    +
    241 TakeFocus();
    +
    242
    +
    243 captured_mouse_ = CaptureMouse(event);
    +
    244 if (!captured_mouse_) {
    +
    245 return true;
    +
    246 }
    +
    247
    +
    248 resize_left_ = resize_left_hover_;
    +
    249 resize_right_ = resize_right_hover_;
    +
    250 resize_top_ = resize_top_hover_;
    +
    251 resize_down_ = resize_down_hover_;
    +
    252
    +
    253 resize_start_x = event.mouse().x - width() - box_.x_min;
    +
    254 resize_start_y = event.mouse().y - height() - box_.y_min;
    +
    255 drag_start_x = event.mouse().x - left() - box_.x_min;
    +
    256 drag_start_y = event.mouse().y - top() - box_.y_min;
    +
    257
    +
    258 // Drag only if we are not resizeing a border yet:
    + +
    260 return true;
    +
    261 }
    +
    262
    +
    263 Box box_;
    +
    264 Box box_window_;
    +
    265
    +
    266 CapturedMouse captured_mouse_;
    +
    267 int drag_start_x = 0;
    +
    268 int drag_start_y = 0;
    +
    269 int resize_start_x = 0;
    +
    270 int resize_start_y = 0;
    +
    271
    +
    272 bool mouse_hover_ = false;
    +
    273 bool drag_ = false;
    +
    274 bool resize_top_ = false;
    +
    275 bool resize_left_ = false;
    +
    276 bool resize_down_ = false;
    +
    277 bool resize_right_ = false;
    +
    278
    +
    279 bool resize_top_hover_ = false;
    +
    280 bool resize_left_hover_ = false;
    +
    281 bool resize_down_hover_ = false;
    +
    282 bool resize_right_hover_ = false;
    +
    283};
    +
    284
    +
    285} // namespace
    +
    286
    +
    287/// @brief A draggeable / resizeable window. To use multiple of them, they must
    +
    288/// be stacked using `Container::Stacked({...})` component;
    +
    289///
    +
    290/// @param option A struct holding every parameters.
    +
    291/// @ingroup component
    +
    292/// @see Window
    +
    293///
    +
    294/// ### Example
    +
    295///
    +
    296/// ```cpp
    +
    297/// auto window_1= Window({
    +
    298/// .inner = DummyWindowContent(),
    +
    299/// .title = "First window",
    +
    300/// });
    +
    301///
    +
    302/// auto window_2= Window({
    +
    303/// .inner = DummyWindowContent(),
    +
    304/// .title = "Second window",
    +
    305/// });
    +
    306///
    +
    307/// auto container = Container::Stacked({
    +
    308/// window_1,
    +
    309/// window_2,
    +
    310/// });
    +
    311/// ```
    +
    + +
    313 return Make<WindowImpl>(std::move(option));
    +
    314}
    +
    +
    315
    +
    316}; // namespace ftxui
    + + + + + + + + +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    static ScreenInteractive * Active()
    Return the currently active screen, or null if none.
    +
    CapturedMouse CaptureMouse()
    Try to get the unique lock about behing able to capture the mouse.
    +
    virtual bool OnEvent(Event)
    Called in response to an event.
    +
    Component Window(WindowOptions option)
    A draggeable / resizeable window. To use multiple of them, they must be stacked using Container::Stac...
    +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Element clear_under(Element element)
    Before drawing |child|, clear the pixels below. This is useful in combination with dbox.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element emptyElement()
    Definition dom/util.cpp:140
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element dim(Element)
    Use a light font, for elements with less emphasis.
    Definition dim.cpp:33
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    + +
    Color
    Color is an enumeration that represents the color support of the terminal.
    Definition terminal.hpp:23
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::unique_ptr< CapturedMouseInterface > CapturedMouse
    +
    std::shared_ptr< T > Make(Args &&... args)
    Definition component.hpp:27
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    Decorator reflect(Box &box)
    Definition reflect.cpp:43
    + +
    std::shared_ptr< ComponentBase > Component
    + +
    std::uint8_t top
    Definition screen.cpp:131
    +
    std::uint8_t left
    Definition screen.cpp:130
    + + +
    const bool resize_left_
    +
    const bool resize_top_
    +
    const bool resize_right_
    +
    const bool resize_down_
    + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2border_8cpp.html b/src_2ftxui_2dom_2border_8cpp.html new file mode 100644 index 000000000..a645f60f9 --- /dev/null +++ b/src_2ftxui_2dom_2border_8cpp.html @@ -0,0 +1,293 @@ + + + + + + + + +FTXUI: border.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    border.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Element border (Element child)
     Draw a border around the element.
     
    Decorator borderWith (const Pixel &pixel)
     Same as border but with a constant Pixel around the element.
     
    Decorator borderStyled (BorderStyle style)
     Same as border but with different styles.
     
    Decorator borderStyled (Color foreground_color)
     Same as border but with a foreground color.
     
    Decorator borderStyled (BorderStyle style, Color foreground_color)
     Same as border but with a foreground color and a different style.
     
    Element borderDashed (Element child)
     Draw a dashed border around the element.
     
    Element borderLight (Element child)
     Draw a light border around the element.
     
    Element borderHeavy (Element child)
     Draw a heavy border around the element.
     
    Element borderDouble (Element child)
     Draw a double border around the element.
     
    Element borderRounded (Element child)
     Draw a rounded border around the element.
     
    Element borderEmpty (Element child)
     Draw an empty border around the element.
     
    Element window (Element title, Element content, BorderStyle border)
     Draw window with a title and a border around the element.
     
    +

    Variable Documentation

    + +

    ◆ charset_

    + +
    +
    + + + + +
    const Charset& charset_
    +
    + +

    Definition at line 45 of file src/ftxui/dom/border.cpp.

    + +
    +
    + +

    ◆ foreground_color_

    + +
    +
    + + + + +
    std::optional<Color> foreground_color_
    +
    + +

    Definition at line 46 of file src/ftxui/dom/border.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2border_8cpp.js b/src_2ftxui_2dom_2border_8cpp.js new file mode 100644 index 000000000..d5b087395 --- /dev/null +++ b/src_2ftxui_2dom_2border_8cpp.js @@ -0,0 +1,17 @@ +var src_2ftxui_2dom_2border_8cpp = +[ + [ "border", "src_2ftxui_2dom_2border_8cpp.html#gae8537acd423d47cf07e61bd774fb1098", null ], + [ "borderWith", "src_2ftxui_2dom_2border_8cpp.html#gaa97cfcfbe6df92dac085454395ec7b2f", null ], + [ "borderStyled", "src_2ftxui_2dom_2border_8cpp.html#gabc9db79957d4dd36deb8ca79938e4c41", null ], + [ "borderStyled", "src_2ftxui_2dom_2border_8cpp.html#gad1dbf36194dcb77674085df9e11c1e22", null ], + [ "borderStyled", "src_2ftxui_2dom_2border_8cpp.html#ga5aab98b289d2e7b2ce8ca0eeee51ce78", null ], + [ "borderDashed", "src_2ftxui_2dom_2border_8cpp.html#ga181c80f8ada12d1356f6bfa0ebb7219f", null ], + [ "borderLight", "src_2ftxui_2dom_2border_8cpp.html#gaa074cdab57eeb47b99f1699bcc8addd8", null ], + [ "borderHeavy", "src_2ftxui_2dom_2border_8cpp.html#ga666c31419cc31cdadc9f8178ed63529e", null ], + [ "borderDouble", "src_2ftxui_2dom_2border_8cpp.html#ga052b504344f3bc1ff86b3493cd934215", null ], + [ "borderRounded", "src_2ftxui_2dom_2border_8cpp.html#ga3cf2db223a5efaa370f0ca6bb405b80e", null ], + [ "borderEmpty", "src_2ftxui_2dom_2border_8cpp.html#gaf20f7d6fb275d109f0bdc01a2e4d3f3e", null ], + [ "window", "src_2ftxui_2dom_2border_8cpp.html#ga03049def08fa7a5eaa4d5e897152bc1a", null ], + [ "charset_", "src_2ftxui_2dom_2border_8cpp.html#a108d200440dbd1759a7b025709c2d321", null ], + [ "foreground_color_", "src_2ftxui_2dom_2border_8cpp.html#ab929ed9438df4a818e56490a23d8324e", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2border_8cpp_source.html b/src_2ftxui_2dom_2border_8cpp_source.html new file mode 100644 index 000000000..b85b2f502 --- /dev/null +++ b/src_2ftxui_2dom_2border_8cpp_source.html @@ -0,0 +1,779 @@ + + + + + + + + +FTXUI: border.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/border.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max
    +
    5#include <array> // for array
    +
    6#include <ftxui/screen/color.hpp> // for Color
    +
    7#include <memory> // for allocator, make_shared, __shared_ptr_access
    +
    8#include <optional> // for optional, nullopt
    +
    9#include <string> // for basic_string, string
    +
    10#include <utility> // for move
    +
    11
    +
    12#include "ftxui/dom/elements.hpp" // for unpack, Element, Decorator, BorderStyle, ROUNDED, borderStyled, Elements, DASHED, DOUBLE, EMPTY, HEAVY, LIGHT, border, borderDashed, borderDouble, borderEmpty, borderHeavy, borderLight, borderRounded, borderWith, window
    +
    13#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    14#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    15#include "ftxui/screen/box.hpp" // for Box
    +
    16#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    17#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    18
    +
    19namespace ftxui {
    +
    20
    +
    21namespace {
    +
    22using Charset = std::array<std::string, 6>; // NOLINT
    +
    23using Charsets = std::array<Charset, 6>; // NOLINT
    +
    24// NOLINTNEXTLINE
    +
    25static Charsets simple_border_charset = {
    +
    26 Charset{"┌", "┐", "└", "┘", "─", "│"}, // LIGHT
    +
    27 Charset{"┏", "┓", "┗", "┛", "╍", "╏"}, // DASHED
    +
    28 Charset{"┏", "┓", "┗", "┛", "━", "┃"}, // HEAVY
    +
    29 Charset{"╔", "╗", "╚", "╝", "═", "║"}, // DOUBLE
    +
    30 Charset{"╭", "╮", "╰", "╯", "─", "│"}, // ROUNDED
    +
    31 Charset{" ", " ", " ", " ", " ", " "}, // EMPTY
    +
    32};
    +
    33
    +
    34// For reference, here is the charset for normal border:
    +
    35class Border : public Node {
    +
    36 public:
    +
    37 Border(Elements children,
    +
    38 BorderStyle style,
    +
    39 std::optional<Color> foreground_color = std::nullopt)
    +
    40 : Node(std::move(children)),
    +
    41 charset_(simple_border_charset[style]) // NOLINT
    +
    42 ,
    +
    43 foreground_color_(foreground_color) {} // NOLINT
    +
    44
    +
    45 const Charset& charset_; // NOLINT
    +
    46 std::optional<Color> foreground_color_;
    +
    47
    +
    48 void ComputeRequirement() override {
    + +
    50 requirement_ = children_[0]->requirement();
    +
    51 requirement_.min_x += 2;
    +
    52 requirement_.min_y += 2;
    +
    53 if (children_.size() == 2) {
    +
    54 requirement_.min_x =
    +
    55 std::max(requirement_.min_x, children_[1]->requirement().min_x + 2);
    +
    56 }
    +
    57 requirement_.focused.box.x_min++;
    +
    58 requirement_.focused.box.x_max++;
    +
    59 requirement_.focused.box.y_min++;
    +
    60 requirement_.focused.box.y_max++;
    +
    61 }
    +
    62
    +
    63 void SetBox(Box box) override {
    +
    64 Node::SetBox(box);
    +
    65 if (children_.size() == 2) {
    +
    66 Box title_box;
    +
    67 title_box.x_min = box.x_min + 1;
    +
    68 title_box.x_max = std::min(box.x_max - 1,
    +
    69 box.x_min + children_[1]->requirement().min_x);
    +
    70 title_box.y_min = box.y_min;
    +
    71 title_box.y_max = box.y_min;
    +
    72 children_[1]->SetBox(title_box);
    +
    73 }
    +
    74 box.x_min++;
    +
    75 box.x_max--;
    +
    76 box.y_min++;
    +
    77 box.y_max--;
    +
    78 children_[0]->SetBox(box);
    +
    79 }
    +
    80
    +
    81 void Render(Screen& screen) override {
    +
    82 // Draw content.
    +
    83 children_[0]->Render(screen);
    +
    84
    +
    85 // Draw the border.
    +
    86 if (box_.x_min >= box_.x_max || box_.y_min >= box_.y_max) {
    +
    87 return;
    +
    88 }
    +
    89
    +
    90 screen.at(box_.x_min, box_.y_min) = charset_[0]; // NOLINT
    +
    91 screen.at(box_.x_max, box_.y_min) = charset_[1]; // NOLINT
    +
    92 screen.at(box_.x_min, box_.y_max) = charset_[2]; // NOLINT
    +
    93 screen.at(box_.x_max, box_.y_max) = charset_[3]; // NOLINT
    +
    94
    +
    95 for (int x = box_.x_min + 1; x < box_.x_max; ++x) {
    +
    96 Pixel& p1 = screen.PixelAt(x, box_.y_min);
    +
    97 Pixel& p2 = screen.PixelAt(x, box_.y_max);
    +
    98 p1.character = charset_[4]; // NOLINT
    +
    99 p2.character = charset_[4]; // NOLINT
    +
    100 p1.automerge = true;
    +
    101 p2.automerge = true;
    +
    102 }
    +
    103 for (int y = box_.y_min + 1; y < box_.y_max; ++y) {
    +
    104 Pixel& p3 = screen.PixelAt(box_.x_min, y);
    +
    105 Pixel& p4 = screen.PixelAt(box_.x_max, y);
    +
    106 p3.character = charset_[5]; // NOLINT
    +
    107 p4.character = charset_[5]; // NOLINT
    +
    108 p3.automerge = true;
    +
    109 p4.automerge = true;
    +
    110 }
    +
    111
    +
    112 // Draw title.
    +
    113 if (children_.size() == 2) {
    +
    114 children_[1]->Render(screen);
    +
    115 }
    +
    116
    +
    117 // Draw the border color.
    +
    118 if (foreground_color_) {
    +
    119 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    120 screen.PixelAt(x, box_.y_min).foreground_color = *foreground_color_;
    +
    121 screen.PixelAt(x, box_.y_max).foreground_color = *foreground_color_;
    +
    122 }
    +
    123 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    124 screen.PixelAt(box_.x_min, y).foreground_color = *foreground_color_;
    +
    125 screen.PixelAt(box_.x_max, y).foreground_color = *foreground_color_;
    +
    126 }
    +
    127 }
    +
    128 }
    +
    129};
    +
    130
    +
    131// For reference, here is the charset for normal border:
    +
    132class BorderPixel : public Node {
    +
    133 public:
    +
    134 BorderPixel(Elements children, Pixel pixel)
    +
    135 : Node(std::move(children)), pixel_(std::move(pixel)) {}
    +
    136
    +
    137 private:
    +
    138 Pixel pixel_;
    +
    139
    +
    140 void ComputeRequirement() override {
    + +
    142 requirement_ = children_[0]->requirement();
    +
    143 requirement_.min_x += 2;
    +
    144 requirement_.min_y += 2;
    +
    145 if (children_.size() == 2) {
    +
    146 requirement_.min_x =
    +
    147 std::max(requirement_.min_x, children_[1]->requirement().min_x + 2);
    +
    148 }
    +
    149
    +
    150 requirement_.focused.box.Shift(1, 1);
    +
    151 }
    +
    152
    +
    153 void SetBox(Box box) override {
    +
    154 Node::SetBox(box);
    +
    155 if (children_.size() == 2) {
    +
    156 Box title_box;
    +
    157 title_box.x_min = box.x_min + 1;
    +
    158 title_box.x_max = box.x_max - 1;
    +
    159 title_box.y_min = box.y_min;
    +
    160 title_box.y_max = box.y_min;
    +
    161 children_[1]->SetBox(title_box);
    +
    162 }
    +
    163 box.x_min++;
    +
    164 box.x_max--;
    +
    165 box.y_min++;
    +
    166 box.y_max--;
    +
    167 children_[0]->SetBox(box);
    +
    168 }
    +
    169
    +
    170 void Render(Screen& screen) override {
    +
    171 // Draw content.
    +
    172 children_[0]->Render(screen);
    +
    173
    +
    174 // Draw the border.
    +
    175 if (box_.x_min >= box_.x_max || box_.y_min >= box_.y_max) {
    +
    176 return;
    +
    177 }
    +
    178
    +
    179 screen.PixelAt(box_.x_min, box_.y_min) = pixel_;
    +
    180 screen.PixelAt(box_.x_max, box_.y_min) = pixel_;
    +
    181 screen.PixelAt(box_.x_min, box_.y_max) = pixel_;
    +
    182 screen.PixelAt(box_.x_max, box_.y_max) = pixel_;
    +
    183
    +
    184 for (int x = box_.x_min + 1; x < box_.x_max; ++x) {
    +
    185 screen.PixelAt(x, box_.y_min) = pixel_;
    +
    186 screen.PixelAt(x, box_.y_max) = pixel_;
    +
    187 }
    +
    188 for (int y = box_.y_min + 1; y < box_.y_max; ++y) {
    +
    189 screen.PixelAt(box_.x_min, y) = pixel_;
    +
    190 screen.PixelAt(box_.x_max, y) = pixel_;
    +
    191 }
    +
    192 }
    +
    193};
    +
    194} // namespace
    +
    195
    +
    196/// @brief Draw a border around the element.
    +
    197/// @ingroup dom
    +
    198/// @see border
    +
    199/// @see borderLight
    +
    200/// @see borderDashed
    +
    201/// @see borderDouble
    +
    202/// @see borderHeavy
    +
    203/// @see borderEmpty
    +
    204/// @see borderRounded
    +
    205/// @see borderStyled
    +
    206/// @see borderWith
    +
    207///
    +
    208/// Add a border around an element
    +
    209///
    +
    210/// ### Example
    +
    211///
    +
    212/// ```cpp
    +
    213/// // Use 'border' as a function...
    +
    214/// Element document = border(text("The element"));
    +
    215///
    +
    216/// // ...Or as a 'pipe'.
    +
    217/// Element document = text("The element") | border;
    +
    218/// ```
    +
    219///
    +
    220/// ### Output
    +
    221///
    +
    222/// ```bash
    +
    223/// ┌───────────┐
    +
    224/// │The element│
    +
    225/// └───────────┘
    +
    226/// ```
    +
    + +
    228 return std::make_shared<Border>(unpack(std::move(child)), ROUNDED);
    +
    229}
    +
    +
    230
    +
    231/// @brief Same as border but with a constant Pixel around the element.
    +
    232/// @ingroup dom
    +
    233/// @see border
    +
    + +
    235 return [pixel](Element child) {
    +
    236 return std::make_shared<BorderPixel>(unpack(std::move(child)), pixel);
    +
    237 };
    +
    238}
    +
    +
    239
    +
    240/// @brief Same as border but with different styles.
    +
    241/// @ingroup dom
    +
    242/// @see border
    +
    + +
    244 return [style](Element child) {
    +
    245 return std::make_shared<Border>(unpack(std::move(child)), style);
    +
    246 };
    +
    247}
    +
    +
    248
    +
    249/// @brief Same as border but with a foreground color.
    +
    250/// @ingroup dom
    +
    251/// @see border
    +
    +
    252Decorator borderStyled(Color foreground_color) {
    +
    253 return [foreground_color](Element child) {
    +
    254 return std::make_shared<Border>(unpack(std::move(child)), ROUNDED,
    +
    255 foreground_color);
    +
    256 };
    +
    257}
    +
    +
    258
    +
    259/// @brief Same as border but with a foreground color and a different style
    +
    260/// @ingroup dom
    +
    261/// @see border
    +
    +
    262Decorator borderStyled(BorderStyle style, Color foreground_color) {
    +
    263 return [style, foreground_color](Element child) {
    +
    264 return std::make_shared<Border>(unpack(std::move(child)), style,
    +
    265 foreground_color);
    +
    266 };
    +
    267}
    +
    +
    268
    +
    269/// @brief Draw a dashed border around the element.
    +
    270/// @ingroup dom
    +
    271/// @see border
    +
    272/// @see borderLight
    +
    273/// @see borderDashed
    +
    274/// @see borderDouble
    +
    275/// @see borderHeavy
    +
    276/// @see borderRounded
    +
    277/// @see borderEmpty
    +
    278/// @see borderStyled
    +
    279/// @see borderWith
    +
    280///
    +
    281/// Add a border around an element
    +
    282///
    +
    283/// ### Example
    +
    284///
    +
    285/// ```cpp
    +
    286/// // Use 'borderDash' as a function...
    +
    287/// Element document = borderDash(text("The element"));
    +
    288///
    +
    289/// // ...Or as a 'pipe'.
    +
    290/// Element document = text("The element") | borderDAsh;
    +
    291/// ```
    +
    292///
    +
    293/// ### Output
    +
    294///
    +
    295/// ```bash
    +
    296/// ┏╍╍╍╍╍╍╍╍╍╍╍╍╍╍┓
    +
    297/// ╏The element ╏
    +
    298/// ┗╍╍╍╍╍╍╍╍╍╍╍╍╍╍┛
    +
    299/// ```
    +
    + +
    301 return std::make_shared<Border>(unpack(std::move(child)), DASHED);
    +
    302}
    +
    +
    303
    +
    304/// @brief Draw a light border around the element.
    +
    305/// @ingroup dom
    +
    306/// @see border
    +
    307/// @see borderLight
    +
    308/// @see borderDashed
    +
    309/// @see borderDouble
    +
    310/// @see borderHeavy
    +
    311/// @see borderRounded
    +
    312/// @see borderEmpty
    +
    313/// @see borderStyled
    +
    314/// @see borderWith
    +
    315///
    +
    316/// Add a border around an element
    +
    317///
    +
    318/// ### Example
    +
    319///
    +
    320/// ```cpp
    +
    321/// // Use 'borderLight' as a function...
    +
    322/// Element document = borderLight(text("The element"));
    +
    323///
    +
    324/// // ...Or as a 'pipe'.
    +
    325/// Element document = text("The element") | borderLight;
    +
    326/// ```
    +
    327///
    +
    328/// ### Output
    +
    329///
    +
    330/// ```bash
    +
    331/// ┌──────────────┐
    +
    332/// │The element │
    +
    333/// └──────────────┘
    +
    334/// ```
    +
    + +
    336 return std::make_shared<Border>(unpack(std::move(child)), LIGHT);
    +
    337}
    +
    +
    338
    +
    339/// @brief Draw a heavy border around the element.
    +
    340/// @ingroup dom
    +
    341/// @see border
    +
    342/// @see borderLight
    +
    343/// @see borderDashed
    +
    344/// @see borderDouble
    +
    345/// @see borderHeavy
    +
    346/// @see borderRounded
    +
    347/// @see borderEmpty
    +
    348/// @see borderStyled
    +
    349/// @see borderWith
    +
    350///
    +
    351/// Add a border around an element
    +
    352///
    +
    353/// ### Example
    +
    354///
    +
    355/// ```cpp
    +
    356/// // Use 'borderHeavy' as a function...
    +
    357/// Element document = borderHeavy(text("The element"));
    +
    358///
    +
    359/// // ...Or as a 'pipe'.
    +
    360/// Element document = text("The element") | borderHeavy;
    +
    361/// ```
    +
    362///
    +
    363/// ### Output
    +
    364///
    +
    365/// ```bash
    +
    366/// ┏━━━━━━━━━━━━━━┓
    +
    367/// ┃The element ┃
    +
    368/// ┗━━━━━━━━━━━━━━┛
    +
    369/// ```
    +
    + +
    371 return std::make_shared<Border>(unpack(std::move(child)), HEAVY);
    +
    372}
    +
    +
    373
    +
    374/// @brief Draw a double border around the element.
    +
    375/// @ingroup dom
    +
    376/// @see border
    +
    377/// @see borderLight
    +
    378/// @see borderDashed
    +
    379/// @see borderDouble
    +
    380/// @see borderHeavy
    +
    381/// @see borderRounded
    +
    382/// @see borderEmpty
    +
    383/// @see borderStyled
    +
    384/// @see borderWith
    +
    385///
    +
    386/// Add a border around an element
    +
    387///
    +
    388/// ### Example
    +
    389///
    +
    390/// ```cpp
    +
    391/// // Use 'borderDouble' as a function...
    +
    392/// Element document = borderDouble(text("The element"));
    +
    393///
    +
    394/// // ...Or as a 'pipe'.
    +
    395/// Element document = text("The element") | borderDouble;
    +
    396/// ```
    +
    397///
    +
    398/// ### Output
    +
    399///
    +
    400/// ```bash
    +
    401/// ╔══════════════╗
    +
    402/// ║The element ║
    +
    403/// ╚══════════════╝
    +
    404/// ```
    +
    + +
    406 return std::make_shared<Border>(unpack(std::move(child)), DOUBLE);
    +
    407}
    +
    +
    408
    +
    409/// @brief Draw a rounded border around the element.
    +
    410/// @ingroup dom
    +
    411/// @see border
    +
    412/// @see borderLight
    +
    413/// @see borderDashed
    +
    414/// @see borderDouble
    +
    415/// @see borderHeavy
    +
    416/// @see borderRounded
    +
    417/// @see borderEmpty
    +
    418/// @see borderStyled
    +
    419/// @see borderWith
    +
    420///
    +
    421/// Add a border around an element
    +
    422///
    +
    423/// ### Example
    +
    424///
    +
    425/// ```cpp
    +
    426/// // Use 'borderRounded' as a function...
    +
    427/// Element document = borderRounded(text("The element"));
    +
    428///
    +
    429/// // ...Or as a 'pipe'.
    +
    430/// Element document = text("The element") | borderRounded;
    +
    431/// ```
    +
    432///
    +
    433/// ### Output
    +
    434///
    +
    435/// ```bash
    +
    436/// ╭──────────────╮
    +
    437/// │The element │
    +
    438/// ╰──────────────╯
    +
    439/// ```
    +
    + +
    441 return std::make_shared<Border>(unpack(std::move(child)), ROUNDED);
    +
    442}
    +
    +
    443
    +
    444/// @brief Draw an empty border around the element.
    +
    445/// @ingroup dom
    +
    446/// @see border
    +
    447/// @see borderLight
    +
    448/// @see borderDashed
    +
    449/// @see borderDouble
    +
    450/// @see borderHeavy
    +
    451/// @see borderRounded
    +
    452/// @see borderEmpty
    +
    453/// @see borderStyled
    +
    454/// @see borderWith
    +
    455///
    +
    456/// Add a border around an element
    +
    457///
    +
    458/// ### Example
    +
    459///
    +
    460/// ```cpp
    +
    461/// // Use 'borderRounded' as a function...
    +
    462/// Element document = borderRounded(text("The element"));
    +
    463///
    +
    464/// // ...Or as a 'pipe'.
    +
    465/// Element document = text("The element") | borderRounded;
    +
    466/// ```
    +
    467///
    +
    468/// ### Output
    +
    469///
    +
    470/// ```bash
    +
    471///
    +
    472/// The element
    +
    473///
    +
    474/// ```
    +
    + +
    476 return std::make_shared<Border>(unpack(std::move(child)), EMPTY);
    +
    477}
    +
    +
    478
    +
    479/// @brief Draw window with a title and a border around the element.
    +
    480/// @param title The title of the window.
    +
    481/// @param content The element to be wrapped.
    +
    482/// @param border The style of the border. Default is ROUNDED.
    +
    483/// @ingroup dom
    +
    484/// @see border
    +
    485///
    +
    486/// ### Example
    +
    487///
    +
    488/// ```cpp
    +
    489/// Element document = window(text("Title"),
    +
    490/// text("content")
    +
    491/// );
    +
    492///
    +
    493/// // With specifying border
    +
    494/// Element document = window(text("Title"),
    +
    495/// text("content"),
    +
    496/// ROUNDED
    +
    497/// );
    +
    498/// ```
    +
    499///
    +
    500/// ### Output
    +
    501///
    +
    502/// ```bash
    +
    503/// ┌Title──┐
    +
    504/// │content│
    +
    505/// └───────┘
    +
    506/// ```
    +
    +
    507Element window(Element title, Element content, BorderStyle border) {
    +
    508 return std::make_shared<Border>(unpack(std::move(content), std::move(title)),
    +
    509 border);
    +
    510}
    +
    +
    511} // namespace ftxui
    + + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    Element window(Element title, Element content, BorderStyle border=ROUNDED)
    Draw window with a title and a border around the element.
    +
    Element borderDouble(Element)
    Draw a double border around the element.
    +
    Element borderDashed(Element)
    Draw a dashed border around the element.
    +
    Element borderRounded(Element)
    Draw a rounded border around the element.
    +
    Element borderHeavy(Element)
    Draw a heavy border around the element.
    +
    Element borderLight(Element)
    Draw a light border around the element.
    +
    Decorator borderWith(const Pixel &)
    Same as border but with a constant Pixel around the element.
    +
    Decorator borderStyled(BorderStyle)
    Same as border but with different styles.
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Element border(Element)
    Draw a border around the element.
    +
    Element borderEmpty(Element)
    Draw an empty border around the element.
    +
    BorderStyle
    BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
    Definition elements.hpp:35
    +
    @ EMPTY
    Definition elements.hpp:41
    +
    @ DOUBLE
    Definition elements.hpp:39
    +
    @ HEAVY
    Definition elements.hpp:38
    +
    @ ROUNDED
    Definition elements.hpp:40
    +
    @ DASHED
    Definition elements.hpp:37
    +
    @ LIGHT
    Definition elements.hpp:36
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + + + +
    const Charset & charset_
    +
    std::optional< Color > foreground_color_
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2canvas_8cpp.html b/src_2ftxui_2dom_2canvas_8cpp.html new file mode 100644 index 000000000..39fd32e9f --- /dev/null +++ b/src_2ftxui_2dom_2canvas_8cpp.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: canvas.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    canvas.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + +

    +Functions

    Element canvas (ConstRef< Canvas > canvas)
     Produce an element from a Canvas, or a reference to a Canvas.
     
    Element canvas (int width, int height, std::function< void(Canvas &)> fn)
     Produce an element drawing a canvas of requested size.
     
    Element canvas (std::function< void(Canvas &)> fn)
     Produce an element drawing a canvas.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2canvas_8cpp.js b/src_2ftxui_2dom_2canvas_8cpp.js new file mode 100644 index 000000000..f9c06b5bc --- /dev/null +++ b/src_2ftxui_2dom_2canvas_8cpp.js @@ -0,0 +1,6 @@ +var src_2ftxui_2dom_2canvas_8cpp = +[ + [ "canvas", "src_2ftxui_2dom_2canvas_8cpp.html#a57d7bdf155e190de514a689abb4e9a35", null ], + [ "canvas", "src_2ftxui_2dom_2canvas_8cpp.html#ac781c6530fb74b861af7d52c03ffb2b9", null ], + [ "canvas", "src_2ftxui_2dom_2canvas_8cpp.html#a8bef154e558868d259c52380e1e5ead9", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2canvas_8cpp_source.html b/src_2ftxui_2dom_2canvas_8cpp_source.html new file mode 100644 index 000000000..0a8312b15 --- /dev/null +++ b/src_2ftxui_2dom_2canvas_8cpp_source.html @@ -0,0 +1,1315 @@ + + + + + + + + +FTXUI: canvas.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/canvas.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6#include <algorithm> // for max, min
    +
    7#include <cmath> // for abs
    +
    8#include <cstdint> // for uint8_t
    +
    9#include <cstdlib> // for abs
    +
    10#include <ftxui/screen/color.hpp> // for Color
    +
    11#include <functional> // for function
    +
    12#include <map> // for map
    +
    13#include <memory> // for make_shared
    +
    14#include <utility> // for move, pair
    +
    15#include <vector> // for vector
    +
    16
    +
    17#include "ftxui/dom/elements.hpp" // for Element, canvas
    +
    18#include "ftxui/dom/node.hpp" // for Node
    +
    19#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    20#include "ftxui/screen/box.hpp" // for Box
    +
    21#include "ftxui/screen/image.hpp" // for Image
    +
    22#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    23#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    24#include "ftxui/screen/string.hpp" // for Utf8ToGlyphs
    +
    25#include "ftxui/util/ref.hpp" // for ConstRef
    +
    26
    +
    27namespace ftxui {
    +
    28
    +
    29namespace {
    +
    30
    +
    31// Base UTF8 pattern:
    +
    32// 11100010 10100000 10000000 // empty
    +
    33
    +
    34// Pattern for the individual dots:
    +
    35// ┌──────┬───────┐
    +
    36// │dot1 │ dot4 │
    +
    37// ├──────┼───────┤
    +
    38// │dot2 │ dot5 │
    +
    39// ├──────┼───────┤
    +
    40// │dot3 │ dot6 │
    +
    41// ├──────┼───────┤
    +
    42// │dot0-1│ dot0-2│
    +
    43// └──────┴───────┘
    +
    44// 11100010 10100000 10000001 // dot1
    +
    45// 11100010 10100000 10000010 // dot2
    +
    46// 11100010 10100000 10000100 // dot3
    +
    47// 11100010 10100001 10000000 // dot0-1
    +
    48// 11100010 10100000 10001000 // dot4
    +
    49// 11100010 10100000 10010000 // dot5
    +
    50// 11100010 10100000 10100000 // dot6
    +
    51// 11100010 10100010 10000000 // dot0-2
    +
    52
    +
    53// NOLINTNEXTLINE
    +
    54uint8_t g_map_braille[2][4][2] = {
    +
    55 {
    +
    56 {0b00000000, 0b00000001}, // NOLINT | dot1
    +
    57 {0b00000000, 0b00000010}, // NOLINT | dot2
    +
    58 {0b00000000, 0b00000100}, // NOLINT | dot3
    +
    59 {0b00000001, 0b00000000}, // NOLINT | dot0-1
    +
    60 },
    +
    61 {
    +
    62 {0b00000000, 0b00001000}, // NOLINT | dot4
    +
    63 {0b00000000, 0b00010000}, // NOLINT | dot5
    +
    64 {0b00000000, 0b00100000}, // NOLINT | dot6
    +
    65 {0b00000010, 0b00000000}, // NOLINT | dot0-2
    +
    66 },
    +
    67};
    +
    68
    +
    69// NOLINTNEXTLINE
    +
    70std::vector<std::string> g_map_block = {
    +
    71 " ", "▘", "▖", "▌", "▝", "▀", "▞", "▛",
    +
    72 "▗", "▚", "▄", "▙", "▐", "▜", "▟", "█",
    +
    73};
    +
    74
    +
    75// NOLINTNEXTLINE
    +
    76const std::map<std::string, uint8_t> g_map_block_inversed = {
    +
    77 {" ", 0b0000}, {"▘", 0b0001}, {"▖", 0b0010}, {"▌", 0b0011},
    +
    78 {"▝", 0b0100}, {"▀", 0b0101}, {"▞", 0b0110}, {"▛", 0b0111},
    +
    79 {"▗", 0b1000}, {"▚", 0b1001}, {"▄", 0b1010}, {"▙", 0b1011},
    +
    80 {"▐", 0b1100}, {"▜", 0b1101}, {"▟", 0b1110}, {"█", 0b1111},
    +
    81};
    +
    82
    +
    83constexpr auto nostyle = [](Pixel& /*pixel*/) {};
    +
    84
    +
    85} // namespace
    +
    86
    +
    87/// @brief Constructor.
    +
    88/// @param width the width of the canvas. A cell is a 2x4 braille dot.
    +
    89/// @param height the height of the canvas. A cell is a 2x4 braille dot.
    +
    +
    90Canvas::Canvas(int width, int height)
    +
    91 : width_(width),
    +
    92 height_(height),
    +
    93 storage_(width_ * height_ / 8 /* NOLINT */) {}
    +
    +
    94
    +
    95/// @brief Get the content of a cell.
    +
    96/// @param x the x coordinate of the cell.
    +
    97/// @param y the y coordinate of the cell.
    +
    +
    98Pixel Canvas::GetPixel(int x, int y) const {
    +
    99 auto it = storage_.find(XY{x, y});
    +
    100 return (it == storage_.end()) ? Pixel() : it->second.content;
    +
    101}
    +
    +
    102
    +
    103/// @brief Draw a braille dot.
    +
    104/// @param x the x coordinate of the dot.
    +
    105/// @param y the y coordinate of the dot.
    +
    106/// @param value whether the dot is filled or not.
    +
    +
    107void Canvas::DrawPoint(int x, int y, bool value) {
    +
    108 DrawPoint(x, y, value, [](Pixel& /*pixel*/) {});
    +
    109}
    +
    +
    110
    +
    111/// @brief Draw a braille dot.
    +
    112/// @param x the x coordinate of the dot.
    +
    113/// @param y the y coordinate of the dot.
    +
    114/// @param value whether the dot is filled or not.
    +
    115/// @param color the color of the dot.
    +
    +
    116void Canvas::DrawPoint(int x, int y, bool value, const Color& color) {
    +
    117 DrawPoint(x, y, value, [color](Pixel& p) { p.foreground_color = color; });
    +
    118}
    +
    +
    119
    +
    120/// @brief Draw a braille dot.
    +
    121/// @param x the x coordinate of the dot.
    +
    122/// @param y the y coordinate of the dot.
    +
    123/// @param value whether the dot is filled or not.
    +
    124/// @param style the style of the cell.
    +
    +
    125void Canvas::DrawPoint(int x, int y, bool value, const Stylizer& style) {
    +
    126 Style(x, y, style);
    +
    127 if (value) {
    +
    128 DrawPointOn(x, y);
    +
    129 } else {
    +
    130 DrawPointOff(x, y);
    +
    131 }
    +
    132}
    +
    +
    133
    +
    134/// @brief Draw a braille dot.
    +
    135/// @param x the x coordinate of the dot.
    +
    136/// @param y the y coordinate of the dot.
    +
    +
    137void Canvas::DrawPointOn(int x, int y) {
    +
    138 if (!IsIn(x, y)) {
    +
    139 return;
    +
    140 }
    +
    141 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    142 if (cell.type != CellType::kBraille) {
    +
    143 cell.content.character = "⠀"; // 3 bytes.
    +
    144 cell.type = CellType::kBraille;
    +
    145 }
    +
    146
    +
    147 cell.content.character[1] |= g_map_braille[x % 2][y % 4][0]; // NOLINT
    +
    148 cell.content.character[2] |= g_map_braille[x % 2][y % 4][1]; // NOLINT
    +
    149}
    +
    +
    150
    +
    151/// @brief Erase a braille dot.
    +
    152/// @param x the x coordinate of the dot.
    +
    153/// @param y the y coordinate of the dot.
    +
    +
    154void Canvas::DrawPointOff(int x, int y) {
    +
    155 if (!IsIn(x, y)) {
    +
    156 return;
    +
    157 }
    +
    158 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    159 if (cell.type != CellType::kBraille) {
    +
    160 cell.content.character = "⠀"; // 3 byt
    +
    161 cell.type = CellType::kBraille;
    +
    162 }
    +
    163
    +
    164 cell.content.character[1] &= ~(g_map_braille[x % 2][y % 4][0]); // NOLINT
    +
    165 cell.content.character[2] &= ~(g_map_braille[x % 2][y % 4][1]); // NOLINT
    +
    166}
    +
    +
    167
    +
    168/// @brief Toggle a braille dot. A filled one will be erased, and the other will
    +
    169/// be drawn.
    +
    170/// @param x the x coordinate of the dot.
    +
    171/// @param y the y coordinate of the dot.
    +
    +
    172void Canvas::DrawPointToggle(int x, int y) {
    +
    173 if (!IsIn(x, y)) {
    +
    174 return;
    +
    175 }
    +
    176 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    177 if (cell.type != CellType::kBraille) {
    +
    178 cell.content.character = "⠀"; // 3 byt
    +
    179 cell.type = CellType::kBraille;
    +
    180 }
    +
    181
    +
    182 cell.content.character[1] ^= g_map_braille[x % 2][y % 4][0]; // NOLINT
    +
    183 cell.content.character[2] ^= g_map_braille[x % 2][y % 4][1]; // NOLINT
    +
    184}
    +
    +
    185
    +
    186/// @brief Draw a line made of braille dots.
    +
    187/// @param x1 the x coordinate of the first dot.
    +
    188/// @param y1 the y coordinate of the first dot.
    +
    189/// @param x2 the x coordinate of the second dot.
    +
    190/// @param y2 the y coordinate of the second dot.
    +
    +
    191void Canvas::DrawPointLine(int x1, int y1, int x2, int y2) {
    +
    192 DrawPointLine(x1, y1, x2, y2, [](Pixel& /*pixel*/) {});
    +
    193}
    +
    +
    194
    +
    195/// @brief Draw a line made of braille dots.
    +
    196/// @param x1 the x coordinate of the first dot.
    +
    197/// @param y1 the y coordinate of the first dot.
    +
    198/// @param x2 the x coordinate of the second dot.
    +
    199/// @param y2 the y coordinate of the second dot.
    +
    200/// @param color the color of the line.
    +
    +
    201void Canvas::DrawPointLine(int x1, int y1, int x2, int y2, const Color& color) {
    +
    202 DrawPointLine(x1, y1, x2, y2,
    +
    203 [color](Pixel& p) { p.foreground_color = color; });
    +
    204}
    +
    +
    205
    +
    206/// @brief Draw a line made of braille dots.
    +
    207/// @param x1 the x coordinate of the first dot.
    +
    208/// @param y1 the y coordinate of the first dot.o
    +
    209/// @param x2 the x coordinate of the second dot.
    +
    210/// @param y2 the y coordinate of the second dot.
    +
    211/// @param style the style of the line.
    +
    + +
    213 int y1,
    +
    214 int x2,
    +
    215 int y2,
    +
    216 const Stylizer& style) {
    +
    217 const int dx = std::abs(x2 - x1);
    +
    218 const int dy = std::abs(y2 - y1);
    +
    219 const int sx = x1 < x2 ? 1 : -1;
    +
    220 const int sy = y1 < y2 ? 1 : -1;
    +
    221 const int length = std::max(dx, dy);
    +
    222
    +
    223 if (!IsIn(x1, y1) && !IsIn(x2, y2)) {
    +
    224 return;
    +
    225 }
    +
    226 if (dx + dx > width_ * height_) {
    +
    227 return;
    +
    228 }
    +
    229
    +
    230 int error = dx - dy;
    +
    231 for (int i = 0; i < length; ++i) {
    +
    232 DrawPoint(x1, y1, true, style);
    +
    233 if (2 * error >= -dy) {
    +
    234 error -= dy;
    +
    235 x1 += sx;
    +
    236 }
    +
    237 if (2 * error <= dx) {
    +
    238 error += dx;
    +
    239 y1 += sy;
    +
    240 }
    +
    241 }
    +
    242 DrawPoint(x2, y2, true, style);
    +
    243}
    +
    +
    244
    +
    245/// @brief Draw a circle made of braille dots.
    +
    246/// @param x the x coordinate of the center of the circle.
    +
    247/// @param y the y coordinate of the center of the circle.
    +
    248/// @param radius the radius of the circle.
    +
    +
    249void Canvas::DrawPointCircle(int x, int y, int radius) {
    +
    250 DrawPointCircle(x, y, radius, [](Pixel& /*pixel*/) {});
    +
    251}
    +
    +
    252
    +
    253/// @brief Draw a circle made of braille dots.
    +
    254/// @param x the x coordinate of the center of the circle.
    +
    255/// @param y the y coordinate of the center of the circle.
    +
    256/// @param radius the radius of the circle.
    +
    257/// @param color the color of the circle.
    +
    +
    258void Canvas::DrawPointCircle(int x, int y, int radius, const Color& color) {
    +
    259 DrawPointCircle(x, y, radius,
    +
    260 [color](Pixel& p) { p.foreground_color = color; });
    +
    261}
    +
    +
    262
    +
    263/// @brief Draw a circle made of braille dots.
    +
    264/// @param x the x coordinate of the center of the circle.
    +
    265/// @param y the y coordinate of the center of the circle.
    +
    266/// @param radius the radius of the circle.
    +
    267/// @param style the style of the circle.
    +
    +
    268void Canvas::DrawPointCircle(int x, int y, int radius, const Stylizer& style) {
    +
    269 DrawPointEllipse(x, y, radius, radius, style);
    +
    270}
    +
    +
    271
    +
    272/// @brief Draw a filled circle made of braille dots.
    +
    273/// @param x the x coordinate of the center of the circle.
    +
    274/// @param y the y coordinate of the center of the circle.
    +
    275/// @param radius the radius of the circle.
    +
    +
    276void Canvas::DrawPointCircleFilled(int x, int y, int radius) {
    +
    277 DrawPointCircleFilled(x, y, radius, [](Pixel& /*pixel*/) {});
    +
    278}
    +
    +
    279
    +
    280/// @brief Draw a filled circle made of braille dots.
    +
    281/// @param x the x coordinate of the center of the circle.
    +
    282/// @param y the y coordinate of the center of the circle.
    +
    283/// @param radius the radius of the circle.
    +
    284/// @param color the color of the circle.
    +
    + +
    286 int y,
    +
    287 int radius,
    +
    288 const Color& color) {
    +
    289 DrawPointCircleFilled(x, y, radius,
    +
    290 [color](Pixel& p) { p.foreground_color = color; });
    +
    291}
    +
    +
    292
    +
    293/// @brief Draw a filled circle made of braille dots.
    +
    294/// @param x the x coordinate of the center of the circle.
    +
    295/// @param y the y coordinate of the center of the circle.
    +
    296/// @param radius the radius of the circle.
    +
    297/// @param style the style of the circle.
    +
    + +
    299 int y,
    +
    300 int radius,
    +
    301 const Stylizer& style) {
    +
    302 DrawPointEllipseFilled(x, y, radius, radius, style);
    +
    303}
    +
    +
    304
    +
    305/// @brief Draw an ellipse made of braille dots.
    +
    306/// @param x the x coordinate of the center of the ellipse.
    +
    307/// @param y the y coordinate of the center of the ellipse.
    +
    308/// @param r1 the radius of the ellipse along the x axis.
    +
    309/// @param r2 the radius of the ellipse along the y axis.
    +
    +
    310void Canvas::DrawPointEllipse(int x, int y, int r1, int r2) {
    +
    311 DrawPointEllipse(x, y, r1, r2, [](Pixel& /*pixel*/) {});
    +
    312}
    +
    +
    313
    +
    314/// @brief Draw an ellipse made of braille dots.
    +
    315/// @param x the x coordinate of the center of the ellipse.
    +
    316/// @param y the y coordinate of the center of the ellipse.
    +
    317/// @param r1 the radius of the ellipse along the x axis.
    +
    318/// @param r2 the radius of the ellipse along the y axis.
    +
    319/// @param color the color of the ellipse.
    +
    + +
    321 int y,
    +
    322 int r1,
    +
    323 int r2,
    +
    324 const Color& color) {
    +
    325 DrawPointEllipse(x, y, r1, r2,
    +
    326 [color](Pixel& p) { p.foreground_color = color; });
    +
    327}
    +
    +
    328
    +
    329/// @brief Draw an ellipse made of braille dots.
    +
    330/// @param x1 the x coordinate of the center of the ellipse.
    +
    331/// @param y1 the y coordinate of the center of the ellipse.
    +
    332/// @param r1 the radius of the ellipse along the x axis.
    +
    333/// @param r2 the radius of the ellipse along the y axis.
    +
    334/// @param s the style of the ellipse.
    +
    + +
    336 int y1,
    +
    337 int r1,
    +
    338 int r2,
    +
    339 const Stylizer& s) {
    +
    340 int x = -r1;
    +
    341 int y = 0;
    +
    342 int e2 = r2;
    +
    343 int dx = (1 + 2 * x) * e2 * e2;
    +
    344 int dy = x * x;
    +
    345 int err = dx + dy;
    +
    346
    +
    347 do { // NOLINT
    +
    348 DrawPoint(x1 - x, y1 + y, true, s);
    +
    349 DrawPoint(x1 + x, y1 + y, true, s);
    +
    350 DrawPoint(x1 + x, y1 - y, true, s);
    +
    351 DrawPoint(x1 - x, y1 - y, true, s);
    +
    352 e2 = 2 * err;
    +
    353 if (e2 >= dx) {
    +
    354 x++;
    +
    355 err += dx += 2 * r2 * r2;
    +
    356 }
    +
    357 if (e2 <= dy) {
    +
    358 y++;
    +
    359 err += dy += 2 * r1 * r1;
    +
    360 }
    +
    361 } while (x <= 0);
    +
    362
    +
    363 while (y++ < r2) {
    +
    364 DrawPoint(x1, y1 + y, true, s);
    +
    365 DrawPoint(x1, y1 - y, true, s);
    +
    366 }
    +
    367}
    +
    +
    368
    +
    369/// @brief Draw a filled ellipse made of braille dots.
    +
    370/// @param x1 the x coordinate of the center of the ellipse.
    +
    371/// @param y1 the y coordinate of the center of the ellipse.
    +
    372/// @param r1 the radius of the ellipse along the x axis.
    +
    373/// @param r2 the radius of the ellipse along the y axis.
    +
    +
    374void Canvas::DrawPointEllipseFilled(int x1, int y1, int r1, int r2) {
    +
    375 DrawPointEllipseFilled(x1, y1, r1, r2, [](Pixel& /*pixel*/) {});
    +
    376}
    +
    +
    377
    +
    378/// @brief Draw a filled ellipse made of braille dots.
    +
    379/// @param x1 the x coordinate of the center of the ellipse.
    +
    380/// @param y1 the y coordinate of the center of the ellipse.
    +
    381/// @param r1 the radius of the ellipse along the x axis.
    +
    382/// @param r2 the radius of the ellipse along the y axis.
    +
    383/// @param color the color of the ellipse.
    +
    + +
    385 int y1,
    +
    386 int r1,
    +
    387 int r2,
    +
    388 const Color& color) {
    +
    389 DrawPointEllipseFilled(x1, y1, r1, r2,
    +
    390 [color](Pixel& p) { p.foreground_color = color; });
    +
    391}
    +
    +
    392
    +
    393/// @brief Draw a filled ellipse made of braille dots.
    +
    394/// @param x1 the x coordinate of the center of the ellipse.
    +
    395/// @param y1 the y coordinate of the center of the ellipse.
    +
    396/// @param r1 the radius of the ellipse along the x axis.
    +
    397/// @param r2 the radius of the ellipse along the y axis.
    +
    398/// @param s the style of the ellipse.
    +
    + +
    400 int y1,
    +
    401 int r1,
    +
    402 int r2,
    +
    403 const Stylizer& s) {
    +
    404 int x = -r1;
    +
    405 int y = 0;
    +
    406 int e2 = r2;
    +
    407 int dx = (1 + 2 * x) * e2 * e2;
    +
    408 int dy = x * x;
    +
    409 int err = dx + dy;
    +
    410
    +
    411 do { // NOLINT
    +
    412 for (int xx = x1 + x; xx <= x1 - x; ++xx) {
    +
    413 DrawPoint(xx, y1 + y, true, s);
    +
    414 DrawPoint(xx, y1 - y, true, s);
    +
    415 }
    +
    416 e2 = 2 * err;
    +
    417 if (e2 >= dx) {
    +
    418 x++;
    +
    419 err += dx += 2 * r2 * r2;
    +
    420 }
    +
    421 if (e2 <= dy) {
    +
    422 y++;
    +
    423 err += dy += 2 * r1 * r1;
    +
    424 }
    +
    425 } while (x <= 0);
    +
    426
    +
    427 while (y++ < r2) {
    +
    428 for (int yy = y1 - y; yy <= y1 + y; ++yy) {
    +
    429 DrawPoint(x1, yy, true, s);
    +
    430 }
    +
    431 }
    +
    432}
    +
    +
    433
    +
    434/// @brief Draw a block.
    +
    435/// @param x the x coordinate of the block.
    +
    436/// @param y the y coordinate of the block.
    +
    437/// @param value whether the block is filled or not.
    +
    +
    438void Canvas::DrawBlock(int x, int y, bool value) {
    +
    439 DrawBlock(x, y, value, [](Pixel& /*pixel*/) {});
    +
    440}
    +
    +
    441
    +
    442/// @brief Draw a block.
    +
    443/// @param x the x coordinate of the block.
    +
    444/// @param y the y coordinate of the block.
    +
    445/// @param value whether the block is filled or not.
    +
    446/// @param color the color of the block.
    +
    +
    447void Canvas::DrawBlock(int x, int y, bool value, const Color& color) {
    +
    448 DrawBlock(x, y, value, [color](Pixel& p) { p.foreground_color = color; });
    +
    449}
    +
    +
    450
    +
    451/// @brief Draw a block.
    +
    452/// @param x the x coordinate of the block.
    +
    453/// @param y the y coordinate of the block.
    +
    454/// @param value whether the block is filled or not.
    +
    455/// @param style the style of the block.
    +
    +
    456void Canvas::DrawBlock(int x, int y, bool value, const Stylizer& style) {
    +
    457 Style(x, y, style);
    +
    458 if (value) {
    +
    459 DrawBlockOn(x, y);
    +
    460 } else {
    +
    461 DrawBlockOff(x, y);
    +
    462 }
    +
    463}
    +
    +
    464
    +
    465/// @brief Draw a block.
    +
    466/// @param x the x coordinate of the block.
    +
    467/// @param y the y coordinate of the block.
    +
    +
    468void Canvas::DrawBlockOn(int x, int y) {
    +
    469 if (!IsIn(x, y)) {
    +
    470 return;
    +
    471 }
    +
    472 y /= 2;
    +
    473 Cell& cell = storage_[XY{x / 2, y / 2}];
    +
    474 if (cell.type != CellType::kBlock) {
    +
    475 cell.content.character = " ";
    +
    476 cell.type = CellType::kBlock;
    +
    477 }
    +
    478
    +
    479 const uint8_t bit = (x % 2) * 2 + y % 2;
    +
    480 uint8_t value = g_map_block_inversed.at(cell.content.character);
    +
    481 value |= 1U << bit;
    +
    482 cell.content.character = g_map_block[value];
    +
    483}
    +
    +
    484
    +
    485/// @brief Erase a block.
    +
    486/// @param x the x coordinate of the block.
    +
    487/// @param y the y coordinate of the block.
    +
    +
    488void Canvas::DrawBlockOff(int x, int y) {
    +
    489 if (!IsIn(x, y)) {
    +
    490 return;
    +
    491 }
    +
    492 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    493 if (cell.type != CellType::kBlock) {
    +
    494 cell.content.character = " ";
    +
    495 cell.type = CellType::kBlock;
    +
    496 }
    +
    497 y /= 2;
    +
    498
    +
    499 const uint8_t bit = (y % 2) * 2 + x % 2;
    +
    500 uint8_t value = g_map_block_inversed.at(cell.content.character);
    +
    501 value &= ~(1U << bit);
    +
    502 cell.content.character = g_map_block[value];
    +
    503}
    +
    +
    504
    +
    505/// @brief Toggle a block. If it is filled, it will be erased. If it is empty,
    +
    506/// it will be filled.
    +
    507/// @param x the x coordinate of the block.
    +
    508/// @param y the y coordinate of the block.
    +
    +
    509void Canvas::DrawBlockToggle(int x, int y) {
    +
    510 if (!IsIn(x, y)) {
    +
    511 return;
    +
    512 }
    +
    513 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    514 if (cell.type != CellType::kBlock) {
    +
    515 cell.content.character = " ";
    +
    516 cell.type = CellType::kBlock;
    +
    517 }
    +
    518 y /= 2;
    +
    519
    +
    520 const uint8_t bit = (y % 2) * 2 + x % 2;
    +
    521 uint8_t value = g_map_block_inversed.at(cell.content.character);
    +
    522 value ^= 1U << bit;
    +
    523 cell.content.character = g_map_block[value];
    +
    524}
    +
    +
    525
    +
    526/// @brief Draw a line made of block characters.
    +
    527/// @param x1 the x coordinate of the first point of the line.
    +
    528/// @param y1 the y coordinate of the first point of the line.
    +
    529/// @param x2 the x coordinate of the second point of the line.
    +
    530/// @param y2 the y coordinate of the second point of the line.
    +
    +
    531void Canvas::DrawBlockLine(int x1, int y1, int x2, int y2) {
    +
    532 DrawBlockLine(x1, y1, x2, y2, [](Pixel& /*pixel*/) {});
    +
    533}
    +
    +
    534
    +
    535/// @brief Draw a line made of block characters.
    +
    536/// @param x1 the x coordinate of the first point of the line.
    +
    537/// @param y1 the y coordinate of the first point of the line.
    +
    538/// @param x2 the x coordinate of the second point of the line.
    +
    539/// @param y2 the y coordinate of the second point of the line.
    +
    540/// @param color the color of the line.
    +
    +
    541void Canvas::DrawBlockLine(int x1, int y1, int x2, int y2, const Color& color) {
    +
    542 DrawBlockLine(x1, y1, x2, y2,
    +
    543 [color](Pixel& p) { p.foreground_color = color; });
    +
    544}
    +
    +
    545
    +
    546/// @brief Draw a line made of block characters.
    +
    547/// @param x1 the x coordinate of the first point of the line.
    +
    548/// @param y1 the y coordinate of the first point of the line.
    +
    549/// @param x2 the x coordinate of the second point of the line.
    +
    550/// @param y2 the y coordinate of the second point of the line.
    +
    551/// @param style the style of the line.
    +
    + +
    553 int y1,
    +
    554 int x2,
    +
    555 int y2,
    +
    556 const Stylizer& style) {
    +
    557 y1 /= 2;
    +
    558 y2 /= 2;
    +
    559
    +
    560 const int dx = std::abs(x2 - x1);
    +
    561 const int dy = std::abs(y2 - y1);
    +
    562 const int sx = x1 < x2 ? 1 : -1;
    +
    563 const int sy = y1 < y2 ? 1 : -1;
    +
    564 const int length = std::max(dx, dy);
    +
    565
    +
    566 if (!IsIn(x1, y1) && !IsIn(x2, y2)) {
    +
    567 return;
    +
    568 }
    +
    569 if (dx + dx > width_ * height_) {
    +
    570 return;
    +
    571 }
    +
    572
    +
    573 int error = dx - dy;
    +
    574 for (int i = 0; i < length; ++i) {
    +
    575 DrawBlock(x1, y1 * 2, true, style);
    +
    576 if (2 * error >= -dy) {
    +
    577 error -= dy;
    +
    578 x1 += sx;
    +
    579 }
    +
    580 if (2 * error <= dx) {
    +
    581 error += dx;
    +
    582 y1 += sy;
    +
    583 }
    +
    584 }
    +
    585 DrawBlock(x2, y2 * 2, true, style);
    +
    586}
    +
    +
    587
    +
    588/// @brief Draw a circle made of block characters.
    +
    589/// @param x the x coordinate of the center of the circle.
    +
    590/// @param y the y coordinate of the center of the circle.
    +
    591/// @param radius the radius of the circle.
    +
    +
    592void Canvas::DrawBlockCircle(int x, int y, int radius) {
    +
    593 DrawBlockCircle(x, y, radius, nostyle);
    +
    594}
    +
    +
    595
    +
    596/// @brief Draw a circle made of block characters.
    +
    597/// @param x the x coordinate of the center of the circle.
    +
    598/// @param y the y coordinate of the center of the circle.
    +
    599/// @param radius the radius of the circle.
    +
    600/// @param color the color of the circle.
    +
    +
    601void Canvas::DrawBlockCircle(int x, int y, int radius, const Color& color) {
    +
    602 DrawBlockCircle(x, y, radius,
    +
    603 [color](Pixel& p) { p.foreground_color = color; });
    +
    604}
    +
    +
    605
    +
    606/// @brief Draw a circle made of block characters.
    +
    607/// @param x the x coordinate of the center of the circle.
    +
    608/// @param y the y coordinate of the center of the circle.
    +
    609/// @param radius the radius of the circle.
    +
    610/// @param style the style of the circle.
    +
    +
    611void Canvas::DrawBlockCircle(int x, int y, int radius, const Stylizer& style) {
    +
    612 DrawBlockEllipse(x, y, radius, radius, style);
    +
    613}
    +
    +
    614
    +
    615/// @brief Draw a filled circle made of block characters.
    +
    616/// @param x the x coordinate of the center of the circle.
    +
    617/// @param y the y coordinate of the center of the circle.
    +
    618/// @param radius the radius of the circle.
    +
    +
    619void Canvas::DrawBlockCircleFilled(int x, int y, int radius) {
    +
    620 DrawBlockCircleFilled(x, y, radius, nostyle);
    +
    621}
    +
    +
    622
    +
    623/// @brief Draw a filled circle made of block characters.
    +
    624/// @param x the x coordinate of the center of the circle.
    +
    625/// @param y the y coordinate of the center of the circle.
    +
    626/// @param radius the radius of the circle.
    +
    627/// @param color the color of the circle.
    +
    + +
    629 int y,
    +
    630 int radius,
    +
    631 const Color& color) {
    +
    632 DrawBlockCircleFilled(x, y, radius,
    +
    633 [color](Pixel& p) { p.foreground_color = color; });
    +
    634}
    +
    +
    635
    +
    636/// @brief Draw a filled circle made of block characters.
    +
    637/// @param x the x coordinate of the center of the circle.
    +
    638/// @param y the y coordinate of the center of the circle.
    +
    639/// @param radius the radius of the circle.
    +
    640/// @param s the style of the circle.
    +
    + +
    642 int y,
    +
    643 int radius,
    +
    644 const Stylizer& s) {
    +
    645 DrawBlockEllipseFilled(x, y, radius, radius, s);
    +
    646}
    +
    +
    647
    +
    648/// @brief Draw an ellipse made of block characters.
    +
    649/// @param x the x coordinate of the center of the ellipse.
    +
    650/// @param y the y coordinate of the center of the ellipse.
    +
    651/// @param r1 the radius of the ellipse along the x axis.
    +
    652/// @param r2 the radius of the ellipse along the y axis.
    +
    +
    653void Canvas::DrawBlockEllipse(int x, int y, int r1, int r2) {
    +
    654 DrawBlockEllipse(x, y, r1, r2, nostyle);
    +
    655}
    +
    +
    656
    +
    657/// @brief Draw an ellipse made of block characters.
    +
    658/// @param x the x coordinate of the center of the ellipse.
    +
    659/// @param y the y coordinate of the center of the ellipse.
    +
    660/// @param r1 the radius of the ellipse along the x axis.
    +
    661/// @param r2 the radius of the ellipse along the y axis.
    +
    662/// @param color the color of the ellipse.
    +
    + +
    664 int y,
    +
    665 int r1,
    +
    666 int r2,
    +
    667 const Color& color) {
    +
    668 DrawBlockEllipse(x, y, r1, r2,
    +
    669 [color](Pixel& p) { p.foreground_color = color; });
    +
    670}
    +
    +
    671
    +
    672/// @brief Draw an ellipse made of block characters.
    +
    673/// @param x1 the x coordinate of the center of the ellipse.
    +
    674/// @param y1 the y coordinate of the center of the ellipse.
    +
    675/// @param r1 the radius of the ellipse along the x axis.
    +
    676/// @param r2 the radius of the ellipse along the y axis.
    +
    677/// @param s the style of the ellipse.
    +
    + +
    679 int y1,
    +
    680 int r1,
    +
    681 int r2,
    +
    682 const Stylizer& s) {
    +
    683 y1 /= 2;
    +
    684 r2 /= 2;
    +
    685 int x = -r1;
    +
    686 int y = 0;
    +
    687 int e2 = r2;
    +
    688 int dx = (1 + 2 * x) * e2 * e2;
    +
    689 int dy = x * x;
    +
    690 int err = dx + dy;
    +
    691
    +
    692 do { // NOLINT
    +
    693 DrawBlock(x1 - x, 2 * (y1 + y), true, s);
    +
    694 DrawBlock(x1 + x, 2 * (y1 + y), true, s);
    +
    695 DrawBlock(x1 + x, 2 * (y1 - y), true, s);
    +
    696 DrawBlock(x1 - x, 2 * (y1 - y), true, s);
    +
    697 e2 = 2 * err;
    +
    698 if (e2 >= dx) {
    +
    699 x++;
    +
    700 err += dx += 2 * r2 * r2;
    +
    701 }
    +
    702 if (e2 <= dy) {
    +
    703 y++;
    +
    704 err += dy += 2 * r1 * r1;
    +
    705 }
    +
    706 } while (x <= 0);
    +
    707
    +
    708 while (y++ < r2) {
    +
    709 DrawBlock(x1, 2 * (y1 + y), true, s);
    +
    710 DrawBlock(x1, 2 * (y1 - y), true, s);
    +
    711 }
    +
    712}
    +
    +
    713
    +
    714/// @brief Draw a filled ellipse made of block characters.
    +
    715/// @param x the x coordinate of the center of the ellipse.
    +
    716/// @param y the y coordinate of the center of the ellipse.
    +
    717/// @param r1 the radius of the ellipse along the x axis.
    +
    718/// @param r2 the radius of the ellipse along the y axis.
    +
    +
    719void Canvas::DrawBlockEllipseFilled(int x, int y, int r1, int r2) {
    +
    720 DrawBlockEllipseFilled(x, y, r1, r2, nostyle);
    +
    721}
    +
    +
    722
    +
    723/// @brief Draw a filled ellipse made of block characters.
    +
    724/// @param x the x coordinate of the center of the ellipse.
    +
    725/// @param y the y coordinate of the center of the ellipse.
    +
    726/// @param r1 the radius of the ellipse along the x axis.
    +
    727/// @param r2 the radius of the ellipse along the y axis.
    +
    728/// @param color the color of the ellipse.
    +
    + +
    730 int y,
    +
    731 int r1,
    +
    732 int r2,
    +
    733 const Color& color) {
    +
    734 DrawBlockEllipseFilled(x, y, r1, r2,
    +
    735 [color](Pixel& p) { p.foreground_color = color; });
    +
    736}
    +
    +
    737
    +
    738/// @brief Draw a filled ellipse made of block characters.
    +
    739/// @param x1 the x coordinate of the center of the ellipse.
    +
    740/// @param y1 the y coordinate of the center of the ellipse.
    +
    741/// @param r1 the radius of the ellipse along the x axis.
    +
    742/// @param r2 the radius of the ellipse along the y axis.
    +
    743/// @param s the style of the ellipse.
    +
    + +
    745 int y1,
    +
    746 int r1,
    +
    747 int r2,
    +
    748 const Stylizer& s) {
    +
    749 y1 /= 2;
    +
    750 r2 /= 2;
    +
    751 int x = -r1;
    +
    752 int y = 0;
    +
    753 int e2 = r2;
    +
    754 int dx = (1 + 2 * x) * e2 * e2;
    +
    755 int dy = x * x;
    +
    756 int err = dx + dy;
    +
    757
    +
    758 do { // NOLINT
    +
    759 for (int xx = x1 + x; xx <= x1 - x; ++xx) {
    +
    760 DrawBlock(xx, 2 * (y1 + y), true, s);
    +
    761 DrawBlock(xx, 2 * (y1 - y), true, s);
    +
    762 }
    +
    763 e2 = 2 * err;
    +
    764 if (e2 >= dx) {
    +
    765 x++;
    +
    766 err += dx += 2 * r2 * r2;
    +
    767 }
    +
    768 if (e2 <= dy) {
    +
    769 y++;
    +
    770 err += dy += 2 * r1 * r1;
    +
    771 }
    +
    772 } while (x <= 0);
    +
    773
    +
    774 while (y++ < r2) {
    +
    775 for (int yy = y1 + y; yy <= y1 - y; ++yy) {
    +
    776 DrawBlock(x1, 2 * yy, true, s);
    +
    777 }
    +
    778 }
    +
    779}
    +
    +
    780
    +
    781/// @brief Draw a piece of text.
    +
    782/// @param x the x coordinate of the text.
    +
    783/// @param y the y coordinate of the text.
    +
    784/// @param value the text to draw.
    +
    +
    785void Canvas::DrawText(int x, int y, const std::string& value) {
    +
    786 DrawText(x, y, value, nostyle);
    +
    787}
    +
    +
    788
    +
    789/// @brief Draw a piece of text.
    +
    790/// @param x the x coordinate of the text.
    +
    791/// @param y the y coordinate of the text.
    +
    792/// @param value the text to draw.
    +
    793/// @param color the color of the text.
    +
    + +
    795 int y,
    +
    796 const std::string& value,
    +
    797 const Color& color) {
    +
    798 DrawText(x, y, value, [color](Pixel& p) { p.foreground_color = color; });
    +
    799}
    +
    +
    800
    +
    801/// @brief Draw a piece of text.
    +
    802/// @param x the x coordinate of the text.
    +
    803/// @param y the y coordinate of the text.
    +
    804/// @param value the text to draw.
    +
    805/// @param style the style of the text.
    +
    + +
    807 int y,
    +
    808 const std::string& value,
    +
    809 const Stylizer& style) {
    +
    810 for (const auto& it : Utf8ToGlyphs(value)) {
    +
    811 if (!IsIn(x, y)) {
    +
    812 x += 2;
    +
    813 continue;
    +
    814 }
    +
    815 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    816 cell.type = CellType::kCell;
    +
    817 cell.content.character = it;
    +
    818 style(cell.content);
    +
    819 x += 2;
    +
    820 }
    +
    821}
    +
    +
    822
    +
    823/// @brief Directly draw a predefined pixel at the given coordinate
    +
    824/// @param x the x coordinate of the pixel.
    +
    825/// @param y the y coordinate of the pixel.
    +
    826/// @param p the pixel to draw.
    +
    +
    827void Canvas::DrawPixel(int x, int y, const Pixel& p) {
    +
    828 Cell& cell = storage_[XY{x / 2, y / 4}];
    +
    829 cell.type = CellType::kCell;
    +
    830 cell.content = p;
    +
    831}
    +
    +
    832
    +
    833/// @brief Draw a predefined image, with top-left corner at the given coordinate
    +
    834/// You can supply negative coordinates to align the image however you like -
    +
    835/// only the 'visible' portion will be drawn
    +
    836/// @param x the x coordinate corresponding to the top-left corner of the image.
    +
    837/// @param y the y coordinate corresponding to the top-left corner of the image.
    +
    838/// @param image the image to draw.
    +
    +
    839void Canvas::DrawImage(int x, int y, const Image& image) {
    +
    840 x /= 2;
    +
    841 y /= 4;
    +
    842 const int dx_begin = std::max(0, -x);
    +
    843 const int dy_begin = std::max(0, -y);
    +
    844 const int dx_end = std::min(image.dimx(), width_ - x);
    +
    845 const int dy_end = std::min(image.dimy(), height_ - y);
    +
    846
    +
    847 for (int dy = dy_begin; dy < dy_end; ++dy) {
    +
    848 for (int dx = dx_begin; dx < dx_end; ++dx) {
    +
    849 Cell& cell = storage_[XY{
    +
    850 x + dx,
    +
    851 y + dy,
    +
    852 }];
    +
    853 cell.type = CellType::kCell;
    +
    854 cell.content = image.PixelAt(dx, dy);
    +
    855 }
    +
    856 }
    +
    857}
    +
    +
    858
    +
    859/// @brief Modify a pixel at a given location.
    +
    860/// @param style a function that modifies the pixel.
    +
    +
    861void Canvas::Style(int x, int y, const Stylizer& style) {
    +
    862 if (IsIn(x, y)) {
    +
    863 style(storage_[XY{x / 2, y / 4}].content);
    +
    864 }
    +
    865}
    +
    +
    866
    +
    867namespace {
    +
    868
    +
    869class CanvasNodeBase : public Node {
    +
    870 public:
    +
    871 CanvasNodeBase() = default;
    +
    872
    +
    873 void Render(Screen& screen) override {
    +
    874 const Canvas& c = canvas();
    +
    875 const int y_max = std::min(c.height() / 4, box_.y_max - box_.y_min + 1);
    +
    876 const int x_max = std::min(c.width() / 2, box_.x_max - box_.x_min + 1);
    +
    877 for (int y = 0; y < y_max; ++y) {
    +
    878 for (int x = 0; x < x_max; ++x) {
    +
    879 screen.PixelAt(box_.x_min + x, box_.y_min + y) = c.GetPixel(x, y);
    +
    880 }
    +
    881 }
    +
    882 }
    +
    883
    +
    884 virtual const Canvas& canvas() = 0;
    +
    885};
    +
    886
    +
    887} // namespace
    +
    888
    +
    889/// @brief Produce an element from a Canvas, or a reference to a Canvas.
    +
    890// NOLINTNEXTLINE
    +
    + +
    892 class Impl : public CanvasNodeBase {
    +
    893 public:
    +
    894 explicit Impl(ConstRef<Canvas> canvas) : canvas_(std::move(canvas)) {
    +
    895 requirement_.min_x = (canvas_->width() + 1) / 2;
    +
    896 requirement_.min_y = (canvas_->height() + 3) / 4;
    +
    897 }
    +
    898 const Canvas& canvas() final { return *canvas_; }
    +
    899 ConstRef<Canvas> canvas_;
    +
    900 };
    +
    901 return std::make_shared<Impl>(canvas);
    +
    902}
    +
    +
    903
    +
    904/// @brief Produce an element drawing a canvas of requested size.
    +
    905/// @param width the width of the canvas.
    +
    906/// @param height the height of the canvas.
    +
    907/// @param fn a function drawing the canvas.
    +
    +
    908Element canvas(int width, int height, std::function<void(Canvas&)> fn) {
    +
    909 class Impl : public CanvasNodeBase {
    +
    910 public:
    +
    911 Impl(int width, int height, std::function<void(Canvas&)> fn)
    +
    912 : width_(width), height_(height), fn_(std::move(fn)) {}
    +
    913
    +
    914 void ComputeRequirement() final {
    +
    915 requirement_.min_x = (width_ + 1) / 2;
    +
    916 requirement_.min_y = (height_ + 3) / 4;
    +
    917 }
    +
    918
    +
    919 void Render(Screen& screen) final {
    +
    920 const int width = (box_.x_max - box_.x_min + 1) * 2;
    +
    921 const int height = (box_.y_max - box_.y_min + 1) * 4;
    +
    922 canvas_ = Canvas(width, height);
    +
    923 fn_(canvas_);
    +
    924 CanvasNodeBase::Render(screen);
    +
    925 }
    +
    926
    +
    927 const Canvas& canvas() final { return canvas_; }
    +
    928 Canvas canvas_;
    +
    929 int width_;
    +
    930 int height_;
    +
    931 std::function<void(Canvas&)> fn_;
    +
    932 };
    +
    933 return std::make_shared<Impl>(width, height, std::move(fn));
    +
    934}
    +
    +
    935
    +
    936/// @brief Produce an element drawing a canvas.
    +
    937/// @param fn a function drawing the canvas.
    +
    +
    938Element canvas(std::function<void(Canvas&)> fn) {
    +
    939 const int default_dim = 12;
    +
    940 return canvas(default_dim, default_dim, std::move(fn));
    +
    941}
    +
    +
    942
    +
    943} // namespace ftxui
    + + +
    An adapter. Own or reference an immutable object.
    Definition ref.hpp:17
    + + +
    ButtonOption Style()
    +
    void DrawImage(int x, int y, const Image &)
    Draw a predefined image, with top-left corner at the given coordinate You can supply negative coordin...
    +
    void DrawBlockLine(int x1, int y1, int x2, int y2)
    Draw a line made of block characters.
    +
    void DrawPointEllipseFilled(int x, int y, int r1, int r2)
    Draw a filled ellipse made of braille dots.
    +
    void DrawPointLine(int x1, int y1, int x2, int y2)
    Draw a line made of braille dots.
    +
    void DrawText(int x, int y, const std::string &value)
    Draw a piece of text.
    +
    Canvas()=default
    +
    std::function< void(Pixel &)> Stylizer
    Definition canvas.hpp:48
    +
    void DrawBlockOn(int x, int y)
    Draw a block.
    +
    void DrawPointCircleFilled(int x, int y, int radius)
    Draw a filled circle made of braille dots.
    +
    void DrawPointOn(int x, int y)
    Draw a braille dot.
    +
    void DrawPointOff(int x, int y)
    Erase a braille dot.
    +
    Pixel GetPixel(int x, int y) const
    Get the content of a cell.
    +
    void DrawBlockEllipseFilled(int x1, int y1, int r1, int r2)
    Draw a filled ellipse made of block characters.
    +
    void DrawPointEllipse(int x, int y, int r1, int r2)
    Draw an ellipse made of braille dots.
    +
    void DrawPoint(int x, int y, bool value)
    Draw a braille dot.
    +
    void DrawBlockEllipse(int x1, int y1, int r1, int r2)
    Draw an ellipse made of block characters.
    +
    void DrawBlockToggle(int x, int y)
    Toggle a block. If it is filled, it will be erased. If it is empty, it will be filled.
    +
    void DrawBlockCircle(int x1, int y1, int radius)
    Draw a circle made of block characters.
    +
    void DrawBlockCircleFilled(int x1, int y1, int radius)
    Draw a filled circle made of block characters.
    +
    void DrawPointCircle(int x, int y, int radius)
    Draw a circle made of braille dots.
    +
    int height() const
    Definition canvas.hpp:45
    +
    void DrawBlockOff(int x, int y)
    Erase a block.
    +
    int width() const
    Definition canvas.hpp:44
    +
    void DrawBlock(int x, int y, bool value)
    Draw a block.
    +
    void Style(int x, int y, const Stylizer &style)
    Modify a pixel at a given location.
    +
    void DrawPointToggle(int x, int y)
    Toggle a braille dot. A filled one will be erased, and the other will be drawn.
    +
    void DrawPixel(int x, int y, const Pixel &)
    Directly draw a predefined pixel at the given coordinate.
    +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Canvas is a drawable buffer associated with drawing operations.
    Definition canvas.hpp:38
    +
    int dimy() const
    Definition image.hpp:36
    +
    Color foreground_color
    Definition pixel.hpp:49
    +
    std::string character
    Definition pixel.hpp:45
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    int dimx() const
    Definition image.hpp:35
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    A rectangular grid of Pixel.
    Definition image.hpp:17
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< std::string > Utf8ToGlyphs(const std::string &input)
    Definition string.cpp:1358
    +
    Element canvas(ConstRef< Canvas >)
    Produce an element from a Canvas, or a reference to a Canvas.
    + + + + + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2dbox_8cpp.html b/src_2ftxui_2dom_2dbox_8cpp.html new file mode 100644 index 000000000..b15a372f8 --- /dev/null +++ b/src_2ftxui_2dom_2dbox_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: dbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element dbox (Elements children_)
     Stack several element on top of each other.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2dbox_8cpp.js b/src_2ftxui_2dom_2dbox_8cpp.js new file mode 100644 index 000000000..f2ee8644d --- /dev/null +++ b/src_2ftxui_2dom_2dbox_8cpp.js @@ -0,0 +1,4 @@ +var src_2ftxui_2dom_2dbox_8cpp = +[ + [ "dbox", "src_2ftxui_2dom_2dbox_8cpp.html#ga901ab1b6b2e0e8c295552168ab206441", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2dbox_8cpp_source.html b/src_2ftxui_2dom_2dbox_8cpp_source.html new file mode 100644 index 000000000..febfd3024 --- /dev/null +++ b/src_2ftxui_2dom_2dbox_8cpp_source.html @@ -0,0 +1,280 @@ + + + + + + + + +FTXUI: dbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/dbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max
    +
    5#include <cstddef> // for size_t
    +
    6#include <memory> // for __shared_ptr_access, shared_ptr, make_shared
    +
    7#include <utility> // for move
    +
    8#include <vector>
    +
    9
    +
    10#include "ftxui/dom/elements.hpp" // for Element, Elements, dbox
    +
    11#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    12#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    13#include "ftxui/screen/box.hpp" // for Box
    +
    14#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18namespace {
    +
    19class DBox : public Node {
    +
    20 public:
    +
    21 explicit DBox(Elements children) : Node(std::move(children)) {}
    +
    22
    +
    23 void ComputeRequirement() override {
    +
    24 requirement_ = Requirement{};
    +
    25 for (auto& child : children_) {
    +
    26 child->ComputeRequirement();
    +
    27
    +
    28 // Propagate the focused requirement.
    +
    29 if (requirement_.focused.Prefer(child->requirement().focused)) {
    +
    30 requirement_.focused = child->requirement().focused;
    +
    31 }
    +
    32
    +
    33 // Extend the min_x and min_y to contain all the children
    +
    34 requirement_.min_x =
    +
    35 std::max(requirement_.min_x, child->requirement().min_x);
    +
    36 requirement_.min_y =
    +
    37 std::max(requirement_.min_y, child->requirement().min_y);
    +
    38 }
    +
    39 }
    +
    40
    +
    41 void SetBox(Box box) override {
    +
    42 Node::SetBox(box);
    +
    43
    +
    44 for (auto& child : children_) {
    +
    45 child->SetBox(box);
    +
    46 }
    +
    47 }
    +
    48};
    +
    49} // namespace
    +
    50
    +
    51/// @brief Stack several element on top of each other.
    +
    52/// @param children_ The input element.
    +
    53/// @return The right aligned element.
    +
    54/// @ingroup dom
    +
    +
    55Element dbox(Elements children_) {
    +
    56 return std::make_shared<DBox>(std::move(children_));
    +
    57}
    +
    +
    58
    +
    59} // namespace ftxui
    + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    Element dbox(Elements)
    Stack several element on top of each other.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2focus_8cpp.html b/src_2ftxui_2dom_2focus_8cpp.html new file mode 100644 index 000000000..eb17771b6 --- /dev/null +++ b/src_2ftxui_2dom_2focus_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + + +FTXUI: focus.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    focus.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + +

    +Functions

    Decorator focusPositionRelative (float x, float y)
     Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in proportion of the requested size.
     
    Decorator focusPosition (int x, int y)
     Used inside a frame, this force the view to be scrolled toward a a given position. The position is expressed in the numbers of cells.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2focus_8cpp.js b/src_2ftxui_2dom_2focus_8cpp.js new file mode 100644 index 000000000..88c5d8df1 --- /dev/null +++ b/src_2ftxui_2dom_2focus_8cpp.js @@ -0,0 +1,5 @@ +var src_2ftxui_2dom_2focus_8cpp = +[ + [ "focusPositionRelative", "src_2ftxui_2dom_2focus_8cpp.html#ga13befad33cb4125e2143f2af3eddcc71", null ], + [ "focusPosition", "src_2ftxui_2dom_2focus_8cpp.html#ga78447ba1ccb792963ad6d306f4ed1256", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2focus_8cpp_source.html b/src_2ftxui_2dom_2focus_8cpp_source.html new file mode 100644 index 000000000..e24deac92 --- /dev/null +++ b/src_2ftxui_2dom_2focus_8cpp_source.html @@ -0,0 +1,324 @@ + + + + + + + + +FTXUI: focus.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/focus.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Decorator, Element, focusPosition, focusPositionRelative
    +
    8#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    9#include "ftxui/dom/requirement.hpp" // for Requirement, Requirement::NORMAL, Requirement::Selection
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14/// @brief Used inside a `frame`, this force the view to be scrolled toward a
    +
    15/// a given position. The position is expressed in proportion of the requested
    +
    16/// size.
    +
    17///
    +
    18/// For instance:
    +
    19/// - (0, 0) means that the view is scrolled toward the upper left.
    +
    20/// - (1, 0) means that the view is scrolled toward the upper right.
    +
    21/// - (0, 1) means that the view is scrolled toward the bottom left.
    +
    22/// @ingroup dom
    +
    23///
    +
    24/// ### Example
    +
    25///
    +
    26/// ```cpp
    +
    27/// Element document = huge_document()
    +
    28/// | focusPositionRelative(0.f, 1.f)
    +
    29/// | frame;
    +
    30/// ```
    +
    + +
    32 class Impl : public NodeDecorator {
    +
    33 public:
    +
    34 Impl(Element child, float x, float y)
    +
    35 : NodeDecorator(std::move(child)), x_(x), y_(y) {}
    +
    36
    +
    37 void ComputeRequirement() override {
    +
    38 NodeDecorator::ComputeRequirement();
    +
    39 requirement_.focused.enabled = true;
    +
    40 requirement_.focused.node = this;
    +
    41 requirement_.focused.box.x_min = int(float(requirement_.min_x) * x_);
    +
    42 requirement_.focused.box.y_min = int(float(requirement_.min_y) * y_);
    +
    43 requirement_.focused.box.x_max = int(float(requirement_.min_x) * x_);
    +
    44 requirement_.focused.box.y_max = int(float(requirement_.min_y) * y_);
    +
    45 }
    +
    46
    +
    47 private:
    +
    48 const float x_;
    +
    49 const float y_;
    +
    50 };
    +
    51
    +
    52 return [x, y](Element child) {
    +
    53 return std::make_shared<Impl>(std::move(child), x, y);
    +
    54 };
    +
    55}
    +
    +
    56
    +
    57/// @brief Used inside a `frame`, this force the view to be scrolled toward a
    +
    58/// a given position. The position is expressed in the numbers of cells.
    +
    59///
    +
    60/// @ingroup dom
    +
    61///
    +
    62/// ### Example
    +
    63///
    +
    64/// ```cpp
    +
    65/// Element document = huge_document()
    +
    66/// | focusPosition(10, 10)
    +
    67/// | frame;
    +
    68/// ```
    +
    +
    69Decorator focusPosition(int x, int y) {
    +
    70 class Impl : public NodeDecorator {
    +
    71 public:
    +
    72 Impl(Element child, int x, int y)
    +
    73 : NodeDecorator(std::move(child)), x_(x), y_(y) {}
    +
    74
    +
    75 void ComputeRequirement() override {
    +
    76 NodeDecorator::ComputeRequirement();
    +
    77 requirement_.focused.enabled = false;
    +
    78
    +
    79 Box& box = requirement_.focused.box;
    +
    80 box.x_min = x_;
    +
    81 box.y_min = y_;
    +
    82 box.x_max = x_;
    +
    83 box.y_max = y_;
    +
    84 }
    +
    85
    +
    86 private:
    +
    87 const int x_;
    +
    88 const int y_;
    +
    89 };
    +
    90
    +
    91 return [x, y](Element child) {
    +
    92 return std::make_shared<Impl>(std::move(child), x, y);
    +
    93 };
    +
    94}
    +
    +
    95
    +
    96} // namespace ftxui
    + + + +
    Decorator focusPositionRelative(float x, float y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    Decorator focusPosition(int x, int y)
    Used inside a frame, this force the view to be scrolled toward a a given position....
    +
    int x_max
    Definition box.hpp:18
    +
    int y_min
    Definition box.hpp:19
    +
    int y_max
    Definition box.hpp:20
    +
    int x_min
    Definition box.hpp:17
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2gauge_8cpp.html b/src_2ftxui_2dom_2gauge_8cpp.html new file mode 100644 index 000000000..064289898 --- /dev/null +++ b/src_2ftxui_2dom_2gauge_8cpp.html @@ -0,0 +1,242 @@ + + + + + + + + +FTXUI: gauge.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    gauge.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    Element gaugeDirection (float progress, Direction direction)
     Draw a high definition progress bar progressing in specified direction.
     
    Element gaugeRight (float progress)
     Draw a high definition progress bar progressing from left to right.
     
    Element gaugeLeft (float progress)
     Draw a high definition progress bar progressing from right to left.
     
    Element gaugeUp (float progress)
     Draw a high definition progress bar progressing from bottom to top.
     
    Element gaugeDown (float progress)
     Draw a high definition progress bar progressing from top to bottom.
     
    Element gauge (float progress)
     Draw a high definition progress bar.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2gauge_8cpp.js b/src_2ftxui_2dom_2gauge_8cpp.js new file mode 100644 index 000000000..4cfc165ea --- /dev/null +++ b/src_2ftxui_2dom_2gauge_8cpp.js @@ -0,0 +1,9 @@ +var src_2ftxui_2dom_2gauge_8cpp = +[ + [ "gaugeDirection", "src_2ftxui_2dom_2gauge_8cpp.html#ga1265cc8a52448e1b98d7abe84a04681e", null ], + [ "gaugeRight", "src_2ftxui_2dom_2gauge_8cpp.html#ga333d781a44885ed4b5ea8444015b86f7", null ], + [ "gaugeLeft", "src_2ftxui_2dom_2gauge_8cpp.html#ga97898b9f77b3edd330eaef22fce7cf2b", null ], + [ "gaugeUp", "src_2ftxui_2dom_2gauge_8cpp.html#ga6e9a97b66c14404a2b3f95f4dae414c2", null ], + [ "gaugeDown", "src_2ftxui_2dom_2gauge_8cpp.html#gafe537f915cac5613261580bae3a8fe33", null ], + [ "gauge", "src_2ftxui_2dom_2gauge_8cpp.html#gae0b8041a60629fd790716038738c93ce", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2gauge_8cpp_source.html b/src_2ftxui_2dom_2gauge_8cpp_source.html new file mode 100644 index 000000000..9daee8219 --- /dev/null +++ b/src_2ftxui_2dom_2gauge_8cpp_source.html @@ -0,0 +1,538 @@ + + + + + + + + +FTXUI: gauge.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/gauge.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
    +
    5#include <memory> // for allocator, make_shared
    +
    6#include <string> // for string
    +
    7
    +
    8#include "ftxui/dom/elements.hpp" // for Element, gauge, gaugeDirection, gaugeDown, gaugeLeft, gaugeRight, gaugeUp
    +
    9#include "ftxui/dom/node.hpp" // for Node
    +
    10#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    11#include "ftxui/screen/box.hpp" // for Box
    +
    12#include "ftxui/screen/screen.hpp" // for Screen, Pixel
    +
    13
    +
    14namespace ftxui {
    +
    15
    +
    16namespace {
    +
    17// NOLINTNEXTLINE
    +
    18static const std::string charset_horizontal[11] = {
    +
    19#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
    +
    20 // Microsoft's terminals often use fonts not handling the 8 unicode
    +
    21 // characters for representing the whole gauge. Fallback with less.
    +
    22 " ", " ", " ", " ", "▌", "▌", "▌", "█", "█", "█",
    +
    23#else
    +
    24 " ", " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█",
    +
    25#endif
    +
    26 // An extra character in case when the fuzzer manage to have:
    +
    27 // int(9 * (limit - limit_int) = 9
    +
    28 "█"};
    +
    29
    +
    30// NOLINTNEXTLINE
    +
    31static const std::string charset_vertical[10] = {
    +
    32 "█",
    +
    33 "▇",
    +
    34 "▆",
    +
    35 "▅",
    +
    36 "▄",
    +
    37 "▃",
    +
    38 "▂",
    +
    39 "▁",
    +
    40 " ",
    +
    41 // An extra character in case when the fuzzer manage to have:
    +
    42 // int(8 * (limit - limit_int) = 8
    +
    43 " ",
    +
    44};
    +
    45
    +
    46class Gauge : public Node {
    +
    47 public:
    +
    48 Gauge(float progress, Direction direction)
    +
    49 : progress_(progress), direction_(direction) {
    +
    50 // This handle NAN correctly:
    +
    51 if (!(progress_ > 0.F)) {
    +
    52 progress_ = 0.F;
    +
    53 }
    +
    54 if (!(progress_ < 1.F)) {
    +
    55 progress_ = 1.F;
    +
    56 }
    +
    57 }
    +
    58
    +
    59 void ComputeRequirement() override {
    +
    60 switch (direction_) {
    + +
    62 case Direction::Left:
    +
    63 requirement_.flex_grow_x = 1;
    +
    64 requirement_.flex_grow_y = 0;
    +
    65 requirement_.flex_shrink_x = 1;
    +
    66 requirement_.flex_shrink_y = 0;
    +
    67 break;
    +
    68 case Direction::Up:
    +
    69 case Direction::Down:
    +
    70 requirement_.flex_grow_x = 0;
    +
    71 requirement_.flex_grow_y = 1;
    +
    72 requirement_.flex_shrink_x = 0;
    +
    73 requirement_.flex_shrink_y = 1;
    +
    74 break;
    +
    75 }
    +
    76 requirement_.min_x = 1;
    +
    77 requirement_.min_y = 1;
    +
    78 }
    +
    79
    +
    80 void Render(Screen& screen) override {
    +
    81 switch (direction_) {
    + +
    83 RenderHorizontal(screen, /*invert=*/false);
    +
    84 break;
    +
    85 case Direction::Up:
    +
    86 RenderVertical(screen, /*invert=*/false);
    +
    87 break;
    +
    88 case Direction::Left:
    +
    89 RenderHorizontal(screen, /*invert=*/true);
    +
    90 break;
    +
    91 case Direction::Down:
    +
    92 RenderVertical(screen, /*invert=*/true);
    +
    93 break;
    +
    94 }
    +
    95 }
    +
    96
    +
    97 void RenderHorizontal(Screen& screen, bool invert) {
    +
    98 const int y = box_.y_min;
    +
    99 if (y > box_.y_max) {
    +
    100 return;
    +
    101 }
    +
    102
    +
    103 // Draw the progress bar horizontally.
    +
    104 {
    +
    105 const float progress = invert ? 1.F - progress_ : progress_;
    +
    106 const auto limit =
    +
    107 float(box_.x_min) + progress * float(box_.x_max - box_.x_min + 1);
    +
    108 const int limit_int = static_cast<int>(limit);
    +
    109 int x = box_.x_min;
    +
    110 while (x < limit_int) {
    +
    111 screen.at(x++, y) = charset_horizontal[9]; // NOLINT
    +
    112 }
    +
    113 // NOLINTNEXTLINE
    +
    114 screen.at(x++, y) = charset_horizontal[int(9 * (limit - limit_int))];
    +
    115 while (x <= box_.x_max) {
    +
    116 screen.at(x++, y) = charset_horizontal[0];
    +
    117 }
    +
    118 }
    +
    119
    +
    120 if (invert) {
    +
    121 for (int x = box_.x_min; x <= box_.x_max; x++) {
    +
    122 screen.PixelAt(x, y).inverted ^= true;
    +
    123 }
    +
    124 }
    +
    125 }
    +
    126
    +
    127 void RenderVertical(Screen& screen, bool invert) {
    +
    128 const int x = box_.x_min;
    +
    129 if (x > box_.x_max) {
    +
    130 return;
    +
    131 }
    +
    132
    +
    133 // Draw the progress bar vertically:
    +
    134 {
    +
    135 const float progress = invert ? progress_ : 1.F - progress_;
    +
    136 const float limit =
    +
    137 float(box_.y_min) + progress * float(box_.y_max - box_.y_min + 1);
    +
    138 const int limit_int = static_cast<int>(limit);
    +
    139 int y = box_.y_min;
    +
    140 while (y < limit_int) {
    +
    141 screen.at(x, y++) = charset_vertical[8]; // NOLINT
    +
    142 }
    +
    143 // NOLINTNEXTLINE
    +
    144 screen.at(x, y++) = charset_vertical[int(8 * (limit - limit_int))];
    +
    145 while (y <= box_.y_max) {
    +
    146 screen.at(x, y++) = charset_vertical[0];
    +
    147 }
    +
    148 }
    +
    149
    +
    150 if (invert) {
    +
    151 for (int y = box_.y_min; y <= box_.y_max; y++) {
    +
    152 screen.PixelAt(x, y).inverted ^= true;
    +
    153 }
    +
    154 }
    +
    155 }
    +
    156
    +
    157 private:
    +
    158 float progress_;
    +
    159 Direction direction_;
    +
    160};
    +
    161
    +
    162} // namespace
    +
    163
    +
    164/// @brief Draw a high definition progress bar progressing in specified
    +
    165/// direction.
    +
    166/// @param progress The proportion of the area to be filled. Belong to [0,1].
    +
    167/// @param direction Direction of progress bars progression.
    +
    168/// @ingroup dom
    +
    +
    169Element gaugeDirection(float progress, Direction direction) {
    +
    170 return std::make_shared<Gauge>(progress, direction);
    +
    171}
    +
    +
    172
    +
    173/// @brief Draw a high definition progress bar progressing from left to right.
    +
    174/// @param progress The proportion of the area to be filled. Belong to [0,1].
    +
    175/// @ingroup dom
    +
    176///
    +
    177/// ### Example
    +
    178///
    +
    179/// A gauge. It can be used to represent a progress bar.
    +
    180/// ~~~cpp
    +
    181/// border(gaugeRight(0.5))
    +
    182/// ~~~
    +
    183///
    +
    184/// #### Output
    +
    185///
    +
    186/// ~~~bash
    +
    187/// ┌──────────────────────────────────────────────────────────────────────────┐
    +
    188/// │█████████████████████████████████████ │
    +
    189/// └──────────────────────────────────────────────────────────────────────────┘
    +
    190/// ~~~
    +
    +
    191Element gaugeRight(float progress) {
    +
    192 return gaugeDirection(progress, Direction::Right);
    +
    193}
    +
    +
    194
    +
    195/// @brief Draw a high definition progress bar progressing from right to left.
    +
    196/// @param progress The proportion of the area to be filled. Belong to [0,1].
    +
    197/// @ingroup dom
    +
    198///
    +
    199/// ### Example
    +
    200///
    +
    201/// A gauge. It can be used to represent a progress bar.
    +
    202/// ~~~cpp
    +
    203/// border(gaugeLeft(0.5))
    +
    204/// ~~~
    +
    205///
    +
    206/// #### Output
    +
    207///
    +
    208/// ~~~bash
    +
    209/// ┌──────────────────────────────────────────────────────────────────────────┐
    +
    210/// │ █████████████████████████████████████│
    +
    211/// └──────────────────────────────────────────────────────────────────────────┘
    +
    212/// ~~~
    +
    +
    213Element gaugeLeft(float progress) {
    +
    214 return gaugeDirection(progress, Direction::Left);
    +
    215}
    +
    +
    216
    +
    217/// @brief Draw a high definition progress bar progressing from bottom to top.
    +
    218/// @param progress The proportion of the area to be filled. Belong to [0,1].
    +
    219/// @ingroup dom
    +
    220///
    +
    221/// ### Example
    +
    222///
    +
    223/// A gauge. It can be used to represent a progress bar.
    +
    224/// ~~~cpp
    +
    225/// border(gaugeUp(0.5))
    +
    226/// ~~~
    +
    227///
    +
    228/// #### Output
    +
    229///
    +
    230/// ~~~bash
    +
    231/// ┌─┐
    +
    232/// │ │
    +
    233/// │ │
    +
    234/// │ │
    +
    235/// │ │
    +
    236/// │█│
    +
    237/// │█│
    +
    238/// │█│
    +
    239/// │█│
    +
    240/// └─┘
    +
    241/// ~~~
    +
    +
    242Element gaugeUp(float progress) {
    +
    243 return gaugeDirection(progress, Direction::Up);
    +
    244}
    +
    +
    245
    +
    246/// @brief Draw a high definition progress bar progressing from top to bottom.
    +
    247/// @param progress The proportion of the area to be filled. Belong to [0,1].
    +
    248/// @ingroup dom
    +
    249///
    +
    250/// ### Example
    +
    251///
    +
    252/// A gauge. It can be used to represent a progress bar.
    +
    253/// ~~~cpp
    +
    254/// border(gaugeDown(0.5))
    +
    255/// ~~~
    +
    256///
    +
    257/// #### Output
    +
    258///
    +
    259/// ~~~bash
    +
    260/// ┌─┐
    +
    261/// │█│
    +
    262/// │█│
    +
    263/// │█│
    +
    264/// │█│
    +
    265/// │ │
    +
    266/// │ │
    +
    267/// │ │
    +
    268/// │ │
    +
    269/// └─┘
    +
    270/// ~~~
    +
    +
    271Element gaugeDown(float progress) {
    +
    272 return gaugeDirection(progress, Direction::Down);
    +
    273}
    +
    +
    274
    +
    275/// @brief Draw a high definition progress bar.
    +
    276/// @param progress The proportion of the area to be filled. Belong to [0,1].
    +
    277/// @ingroup dom
    +
    278///
    +
    279/// ### Example
    +
    280///
    +
    281/// A gauge. It can be used to represent a progress bar.
    +
    282/// ~~~cpp
    +
    283/// border(gauge(0.5))
    +
    284/// ~~~
    +
    285///
    +
    286/// #### Output
    +
    287///
    +
    288/// ~~~bash
    +
    289/// ┌──────────────────────────────────────────────────────────────────────────┐
    +
    290/// │█████████████████████████████████████ │
    +
    291/// └──────────────────────────────────────────────────────────────────────────┘
    +
    292/// ~~~
    +
    +
    293Element gauge(float progress) {
    +
    294 return gaugeRight(progress);
    +
    295}
    +
    +
    296
    +
    297} // namespace ftxui
    + + + +
    Element gaugeDirection(float progress, Direction direction)
    Draw a high definition progress bar progressing in specified direction.
    +
    Direction
    Direction is an enumeration that represents the four cardinal directions.
    Definition direction.hpp:13
    +
    Element gaugeRight(float progress)
    Draw a high definition progress bar progressing from left to right.
    +
    Element gaugeUp(float progress)
    Draw a high definition progress bar progressing from bottom to top.
    +
    Element gaugeLeft(float progress)
    Draw a high definition progress bar progressing from right to left.
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Element gauge(float progress)
    Draw a high definition progress bar.
    +
    Element gaugeDown(float progress)
    Draw a high definition progress bar progressing from top to bottom.
    + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2graph_8cpp.html b/src_2ftxui_2dom_2graph_8cpp.html new file mode 100644 index 000000000..bf6f3f8ad --- /dev/null +++ b/src_2ftxui_2dom_2graph_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: graph.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    graph.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element graph (GraphFunction graph_function)
     Draw a graph using a GraphFunction.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2graph_8cpp.js b/src_2ftxui_2dom_2graph_8cpp.js new file mode 100644 index 000000000..ab64dcf4c --- /dev/null +++ b/src_2ftxui_2dom_2graph_8cpp.js @@ -0,0 +1,4 @@ +var src_2ftxui_2dom_2graph_8cpp = +[ + [ "graph", "src_2ftxui_2dom_2graph_8cpp.html#ae78c2b2b147e65701493465f8e3f4d89", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2graph_8cpp_source.html b/src_2ftxui_2dom_2graph_8cpp_source.html new file mode 100644 index 000000000..3fd506475 --- /dev/null +++ b/src_2ftxui_2dom_2graph_8cpp_source.html @@ -0,0 +1,296 @@ + + + + + + + + +FTXUI: graph.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/graph.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <memory> // for allocator, make_shared
    +
    6#include <string> // for string
    +
    7#include <utility> // for move
    +
    8#include <vector> // for vector
    +
    9
    +
    10#include "ftxui/dom/elements.hpp" // for GraphFunction, Element, graph
    +
    11#include "ftxui/dom/node.hpp" // for Node
    +
    12#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    13#include "ftxui/screen/box.hpp" // for Box
    +
    14#include "ftxui/screen/screen.hpp" // for Screen
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18namespace {
    +
    19// NOLINTNEXTLINE
    +
    20static std::string charset[] =
    +
    21#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
    +
    22 // Microsoft's terminals often use fonts not handling the 8 unicode
    +
    23 // characters for representing the whole graph. Fallback with less.
    +
    24 {" ", " ", "█", " ", "█", "█", "█", "█", "█"};
    +
    25#else
    +
    26 {" ", "▗", "▐", "▖", "▄", "▟", "▌", "▙", "█"};
    +
    27#endif
    +
    28
    +
    29class Graph : public Node {
    +
    30 public:
    +
    31 explicit Graph(GraphFunction graph_function)
    +
    32 : graph_function_(std::move(graph_function)) {}
    +
    33
    +
    34 void ComputeRequirement() override {
    +
    35 requirement_.flex_grow_x = 1;
    +
    36 requirement_.flex_grow_y = 1;
    +
    37 requirement_.flex_shrink_x = 1;
    +
    38 requirement_.flex_shrink_y = 1;
    +
    39 requirement_.min_x = 3;
    +
    40 requirement_.min_y = 3;
    +
    41 }
    +
    42
    +
    43 void Render(Screen& screen) override {
    +
    44 const int width = (box_.x_max - box_.x_min + 1) * 2;
    +
    45 const int height = (box_.y_max - box_.y_min + 1) * 2;
    +
    46 if (width <= 0 || height <= 0) {
    +
    47 return;
    +
    48 }
    +
    49 auto data = graph_function_(width, height);
    +
    50 int i = 0;
    +
    51 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    52 const int height_1 = 2 * box_.y_max - data[i++];
    +
    53 const int height_2 = 2 * box_.y_max - data[i++];
    +
    54 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    55 const int yy = 2 * y;
    +
    56 int i_1 = yy < height_1 ? 0 : yy == height_1 ? 3 : 6; // NOLINT
    +
    57 int i_2 = yy < height_2 ? 0 : yy == height_2 ? 1 : 2; // NOLINT
    +
    58 screen.at(x, y) = charset[i_1 + i_2]; // NOLINT
    +
    59 }
    +
    60 }
    +
    61 }
    +
    62
    +
    63 private:
    +
    64 GraphFunction graph_function_;
    +
    65};
    +
    66
    +
    67} // namespace
    +
    68
    +
    69/// @brief Draw a graph using a GraphFunction.
    +
    70/// @param graph_function the function to be called to get the data.
    +
    +
    71Element graph(GraphFunction graph_function) {
    +
    72 return std::make_shared<Graph>(std::move(graph_function));
    +
    73}
    +
    +
    74
    +
    75} // namespace ftxui
    + + +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::function< std::vector< int >(int, int)> GraphFunction
    Definition elements.hpp:25
    +
    Element graph(GraphFunction)
    Draw a graph using a GraphFunction.
    + + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2gridbox_8cpp.html b/src_2ftxui_2dom_2gridbox_8cpp.html new file mode 100644 index 000000000..254a84d0a --- /dev/null +++ b/src_2ftxui_2dom_2gridbox_8cpp.html @@ -0,0 +1,276 @@ + + + + + + + + +FTXUI: gridbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    gridbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element gridbox (std::vector< Elements > lines)
     A container displaying a grid of elements.
     
    +

    Variable Documentation

    + +

    ◆ x_size

    + +
    +
    + + + + +
    int x_size = 0
    +
    + +

    Definition at line 141 of file src/ftxui/dom/gridbox.cpp.

    + +
    +
    + +

    ◆ y_size

    + +
    +
    + + + + +
    int y_size = 0
    +
    + +

    Definition at line 142 of file src/ftxui/dom/gridbox.cpp.

    + +
    +
    + +

    ◆ lines_

    + +
    +
    + + + + +
    std::vector<Elements> lines_
    +
    + +

    Definition at line 143 of file src/ftxui/dom/gridbox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2gridbox_8cpp.js b/src_2ftxui_2dom_2gridbox_8cpp.js new file mode 100644 index 000000000..9623c705a --- /dev/null +++ b/src_2ftxui_2dom_2gridbox_8cpp.js @@ -0,0 +1,7 @@ +var src_2ftxui_2dom_2gridbox_8cpp = +[ + [ "gridbox", "src_2ftxui_2dom_2gridbox_8cpp.html#abcdf409d605edafd3191cd7ba47bcbd1", null ], + [ "x_size", "src_2ftxui_2dom_2gridbox_8cpp.html#aa84601b56e801ce086fd86309a13e695", null ], + [ "y_size", "src_2ftxui_2dom_2gridbox_8cpp.html#a99e442a053babaa64367447a56138823", null ], + [ "lines_", "src_2ftxui_2dom_2gridbox_8cpp.html#a14d0ca68485bdef40e820b3bd755deb7", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2gridbox_8cpp_source.html b/src_2ftxui_2dom_2gridbox_8cpp_source.html new file mode 100644 index 000000000..75d990fb4 --- /dev/null +++ b/src_2ftxui_2dom_2gridbox_8cpp_source.html @@ -0,0 +1,399 @@ + + + + + + + + +FTXUI: gridbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/gridbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max, min
    +
    5#include <cstddef> // for size_t
    +
    6#include <memory> // for __shared_ptr_access, shared_ptr, make_shared, allocator_traits<>::value_type
    +
    7#include <utility> // for move
    +
    8#include <vector> // for vector, __alloc_traits<>::value_type
    +
    9
    +
    10#include "ftxui/dom/box_helper.hpp" // for Element, Compute
    +
    11#include "ftxui/dom/elements.hpp" // for Elements, filler, Element, gridbox
    +
    12#include "ftxui/dom/node.hpp" // for Node
    +
    13#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    14#include "ftxui/screen/box.hpp" // for Box
    +
    15
    +
    16namespace ftxui {
    +
    17class Screen;
    +
    18
    +
    19namespace {
    +
    20
    +
    21// Accumulate the values of a list U[n] into v[n]. So that:
    +
    22// V[0] = 0;
    +
    23// V[n+1] = v[n] + U[n]
    +
    24// return the sum of U[n].
    +
    25int Integrate(std::vector<int>& elements) {
    +
    26 int accu = 0;
    +
    27 for (auto& i : elements) {
    +
    28 const int old_accu = accu;
    +
    29 accu += i;
    +
    30 i = old_accu;
    +
    31 }
    +
    32 return accu;
    +
    33}
    +
    34
    +
    35class GridBox : public Node {
    +
    36 public:
    +
    37 explicit GridBox(std::vector<Elements> lines) : lines_(std::move(lines)) {
    +
    38 y_size = static_cast<int>(lines_.size());
    +
    39 for (const auto& line : lines_) {
    +
    40 x_size = std::max(x_size, int(line.size()));
    +
    41 }
    +
    42
    +
    43 // Fill in empty cells, in case the user did not used the API correctly:
    +
    44 for (auto& line : lines_) {
    +
    45 while (line.size() < size_t(x_size)) {
    +
    46 line.push_back(filler());
    +
    47 }
    +
    48 }
    +
    49 }
    +
    50
    +
    51 void ComputeRequirement() override {
    +
    52 requirement_ = Requirement{};
    +
    53 for (auto& line : lines_) {
    +
    54 for (auto& cell : line) {
    +
    55 cell->ComputeRequirement();
    +
    56 }
    +
    57 }
    +
    58
    +
    59 // Compute the size of each columns/row.
    +
    60 std::vector<int> size_x(x_size, 0);
    +
    61 std::vector<int> size_y(y_size, 0);
    +
    62 for (int x = 0; x < x_size; ++x) {
    +
    63 for (int y = 0; y < y_size; ++y) {
    +
    64 size_x[x] = std::max(size_x[x], lines_[y][x]->requirement().min_x);
    +
    65 size_y[y] = std::max(size_y[y], lines_[y][x]->requirement().min_y);
    +
    66 }
    +
    67 }
    +
    68
    +
    69 requirement_.min_x = Integrate(size_x);
    +
    70 requirement_.min_y = Integrate(size_y);
    +
    71
    +
    72 // Forward the focused/focused child state:
    +
    73 for (int x = 0; x < x_size; ++x) {
    +
    74 for (int y = 0; y < y_size; ++y) {
    +
    75 if (requirement_.focused.enabled ||
    +
    76 !lines_[y][x]->requirement().focused.enabled) {
    +
    77 continue;
    +
    78 }
    +
    79 requirement_.focused = lines_[y][x]->requirement().focused;
    +
    80 requirement_.focused.box.Shift(size_x[x], size_y[y]);
    +
    81 }
    +
    82 }
    +
    83 }
    +
    84
    +
    85 void SetBox(Box box) override {
    +
    86 Node::SetBox(box);
    +
    87
    +
    88 box_helper::Element init;
    +
    89 init.min_size = 0;
    +
    90 init.flex_grow = 1024; // NOLINT
    +
    91 init.flex_shrink = 1024; // NOLINT
    +
    92 std::vector<box_helper::Element> elements_x(x_size, init);
    +
    93 std::vector<box_helper::Element> elements_y(y_size, init);
    +
    94
    +
    95 for (int y = 0; y < y_size; ++y) {
    +
    96 for (int x = 0; x < x_size; ++x) {
    +
    97 const auto& cell = lines_[y][x];
    +
    98 const auto& requirement = cell->requirement();
    +
    99 auto& e_x = elements_x[x];
    +
    100 auto& e_y = elements_y[y];
    +
    101 e_x.min_size = std::max(e_x.min_size, requirement.min_x);
    +
    102 e_y.min_size = std::max(e_y.min_size, requirement.min_y);
    +
    103 e_x.flex_grow = std::min(e_x.flex_grow, requirement.flex_grow_x);
    +
    104 e_y.flex_grow = std::min(e_y.flex_grow, requirement.flex_grow_y);
    +
    105 e_x.flex_shrink = std::min(e_x.flex_shrink, requirement.flex_shrink_x);
    +
    106 e_y.flex_shrink = std::min(e_y.flex_shrink, requirement.flex_shrink_y);
    +
    107 }
    +
    108 }
    +
    109
    +
    110 const int target_size_x = box.x_max - box.x_min + 1;
    +
    111 const int target_size_y = box.y_max - box.y_min + 1;
    +
    112 box_helper::Compute(&elements_x, target_size_x);
    +
    113 box_helper::Compute(&elements_y, target_size_y);
    +
    114
    +
    115 Box box_y = box;
    +
    116 int y = box_y.y_min;
    +
    117 for (int iy = 0; iy < y_size; ++iy) {
    +
    118 box_y.y_min = y;
    +
    119 y += elements_y[iy].size;
    +
    120 box_y.y_max = y - 1;
    +
    121
    +
    122 Box box_x = box_y;
    +
    123 int x = box_x.x_min;
    +
    124 for (int ix = 0; ix < x_size; ++ix) {
    +
    125 box_x.x_min = x;
    +
    126 x += elements_x[ix].size;
    +
    127 box_x.x_max = x - 1;
    +
    128 lines_[iy][ix]->SetBox(box_x);
    +
    129 }
    +
    130 }
    +
    131 }
    +
    132
    +
    133 void Render(Screen& screen) override {
    +
    134 for (auto& line : lines_) {
    +
    135 for (auto& cell : line) {
    +
    136 cell->Render(screen);
    +
    137 }
    +
    138 }
    +
    139 }
    +
    140
    +
    141 int x_size = 0;
    +
    142 int y_size = 0;
    +
    143 std::vector<Elements> lines_;
    +
    144};
    +
    145} // namespace
    +
    146 //
    +
    147/// @brief A container displaying a grid of elements.
    +
    148/// @param lines A list of lines, each line being a list of elements.
    +
    149/// @return The container.
    +
    150///
    +
    151/// #### Example
    +
    152///
    +
    153/// ```cpp
    +
    154/// auto cell = [](const char* t) { return text(t) | border; };
    +
    155/// auto document = gridbox({
    +
    156/// {cell("north-west") , cell("north") , cell("north-east")} ,
    +
    157/// {cell("west") , cell("center") , cell("east")} ,
    +
    158/// {cell("south-west") , cell("south") , cell("south-east")} ,
    +
    159/// });
    +
    160/// ```
    +
    161/// Output:
    +
    162/// ```
    +
    163/// ╭──────────╮╭──────╮╭──────────╮
    +
    164/// │north-west││north ││north-east│
    +
    165/// ╰──────────╯╰──────╯╰──────────╯
    +
    166/// ╭──────────╮╭──────╮╭──────────╮
    +
    167/// │west ││center││east │
    +
    168/// ╰──────────╯╰──────╯╰──────────╯
    +
    169/// ╭──────────╮╭──────╮╭──────────╮
    +
    170/// │south-west││south ││south-east│
    +
    171/// ╰──────────╯╰──────╯╰──────────╯
    +
    172/// ```
    +
    +
    173Element gridbox(std::vector<Elements> lines) {
    +
    174 return std::make_shared<GridBox>(std::move(lines));
    +
    175}
    +
    +
    176
    +
    177} // namespace ftxui
    + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element gridbox(std::vector< Elements > lines)
    A container displaying a grid of elements.
    + + +
    std::vector< Elements > lines_
    + + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2linear__gradient_8cpp.html b/src_2ftxui_2dom_2linear__gradient_8cpp.html new file mode 100644 index 000000000..f965c1dd0 --- /dev/null +++ b/src_2ftxui_2dom_2linear__gradient_8cpp.html @@ -0,0 +1,285 @@ + + + + + + + + +FTXUI: linear_gradient.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    linear_gradient.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + +

    +Functions

    Element color (const LinearGradient &gradient, Element child)
     Set the foreground color of an element with linear-gradient effect.
     
    Element bgcolor (const LinearGradient &gradient, Element child)
     Set the background color of an element with linear-gradient effect.
     
    Decorator color (const LinearGradient &gradient)
     Decorate using a linear-gradient effect on the foreground color.
     
    Decorator bgcolor (const LinearGradient &gradient)
     Decorate using a linear-gradient effect on the background color.
     
    +

    Variable Documentation

    + +

    ◆ angle

    + +
    +
    + + + + +
    float angle = 0.F
    +
    + +

    Definition at line 23 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ colors

    + +
    +
    + + + + +
    std::vector<Color> colors
    +
    + +

    Definition at line 24 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    + +

    ◆ positions

    + +
    +
    + + + + +
    std::vector<float> positions
    +
    + +

    Definition at line 25 of file src/ftxui/dom/linear_gradient.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2linear__gradient_8cpp.js b/src_2ftxui_2dom_2linear__gradient_8cpp.js new file mode 100644 index 000000000..d3a6de535 --- /dev/null +++ b/src_2ftxui_2dom_2linear__gradient_8cpp.js @@ -0,0 +1,10 @@ +var src_2ftxui_2dom_2linear__gradient_8cpp = +[ + [ "color", "src_2ftxui_2dom_2linear__gradient_8cpp.html#ga050df9c8ed04eec13309d6c0542c636d", null ], + [ "bgcolor", "src_2ftxui_2dom_2linear__gradient_8cpp.html#gaaac1622d43662a6a02113d9230a4fdd4", null ], + [ "color", "src_2ftxui_2dom_2linear__gradient_8cpp.html#ga8af6b5a06b03fd53bf30a6b050b96968", null ], + [ "bgcolor", "src_2ftxui_2dom_2linear__gradient_8cpp.html#gaee41f3eaff28a123214e81231f8f4593", null ], + [ "angle", "src_2ftxui_2dom_2linear__gradient_8cpp.html#ab8ef1bf8a70cc07c6d55823c390a7e76", null ], + [ "colors", "src_2ftxui_2dom_2linear__gradient_8cpp.html#ac3290ba0758760ac0d6df01f7707dd94", null ], + [ "positions", "src_2ftxui_2dom_2linear__gradient_8cpp.html#af3fd42b7427cb742f96e7ec3244fb7cf", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2linear__gradient_8cpp_source.html b/src_2ftxui_2dom_2linear__gradient_8cpp_source.html new file mode 100644 index 000000000..d1a7a1f7a --- /dev/null +++ b/src_2ftxui_2dom_2linear__gradient_8cpp_source.html @@ -0,0 +1,549 @@ + + + + + + + + +FTXUI: linear_gradient.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/linear_gradient.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max, min, sort, copy
    +
    5#include <cmath> // for fmod, cos, sin
    +
    6#include <cstddef> // for size_t
    +
    7#include <ftxui/dom/linear_gradient.hpp> // for LinearGradient::Stop, LinearGradient
    +
    8#include <memory> // for allocator_traits<>::value_type, make_shared
    +
    9#include <optional> // for optional, operator!=, operator<
    +
    10#include <utility> // for move
    +
    11#include <vector> // for vector
    +
    12
    +
    13#include "ftxui/dom/elements.hpp" // for Element, Decorator, bgcolor, color
    +
    14#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    15#include "ftxui/screen/box.hpp" // for Box
    +
    16#include "ftxui/screen/color.hpp" // for Color, Color::Default, Color::Blue
    +
    17#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    18
    +
    19namespace ftxui {
    +
    20namespace {
    +
    21
    +
    22struct LinearGradientNormalized {
    +
    23 float angle = 0.F;
    +
    24 std::vector<Color> colors;
    +
    25 std::vector<float> positions; // Sorted.
    +
    26};
    +
    27
    +
    28// Convert a LinearGradient to a normalized version.
    +
    29LinearGradientNormalized Normalize(LinearGradient gradient) {
    +
    30 // Handle gradient of size 0.
    +
    31 if (gradient.stops.empty()) {
    +
    32 return LinearGradientNormalized{
    +
    33 0.F,
    + +
    35 {0.F, 1.F},
    +
    36 };
    +
    37 }
    +
    38
    +
    39 // Fill in the two extent, if not provided.
    +
    40 if (!gradient.stops.front().position) {
    +
    41 gradient.stops.front().position = 0.F;
    +
    42 }
    +
    43 if (!gradient.stops.back().position) {
    +
    44 gradient.stops.back().position = 1.F;
    +
    45 }
    +
    46
    +
    47 // Fill in the blank, by interpolating positions.
    +
    48 size_t last_checkpoint = 0;
    +
    49 for (size_t i = 1; i < gradient.stops.size(); ++i) {
    +
    50 if (!gradient.stops[i].position) {
    +
    51 continue;
    +
    52 }
    +
    53
    +
    54 if (i - last_checkpoint >= 2) {
    +
    55 const float min = gradient.stops[i].position.value(); // NOLINT
    +
    56 const float max =
    +
    57 gradient.stops[last_checkpoint].position.value(); // NOLINT
    +
    58 for (size_t j = last_checkpoint + 1; j < i; ++j) {
    +
    59 gradient.stops[j].position = min + (max - min) *
    +
    60 float(j - last_checkpoint) /
    +
    61 float(i - last_checkpoint);
    +
    62 }
    +
    63 }
    +
    64
    +
    65 last_checkpoint = i;
    +
    66 }
    +
    67
    +
    68 // Sort the stops by position.
    +
    69 std::sort(
    +
    70 gradient.stops.begin(), gradient.stops.end(),
    +
    71 [](const auto& a, const auto& b) { return a.position < b.position; });
    +
    72
    +
    73 // If we don't being with zero, add a stop at zero.
    +
    74 if (gradient.stops.front().position != 0) {
    +
    75 gradient.stops.insert(gradient.stops.begin(),
    +
    76 {gradient.stops.front().color, 0.F});
    +
    77 }
    +
    78 // If we don't end with one, add a stop at one.
    +
    79 if (gradient.stops.back().position != 1) {
    +
    80 gradient.stops.push_back({gradient.stops.back().color, 1.F});
    +
    81 }
    +
    82
    +
    83 // Normalize the angle.
    +
    84 LinearGradientNormalized normalized;
    +
    85 const float modulo = 360.F;
    +
    86 normalized.angle =
    +
    87 std::fmod(std::fmod(gradient.angle, modulo) + modulo, modulo);
    +
    88 for (auto& stop : gradient.stops) {
    +
    89 normalized.colors.push_back(stop.color);
    +
    90 // NOLINTNEXTLINE
    +
    91 normalized.positions.push_back(stop.position.value());
    +
    92 }
    +
    93 return normalized;
    +
    94}
    +
    95
    +
    96Color Interpolate(const LinearGradientNormalized& gradient, float t) {
    +
    97 // Find the right color in the gradient's stops.
    +
    98 size_t i = 1;
    +
    99 while (true) {
    +
    100 // Note that `t` might be slightly greater than 1.0 due to floating point
    +
    101 // precision. This is why we need to handle the case where `t` is greater
    +
    102 // than the last stop's position.
    +
    103 // See https://github.com/ArthurSonzogni/FTXUI/issues/998
    +
    104 if (i >= gradient.positions.size()) {
    +
    105 const float half = 0.5F;
    +
    106 return Color::Interpolate(half, gradient.colors.back(),
    +
    107 gradient.colors.back());
    +
    108 }
    +
    109 if (t <= gradient.positions[i]) {
    +
    110 break;
    +
    111 }
    +
    112 ++i;
    +
    113 }
    +
    114
    +
    115 const float t0 = gradient.positions[i - 1];
    +
    116 const float t1 = gradient.positions[i - 0];
    +
    117 const float tt = (t - t0) / (t1 - t0);
    +
    118
    +
    119 const Color& c0 = gradient.colors[i - 1];
    +
    120 const Color& c1 = gradient.colors[i - 0];
    +
    121 const Color& cc = Color::Interpolate(tt, c0, c1);
    +
    122
    +
    123 return cc;
    +
    124}
    +
    125
    +
    126class LinearGradientColor : public NodeDecorator {
    +
    127 public:
    +
    128 explicit LinearGradientColor(Element child,
    +
    129 const LinearGradient& gradient,
    +
    130 bool background_color)
    +
    131 : NodeDecorator(std::move(child)),
    +
    132 gradient_(Normalize(gradient)),
    +
    133 background_color_{background_color} {}
    +
    134
    +
    135 private:
    +
    136 void Render(Screen& screen) override {
    +
    137 const float degtorad = 0.01745329251F;
    +
    138 const float dx = std::cos(gradient_.angle * degtorad);
    +
    139 const float dy = std::sin(gradient_.angle * degtorad);
    +
    140
    +
    141 // Project every corner to get the extent of the gradient.
    +
    142 const float p1 = float(box_.x_min) * dx + float(box_.y_min) * dy;
    +
    143 const float p2 = float(box_.x_min) * dx + float(box_.y_max) * dy;
    +
    144 const float p3 = float(box_.x_max) * dx + float(box_.y_min) * dy;
    +
    145 const float p4 = float(box_.x_max) * dx + float(box_.y_max) * dy;
    +
    146 const float min = std::min({p1, p2, p3, p4});
    +
    147 const float max = std::max({p1, p2, p3, p4});
    +
    148
    +
    149 // Renormalize the projection to [0, 1] using the extent and projective
    +
    150 // geometry.
    +
    151 const float dX = dx / (max - min);
    +
    152 const float dY = dy / (max - min);
    +
    153 const float dZ = -min / (max - min);
    +
    154
    +
    155 // Project every pixel to get the color.
    +
    156 if (background_color_) {
    +
    157 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    158 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    159 const float t = float(x) * dX + float(y) * dY + dZ;
    +
    160 screen.PixelAt(x, y).background_color = Interpolate(gradient_, t);
    +
    161 }
    +
    162 }
    +
    163 } else {
    +
    164 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    165 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    166 const float t = float(x) * dX + float(y) * dY + dZ;
    +
    167 screen.PixelAt(x, y).foreground_color = Interpolate(gradient_, t);
    +
    168 }
    +
    169 }
    +
    170 }
    +
    171
    +
    172 NodeDecorator::Render(screen);
    +
    173 }
    +
    174
    +
    175 LinearGradientNormalized gradient_;
    +
    176 bool background_color_;
    +
    177};
    +
    178
    +
    179} // namespace
    +
    180
    +
    181/// @brief Build the "empty" gradient. This is often followed by calls to
    +
    182/// LinearGradient::Angle() and LinearGradient::Stop().
    +
    183/// Example:
    +
    184/// ```cpp
    +
    185/// auto gradient =
    +
    186/// LinearGradient()
    +
    187/// .Angle(45)
    +
    188/// .Stop(Color::Red, 0.0)
    +
    189/// .Stop(Color::Green, 0.5)
    +
    190/// .Stop(Color::Blue, 1.0);;
    +
    191/// ```
    + +
    193
    +
    194/// @brief Build a gradient with two colors.
    +
    195/// @param begin The color at the beginning of the gradient.
    +
    196/// @param end The color at the end of the gradient.
    +
    + +
    198 : LinearGradient(0, begin, end) {}
    +
    +
    199
    +
    200/// @brief Build a gradient with two colors and an angle.
    +
    201/// @param a The angle of the gradient.
    +
    202/// @param begin The color at the beginning of the gradient.
    +
    203/// @param end The color at the end of the gradient.
    +
    + +
    205 stops.push_back({begin, {}});
    +
    206 stops.push_back({end, {}});
    +
    207}
    +
    +
    208
    +
    209/// @brief Set the angle of the gradient.
    +
    210/// @param a The angle of the gradient.
    +
    211/// @return The gradient.
    +
    + +
    213 angle = a;
    +
    214 return *this;
    +
    215}
    +
    +
    216
    +
    217/// @brief Add a color stop to the gradient.
    +
    218/// @param c The color of the stop.
    +
    219/// @param p The position of the stop.
    +
    + +
    221 stops.push_back({c, p});
    +
    222 return *this;
    +
    223}
    +
    +
    224
    +
    225/// @brief Add a color stop to the gradient.
    +
    226/// @param c The color of the stop.
    +
    227/// @return The gradient.
    +
    228/// @note The position of the stop is interpolated from nearby stops.
    +
    + +
    230 stops.push_back({c, {}});
    +
    231 return *this;
    +
    232}
    +
    +
    233
    +
    234/// @brief Set the foreground color of an element with linear-gradient effect.
    +
    235/// @param gradient The gradient effect to be applied on the output element.
    +
    236/// @param child The input element.
    +
    237/// @return The output element colored.
    +
    238/// @ingroup dom
    +
    239///
    +
    240/// ### Example
    +
    241///
    +
    242/// ```cpp
    +
    243/// color(LinearGradient{0, {Color::Red, Color::Blue}}, text("Hello"))
    +
    244/// ```
    +
    +
    245Element color(const LinearGradient& gradient, Element child) {
    +
    246 return std::make_shared<LinearGradientColor>(std::move(child), gradient,
    +
    247 /*background_color*/ false);
    +
    248}
    +
    +
    249
    +
    250/// @brief Set the background color of an element with linear-gradient effect.
    +
    251/// @param gradient The gradient effect to be applied on the output element.
    +
    252/// @param child The input element.
    +
    253/// @return The output element colored.
    +
    254/// @ingroup dom
    +
    255///
    +
    256/// ### Example
    +
    257///
    +
    258/// ```cpp
    +
    259/// bgcolor(LinearGradient{0, {Color::Red, Color::Blue}}, text("Hello"))
    +
    260/// ```
    +
    +
    261Element bgcolor(const LinearGradient& gradient, Element child) {
    +
    262 return std::make_shared<LinearGradientColor>(std::move(child), gradient,
    +
    263 /*background_color*/ true);
    +
    264}
    +
    +
    265
    +
    266/// @brief Decorate using a linear-gradient effect on the foreground color.
    +
    267/// @param gradient The gradient effect to be applied on the output element.
    +
    268/// @return The Decorator applying the color.
    +
    269/// @ingroup dom
    +
    270///
    +
    271/// ### Example
    +
    272///
    +
    273/// ```cpp
    +
    274/// text("Hello") | color(LinearGradient{0, {Color::Red, Color::Blue}})
    +
    275/// ```
    +
    + +
    277 return
    +
    278 [gradient](Element child) { return color(gradient, std::move(child)); };
    +
    279}
    +
    +
    280
    +
    281/// @brief Decorate using a linear-gradient effect on the background color.
    +
    282/// @param gradient The gradient effect to be applied on the output element.
    +
    283/// @return The Decorator applying the color.
    +
    284/// @ingroup dom
    +
    285///
    +
    286/// ### Example
    +
    287///
    +
    288/// ```cpp
    +
    289/// text("Hello") | color(LinearGradient{0, {Color::Red, Color::Blue}})
    +
    290/// ```
    +
    + +
    292 return
    +
    293 [gradient](Element child) { return bgcolor(gradient, std::move(child)); };
    +
    294}
    +
    +
    295
    +
    296} // namespace ftxui
    + + + +
    LinearGradient & Stop(Color color, float position)
    Add a color stop to the gradient.
    +
    LinearGradient & Angle(float angle)
    Set the angle of the gradient.
    +
    LinearGradient()
    Build the "empty" gradient. This is often followed by calls to LinearGradient::Angle() and LinearGrad...
    +
    std::vector< Stop > stops
    +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    + +
    Decorator bgcolor(Color)
    Decorate using a background color.
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    A class representing the settings for linear-gradient color effect.
    + +
    static Color Interpolate(float t, const Color &a, const Color &b)
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    Color
    Color is an enumeration that represents the color support of the terminal.
    Definition terminal.hpp:23
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    std::vector< Color > colors
    +
    std::vector< float > positions
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2paragraph_8cpp.html b/src_2ftxui_2dom_2paragraph_8cpp.html new file mode 100644 index 000000000..d4ca3f681 --- /dev/null +++ b/src_2ftxui_2dom_2paragraph_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: paragraph.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    paragraph.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + +

    +Functions

    Element paragraph (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines.
     
    Element paragraphAlignLeft (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the left.
     
    Element paragraphAlignRight (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the right.
     
    Element paragraphAlignCenter (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned on the center.
     
    Element paragraphAlignJustify (const std::string &the_text)
     Return an element drawing the paragraph on multiple lines, aligned using a justified alignment. the center.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2paragraph_8cpp.js b/src_2ftxui_2dom_2paragraph_8cpp.js new file mode 100644 index 000000000..89aa911a9 --- /dev/null +++ b/src_2ftxui_2dom_2paragraph_8cpp.js @@ -0,0 +1,8 @@ +var src_2ftxui_2dom_2paragraph_8cpp = +[ + [ "paragraph", "src_2ftxui_2dom_2paragraph_8cpp.html#ga3f9093ae1a2790d396fc2cff9990fbbd", null ], + [ "paragraphAlignLeft", "src_2ftxui_2dom_2paragraph_8cpp.html#gaa334a836eccc573e1137a1ba29d07d8a", null ], + [ "paragraphAlignRight", "src_2ftxui_2dom_2paragraph_8cpp.html#ga28a69f06a88c89fe7a507e33ab486411", null ], + [ "paragraphAlignCenter", "src_2ftxui_2dom_2paragraph_8cpp.html#ga6a105f6b0d07d7933379ff1ae9282fb8", null ], + [ "paragraphAlignJustify", "src_2ftxui_2dom_2paragraph_8cpp.html#gae4de548aa67ab77cb345e4ddec6b248b", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2paragraph_8cpp_source.html b/src_2ftxui_2dom_2paragraph_8cpp_source.html new file mode 100644 index 000000000..91df0b39c --- /dev/null +++ b/src_2ftxui_2dom_2paragraph_8cpp_source.html @@ -0,0 +1,333 @@ + + + + + + + + +FTXUI: paragraph.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/paragraph.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <functional> // for function
    +
    5#include <sstream> // for basic_istream, stringstream
    +
    6#include <string> // for string, allocator, getline
    +
    7#include <utility> // for move
    +
    8
    +
    9#include "ftxui/dom/elements.hpp" // for flexbox, Element, text, Elements, operator|, xflex, paragraph, paragraphAlignCenter, paragraphAlignJustify, paragraphAlignLeft, paragraphAlignRight
    +
    10#include "ftxui/dom/flexbox_config.hpp" // for FlexboxConfig, FlexboxConfig::JustifyContent, FlexboxConfig::JustifyContent::Center, FlexboxConfig::JustifyContent::FlexEnd, FlexboxConfig::JustifyContent::SpaceBetween
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14namespace {
    +
    15Elements Split(const std::string& the_text) {
    +
    16 Elements output;
    +
    17 std::stringstream ss(the_text);
    +
    18 std::string word;
    +
    19 while (std::getline(ss, word, ' ')) {
    +
    20 output.push_back(text(word));
    +
    21 }
    +
    22 return output;
    +
    23}
    +
    24
    +
    25Element Split(const std::string& paragraph,
    +
    26 const std::function<Element(std::string)>& f) {
    +
    27 Elements output;
    +
    28 std::stringstream ss(paragraph);
    +
    29 std::string line;
    +
    30 while (std::getline(ss, line, '\n')) {
    +
    31 output.push_back(f(line));
    +
    32 }
    +
    33 return vbox(std::move(output));
    +
    34}
    +
    35
    +
    36} // namespace
    +
    37
    +
    38/// @brief Return an element drawing the paragraph on multiple lines.
    +
    39/// @ingroup dom
    +
    40/// @see flexbox.
    +
    +
    41Element paragraph(const std::string& the_text) {
    +
    42 return paragraphAlignLeft(the_text);
    +
    43}
    +
    +
    44
    +
    45/// @brief Return an element drawing the paragraph on multiple lines, aligned on
    +
    46/// the left.
    +
    47/// @ingroup dom
    +
    48/// @see flexbox.
    +
    +
    49Element paragraphAlignLeft(const std::string& the_text) {
    +
    50 return Split(the_text, [](const std::string& line) {
    +
    51 static const auto config = FlexboxConfig().SetGap(1, 0);
    +
    52 return flexbox(Split(line), config);
    +
    53 });
    +
    54};
    +
    +
    55
    +
    56/// @brief Return an element drawing the paragraph on multiple lines, aligned on
    +
    57/// the right.
    +
    58/// @ingroup dom
    +
    59/// @see flexbox.
    +
    +
    60Element paragraphAlignRight(const std::string& the_text) {
    +
    61 return Split(the_text, [](const std::string& line) {
    +
    62 static const auto config = FlexboxConfig().SetGap(1, 0).Set(
    + +
    64 return flexbox(Split(line), config);
    +
    65 });
    +
    66}
    +
    +
    67
    +
    68/// @brief Return an element drawing the paragraph on multiple lines, aligned on
    +
    69/// the center.
    +
    70/// @ingroup dom
    +
    71/// @see flexbox.
    +
    +
    72Element paragraphAlignCenter(const std::string& the_text) {
    +
    73 return Split(the_text, [](const std::string& line) {
    +
    74 static const auto config =
    + +
    76 return flexbox(Split(line), config);
    +
    77 });
    +
    78}
    +
    +
    79
    +
    80/// @brief Return an element drawing the paragraph on multiple lines, aligned
    +
    81/// using a justified alignment.
    +
    82/// the center.
    +
    83/// @ingroup dom
    +
    84/// @see flexbox.
    +
    +
    85Element paragraphAlignJustify(const std::string& the_text) {
    +
    86 return Split(the_text, [](const std::string& line) {
    +
    87 static const auto config = FlexboxConfig().SetGap(1, 0).Set(
    + +
    89 Elements words = Split(line);
    +
    90 words.push_back(text("") | xflex);
    +
    91 return flexbox(std::move(words), config);
    +
    92 });
    +
    93}
    +
    +
    94
    +
    95} // namespace ftxui
    + + +
    FlexboxConfig & SetGap(int gap_x, int gap_y)
    Set the flexbox flex direction.
    +
    @ Center
    Items are centered along the line.
    +
    @ FlexEnd
    Items are aligned to the end of flexbox's direction.
    +
    @ SpaceBetween
    Items are evenly distributed in the line; first item is on the start.
    +
    FlexboxConfig & Set(FlexboxConfig::Direction)
    Set the flexbox direction.
    +
    Element paragraphAlignRight(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the right.
    +
    Element paragraphAlignCenter(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the center.
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element paragraphAlignLeft(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned on the left.
    +
    Element paragraphAlignJustify(const std::string &text)
    Return an element drawing the paragraph on multiple lines, aligned using a justified alignment....
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    FlexboxConfig is a configuration structure that defines the layout properties for a flexbox container...
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
    A container displaying elements on row/columns and capable of wrapping on the next column/row when fu...
    Definition flexbox.cpp:251
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    +
    Elements paragraph(std::wstring text)
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2selection_8cpp.html b/src_2ftxui_2dom_2selection_8cpp.html new file mode 100644 index 000000000..b621aa18a --- /dev/null +++ b/src_2ftxui_2dom_2selection_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: selection.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    selection.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2selection_8cpp_source.html b/src_2ftxui_2dom_2selection_8cpp_source.html new file mode 100644 index 000000000..1e3854b84 --- /dev/null +++ b/src_2ftxui_2dom_2selection_8cpp_source.html @@ -0,0 +1,410 @@ + + + + + + + + +FTXUI: selection.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/selection.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4
    +
    5#include "ftxui/dom/selection.hpp" // for Selection
    +
    6#include <algorithm> // for max, min
    +
    7#include <string> // for string
    +
    8#include <tuple> // for ignore
    +
    9
    +
    10#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14namespace {
    +
    15class Unselectable : public NodeDecorator {
    +
    16 public:
    + +
    18
    +
    19 void Select(Selection& ignored) override {
    +
    20 std::ignore = ignored;
    +
    21 // Overwrite the select method to do nothing.
    +
    22 }
    +
    23};
    +
    24} // namespace
    +
    25
    +
    26/// @brief Create an empty selection.
    +
    27Selection::Selection() = default;
    +
    28
    +
    29/// @brief Create a selection.
    +
    30/// @param start_x The x coordinate of the start of the selection.
    +
    31/// @param start_y The y coordinate of the start of the selection.
    +
    32/// @param end_x The x coordinate of the end of the selection.
    +
    33/// @param end_y The y coordinate of the end of the selection.
    +
    +
    34Selection::Selection(int start_x, int start_y, int end_x, int end_y)
    +
    35 : start_x_(start_x),
    +
    36 start_y_(start_y),
    +
    37 end_x_(end_x),
    +
    38 end_y_(end_y),
    +
    39 box_{
    +
    40 std::min(start_x, end_x),
    +
    41 std::max(start_x, end_x),
    +
    42 std::min(start_y, end_y),
    +
    43 std::max(start_y, end_y),
    +
    44 },
    +
    45 empty_(false) {}
    +
    +
    46
    +
    47Selection::Selection(int start_x,
    +
    48 int start_y,
    +
    49 int end_x,
    +
    50 int end_y,
    +
    51 Selection* parent)
    +
    52 : start_x_(start_x),
    +
    53 start_y_(start_y),
    +
    54 end_x_(end_x),
    +
    55 end_y_(end_y),
    +
    56 box_{
    +
    57 std::min(start_x, end_x),
    +
    58 std::max(start_x, end_x),
    +
    59 std::min(start_y, end_y),
    +
    60 std::max(start_y, end_y),
    +
    61 },
    +
    62 parent_(parent),
    +
    63 empty_(false) {}
    +
    64
    +
    65/// @brief Get the box of the selection.
    +
    66/// @return The box of the selection.
    +
    +
    67const Box& Selection::GetBox() const {
    +
    68 return box_;
    +
    69}
    +
    +
    70
    +
    71/// @brief Saturate the selection to be inside the box.
    +
    72/// This is called by `hbox` to propagate the selection to its children.
    +
    73/// @param box The box to saturate the selection in.
    +
    74/// @return The saturated selection.
    +
    + +
    76 int start_x = start_x_;
    +
    77 int start_y = start_y_;
    +
    78 int end_x = end_x_;
    +
    79 int end_y = end_y_;
    +
    80
    +
    81 const bool start_outside = !box.Contain(start_x, start_y);
    +
    82 const bool end_outside = !box.Contain(end_x, end_y);
    +
    83 const bool properly_ordered =
    +
    84 start_y < end_y || (start_y == end_y && start_x <= end_x);
    +
    85 if (properly_ordered) {
    +
    86 if (start_outside) {
    +
    87 start_x = box.x_min;
    +
    88 start_y = box.y_min;
    +
    89 }
    +
    90 if (end_outside) {
    +
    91 end_x = box.x_max;
    +
    92 end_y = box.y_max;
    +
    93 }
    +
    94 } else {
    +
    95 if (start_outside) {
    +
    96 start_x = box.x_max;
    +
    97 start_y = box.y_max;
    +
    98 }
    +
    99 if (end_outside) {
    +
    100 end_x = box.x_min;
    +
    101 end_y = box.y_min;
    +
    102 }
    +
    103 }
    +
    104 return {
    +
    105 start_x, start_y, end_x, end_y, parent_,
    +
    106 };
    +
    107}
    +
    +
    108
    +
    109/// @brief Saturate the selection to be inside the box.
    +
    110/// This is called by `vbox` to propagate the selection to its children.
    +
    111/// @param box The box to saturate the selection in.
    +
    112/// @return The saturated selection.
    +
    + +
    114 int start_x = start_x_;
    +
    115 int start_y = start_y_;
    +
    116 int end_x = end_x_;
    +
    117 int end_y = end_y_;
    +
    118
    +
    119 const bool start_outside = !box.Contain(start_x, start_y);
    +
    120 const bool end_outside = !box.Contain(end_x, end_y);
    +
    121 const bool properly_ordered =
    +
    122 start_y < end_y || (start_y == end_y && start_x <= end_x);
    +
    123
    +
    124 if (properly_ordered) {
    +
    125 if (start_outside) {
    +
    126 start_x = box.x_min;
    +
    127 start_y = box.y_min;
    +
    128 }
    +
    129 if (end_outside) {
    +
    130 end_x = box.x_max;
    +
    131 end_y = box.y_max;
    +
    132 }
    +
    133 } else {
    +
    134 if (start_outside) {
    +
    135 start_x = box.x_max;
    +
    136 start_y = box.y_max;
    +
    137 }
    +
    138 if (end_outside) {
    +
    139 end_x = box.x_min;
    +
    140 end_y = box.y_min;
    +
    141 }
    +
    142 }
    +
    143 return {start_x, start_y, end_x, end_y, parent_};
    +
    144}
    +
    +
    145
    +
    +
    146void Selection::AddPart(const std::string& part, int y, int left, int right) {
    +
    147 if (parent_ != this) {
    +
    148 parent_->AddPart(part, y, left, right);
    +
    149 return;
    +
    150 }
    +
    151 [&] {
    +
    152 if (parts_.str().empty()) {
    +
    153 parts_ << part;
    +
    154 return;
    +
    155 }
    +
    156
    +
    157 if (y_ != y) {
    +
    158 parts_ << '\n' << part;
    +
    159 return;
    +
    160 }
    +
    161
    +
    162 if (x_ == left + 1) {
    +
    163 parts_ << part;
    +
    164 return;
    +
    165 }
    +
    166
    +
    167 parts_ << part;
    +
    168 }();
    +
    169 y_ = y;
    +
    170 x_ = right;
    +
    171}
    +
    +
    172
    +
    173} // namespace ftxui
    +
    NodeDecorator(Element child)
    +
    const Box & GetBox() const
    Get the box of the selection.
    +
    void AddPart(const std::string &part, int y, int left, int right)
    +
    Selection SaturateVertical(Box box)
    Saturate the selection to be inside the box. This is called by vbox to propagate the selection to its...
    +
    Selection()
    Create an empty selection.
    +
    Selection SaturateHorizontal(Box box)
    Saturate the selection to be inside the box. This is called by hbox to propagate the selection to its...
    +
    Represents a selection in a terminal user interface.
    Definition selection.hpp:22
    +
    bool Contain(int x, int y) const
    Definition box.cpp:42
    +
    int x_max
    Definition box.hpp:18
    +
    int y_min
    Definition box.hpp:19
    +
    int y_max
    Definition box.hpp:20
    +
    int x_min
    Definition box.hpp:17
    +
    Box is a structure that represents a rectangular area in a 2D space.
    Definition box.hpp:16
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t right
    Definition screen.cpp:132
    + +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2separator_8cpp.html b/src_2ftxui_2dom_2separator_8cpp.html new file mode 100644 index 000000000..2b5d6d2ea --- /dev/null +++ b/src_2ftxui_2dom_2separator_8cpp.html @@ -0,0 +1,290 @@ + + + + + + + + +FTXUI: separator.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    separator.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Element separator ()
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separatorStyled (BorderStyle style)
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separatorLight ()
     Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
     
    Element separatorDashed ()
     Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
     
    Element separatorHeavy ()
     Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
     
    Element separatorDouble ()
     Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
     
    Element separatorEmpty ()
     Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
     
    Element separatorCharacter (std::string value)
     Draw a vertical or horizontal separation in between two other elements.
     
    Element separator (Pixel pixel)
     Draw a separator in between two element filled with a given pixel.
     
    Element separatorHSelector (float left, float right, Color unselected_color, Color selected_color)
     Draw a horizontal bar, with the area in between left/right colored differently.
     
    Element separatorVSelector (float up, float down, Color unselected_color, Color selected_color)
     Draw an vertical bar, with the area in between up/downcolored differently.
     
    +

    Variable Documentation

    + +

    ◆ value_

    + +
    +
    + + + + +
    std::string value_
    +
    + +

    Definition at line 51 of file src/ftxui/dom/separator.cpp.

    + +
    +
    + +

    ◆ style_

    + +
    +
    + + + + +
    BorderStyle style_
    +
    + +

    Definition at line 79 of file src/ftxui/dom/separator.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2separator_8cpp.js b/src_2ftxui_2dom_2separator_8cpp.js new file mode 100644 index 000000000..46705741b --- /dev/null +++ b/src_2ftxui_2dom_2separator_8cpp.js @@ -0,0 +1,16 @@ +var src_2ftxui_2dom_2separator_8cpp = +[ + [ "separator", "src_2ftxui_2dom_2separator_8cpp.html#gac1ef1cf6bf7cd0759ffa195071edb2a0", null ], + [ "separatorStyled", "src_2ftxui_2dom_2separator_8cpp.html#ga13cb559cfc7e409b3f211f0bb35ea7fa", null ], + [ "separatorLight", "src_2ftxui_2dom_2separator_8cpp.html#ga37c2b93daf557f68064bc9fbf93ebde0", null ], + [ "separatorDashed", "src_2ftxui_2dom_2separator_8cpp.html#ga81f2d3256c0cfbc70f820129286f08c6", null ], + [ "separatorHeavy", "src_2ftxui_2dom_2separator_8cpp.html#gaf0649e89a9960f1c2703e48c1817645b", null ], + [ "separatorDouble", "src_2ftxui_2dom_2separator_8cpp.html#gadd376830fdb51b0bf52672ef17515989", null ], + [ "separatorEmpty", "src_2ftxui_2dom_2separator_8cpp.html#ga1934703e56ab66f6f259b9f8da331f1b", null ], + [ "separatorCharacter", "src_2ftxui_2dom_2separator_8cpp.html#ga97a10482d591aade2958da0f2f19b371", null ], + [ "separator", "src_2ftxui_2dom_2separator_8cpp.html#ga71d9a6a32f65b6d172f9696b3b9579b4", null ], + [ "separatorHSelector", "src_2ftxui_2dom_2separator_8cpp.html#a50413065cee4757447b35c3a500667d3", null ], + [ "separatorVSelector", "src_2ftxui_2dom_2separator_8cpp.html#a1a0211233bacd4eb4d31a8e3d58b5f48", null ], + [ "value_", "src_2ftxui_2dom_2separator_8cpp.html#ad84db3d1db4de4af9935d2d361626bdb", null ], + [ "style_", "src_2ftxui_2dom_2separator_8cpp.html#ac30a0a0ed81dc58d609a872c58242761", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2separator_8cpp_source.html b/src_2ftxui_2dom_2separator_8cpp_source.html new file mode 100644 index 000000000..1f5b663b3 --- /dev/null +++ b/src_2ftxui_2dom_2separator_8cpp_source.html @@ -0,0 +1,840 @@ + + + + + + + + +FTXUI: separator.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/separator.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <array> // for array, array<>::value_type
    +
    5#include <memory> // for make_shared, allocator
    +
    6#include <string> // for basic_string, string
    +
    7#include <utility> // for move
    +
    8
    +
    9#include "ftxui/dom/elements.hpp" // for Element, BorderStyle, LIGHT, separator, DOUBLE, EMPTY, HEAVY, separatorCharacter, separatorDouble, separatorEmpty, separatorHSelector, separatorHeavy, separatorLight, separatorStyled, separatorVSelector
    +
    10#include "ftxui/dom/node.hpp" // for Node
    +
    11#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    12#include "ftxui/screen/box.hpp" // for Box
    +
    13#include "ftxui/screen/color.hpp" // for Color
    +
    14#include "ftxui/screen/pixel.hpp" // for Pixel
    +
    15#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    16
    +
    17namespace ftxui {
    +
    18
    +
    19namespace {
    +
    20using Charset = std::array<std::string, 2>; // NOLINT
    +
    21using Charsets = std::array<Charset, 6>; // NOLINT
    +
    22// NOLINTNEXTLINE
    +
    23const Charsets charsets = {
    +
    24 Charset{"│", "─"}, // LIGHT
    +
    25 Charset{"╏", "╍"}, // DASHED
    +
    26 Charset{"┃", "━"}, // HEAVY
    +
    27 Charset{"║", "═"}, // DOUBLE
    +
    28 Charset{"│", "─"}, // ROUNDED
    +
    29 Charset{" ", " "}, // EMPTY
    +
    30};
    +
    31
    +
    32class Separator : public Node {
    +
    33 public:
    +
    34 explicit Separator(std::string value) : value_(std::move(value)) {}
    +
    35
    +
    36 void ComputeRequirement() override {
    +
    37 requirement_.min_x = 1;
    +
    38 requirement_.min_y = 1;
    +
    39 }
    +
    40
    +
    41 void Render(Screen& screen) override {
    +
    42 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    43 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    44 Pixel& pixel = screen.PixelAt(x, y);
    +
    45 pixel.character = value_;
    +
    46 pixel.automerge = true;
    +
    47 }
    +
    48 }
    +
    49 }
    +
    50
    +
    51 std::string value_;
    +
    52};
    +
    53
    +
    54class SeparatorAuto : public Node {
    +
    55 public:
    +
    56 explicit SeparatorAuto(BorderStyle style) : style_(style) {}
    +
    57
    +
    58 void ComputeRequirement() override {
    +
    59 requirement_.min_x = 1;
    +
    60 requirement_.min_y = 1;
    +
    61 }
    +
    62
    +
    63 void Render(Screen& screen) override {
    +
    64 const bool is_column = (box_.x_max == box_.x_min);
    +
    65 const bool is_line = (box_.y_min == box_.y_max);
    +
    66
    +
    67 const std::string c =
    +
    68 charsets[style_][int(is_line && !is_column)]; // NOLINT
    +
    69
    +
    70 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    71 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    72 Pixel& pixel = screen.PixelAt(x, y);
    +
    73 pixel.character = c;
    +
    74 pixel.automerge = true;
    +
    75 }
    +
    76 }
    +
    77 }
    +
    78
    + +
    80};
    +
    81
    +
    82class SeparatorWithPixel : public SeparatorAuto {
    +
    83 public:
    +
    84 explicit SeparatorWithPixel(Pixel pixel)
    +
    85 : SeparatorAuto(LIGHT), pixel_(std::move(pixel)) {
    +
    86 pixel_.automerge = true;
    +
    87 }
    +
    88 void Render(Screen& screen) override {
    +
    89 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    90 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    91 screen.PixelAt(x, y) = pixel_;
    +
    92 }
    +
    93 }
    +
    94 }
    +
    95
    +
    96 private:
    +
    97 Pixel pixel_;
    +
    98};
    +
    99} // namespace
    +
    100
    +
    101/// @brief Draw a vertical or horizontal separation in between two other
    +
    102/// elements.
    +
    103/// @ingroup dom
    +
    104/// @see separator
    +
    105/// @see separatorLight
    +
    106/// @see separatorDashed
    +
    107/// @see separatorDouble
    +
    108/// @see separatorHeavy
    +
    109/// @see separatorEmpty
    +
    110/// @see separatorRounded
    +
    111/// @see separatorStyled
    +
    112/// @see separatorCharacter
    +
    113///
    +
    114/// Add a visual separation in between two elements.
    +
    115///
    +
    116/// ### Example
    +
    117///
    +
    118/// ```cpp
    +
    119/// // Use 'border' as a function...
    +
    120/// Element document = vbox({
    +
    121/// text("up"),
    +
    122/// separator(),
    +
    123/// text("down"),
    +
    124/// });
    +
    125/// ```
    +
    126///
    +
    127/// ### Output
    +
    128///
    +
    129/// ```bash
    +
    130/// up
    +
    131/// ────
    +
    132/// down
    +
    133/// ```
    +
    + +
    135 return std::make_shared<SeparatorAuto>(LIGHT);
    +
    136}
    +
    +
    137
    +
    138/// @brief Draw a vertical or horizontal separation in between two other
    +
    139/// elements.
    +
    140/// @param style the style of the separator.
    +
    141/// @ingroup dom
    +
    142/// @see separator
    +
    143/// @see separatorLight
    +
    144/// @see separatorDashed
    +
    145/// @see separatorDouble
    +
    146/// @see separatorHeavy
    +
    147/// @see separatorEmpty
    +
    148/// @see separatorRounded
    +
    149/// @see separatorStyled
    +
    150/// @see separatorCharacter
    +
    151///
    +
    152/// Add a visual separation in between two elements.
    +
    153///
    +
    154/// ### Example
    +
    155///
    +
    156/// ```cpp
    +
    157/// // Use 'border' as a function...
    +
    158/// Element document = vbox({
    +
    159/// text("up"),
    +
    160/// separatorStyled(DOUBLE),
    +
    161/// text("down"),
    +
    162/// });
    +
    163/// ```
    +
    164///
    +
    165/// ### Output
    +
    166///
    +
    167/// ```bash
    +
    168/// up
    +
    169/// ════
    +
    170/// down
    +
    171/// ```
    +
    + +
    173 return std::make_shared<SeparatorAuto>(style);
    +
    174}
    +
    +
    175
    +
    176/// @brief Draw a vertical or horizontal separation in between two other
    +
    177/// elements, using the LIGHT style.
    +
    178/// @ingroup dom
    +
    179/// @see separator
    +
    180/// @see separatorLight
    +
    181/// @see separatorDashed
    +
    182/// @see separatorDouble
    +
    183/// @see separatorHeavy
    +
    184/// @see separatorEmpty
    +
    185/// @see separatorRounded
    +
    186/// @see separatorStyled
    +
    187/// @see separatorCharacter
    +
    188///
    +
    189/// Add a visual separation in between two elements.
    +
    190///
    +
    191/// ### Example
    +
    192///
    +
    193/// ```cpp
    +
    194/// // Use 'border' as a function...
    +
    195/// Element document = vbox({
    +
    196/// text("up"),
    +
    197/// separatorLight(),
    +
    198/// text("down"),
    +
    199/// });
    +
    200/// ```
    +
    201///
    +
    202/// ### Output
    +
    203///
    +
    204/// ```bash
    +
    205/// up
    +
    206/// ────
    +
    207/// down
    +
    208/// ```
    +
    + +
    210 return std::make_shared<SeparatorAuto>(LIGHT);
    +
    211}
    +
    +
    212
    +
    213/// @brief Draw a vertical or horizontal separation in between two other
    +
    214/// elements, using the DASHED style.
    +
    215/// @ingroup dom
    +
    216/// @see separator
    +
    217/// @see separatorLight
    +
    218/// @see separatorDashed
    +
    219/// @see separatorDouble
    +
    220/// @see separatorHeavy
    +
    221/// @see separatorEmpty
    +
    222/// @see separatorRounded
    +
    223/// @see separatorStyled
    +
    224/// @see separatorCharacter
    +
    225///
    +
    226/// Add a visual separation in between two elements.
    +
    227///
    +
    228/// ### Example
    +
    229///
    +
    230/// ```cpp
    +
    231/// // Use 'border' as a function...
    +
    232/// Element document = vbox({
    +
    233/// text("up"),
    +
    234/// separatorLight(),
    +
    235/// text("down"),
    +
    236/// });
    +
    237/// ```
    +
    238///
    +
    239/// ### Output
    +
    240///
    +
    241/// ```bash
    +
    242/// up
    +
    243/// ╍╍╍╍
    +
    244/// down
    +
    245/// ```
    +
    + +
    247 return std::make_shared<SeparatorAuto>(DASHED);
    +
    248}
    +
    +
    249
    +
    250/// @brief Draw a vertical or horizontal separation in between two other
    +
    251/// elements, using the HEAVY style.
    +
    252/// @ingroup dom
    +
    253/// @see separator
    +
    254/// @see separatorLight
    +
    255/// @see separatorDashed
    +
    256/// @see separatorDouble
    +
    257/// @see separatorHeavy
    +
    258/// @see separatorEmpty
    +
    259/// @see separatorRounded
    +
    260/// @see separatorStyled
    +
    261/// @see separatorCharacter
    +
    262///
    +
    263/// Add a visual separation in between two elements.
    +
    264///
    +
    265/// ### Example
    +
    266///
    +
    267/// ```cpp
    +
    268/// // Use 'border' as a function...
    +
    269/// Element document = vbox({
    +
    270/// text("up"),
    +
    271/// separatorHeavy(),
    +
    272/// text("down"),
    +
    273/// });
    +
    274/// ```
    +
    275///
    +
    276/// ### Output
    +
    277///
    +
    278/// ```bash
    +
    279/// up
    +
    280/// ━━━━
    +
    281/// down
    +
    282/// ```
    +
    + +
    284 return std::make_shared<SeparatorAuto>(HEAVY);
    +
    285}
    +
    +
    286
    +
    287/// @brief Draw a vertical or horizontal separation in between two other
    +
    288/// elements, using the DOUBLE style.
    +
    289/// @ingroup dom
    +
    290/// @see separator
    +
    291/// @see separatorLight
    +
    292/// @see separatorDashed
    +
    293/// @see separatorDouble
    +
    294/// @see separatorHeavy
    +
    295/// @see separatorEmpty
    +
    296/// @see separatorRounded
    +
    297/// @see separatorStyled
    +
    298/// @see separatorCharacter
    +
    299///
    +
    300/// Add a visual separation in between two elements.
    +
    301///
    +
    302/// ### Example
    +
    303///
    +
    304/// ```cpp
    +
    305/// // Use 'border' as a function...
    +
    306/// Element document = vbox({
    +
    307/// text("up"),
    +
    308/// separatorDouble(),
    +
    309/// text("down"),
    +
    310/// });
    +
    311/// ```
    +
    312///
    +
    313/// ### Output
    +
    314///
    +
    315/// ```bash
    +
    316/// up
    +
    317/// ════
    +
    318/// down
    +
    319/// ```
    +
    + +
    321 return std::make_shared<SeparatorAuto>(DOUBLE);
    +
    322}
    +
    +
    323
    +
    324/// @brief Draw a vertical or horizontal separation in between two other
    +
    325/// elements, using the EMPTY style.
    +
    326/// @ingroup dom
    +
    327/// @see separator
    +
    328/// @see separatorLight
    +
    329/// @see separatorDashed
    +
    330/// @see separatorDouble
    +
    331/// @see separatorHeavy
    +
    332/// @see separatorEmpty
    +
    333/// @see separatorRounded
    +
    334/// @see separatorStyled
    +
    335/// @see separatorCharacter
    +
    336///
    +
    337/// Add a visual separation in between two elements.
    +
    338///
    +
    339/// ### Example
    +
    340///
    +
    341/// ```cpp
    +
    342/// // Use 'border' as a function...
    +
    343/// Element document = vbox({
    +
    344/// text("up"),
    +
    345/// separator(),
    +
    346/// text("down"),
    +
    347/// });
    +
    348/// ```
    +
    349///
    +
    350/// ### Output
    +
    351///
    +
    352/// ```bash
    +
    353/// up
    +
    354///
    +
    355/// down
    +
    356/// ```
    +
    + +
    358 return std::make_shared<SeparatorAuto>(EMPTY);
    +
    359}
    +
    +
    360
    +
    361/// @brief Draw a vertical or horizontal separation in between two other
    +
    362/// elements.
    +
    363/// @param value the character to fill the separator area.
    +
    364/// @ingroup dom
    +
    365/// @see separator
    +
    366/// @see separatorLight
    +
    367/// @see separatorDashed
    +
    368/// @see separatorDouble
    +
    369/// @see separatorHeavy
    +
    370/// @see separatorEmpty
    +
    371/// @see separatorRounded
    +
    372/// @see separatorStyled
    +
    373/// @see separatorCharacter
    +
    374///
    +
    375/// Add a visual separation in between two elements.
    +
    376///
    +
    377/// ### Example
    +
    378///
    +
    379/// ```cpp
    +
    380/// // Use 'border' as a function...
    +
    381/// Element document = vbox({
    +
    382/// text("up"),
    +
    383/// separator(),
    +
    384/// text("down"),
    +
    385/// });
    +
    386/// ```
    +
    387///
    +
    388/// ### Output
    +
    389///
    +
    390/// ```bash
    +
    391/// up
    +
    392/// ────
    +
    393/// down
    +
    394/// ```
    +
    +
    395Element separatorCharacter(std::string value) {
    +
    396 return std::make_shared<Separator>(std::move(value));
    +
    397}
    +
    +
    398
    +
    399/// @brief Draw a separator in between two element filled with a given pixel.
    +
    400/// @ingroup dom
    +
    401/// @see separator
    +
    402/// @see separatorLight
    +
    403/// @see separatorDashed
    +
    404/// @see separatorHeavy
    +
    405/// @see separatorDouble
    +
    406/// @see separatorStyled
    +
    407///
    +
    408/// ### Example
    +
    409///
    +
    410/// ```cpp
    +
    411/// Pixel empty;
    +
    412/// Element document = vbox({
    +
    413/// text("Up"),
    +
    414/// separator(empty),
    +
    415/// text("Down"),
    +
    416/// })
    +
    417/// ```
    +
    418///
    +
    419/// ### Output
    +
    420///
    +
    421/// ```bash
    +
    422/// Up
    +
    423///
    +
    424/// Down
    +
    425/// ```
    +
    + +
    427 return std::make_shared<SeparatorWithPixel>(std::move(pixel));
    +
    428}
    +
    +
    429
    +
    430/// @brief Draw a horizontal bar, with the area in between left/right colored
    +
    431/// differently.
    +
    432/// @param left the left limit of the active area.
    +
    433/// @param right the right limit of the active area.
    +
    434/// @param selected_color the color of the selected area.
    +
    435/// @param unselected_color the color of the unselected area.
    +
    436///
    +
    437/// ### Example
    +
    438///
    +
    439/// ```cpp
    +
    440/// Element document = separatorHSelector(2,5, Color::White, Color::Blue);
    +
    441/// ```
    +
    + +
    443 float right,
    +
    444 Color unselected_color,
    +
    445 Color selected_color) {
    +
    446 class Impl : public Node {
    +
    447 public:
    +
    448 Impl(float left, float right, Color selected_color, Color unselected_color)
    +
    449 : left_(left),
    +
    450 right_(right),
    +
    451 unselected_color_(unselected_color),
    +
    452 selected_color_(selected_color) {}
    +
    453 void ComputeRequirement() override {
    +
    454 requirement_.min_x = 1;
    +
    455 requirement_.min_y = 1;
    +
    456 }
    +
    457
    +
    458 void Render(Screen& screen) override {
    +
    459 if (box_.y_max < box_.y_min) {
    +
    460 return;
    +
    461 }
    +
    462
    +
    463 // This are the two location with an empty demi-cell.
    +
    464 int demi_cell_left = int(left_ * 2.F - 1.F); // NOLINT
    +
    465 int demi_cell_right = int(right_ * 2.F + 2.F); // NOLINT
    +
    466
    +
    467 const int y = box_.y_min;
    +
    468 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    469 Pixel& pixel = screen.PixelAt(x, y);
    +
    470
    +
    471 const int a = (x - box_.x_min) * 2;
    +
    472 const int b = a + 1;
    +
    473 const bool a_empty = demi_cell_left == a || demi_cell_right == a;
    +
    474 const bool b_empty = demi_cell_left == b || demi_cell_right == b;
    +
    475
    +
    476 if (!a_empty && !b_empty) {
    +
    477 pixel.character = "─";
    +
    478 pixel.automerge = true;
    +
    479 } else {
    +
    480 pixel.character = a_empty ? "╶" : "╴"; // NOLINT
    +
    481 pixel.automerge = false;
    +
    482 }
    +
    483
    +
    484 if (demi_cell_left <= a && b <= demi_cell_right) {
    +
    485 pixel.foreground_color = selected_color_;
    +
    486 } else {
    +
    487 pixel.foreground_color = unselected_color_;
    +
    488 }
    +
    489 }
    +
    490 }
    +
    491
    +
    492 float left_;
    +
    493 float right_;
    +
    494 Color unselected_color_;
    +
    495 Color selected_color_;
    +
    496 };
    +
    497 return std::make_shared<Impl>(left, right, unselected_color, selected_color);
    +
    498}
    +
    +
    499
    +
    500/// @brief Draw an vertical bar, with the area in between up/downcolored
    +
    501/// differently.
    +
    502/// @param up the left limit of the active area.
    +
    503/// @param down the right limit of the active area.
    +
    504/// @param selected_color the color of the selected area.
    +
    505/// @param unselected_color the color of the unselected area.
    +
    506///
    +
    507/// ### Example
    +
    508///
    +
    509/// ```cpp
    +
    510/// Element document = separatorHSelector(2,5, Color::White, Color::Blue);
    +
    511/// ```
    +
    + +
    513 float down,
    +
    514 Color unselected_color,
    +
    515 Color selected_color) {
    +
    516 class Impl : public Node {
    +
    517 public:
    +
    518 Impl(float up, float down, Color unselected_color, Color selected_color)
    +
    519 : up_(up),
    +
    520 down_(down),
    +
    521 unselected_color_(unselected_color),
    +
    522 selected_color_(selected_color) {}
    +
    523 void ComputeRequirement() override {
    +
    524 requirement_.min_x = 1;
    +
    525 requirement_.min_y = 1;
    +
    526 }
    +
    527
    +
    528 void Render(Screen& screen) override {
    +
    529 if (box_.x_max < box_.x_min) {
    +
    530 return;
    +
    531 }
    +
    532
    +
    533 // This are the two location with an empty demi-cell.
    +
    534 const int demi_cell_up = int(up_ * 2 - 1);
    +
    535 const int demi_cell_down = int(down_ * 2 + 2);
    +
    536
    +
    537 const int x = box_.x_min;
    +
    538 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    539 Pixel& pixel = screen.PixelAt(x, y);
    +
    540
    +
    541 const int a = (y - box_.y_min) * 2;
    +
    542 const int b = a + 1;
    +
    543 const bool a_empty = demi_cell_up == a || demi_cell_down == a;
    +
    544 const bool b_empty = demi_cell_up == b || demi_cell_down == b;
    +
    545
    +
    546 if (!a_empty && !b_empty) {
    +
    547 pixel.character = "│";
    +
    548 pixel.automerge = true;
    +
    549 } else {
    +
    550 pixel.character = a_empty ? "╷" : "╵"; // NOLINT
    +
    551 pixel.automerge = false;
    +
    552 }
    +
    553
    +
    554 if (demi_cell_up <= a && b <= demi_cell_down) {
    +
    555 pixel.foreground_color = selected_color_;
    +
    556 } else {
    +
    557 pixel.foreground_color = unselected_color_;
    +
    558 }
    +
    559 }
    +
    560 }
    +
    561
    +
    562 float up_;
    +
    563 float down_;
    +
    564 Color unselected_color_;
    +
    565 Color selected_color_;
    +
    566 };
    +
    567 return std::make_shared<Impl>(up, down, unselected_color, selected_color);
    +
    568}
    +
    +
    569
    +
    570} // namespace ftxui
    + + + +
    Node is the base class for all elements in the DOM tree.
    Definition node.hpp:37
    +
    Element separatorStyled(BorderStyle)
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element separatorEmpty()
    Draw a vertical or horizontal separation in between two other elements, using the EMPTY style.
    +
    Element separatorLight()
    Draw a vertical or horizontal separation in between two other elements, using the LIGHT style.
    +
    Element separatorDashed()
    Draw a vertical or horizontal separation in between two other elements, using the DASHED style.
    +
    Element separatorCharacter(std::string)
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    Element separatorDouble()
    Draw a vertical or horizontal separation in between two other elements, using the DOUBLE style.
    +
    Element separatorHeavy()
    Draw a vertical or horizontal separation in between two other elements, using the HEAVY style.
    +
    BorderStyle
    BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
    Definition elements.hpp:35
    +
    @ EMPTY
    Definition elements.hpp:41
    +
    @ DOUBLE
    Definition elements.hpp:39
    +
    @ HEAVY
    Definition elements.hpp:38
    +
    @ DASHED
    Definition elements.hpp:37
    +
    @ LIGHT
    Definition elements.hpp:36
    +
    Color foreground_color
    Definition pixel.hpp:49
    +
    std::string character
    Definition pixel.hpp:45
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    bool automerge
    Definition pixel.hpp:36
    +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    A Unicode character and its associated style.
    Definition pixel.hpp:15
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element separatorVSelector(float up, float down, Color unselected_color, Color selected_color)
    Draw an vertical bar, with the area in between up/downcolored differently.
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)
    Draw a horizontal bar, with the area in between left/right colored differently.
    + + + +
    std::uint8_t left
    Definition screen.cpp:130
    +
    std::uint8_t down
    Definition screen.cpp:133
    +
    std::uint8_t right
    Definition screen.cpp:132
    + +
    std::function< void(Pixel &)> style_
    +
    std::string value_
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2size_8cpp.html b/src_2ftxui_2dom_2size_8cpp.html new file mode 100644 index 000000000..6f7be4041 --- /dev/null +++ b/src_2ftxui_2dom_2size_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: size.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    size.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Decorator size (WidthOrHeight direction, Constraint constraint, int value)
     Apply a constraint on the size of an element.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2size_8cpp.js b/src_2ftxui_2dom_2size_8cpp.js new file mode 100644 index 000000000..2dfd43b5b --- /dev/null +++ b/src_2ftxui_2dom_2size_8cpp.js @@ -0,0 +1,4 @@ +var src_2ftxui_2dom_2size_8cpp = +[ + [ "size", "src_2ftxui_2dom_2size_8cpp.html#ga201220986fbdc539e42efe067985cbdb", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2size_8cpp_source.html b/src_2ftxui_2dom_2size_8cpp_source.html new file mode 100644 index 000000000..334c5c330 --- /dev/null +++ b/src_2ftxui_2dom_2size_8cpp_source.html @@ -0,0 +1,323 @@ + + + + + + + + +FTXUI: size.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/size.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for min, max
    +
    5#include <memory> // for make_shared, __shared_ptr_access
    +
    6#include <utility> // for move
    +
    7
    +
    8#include "ftxui/dom/elements.hpp" // for Constraint, WidthOrHeight, EQUAL, GREATER_THAN, LESS_THAN, WIDTH, unpack, Decorator, Element, size
    +
    9#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    10#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    11#include "ftxui/screen/box.hpp" // for Box
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15namespace {
    +
    16class Size : public Node {
    +
    17 public:
    +
    18 Size(Element child, WidthOrHeight direction, Constraint constraint, int value)
    +
    19 : Node(unpack(std::move(child))),
    +
    20 direction_(direction),
    +
    21 constraint_(constraint),
    +
    22 value_(std::max(0, value)) {}
    +
    23
    +
    24 void ComputeRequirement() override {
    + +
    26 requirement_ = children_[0]->requirement();
    +
    27
    +
    28 auto& value = direction_ == WIDTH ? requirement_.min_x : requirement_.min_y;
    +
    29
    +
    30 switch (constraint_) {
    +
    31 case LESS_THAN:
    +
    32 value = std::min(value, value_);
    +
    33 break;
    +
    34 case EQUAL:
    +
    35 value = value_;
    +
    36 break;
    +
    37 case GREATER_THAN:
    +
    38 value = std::max(value, value_);
    +
    39 break;
    +
    40 }
    +
    41
    +
    42 if (direction_ == WIDTH) {
    +
    43 requirement_.flex_grow_x = 0;
    +
    44 requirement_.flex_shrink_x = 0;
    +
    45 } else {
    +
    46 requirement_.flex_grow_y = 0;
    +
    47 requirement_.flex_shrink_y = 0;
    +
    48 }
    +
    49 }
    +
    50
    +
    51 void SetBox(Box box) override {
    +
    52 Node::SetBox(box);
    +
    53
    +
    54 if (direction_ == WIDTH) {
    +
    55 switch (constraint_) {
    +
    56 case LESS_THAN:
    +
    57 case EQUAL:
    +
    58 box.x_max = std::min(box.x_min + value_ + 1, box.x_max);
    +
    59 break;
    +
    60 case GREATER_THAN:
    +
    61 break;
    +
    62 }
    +
    63 } else {
    +
    64 switch (constraint_) {
    +
    65 case LESS_THAN:
    +
    66 case EQUAL:
    +
    67 box.y_max = std::min(box.y_min + value_ + 1, box.y_max);
    +
    68 break;
    +
    69 case GREATER_THAN:
    +
    70 break;
    +
    71 }
    +
    72 }
    +
    73 children_[0]->SetBox(box);
    +
    74 }
    +
    75
    +
    76 private:
    +
    77 WidthOrHeight direction_;
    +
    78 Constraint constraint_;
    +
    79 int value_;
    +
    80};
    +
    81} // namespace
    +
    82
    +
    83/// @brief Apply a constraint on the size of an element.
    +
    84/// @param direction Whether the WIDTH of the HEIGHT of the element must be
    +
    85/// constrained.
    +
    86/// @param constraint The type of constaint.
    +
    87/// @param value The value.
    +
    88/// @ingroup dom
    +
    +
    89Decorator size(WidthOrHeight direction, Constraint constraint, int value) {
    +
    90 return [=](Element e) {
    +
    91 return std::make_shared<Size>(std::move(e), direction, constraint, value);
    +
    92 };
    +
    93}
    +
    +
    94
    +
    95} // namespace ftxui
    + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    virtual void ComputeRequirement()
    Compute how much space an element needs.
    Definition node.cpp:20
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    WidthOrHeight
    Definition elements.hpp:161
    + +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + +
    @ LESS_THAN
    Definition elements.hpp:162
    + +
    @ GREATER_THAN
    Definition elements.hpp:162
    + + +
    std::string value_
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2spinner_8cpp.html b/src_2ftxui_2dom_2spinner_8cpp.html new file mode 100644 index 000000000..cbcf7249a --- /dev/null +++ b/src_2ftxui_2dom_2spinner_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: spinner.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    spinner.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element spinner (int charset_index, size_t image_index)
     Useful to represent the effect of time and/or events. This displays an ASCII art "video".
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2spinner_8cpp.js b/src_2ftxui_2dom_2spinner_8cpp.js new file mode 100644 index 000000000..4d4968ba9 --- /dev/null +++ b/src_2ftxui_2dom_2spinner_8cpp.js @@ -0,0 +1,4 @@ +var src_2ftxui_2dom_2spinner_8cpp = +[ + [ "spinner", "src_2ftxui_2dom_2spinner_8cpp.html#ga3b08e0030a0831d3ec3e2a505908273b", null ] +]; \ No newline at end of file diff --git a/src_2ftxui_2dom_2spinner_8cpp_source.html b/src_2ftxui_2dom_2spinner_8cpp_source.html new file mode 100644 index 000000000..318e7f6cf --- /dev/null +++ b/src_2ftxui_2dom_2spinner_8cpp_source.html @@ -0,0 +1,519 @@ + + + + + + + + +FTXUI: spinner.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/spinner.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <cstddef> // for size_t
    +
    5#include <string> // for basic_string, string
    +
    6#include <utility> // for move
    +
    7#include <vector> // for vector, __alloc_traits<>::value_type
    +
    8
    +
    9#include "ftxui/dom/elements.hpp" // for Element, gauge, text, vbox, spinner
    +
    10
    +
    11namespace ftxui {
    +
    12
    +
    13namespace {
    +
    14// NOLINTNEXTLINE
    +
    15const std::vector<std::vector<std::vector<std::string>>> elements = {
    +
    16 {
    +
    17 {"Replaced by the gauge"},
    +
    18 },
    +
    19 {
    +
    20 {". "},
    +
    21 {".. "},
    +
    22 {"..."},
    +
    23 },
    +
    24 {
    +
    25 {"|"},
    +
    26 {"/"},
    +
    27 {"-"},
    +
    28 {"\\"},
    +
    29 },
    +
    30 {
    +
    31 {"+"},
    +
    32 {"x"},
    +
    33 },
    +
    34 {
    +
    35 {"| "},
    +
    36 {"|| "},
    +
    37 {"|||"},
    +
    38 },
    +
    39 {
    +
    40 {"←"},
    +
    41 {"↖"},
    +
    42 {"↑"},
    +
    43 {"↗"},
    +
    44 {"→"},
    +
    45 {"↘"},
    +
    46 {"↓"},
    +
    47 {"↙"},
    +
    48 },
    +
    49 {
    +
    50 {"▁"},
    +
    51 {"▂"},
    +
    52 {"▃"},
    +
    53 {"▄"},
    +
    54 {"▅"},
    +
    55 {"▆"},
    +
    56 {"▇"},
    +
    57 {"█"},
    +
    58 {"▇"},
    +
    59 {"▆"},
    +
    60 {"▅"},
    +
    61 {"▄"},
    +
    62 {"▃"},
    +
    63 {"▁"},
    +
    64 },
    +
    65 {
    +
    66 {"▉"},
    +
    67 {"▊"},
    +
    68 {"▋"},
    +
    69 {"▌"},
    +
    70 {"▍"},
    +
    71 {"▎"},
    +
    72 {"▏"},
    +
    73 {"▎"},
    +
    74 {"▍"},
    +
    75 {"▌"},
    +
    76 {"▋"},
    +
    77 {"▊"},
    +
    78 },
    +
    79 {
    +
    80 {"▖"},
    +
    81 {"▘"},
    +
    82 {"▝"},
    +
    83 {"▗"},
    +
    84 },
    +
    85 {
    +
    86 {"◢"},
    +
    87 {"◣"},
    +
    88 {"◤"},
    +
    89 {"◥"},
    +
    90 },
    +
    91 {
    +
    92 {"◰"},
    +
    93 {"◳"},
    +
    94 {"◲"},
    +
    95 {"◱"},
    +
    96 },
    +
    97 {
    +
    98 {"◴"},
    +
    99 {"◷"},
    +
    100 {"◶"},
    +
    101 {"◵"},
    +
    102 },
    +
    103 {
    +
    104 {"◐"},
    +
    105 {"◓"},
    +
    106 {"◑"},
    +
    107 {"◒"},
    +
    108 },
    +
    109 {
    +
    110 {"◡"},
    +
    111 {"⊙"},
    +
    112 {"◠"},
    +
    113 },
    +
    114 {
    +
    115 {"⠁"},
    +
    116 {"⠂"},
    +
    117 {"⠄"},
    +
    118 {"⡀"},
    +
    119 {"⢀"},
    +
    120 {"⠠"},
    +
    121 {"⠐"},
    +
    122 {"⠈"},
    +
    123 },
    +
    124 {
    +
    125 {"⠋"},
    +
    126 {"⠙"},
    +
    127 {"⠹"},
    +
    128 {"⠸"},
    +
    129 {"⠼"},
    +
    130 {"⠴"},
    +
    131 {"⠦"},
    +
    132 {"⠧"},
    +
    133 {"⠇"},
    +
    134 {"⠏"},
    +
    135 },
    +
    136 {
    +
    137 {"(*----------)"}, {"(-*---------)"}, {"(--*--------)"},
    +
    138 {"(---*-------)"}, {"(----*------)"}, {"(-----*-----)"},
    +
    139 {"(------*----)"}, {"(-------*---)"}, {"(--------*--)"},
    +
    140 {"(---------*-)"}, {"(----------*)"}, {"(---------*-)"},
    +
    141 {"(--------*--)"}, {"(-------*---)"}, {"(------*----)"},
    +
    142 {"(-----*-----)"}, {"(----*------)"}, {"(---*-------)"},
    +
    143 {"(--*--------)"}, {"(-*---------)"},
    +
    144 },
    +
    145 {
    +
    146 {"[ ]"},
    +
    147 {"[= ]"},
    +
    148 {"[== ]"},
    +
    149 {"[=== ]"},
    +
    150 {"[==== ]"},
    +
    151 {"[===== ]"},
    +
    152 {"[======]"},
    +
    153 {"[===== ]"},
    +
    154 {"[==== ]"},
    +
    155 {"[=== ]"},
    +
    156 {"[== ]"},
    +
    157 {"[= ]"},
    +
    158 },
    +
    159 {
    +
    160 {"[ ]"},
    +
    161 {"[= ]"},
    +
    162 {"[== ]"},
    +
    163 {"[=== ]"},
    +
    164 {"[==== ]"},
    +
    165 {"[===== ]"},
    +
    166 {"[======]"},
    +
    167 {"[ =====]"},
    +
    168 {"[ ====]"},
    +
    169 {"[ ===]"},
    +
    170 {"[ ==]"},
    +
    171 {"[ =]"},
    +
    172 },
    +
    173 {
    +
    174 {"[== ]"},
    +
    175 {"[== ]"},
    +
    176 {"[== ]"},
    +
    177 {"[== ]"},
    +
    178 {"[== ]"},
    +
    179 {" [== ]"},
    +
    180 {"[ == ]"},
    +
    181 {"[ == ]"},
    +
    182 {"[ ==]"},
    +
    183 {"[ ==]"},
    +
    184 {"[ ==]"},
    +
    185 {"[ ==]"},
    +
    186 {"[ ==]"},
    +
    187 {"[ ==] "},
    +
    188 {"[ == ]"},
    +
    189 {"[ == ]"},
    +
    190 },
    +
    191 {
    +
    192 {
    +
    193 " ─╮",
    +
    194 " │",
    +
    195 " ",
    +
    196 },
    +
    197 {
    +
    198 " ╮",
    +
    199 " │",
    +
    200 " ╯",
    +
    201 },
    +
    202 {
    +
    203 " ",
    +
    204 " │",
    +
    205 " ─╯",
    +
    206 },
    +
    207 {
    +
    208 " ",
    +
    209 " ",
    +
    210 "╰─╯",
    +
    211 },
    +
    212 {
    +
    213 " ",
    +
    214 "│ ",
    +
    215 "╰─ ",
    +
    216 },
    +
    217 {
    +
    218 "╭ ",
    +
    219 "│ ",
    +
    220 "╰ ",
    +
    221 },
    +
    222 {
    +
    223 "╭─ ",
    +
    224 "│ ",
    +
    225 " ",
    +
    226 },
    +
    227 {
    +
    228 "╭─╮",
    +
    229 " ",
    +
    230 " ",
    +
    231 },
    +
    232 },
    +
    233 {
    +
    234 {
    +
    235 " /\\O ",
    +
    236 " /\\/",
    +
    237 " /\\ ",
    +
    238 " / \\ ",
    +
    239 "LOL LOL",
    +
    240 },
    +
    241 {
    +
    242 " _O ",
    +
    243 " //|_ ",
    +
    244 " | ",
    +
    245 " /| ",
    +
    246 " LLOL ",
    +
    247 },
    +
    248 {
    +
    249 " O ",
    +
    250 " /_ ",
    +
    251 " |\\ ",
    +
    252 " / | ",
    +
    253 " LOLLOL ",
    +
    254 },
    +
    255 },
    +
    256 {
    +
    257 {" ", "_______", " "},
    +
    258 {" ", "______/", " "},
    +
    259 {" _", "_____/ ", " "},
    +
    260 {" _ ", "____/ \\", " "},
    +
    261 {" _ ", "___/ \\ ", " \\"},
    +
    262 {" _ ", "__/ \\ ", " \\_"},
    +
    263 {" _ ", "_/ \\ ", " \\_/"},
    +
    264 {" _ ", "/ \\ _", " \\_/ "},
    +
    265 {"_ ", " \\ __", " \\_/ "},
    +
    266 {" ", "\\ ___", " \\_/ "},
    +
    267 {" ", " ___", "\\_/ "},
    +
    268 {" ", " _____", "_/ "},
    +
    269 {" ", " ______", "/ "},
    +
    270 {" ", "_______", " "},
    +
    271 },
    +
    272};
    +
    273
    +
    274} // namespace
    +
    275
    +
    276/// @brief Useful to represent the effect of time and/or events. This displays
    +
    277/// an ASCII art "video".
    +
    278/// @param charset_index The type of "video".
    +
    279/// @param image_index The "frame" of the video. You need to increase this for
    +
    280/// every "step".
    +
    281/// @ingroup dom
    +
    +
    282Element spinner(int charset_index, size_t image_index) {
    +
    283 if (charset_index <= 0) {
    +
    284 const int progress_size = 40;
    +
    285 image_index %= progress_size;
    +
    286 if (image_index > progress_size / 2) {
    +
    287 image_index = progress_size - image_index;
    +
    288 }
    +
    289 return gauge(float(image_index) * 0.05F); // NOLINT
    +
    290 }
    +
    291 charset_index %= int(elements.size());
    +
    292 image_index %= int(elements[charset_index].size());
    +
    293 std::vector<Element> lines;
    +
    294 for (const auto& it : elements[charset_index][image_index]) {
    +
    295 lines.push_back(text(it));
    +
    296 }
    +
    297 return vbox(std::move(lines));
    +
    298}
    +
    +
    299
    +
    300} // namespace ftxui
    + +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element spinner(int charset_index, size_t image_index)
    Useful to represent the effect of time and/or events. This displays an ASCII art "video".
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element gauge(float progress)
    Draw a high definition progress bar.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2table_8cpp.html b/src_2ftxui_2dom_2table_8cpp.html new file mode 100644 index 000000000..c625ed272 --- /dev/null +++ b/src_2ftxui_2dom_2table_8cpp.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: table.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    table.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/src_2ftxui_2dom_2table_8cpp_source.html b/src_2ftxui_2dom_2table_8cpp_source.html new file mode 100644 index 000000000..38842d80d --- /dev/null +++ b/src_2ftxui_2dom_2table_8cpp_source.html @@ -0,0 +1,740 @@ + + + + + + + + +FTXUI: table.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    src/ftxui/dom/table.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include "ftxui/dom/table.hpp"
    +
    5
    +
    6#include <algorithm> // for max
    +
    7#include <initializer_list> // for initializer_list
    +
    8#include <memory> // for allocator, shared_ptr, allocator_traits<>::value_type
    +
    9#include <utility> // for move, swap
    +
    10#include <vector> // for vector
    +
    11
    +
    12#include "ftxui/dom/elements.hpp" // for Element, operator|, text, separatorCharacter, Elements, BorderStyle, Decorator, emptyElement, size, gridbox, EQUAL, flex, flex_shrink, HEIGHT, WIDTH
    +
    13
    +
    14namespace ftxui {
    +
    15namespace {
    +
    16
    +
    17bool IsCell(int x, int y) {
    +
    18 return x % 2 == 1 && y % 2 == 1;
    +
    19}
    +
    20
    +
    21// NOLINTNEXTLINE
    +
    22static std::string charset[6][6] = {
    +
    23 {"┌", "┐", "└", "┘", "─", "│"}, // LIGHT
    +
    24 {"┏", "┓", "┗", "┛", "╍", "╏"}, // DASHED
    +
    25 {"┏", "┓", "┗", "┛", "━", "┃"}, // HEAVY
    +
    26 {"╔", "╗", "╚", "╝", "═", "║"}, // DOUBLE
    +
    27 {"╭", "╮", "╰", "╯", "─", "│"}, // ROUNDED
    +
    28 {" ", " ", " ", " ", " ", " "}, // EMPTY
    +
    29};
    +
    30
    +
    31int Wrap(int input, int modulo) {
    +
    32 input %= modulo;
    +
    33 input += modulo;
    +
    34 input %= modulo;
    +
    35 return input;
    +
    36}
    +
    37
    +
    38void Order(int& a, int& b) {
    +
    39 if (a >= b) {
    +
    40 std::swap(a, b);
    +
    41 }
    +
    42}
    +
    43
    +
    44} // namespace
    +
    45
    +
    46/// @brief Create an empty table.
    +
    + +
    48 Initialize({});
    +
    49}
    +
    +
    50
    +
    51/// @brief Create a table from a vector of vector of string.
    +
    52/// @param input The input data.
    +
    +
    53Table::Table(std::vector<std::vector<std::string>> input) {
    +
    54 std::vector<std::vector<Element>> output;
    +
    55 output.reserve(input.size());
    +
    56 for (auto& row : input) {
    +
    57 output.emplace_back();
    +
    58 auto& output_row = output.back();
    +
    59 output_row.reserve(row.size());
    +
    60 for (auto& cell : row) {
    +
    61 output_row.push_back(text(std::move(cell)));
    +
    62 }
    +
    63 }
    +
    64 Initialize(std::move(output));
    +
    65}
    +
    +
    66
    +
    67/// @brief Create a table from a vector of vector of Element
    +
    68/// @param input The input elements.
    +
    +
    69Table::Table(std::vector<std::vector<Element>> input) {
    +
    70 Initialize(std::move(input));
    +
    71}
    +
    +
    72
    +
    73// @brief Create a table from a list of list of string.
    +
    74// @param init The input data.
    +
    +
    75Table::Table(std::initializer_list<std::vector<std::string>> init) {
    +
    76 std::vector<std::vector<Element>> input;
    +
    77 for (const auto& row : init) {
    +
    78 std::vector<Element> output_row;
    +
    79 output_row.reserve(row.size());
    +
    80 for (const auto& cell : row) {
    +
    81 output_row.push_back(text(cell));
    +
    82 }
    +
    83 input.push_back(std::move(output_row));
    +
    84 }
    +
    85 Initialize(std::move(input));
    +
    86}
    +
    +
    87
    +
    88// private
    +
    89void Table::Initialize(std::vector<std::vector<Element>> input) {
    +
    90 input_dim_y_ = static_cast<int>(input.size());
    +
    91 input_dim_x_ = 0;
    +
    92 for (auto& row : input) {
    +
    93 input_dim_x_ = std::max(input_dim_x_, int(row.size()));
    +
    94 }
    +
    95
    +
    96 dim_y_ = 2 * input_dim_y_ + 1;
    +
    97 dim_x_ = 2 * input_dim_x_ + 1;
    +
    98
    +
    99 // Reserve space.
    +
    100 elements_.resize(dim_y_);
    +
    101 for (int y = 0; y < dim_y_; ++y) {
    +
    102 elements_[y].resize(dim_x_);
    +
    103 }
    +
    104
    +
    105 // Transfert elements_ from |input| toward |elements_|.
    +
    106 {
    +
    107 int y = 1;
    +
    108 for (auto& row : input) {
    +
    109 int x = 1;
    +
    110 for (auto& cell : row) {
    +
    111 elements_[y][x] = std::move(cell);
    +
    112 x += 2;
    +
    113 }
    +
    114 y += 2;
    +
    115 }
    +
    116 }
    +
    117
    +
    118 // Add empty element for the border.
    +
    119 for (int y = 0; y < dim_y_; ++y) {
    +
    120 for (int x = 0; x < dim_x_; ++x) {
    +
    121 auto& element = elements_[y][x];
    +
    122
    +
    123 if (IsCell(x, y)) {
    +
    124 if (!element) {
    +
    125 element = emptyElement();
    +
    126 }
    +
    127 continue;
    +
    128 }
    +
    129
    +
    130 element = emptyElement();
    +
    131 }
    +
    132 }
    +
    133}
    +
    134
    +
    135/// @brief Select a row of the table.
    +
    136/// @param index The index of the row to select.
    +
    137/// @note You can use negative index to select from the end.
    +
    + +
    139 return SelectRectangle(0, -1, index, index);
    +
    140}
    +
    +
    141
    +
    142/// @brief Select a range of rows of the table.
    +
    143/// @param row_min The first row to select.
    +
    144/// @param row_max The last row to select.
    +
    145/// @note You can use negative index to select from the end.
    +
    +
    146TableSelection Table::SelectRows(int row_min, int row_max) {
    +
    147 return SelectRectangle(0, -1, row_min, row_max);
    +
    148}
    +
    +
    149
    +
    150/// @brief Select a column of the table.
    +
    151/// @param index The index of the column to select.
    +
    152/// @note You can use negative index to select from the end.
    +
    + +
    154 return SelectRectangle(index, index, 0, -1);
    +
    155}
    +
    +
    156
    +
    157/// @brief Select a range of columns of the table.
    +
    158/// @param column_min The first column to select.
    +
    159/// @param column_max The last column to select.
    +
    160/// @note You can use negative index to select from the end.
    +
    +
    161TableSelection Table::SelectColumns(int column_min, int column_max) {
    +
    162 return SelectRectangle(column_min, column_max, 0, -1);
    +
    163}
    +
    +
    164
    +
    165/// @brief Select a cell of the table.
    +
    166/// @param column The column of the cell to select.
    +
    167/// @param row The row of the cell to select.
    +
    168/// @note You can use negative index to select from the end.
    +
    +
    169TableSelection Table::SelectCell(int column, int row) {
    +
    170 return SelectRectangle(column, column, row, row);
    +
    171}
    +
    +
    172
    +
    173/// @brief Select a rectangle of the table.
    +
    174/// @param column_min The first column to select.
    +
    175/// @param column_max The last column to select.
    +
    176/// @param row_min The first row to select.
    +
    177/// @param row_max The last row to select.
    +
    178/// @note You can use negative index to select from the end.
    +
    + +
    180 int column_max,
    +
    181 int row_min,
    +
    182 int row_max) {
    +
    183 column_min = Wrap(column_min, input_dim_x_);
    +
    184 column_max = Wrap(column_max, input_dim_x_);
    +
    185 Order(column_min, column_max);
    +
    186 row_min = Wrap(row_min, input_dim_y_);
    +
    187 row_max = Wrap(row_max, input_dim_y_);
    +
    188 Order(row_min, row_max);
    +
    189
    +
    190 TableSelection output; // NOLINT
    +
    191 output.table_ = this;
    +
    192 output.x_min_ = 2 * column_min;
    +
    193 output.x_max_ = 2 * column_max + 2;
    +
    194 output.y_min_ = 2 * row_min;
    +
    195 output.y_max_ = 2 * row_max + 2;
    +
    196 return output;
    +
    197}
    +
    +
    198
    +
    199/// @brief Select all the table.
    +
    + +
    201 TableSelection output; // NOLINT
    +
    202 output.table_ = this;
    +
    203 output.x_min_ = 0;
    +
    204 output.x_max_ = dim_x_ - 1;
    +
    205 output.y_min_ = 0;
    +
    206 output.y_max_ = dim_y_ - 1;
    +
    207 return output;
    +
    208}
    +
    +
    209
    +
    210/// @brief Render the table.
    +
    211/// @return The rendered table. This is an element you can draw.
    +
    + +
    213 for (int y = 0; y < dim_y_; ++y) {
    +
    214 for (int x = 0; x < dim_x_; ++x) {
    +
    215 auto& it = elements_[y][x];
    +
    216
    +
    217 // Line
    +
    218 if ((x + y) % 2 == 1) {
    +
    219 it = std::move(it) | flex;
    +
    220 continue;
    +
    221 }
    +
    222
    +
    223 // Cells
    +
    224 if ((x % 2) == 1 && (y % 2) == 1) {
    +
    225 it = std::move(it) | flex_shrink;
    +
    226 continue;
    +
    227 }
    +
    228
    +
    229 // Corners
    +
    230 it = std::move(it) | size(WIDTH, EQUAL, 0) | size(HEIGHT, EQUAL, 0);
    +
    231 }
    +
    232 }
    +
    233 dim_x_ = 0;
    +
    234 dim_y_ = 0;
    +
    235 return gridbox(std::move(elements_));
    +
    236}
    +
    +
    237
    +
    238/// @brief Apply the `decorator` to the selection.
    +
    239/// This decorate both the cells, the lines and the corners.
    +
    240/// @param decorator The decorator to apply.
    +
    241// NOLINTNEXTLINE
    +
    + +
    243 for (int y = y_min_; y <= y_max_; ++y) {
    +
    244 for (int x = x_min_; x <= x_max_; ++x) {
    +
    245 Element& e = table_->elements_[y][x];
    +
    246 e = std::move(e) | decorator;
    +
    247 }
    +
    248 }
    +
    249}
    +
    +
    250
    +
    251/// @brief Apply the `decorator` to the selection.
    +
    252/// @param decorator The decorator to apply.
    +
    253/// This decorate only the cells.
    +
    254// NOLINTNEXTLINE
    +
    + +
    256 for (int y = y_min_; y <= y_max_; ++y) {
    +
    257 for (int x = x_min_; x <= x_max_; ++x) {
    +
    258 if (y % 2 == 1 && x % 2 == 1) {
    +
    259 Element& e = table_->elements_[y][x];
    +
    260 e = std::move(e) | decorator;
    +
    261 }
    +
    262 }
    +
    263 }
    +
    264}
    +
    +
    265
    +
    266/// @brief Apply the `decorator` to the selection.
    +
    267/// This decorate only the lines modulo `modulo` with a shift of `shift`.
    +
    268/// @param decorator The decorator to apply.
    +
    269/// @param modulo The modulo of the lines to decorate.
    +
    270/// @param shift The shift of the lines to decorate.
    +
    271// NOLINTNEXTLINE
    +
    + +
    273 int modulo,
    +
    274 int shift) {
    +
    275 for (int y = y_min_; y <= y_max_; ++y) {
    +
    276 for (int x = x_min_; x <= x_max_; ++x) {
    +
    277 if (y % 2 == 1 && (x / 2) % modulo == shift) {
    +
    278 Element& e = table_->elements_[y][x];
    +
    279 e = std::move(e) | decorator;
    +
    280 }
    +
    281 }
    +
    282 }
    +
    283}
    +
    +
    284
    +
    285/// @brief Apply the `decorator` to the selection.
    +
    286/// This decorate only the lines modulo `modulo` with a shift of `shift`.
    +
    287/// @param decorator The decorator to apply.
    +
    288/// @param modulo The modulo of the lines to decorate.
    +
    289/// @param shift The shift of the lines to decorate.
    +
    290// NOLINTNEXTLINE
    +
    + +
    292 int modulo,
    +
    293 int shift) {
    +
    294 for (int y = y_min_ + 1; y <= y_max_ - 1; ++y) {
    +
    295 for (int x = x_min_; x <= x_max_; ++x) {
    +
    296 if (y % 2 == 1 && (y / 2) % modulo == shift) {
    +
    297 Element& e = table_->elements_[y][x];
    +
    298 e = std::move(e) | decorator;
    +
    299 }
    +
    300 }
    +
    301 }
    +
    302}
    +
    +
    303
    +
    304/// @brief Apply the `decorator` to the selection.
    +
    305/// This decorate only the corners modulo `modulo` with a shift of `shift`.
    +
    306/// @param decorator The decorator to apply.
    +
    307/// @param modulo The modulo of the corners to decorate.
    +
    308/// @param shift The shift of the corners to decorate.
    +
    309// NOLINTNEXTLINE
    +
    + +
    311 int modulo,
    +
    312 int shift) {
    +
    313 for (int y = y_min_; y <= y_max_; ++y) {
    +
    314 for (int x = x_min_; x <= x_max_; ++x) {
    +
    315 if (y % 2 == 1 && x % 2 == 1 && ((x / 2) % modulo == shift)) {
    +
    316 Element& e = table_->elements_[y][x];
    +
    317 e = std::move(e) | decorator;
    +
    318 }
    +
    319 }
    +
    320 }
    +
    321}
    +
    +
    322
    +
    323/// @brief Apply the `decorator` to the selection.
    +
    324/// This decorate only the corners modulo `modulo` with a shift of `shift`.
    +
    325/// @param decorator The decorator to apply.
    +
    326/// @param modulo The modulo of the corners to decorate.
    +
    327/// @param shift The shift of the corners to decorate.
    +
    328// NOLINTNEXTLINE
    +
    + +
    330 int modulo,
    +
    331 int shift) {
    +
    332 for (int y = y_min_; y <= y_max_; ++y) {
    +
    333 for (int x = x_min_; x <= x_max_; ++x) {
    +
    334 if (y % 2 == 1 && x % 2 == 1 && ((y / 2) % modulo == shift)) {
    +
    335 Element& e = table_->elements_[y][x];
    +
    336 e = std::move(e) | decorator;
    +
    337 }
    +
    338 }
    +
    339 }
    +
    340}
    +
    +
    341
    +
    342/// @brief Apply a `border` around the selection.
    +
    343/// @param border The border style to apply.
    +
    + +
    345 BorderLeft(border);
    +
    346 BorderRight(border);
    +
    347 BorderTop(border);
    +
    348 BorderBottom(border);
    +
    349
    +
    350 // NOLINTNEXTLINE
    +
    351 table_->elements_[y_min_][x_min_] = text(charset[border][0]) | automerge;
    +
    352 // NOLINTNEXTLINE
    +
    353 table_->elements_[y_min_][x_max_] = text(charset[border][1]) | automerge;
    +
    354 // NOLINTNEXTLINE
    +
    355 table_->elements_[y_max_][x_min_] = text(charset[border][2]) | automerge;
    +
    356 // NOLINTNEXTLINE
    +
    357 table_->elements_[y_max_][x_max_] = text(charset[border][3]) | automerge;
    +
    358}
    +
    +
    359
    +
    360/// @brief Draw some separator lines in the selection.
    +
    361/// @param border The border style to apply.
    +
    + +
    363 for (int y = y_min_ + 1; y <= y_max_ - 1; ++y) {
    +
    364 for (int x = x_min_ + 1; x <= x_max_ - 1; ++x) {
    +
    365 if (y % 2 == 0 || x % 2 == 0) {
    +
    366 Element& e = table_->elements_[y][x];
    +
    367 e = (y % 2 == 1)
    +
    368 ? separatorCharacter(charset[border][5]) | automerge // NOLINT
    +
    369 : separatorCharacter(charset[border][4]) | automerge; // NOLINT
    +
    370 }
    +
    371 }
    +
    372 }
    +
    373}
    +
    +
    374
    +
    375/// @brief Draw some vertical separator lines in the selection.
    +
    376/// @param border The border style to apply.
    +
    + +
    378 for (int y = y_min_ + 1; y <= y_max_ - 1; ++y) {
    +
    379 for (int x = x_min_ + 1; x <= x_max_ - 1; ++x) {
    +
    380 if (x % 2 == 0) {
    +
    381 table_->elements_[y][x] =
    +
    382 separatorCharacter(charset[border][5]) | automerge; // NOLINT
    +
    383 }
    +
    384 }
    +
    385 }
    +
    386}
    +
    +
    387
    +
    388/// @brief Draw some horizontal separator lines in the selection.
    +
    389/// @param border The border style to apply.
    +
    + +
    391 for (int y = y_min_ + 1; y <= y_max_ - 1; ++y) {
    +
    392 for (int x = x_min_ + 1; x <= x_max_ - 1; ++x) {
    +
    393 if (y % 2 == 0) {
    +
    394 table_->elements_[y][x] =
    +
    395 separatorCharacter(charset[border][4]) | automerge; // NOLINT
    +
    396 }
    +
    397 }
    +
    398 }
    +
    399}
    +
    +
    400
    +
    401/// @brief Draw some separator lines to the left side of the selection.
    +
    402/// @param border The border style to apply.
    +
    + +
    404 for (int y = y_min_; y <= y_max_; y++) {
    +
    405 table_->elements_[y][x_min_] =
    +
    406 separatorCharacter(charset[border][5]) | automerge; // NOLINT
    +
    407 }
    +
    408}
    +
    +
    409
    +
    410/// @brief Draw some separator lines to the right side of the selection.
    +
    411/// @param border The border style to apply.
    +
    + +
    413 for (int y = y_min_; y <= y_max_; y++) {
    +
    414 table_->elements_[y][x_max_] =
    +
    415 separatorCharacter(charset[border][5]) | automerge; // NOLINT
    +
    416 }
    +
    417}
    +
    +
    418
    +
    419/// @brief Draw some separator lines to the top side of the selection.
    +
    420/// @param border The border style to apply.
    +
    + +
    422 for (int x = x_min_; x <= x_max_; x++) {
    +
    423 table_->elements_[y_min_][x] =
    +
    424 separatorCharacter(charset[border][4]) | automerge; // NOLINT
    +
    425 }
    +
    426}
    +
    +
    427
    +
    428/// @brief Draw some separator lines to the bottom side of the selection.
    +
    429/// @param border The border style to apply.
    +
    + +
    431 for (int x = x_min_; x <= x_max_; x++) {
    +
    432 table_->elements_[y_max_][x] =
    +
    433 separatorCharacter(charset[border][4]) | automerge; // NOLINT
    +
    434 }
    +
    435}
    +
    +
    436
    +
    437} // namespace ftxui
    + +
    void DecorateAlternateColumn(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shif...
    +
    void SeparatorVertical(BorderStyle border=LIGHT)
    Draw some vertical separator lines in the selection.
    +
    void DecorateCells(Decorator)
    Apply the decorator to the selection.
    +
    void BorderLeft(BorderStyle border=LIGHT)
    Draw some separator lines to the left side of the selection.
    +
    void DecorateCellsAlternateColumn(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of sh...
    +
    void Decorate(Decorator)
    Apply the decorator to the selection. This decorate both the cells, the lines and the corners.
    +
    void DecorateAlternateRow(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shif...
    +
    void BorderTop(BorderStyle border=LIGHT)
    Draw some separator lines to the top side of the selection.
    +
    void Separator(BorderStyle border=LIGHT)
    Draw some separator lines in the selection.
    +
    void BorderBottom(BorderStyle border=LIGHT)
    Draw some separator lines to the bottom side of the selection.
    +
    void DecorateCellsAlternateRow(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of sh...
    +
    void BorderRight(BorderStyle border=LIGHT)
    Draw some separator lines to the right side of the selection.
    +
    void Border(BorderStyle border=LIGHT)
    Apply a border around the selection.
    +
    void SeparatorHorizontal(BorderStyle border=LIGHT)
    Draw some horizontal separator lines in the selection.
    + +
    Component Wrap(std::string name, Component component)
    Definition gallery.cpp:18
    +
    Element Render()
    Render the table.
    +
    Table()
    Create an empty table.
    +
    TableSelection SelectCell(int column, int row)
    Select a cell of the table.
    +
    TableSelection SelectColumn(int column_index)
    Select a column of the table.
    +
    TableSelection SelectRow(int row_index)
    Select a row of the table.
    +
    TableSelection SelectColumns(int column_min, int column_max)
    Select a range of columns of the table.
    +
    TableSelection SelectRows(int row_min, int row_max)
    Select a range of rows of the table.
    +
    TableSelection SelectAll()
    Select all the table.
    +
    TableSelection SelectRectangle(int column_min, int column_max, int row_min, int row_max)
    Select a rectangle of the table.
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    Element flex(Element)
    Make a child element to expand proportionally to the space left in a container.
    Definition flex.cpp:123
    +
    Element emptyElement()
    Definition dom/util.cpp:140
    +
    Element flex_shrink(Element)
    Minimize if needed.
    Definition flex.cpp:159
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element separatorCharacter(std::string)
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element automerge(Element child)
    Enable character to be automatically merged with others nearby.
    Definition automerge.cpp:17
    +
    BorderStyle
    BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
    Definition elements.hpp:35
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    Element gridbox(std::vector< Elements > lines)
    A container displaying a grid of elements.
    + + +
    +
    + + + + + diff --git a/strikethrough_8cpp.html b/strikethrough_8cpp.html new file mode 100644 index 000000000..6a38b881b --- /dev/null +++ b/strikethrough_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: strikethrough.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    strikethrough.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element strikethrough (Element child)
     Apply a strikethrough to text.
     
    +
    +
    + + + + + diff --git a/strikethrough_8cpp.js b/strikethrough_8cpp.js new file mode 100644 index 000000000..96dc78e6e --- /dev/null +++ b/strikethrough_8cpp.js @@ -0,0 +1,4 @@ +var strikethrough_8cpp = +[ + [ "strikethrough", "strikethrough_8cpp.html#ga8594d70f0491def903370e86132fbf01", null ] +]; \ No newline at end of file diff --git a/strikethrough_8cpp_source.html b/strikethrough_8cpp_source.html new file mode 100644 index 000000000..223d05f94 --- /dev/null +++ b/strikethrough_8cpp_source.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: strikethrough.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    strikethrough.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, strikethrough
    +
    8#include "ftxui/dom/node.hpp" // for Node
    +
    9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief Apply a strikethrough to text.
    +
    16/// @ingroup dom
    +
    + +
    18 class Impl : public NodeDecorator {
    +
    19 public:
    +
    20 using NodeDecorator::NodeDecorator;
    +
    21
    +
    22 void Render(Screen& screen) override {
    +
    23 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    24 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    25 screen.PixelAt(x, y).strikethrough = true;
    +
    26 }
    +
    27 }
    +
    28 Node::Render(screen);
    +
    29 }
    +
    30 };
    +
    31
    +
    32 return std::make_shared<Impl>(std::move(child));
    +
    33}
    +
    +
    34
    +
    35} // namespace ftxui
    + + + +
    Element strikethrough(Element)
    Apply a strikethrough to text.
    +
    bool strikethrough
    Definition pixel.hpp:35
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    +
    + + + + + diff --git a/string_8cpp.html b/string_8cpp.html new file mode 100644 index 000000000..809efd4aa --- /dev/null +++ b/string_8cpp.html @@ -0,0 +1,262 @@ + + + + + + + + +FTXUI: string.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    string.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    bool EatCodePoint (const std::string &input, size_t start, size_t *end, uint32_t *ucs)
     
    bool EatCodePoint (const std::wstring &input, size_t start, size_t *end, uint32_t *ucs)
     
    bool IsCombining (uint32_t ucs)
     
    bool IsFullWidth (uint32_t ucs)
     
    bool IsControl (uint32_t ucs)
     
    WordBreakProperty CodepointToWordBreakProperty (uint32_t codepoint)
     
    int wchar_width (wchar_t)
     
    int wstring_width (const std::wstring &)
     
    int string_width (const std::string &)
     
    std::vector< std::string > Utf8ToGlyphs (const std::string &input)
     
    size_t GlyphPrevious (const std::string &input, size_t start)
     
    size_t GlyphNext (const std::string &input, size_t start)
     
    size_t GlyphIterate (const std::string &input, int glyph_offset, size_t start)
     
    std::vector< int > CellToGlyphIndex (const std::string &input)
     
    int GlyphCount (const std::string &input)
     
    std::vector< WordBreakPropertyUtf8ToWordBreakProperty (const std::string &input)
     
    std::string to_string (const std::wstring &s)
     Convert a std::wstring into a UTF8 std::string.
     
    std::wstring to_wstring (const std::string &s)
     Convert a UTF8 std::string into a std::wstring.
     
    +
    +
    + + + + + diff --git a/string_8cpp.js b/string_8cpp.js new file mode 100644 index 000000000..1de05baaf --- /dev/null +++ b/string_8cpp.js @@ -0,0 +1,21 @@ +var string_8cpp = +[ + [ "EatCodePoint", "string_8cpp.html#a903cd2e24b3b7cf8d7d4daa680e0a8d5", null ], + [ "EatCodePoint", "string_8cpp.html#a88b8b2f726acaf2aca140a403989d8d0", null ], + [ "IsCombining", "string_8cpp.html#a506e6b467ddd8d11646942fd101d8e9e", null ], + [ "IsFullWidth", "string_8cpp.html#abd13f584efddd3a7e5749c9c5e841a11", null ], + [ "IsControl", "string_8cpp.html#a037df033cc26c960faa54b52bdbea900", null ], + [ "CodepointToWordBreakProperty", "string_8cpp.html#a191b3278846ceb6ac35d2e4eb26db759", null ], + [ "wchar_width", "string_8cpp.html#a1bb4947f62228380f5c415f69b34021f", null ], + [ "wstring_width", "string_8cpp.html#adedb4aa528ad2aef48177dea69ca7a9d", null ], + [ "string_width", "string_8cpp.html#a517b35c7721e632812d8b3a7697c4099", null ], + [ "Utf8ToGlyphs", "string_8cpp.html#a389c58d385e861cd2ef109b53fc6ef96", null ], + [ "GlyphPrevious", "string_8cpp.html#ae2ef74edc55750554e97ea71c5887650", null ], + [ "GlyphNext", "string_8cpp.html#a02453c4504a5cfbc83b38abd4ec6d8ba", null ], + [ "GlyphIterate", "string_8cpp.html#ad74a7d623ff7a09787469021d30c9461", null ], + [ "CellToGlyphIndex", "string_8cpp.html#a9769a28baa6a84d5de6a8bd624a29294", null ], + [ "GlyphCount", "string_8cpp.html#a9b4f3faecfbeb6b2c0fdf9c30e3f1553", null ], + [ "Utf8ToWordBreakProperty", "string_8cpp.html#ad15724e497f0001e146da530183ca552", null ], + [ "to_string", "string_8cpp.html#a757b345f73bb6cde5165a4d7f0c0a298", null ], + [ "to_wstring", "string_8cpp.html#a57429a83a46c643a81dee81e49384439", null ] +]; \ No newline at end of file diff --git a/string_8cpp_source.html b/string_8cpp_source.html new file mode 100644 index 000000000..180dffdbe --- /dev/null +++ b/string_8cpp_source.html @@ -0,0 +1,1938 @@ + + + + + + + + +FTXUI: string.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    string.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4//
    +
    5// Content of this file was created thanks to:
    +
    6// -
    +
    7// https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/WordBreakProperty.txt
    +
    8// - Markus Kuhn -- 2007-05-26 (Unicode 5.0)
    +
    9// http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
    +
    10// Thanks you!
    +
    11
    + +
    13
    +
    14#include <array> // for array
    +
    15#include <cstddef> // for size_t
    +
    16#include <cstdint> // for uint32_t, uint8_t, uint16_t, int32_t
    +
    17#include <string> // for string, basic_string, wstring
    +
    18#include <tuple> // for _Swallow_assign, ignore
    +
    19#include <vector>
    +
    20
    +
    21#include "ftxui/screen/deprecated.hpp" // for wchar_width, wstring_width
    +
    22#include "ftxui/screen/string_internal.hpp" // for WordBreakProperty, EatCodePoint, CodepointToWordBreakProperty, GlyphCount, GlyphIterate, GlyphNext, GlyphPrevious, IsCombining, IsControl, IsFullWidth, Utf8ToWordBreakProperty
    +
    23
    +
    24namespace {
    +
    25
    +
    26struct Interval {
    +
    27 uint32_t first;
    +
    28 uint32_t last;
    +
    29};
    +
    30
    +
    31// As of Unicode 13.0.0
    +
    32constexpr std::array<Interval, 116> g_full_width_characters = {{
    +
    33 {0x01100, 0x0115f}, {0x0231a, 0x0231b}, {0x02329, 0x0232a},
    +
    34 {0x023e9, 0x023ec}, {0x023f0, 0x023f0}, {0x023f3, 0x023f3},
    +
    35 {0x025fd, 0x025fe}, {0x02614, 0x02615}, {0x02648, 0x02653},
    +
    36 {0x0267f, 0x0267f}, {0x02693, 0x02693}, {0x026a1, 0x026a1},
    +
    37 {0x026aa, 0x026ab}, {0x026bd, 0x026be}, {0x026c4, 0x026c5},
    +
    38 {0x026ce, 0x026ce}, {0x026d4, 0x026d4}, {0x026ea, 0x026ea},
    +
    39 {0x026f2, 0x026f3}, {0x026f5, 0x026f5}, {0x026fa, 0x026fa},
    +
    40 {0x026fd, 0x026fd}, {0x02705, 0x02705}, {0x0270a, 0x0270b},
    +
    41 {0x02728, 0x02728}, {0x0274c, 0x0274c}, {0x0274e, 0x0274e},
    +
    42 {0x02753, 0x02755}, {0x02757, 0x02757}, {0x02795, 0x02797},
    +
    43 {0x027b0, 0x027b0}, {0x027bf, 0x027bf}, {0x02b1b, 0x02b1c},
    +
    44 {0x02b50, 0x02b50}, {0x02b55, 0x02b55}, {0x02e80, 0x02e99},
    +
    45 {0x02e9b, 0x02ef3}, {0x02f00, 0x02fd5}, {0x02ff0, 0x02ffb},
    +
    46 {0x03000, 0x0303e}, {0x03041, 0x03096}, {0x03099, 0x030ff},
    +
    47 {0x03105, 0x0312f}, {0x03131, 0x0318e}, {0x03190, 0x031e3},
    +
    48 {0x031f0, 0x0321e}, {0x03220, 0x03247}, {0x03250, 0x04dbf},
    +
    49 {0x04e00, 0x0a48c}, {0x0a490, 0x0a4c6}, {0x0a960, 0x0a97c},
    +
    50 {0x0ac00, 0x0d7a3}, {0x0f900, 0x0faff}, {0x0fe10, 0x0fe19},
    +
    51 {0x0fe30, 0x0fe52}, {0x0fe54, 0x0fe66}, {0x0fe68, 0x0fe6b},
    +
    52 {0x0ff01, 0x0ff60}, {0x0ffe0, 0x0ffe6}, {0x16fe0, 0x16fe4},
    +
    53 {0x16ff0, 0x16ff1}, {0x17000, 0x187f7}, {0x18800, 0x18cd5},
    +
    54 {0x18d00, 0x18d08}, {0x1b000, 0x1b11e}, {0x1b150, 0x1b152},
    +
    55 {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1f004, 0x1f004},
    +
    56 {0x1f0cf, 0x1f0cf}, {0x1f18e, 0x1f18e}, {0x1f191, 0x1f19a},
    +
    57 {0x1f200, 0x1f202}, {0x1f210, 0x1f23b}, {0x1f240, 0x1f248},
    +
    58 {0x1f250, 0x1f251}, {0x1f260, 0x1f265}, {0x1f300, 0x1f320},
    +
    59 {0x1f32d, 0x1f335}, {0x1f337, 0x1f37c}, {0x1f37e, 0x1f393},
    +
    60 {0x1f3a0, 0x1f3ca}, {0x1f3cf, 0x1f3d3}, {0x1f3e0, 0x1f3f0},
    +
    61 {0x1f3f4, 0x1f3f4}, {0x1f3f8, 0x1f43e}, {0x1f440, 0x1f440},
    +
    62 {0x1f442, 0x1f4fc}, {0x1f4ff, 0x1f53d}, {0x1f54b, 0x1f54e},
    +
    63 {0x1f550, 0x1f567}, {0x1f57a, 0x1f57a}, {0x1f595, 0x1f596},
    +
    64 {0x1f5a4, 0x1f5a4}, {0x1f5fb, 0x1f64f}, {0x1f680, 0x1f6c5},
    +
    65 {0x1f6cc, 0x1f6cc}, {0x1f6d0, 0x1f6d2}, {0x1f6d5, 0x1f6d7},
    +
    66 {0x1f6eb, 0x1f6ec}, {0x1f6f4, 0x1f6fc}, {0x1f7e0, 0x1f7eb},
    +
    67 {0x1f90c, 0x1f93a}, {0x1f93c, 0x1f945}, {0x1f947, 0x1f978},
    +
    68 {0x1f97a, 0x1f9cb}, {0x1f9cd, 0x1f9ff}, {0x1fa70, 0x1fa74},
    +
    69 {0x1fa78, 0x1fa7a}, {0x1fa80, 0x1fa86}, {0x1fa90, 0x1faa8},
    +
    70 {0x1fab0, 0x1fab6}, {0x1fac0, 0x1fac2}, {0x1fad0, 0x1fad6},
    +
    71 {0x20000, 0x2fffd}, {0x30000, 0x3fffd},
    +
    72}};
    +
    73
    +
    74using WBP = ftxui::WordBreakProperty;
    +
    75struct WordBreakPropertyInterval {
    +
    76 uint32_t first;
    +
    77 uint32_t last;
    +
    78 WBP property;
    +
    79};
    +
    80
    +
    81// Properties from:
    +
    82// https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/WordBreakProperty.txt
    +
    83constexpr std::array<WordBreakPropertyInterval, 993> g_word_break_intervals = {{
    +
    84 {0x0000A, 0x0000A, WBP::LF},
    +
    85 {0x0000B, 0x0000C, WBP::Newline},
    +
    86 {0x0000D, 0x0000D, WBP::CR},
    +
    87 {0x00020, 0x00020, WBP::WSegSpace},
    +
    88 {0x00022, 0x00022, WBP::Double_Quote},
    +
    89 {0x00027, 0x00027, WBP::Single_Quote},
    +
    90 {0x0002C, 0x0002C, WBP::MidNum},
    +
    91 {0x0002E, 0x0002E, WBP::MidNumLet},
    +
    92 {0x00030, 0x00039, WBP::Numeric},
    +
    93 {0x0003A, 0x0003A, WBP::MidLetter},
    +
    94 {0x0003B, 0x0003B, WBP::MidNum},
    +
    95 {0x00041, 0x0005A, WBP::ALetter},
    +
    96 {0x0005F, 0x0005F, WBP::ExtendNumLet},
    +
    97 {0x00061, 0x0007A, WBP::ALetter},
    +
    98 {0x00085, 0x00085, WBP::Newline},
    +
    99 {0x000AA, 0x000AA, WBP::ALetter},
    +
    100 {0x000AD, 0x000AD, WBP::Format},
    +
    101 {0x000B5, 0x000B5, WBP::ALetter},
    +
    102 {0x000B7, 0x000B7, WBP::MidLetter},
    +
    103 {0x000BA, 0x000BA, WBP::ALetter},
    +
    104 {0x000C0, 0x000D6, WBP::ALetter},
    +
    105 {0x000D8, 0x000F6, WBP::ALetter},
    +
    106 {0x000F8, 0x002D7, WBP::ALetter},
    +
    107 {0x002DE, 0x002FF, WBP::ALetter},
    +
    108 {0x00300, 0x0036F, WBP::Extend},
    +
    109 {0x00370, 0x00374, WBP::ALetter},
    +
    110 {0x00376, 0x00377, WBP::ALetter},
    +
    111 {0x0037A, 0x0037D, WBP::ALetter},
    +
    112 {0x0037E, 0x0037E, WBP::MidNum},
    +
    113 {0x0037F, 0x0037F, WBP::ALetter},
    +
    114 {0x00386, 0x00386, WBP::ALetter},
    +
    115 {0x00387, 0x00387, WBP::MidLetter},
    +
    116 {0x00388, 0x0038A, WBP::ALetter},
    +
    117 {0x0038C, 0x0038C, WBP::ALetter},
    +
    118 {0x0038E, 0x003A1, WBP::ALetter},
    +
    119 {0x003A3, 0x003F5, WBP::ALetter},
    +
    120 {0x003F7, 0x00481, WBP::ALetter},
    +
    121 {0x00483, 0x00489, WBP::Extend},
    +
    122 {0x0048A, 0x0052F, WBP::ALetter},
    +
    123 {0x00531, 0x00556, WBP::ALetter},
    +
    124 {0x00559, 0x0055C, WBP::ALetter},
    +
    125 {0x0055E, 0x0055E, WBP::ALetter},
    +
    126 {0x0055F, 0x0055F, WBP::MidLetter},
    +
    127 {0x00560, 0x00588, WBP::ALetter},
    +
    128 {0x00589, 0x00589, WBP::MidNum},
    +
    129 {0x0058A, 0x0058A, WBP::ALetter},
    +
    130 {0x00591, 0x005BD, WBP::Extend},
    +
    131 {0x005BF, 0x005BF, WBP::Extend},
    +
    132 {0x005C1, 0x005C2, WBP::Extend},
    +
    133 {0x005C4, 0x005C5, WBP::Extend},
    +
    134 {0x005C7, 0x005C7, WBP::Extend},
    +
    135 {0x005D0, 0x005EA, WBP::Hebrew_Letter},
    +
    136 {0x005EF, 0x005F2, WBP::Hebrew_Letter},
    +
    137 {0x005F3, 0x005F3, WBP::ALetter},
    +
    138 {0x005F4, 0x005F4, WBP::MidLetter},
    +
    139 {0x00600, 0x00605, WBP::Format},
    +
    140 {0x0060C, 0x0060D, WBP::MidNum},
    +
    141 {0x00610, 0x0061A, WBP::Extend},
    +
    142 {0x0061C, 0x0061C, WBP::Format},
    +
    143 {0x00620, 0x0064A, WBP::ALetter},
    +
    144 {0x0064B, 0x0065F, WBP::Extend},
    +
    145 {0x00660, 0x00669, WBP::Numeric},
    +
    146 {0x0066B, 0x0066B, WBP::Numeric},
    +
    147 {0x0066C, 0x0066C, WBP::MidNum},
    +
    148 {0x0066E, 0x0066F, WBP::ALetter},
    +
    149 {0x00670, 0x00670, WBP::Extend},
    +
    150 {0x00671, 0x006D3, WBP::ALetter},
    +
    151 {0x006D5, 0x006D5, WBP::ALetter},
    +
    152 {0x006D6, 0x006DC, WBP::Extend},
    +
    153 {0x006DD, 0x006DD, WBP::Format},
    +
    154 {0x006DF, 0x006E4, WBP::Extend},
    +
    155 {0x006E5, 0x006E6, WBP::ALetter},
    +
    156 {0x006E7, 0x006E8, WBP::Extend},
    +
    157 {0x006EA, 0x006ED, WBP::Extend},
    +
    158 {0x006EE, 0x006EF, WBP::ALetter},
    +
    159 {0x006F0, 0x006F9, WBP::Numeric},
    +
    160 {0x006FA, 0x006FC, WBP::ALetter},
    +
    161 {0x006FF, 0x006FF, WBP::ALetter},
    +
    162 {0x0070F, 0x0070F, WBP::Format},
    +
    163 {0x00710, 0x00710, WBP::ALetter},
    +
    164 {0x00711, 0x00711, WBP::Extend},
    +
    165 {0x00712, 0x0072F, WBP::ALetter},
    +
    166 {0x00730, 0x0074A, WBP::Extend},
    +
    167 {0x0074D, 0x007A5, WBP::ALetter},
    +
    168 {0x007A6, 0x007B0, WBP::Extend},
    +
    169 {0x007B1, 0x007B1, WBP::ALetter},
    +
    170 {0x007C0, 0x007C9, WBP::Numeric},
    +
    171 {0x007CA, 0x007EA, WBP::ALetter},
    +
    172 {0x007EB, 0x007F3, WBP::Extend},
    +
    173 {0x007F4, 0x007F5, WBP::ALetter},
    +
    174 {0x007F8, 0x007F8, WBP::MidNum},
    +
    175 {0x007FA, 0x007FA, WBP::ALetter},
    +
    176 {0x007FD, 0x007FD, WBP::Extend},
    +
    177 {0x00800, 0x00815, WBP::ALetter},
    +
    178 {0x00816, 0x00819, WBP::Extend},
    +
    179 {0x0081A, 0x0081A, WBP::ALetter},
    +
    180 {0x0081B, 0x00823, WBP::Extend},
    +
    181 {0x00824, 0x00824, WBP::ALetter},
    +
    182 {0x00825, 0x00827, WBP::Extend},
    +
    183 {0x00828, 0x00828, WBP::ALetter},
    +
    184 {0x00829, 0x0082D, WBP::Extend},
    +
    185 {0x00840, 0x00858, WBP::ALetter},
    +
    186 {0x00859, 0x0085B, WBP::Extend},
    +
    187 {0x00860, 0x0086A, WBP::ALetter},
    +
    188 {0x008A0, 0x008B4, WBP::ALetter},
    +
    189 {0x008B6, 0x008C7, WBP::ALetter},
    +
    190 {0x008D3, 0x008E1, WBP::Extend},
    +
    191 {0x008E2, 0x008E2, WBP::Format},
    +
    192 {0x008E3, 0x00903, WBP::Extend},
    +
    193 {0x00904, 0x00939, WBP::ALetter},
    +
    194 {0x0093A, 0x0093C, WBP::Extend},
    +
    195 {0x0093D, 0x0093D, WBP::ALetter},
    +
    196 {0x0093E, 0x0094F, WBP::Extend},
    +
    197 {0x00950, 0x00950, WBP::ALetter},
    +
    198 {0x00951, 0x00957, WBP::Extend},
    +
    199 {0x00958, 0x00961, WBP::ALetter},
    +
    200 {0x00962, 0x00963, WBP::Extend},
    +
    201 {0x00966, 0x0096F, WBP::Numeric},
    +
    202 {0x00971, 0x00980, WBP::ALetter},
    +
    203 {0x00981, 0x00983, WBP::Extend},
    +
    204 {0x00985, 0x0098C, WBP::ALetter},
    +
    205 {0x0098F, 0x00990, WBP::ALetter},
    +
    206 {0x00993, 0x009A8, WBP::ALetter},
    +
    207 {0x009AA, 0x009B0, WBP::ALetter},
    +
    208 {0x009B2, 0x009B2, WBP::ALetter},
    +
    209 {0x009B6, 0x009B9, WBP::ALetter},
    +
    210 {0x009BC, 0x009BC, WBP::Extend},
    +
    211 {0x009BD, 0x009BD, WBP::ALetter},
    +
    212 {0x009BE, 0x009C4, WBP::Extend},
    +
    213 {0x009C7, 0x009C8, WBP::Extend},
    +
    214 {0x009CB, 0x009CD, WBP::Extend},
    +
    215 {0x009CE, 0x009CE, WBP::ALetter},
    +
    216 {0x009D7, 0x009D7, WBP::Extend},
    +
    217 {0x009DC, 0x009DD, WBP::ALetter},
    +
    218 {0x009DF, 0x009E1, WBP::ALetter},
    +
    219 {0x009E2, 0x009E3, WBP::Extend},
    +
    220 {0x009E6, 0x009EF, WBP::Numeric},
    +
    221 {0x009F0, 0x009F1, WBP::ALetter},
    +
    222 {0x009FC, 0x009FC, WBP::ALetter},
    +
    223 {0x009FE, 0x009FE, WBP::Extend},
    +
    224 {0x00A01, 0x00A03, WBP::Extend},
    +
    225 {0x00A05, 0x00A0A, WBP::ALetter},
    +
    226 {0x00A0F, 0x00A10, WBP::ALetter},
    +
    227 {0x00A13, 0x00A28, WBP::ALetter},
    +
    228 {0x00A2A, 0x00A30, WBP::ALetter},
    +
    229 {0x00A32, 0x00A33, WBP::ALetter},
    +
    230 {0x00A35, 0x00A36, WBP::ALetter},
    +
    231 {0x00A38, 0x00A39, WBP::ALetter},
    +
    232 {0x00A3C, 0x00A3C, WBP::Extend},
    +
    233 {0x00A3E, 0x00A42, WBP::Extend},
    +
    234 {0x00A47, 0x00A48, WBP::Extend},
    +
    235 {0x00A4B, 0x00A4D, WBP::Extend},
    +
    236 {0x00A51, 0x00A51, WBP::Extend},
    +
    237 {0x00A59, 0x00A5C, WBP::ALetter},
    +
    238 {0x00A5E, 0x00A5E, WBP::ALetter},
    +
    239 {0x00A66, 0x00A6F, WBP::Numeric},
    +
    240 {0x00A70, 0x00A71, WBP::Extend},
    +
    241 {0x00A72, 0x00A74, WBP::ALetter},
    +
    242 {0x00A75, 0x00A75, WBP::Extend},
    +
    243 {0x00A81, 0x00A83, WBP::Extend},
    +
    244 {0x00A85, 0x00A8D, WBP::ALetter},
    +
    245 {0x00A8F, 0x00A91, WBP::ALetter},
    +
    246 {0x00A93, 0x00AA8, WBP::ALetter},
    +
    247 {0x00AAA, 0x00AB0, WBP::ALetter},
    +
    248 {0x00AB2, 0x00AB3, WBP::ALetter},
    +
    249 {0x00AB5, 0x00AB9, WBP::ALetter},
    +
    250 {0x00ABC, 0x00ABC, WBP::Extend},
    +
    251 {0x00ABD, 0x00ABD, WBP::ALetter},
    +
    252 {0x00ABE, 0x00AC5, WBP::Extend},
    +
    253 {0x00AC7, 0x00AC9, WBP::Extend},
    +
    254 {0x00ACB, 0x00ACD, WBP::Extend},
    +
    255 {0x00AD0, 0x00AD0, WBP::ALetter},
    +
    256 {0x00AE0, 0x00AE1, WBP::ALetter},
    +
    257 {0x00AE2, 0x00AE3, WBP::Extend},
    +
    258 {0x00AE6, 0x00AEF, WBP::Numeric},
    +
    259 {0x00AF9, 0x00AF9, WBP::ALetter},
    +
    260 {0x00AFA, 0x00AFF, WBP::Extend},
    +
    261 {0x00B01, 0x00B03, WBP::Extend},
    +
    262 {0x00B05, 0x00B0C, WBP::ALetter},
    +
    263 {0x00B0F, 0x00B10, WBP::ALetter},
    +
    264 {0x00B13, 0x00B28, WBP::ALetter},
    +
    265 {0x00B2A, 0x00B30, WBP::ALetter},
    +
    266 {0x00B32, 0x00B33, WBP::ALetter},
    +
    267 {0x00B35, 0x00B39, WBP::ALetter},
    +
    268 {0x00B3C, 0x00B3C, WBP::Extend},
    +
    269 {0x00B3D, 0x00B3D, WBP::ALetter},
    +
    270 {0x00B3E, 0x00B44, WBP::Extend},
    +
    271 {0x00B47, 0x00B48, WBP::Extend},
    +
    272 {0x00B4B, 0x00B4D, WBP::Extend},
    +
    273 {0x00B55, 0x00B57, WBP::Extend},
    +
    274 {0x00B5C, 0x00B5D, WBP::ALetter},
    +
    275 {0x00B5F, 0x00B61, WBP::ALetter},
    +
    276 {0x00B62, 0x00B63, WBP::Extend},
    +
    277 {0x00B66, 0x00B6F, WBP::Numeric},
    +
    278 {0x00B71, 0x00B71, WBP::ALetter},
    +
    279 {0x00B82, 0x00B82, WBP::Extend},
    +
    280 {0x00B83, 0x00B83, WBP::ALetter},
    +
    281 {0x00B85, 0x00B8A, WBP::ALetter},
    +
    282 {0x00B8E, 0x00B90, WBP::ALetter},
    +
    283 {0x00B92, 0x00B95, WBP::ALetter},
    +
    284 {0x00B99, 0x00B9A, WBP::ALetter},
    +
    285 {0x00B9C, 0x00B9C, WBP::ALetter},
    +
    286 {0x00B9E, 0x00B9F, WBP::ALetter},
    +
    287 {0x00BA3, 0x00BA4, WBP::ALetter},
    +
    288 {0x00BA8, 0x00BAA, WBP::ALetter},
    +
    289 {0x00BAE, 0x00BB9, WBP::ALetter},
    +
    290 {0x00BBE, 0x00BC2, WBP::Extend},
    +
    291 {0x00BC6, 0x00BC8, WBP::Extend},
    +
    292 {0x00BCA, 0x00BCD, WBP::Extend},
    +
    293 {0x00BD0, 0x00BD0, WBP::ALetter},
    +
    294 {0x00BD7, 0x00BD7, WBP::Extend},
    +
    295 {0x00BE6, 0x00BEF, WBP::Numeric},
    +
    296 {0x00C00, 0x00C04, WBP::Extend},
    +
    297 {0x00C05, 0x00C0C, WBP::ALetter},
    +
    298 {0x00C0E, 0x00C10, WBP::ALetter},
    +
    299 {0x00C12, 0x00C28, WBP::ALetter},
    +
    300 {0x00C2A, 0x00C39, WBP::ALetter},
    +
    301 {0x00C3D, 0x00C3D, WBP::ALetter},
    +
    302 {0x00C3E, 0x00C44, WBP::Extend},
    +
    303 {0x00C46, 0x00C48, WBP::Extend},
    +
    304 {0x00C4A, 0x00C4D, WBP::Extend},
    +
    305 {0x00C55, 0x00C56, WBP::Extend},
    +
    306 {0x00C58, 0x00C5A, WBP::ALetter},
    +
    307 {0x00C60, 0x00C61, WBP::ALetter},
    +
    308 {0x00C62, 0x00C63, WBP::Extend},
    +
    309 {0x00C66, 0x00C6F, WBP::Numeric},
    +
    310 {0x00C80, 0x00C80, WBP::ALetter},
    +
    311 {0x00C81, 0x00C83, WBP::Extend},
    +
    312 {0x00C85, 0x00C8C, WBP::ALetter},
    +
    313 {0x00C8E, 0x00C90, WBP::ALetter},
    +
    314 {0x00C92, 0x00CA8, WBP::ALetter},
    +
    315 {0x00CAA, 0x00CB3, WBP::ALetter},
    +
    316 {0x00CB5, 0x00CB9, WBP::ALetter},
    +
    317 {0x00CBC, 0x00CBC, WBP::Extend},
    +
    318 {0x00CBD, 0x00CBD, WBP::ALetter},
    +
    319 {0x00CBE, 0x00CC4, WBP::Extend},
    +
    320 {0x00CC6, 0x00CC8, WBP::Extend},
    +
    321 {0x00CCA, 0x00CCD, WBP::Extend},
    +
    322 {0x00CD5, 0x00CD6, WBP::Extend},
    +
    323 {0x00CDE, 0x00CDE, WBP::ALetter},
    +
    324 {0x00CE0, 0x00CE1, WBP::ALetter},
    +
    325 {0x00CE2, 0x00CE3, WBP::Extend},
    +
    326 {0x00CE6, 0x00CEF, WBP::Numeric},
    +
    327 {0x00CF1, 0x00CF2, WBP::ALetter},
    +
    328 {0x00D00, 0x00D03, WBP::Extend},
    +
    329 {0x00D04, 0x00D0C, WBP::ALetter},
    +
    330 {0x00D0E, 0x00D10, WBP::ALetter},
    +
    331 {0x00D12, 0x00D3A, WBP::ALetter},
    +
    332 {0x00D3B, 0x00D3C, WBP::Extend},
    +
    333 {0x00D3D, 0x00D3D, WBP::ALetter},
    +
    334 {0x00D3E, 0x00D44, WBP::Extend},
    +
    335 {0x00D46, 0x00D48, WBP::Extend},
    +
    336 {0x00D4A, 0x00D4D, WBP::Extend},
    +
    337 {0x00D4E, 0x00D4E, WBP::ALetter},
    +
    338 {0x00D54, 0x00D56, WBP::ALetter},
    +
    339 {0x00D57, 0x00D57, WBP::Extend},
    +
    340 {0x00D5F, 0x00D61, WBP::ALetter},
    +
    341 {0x00D62, 0x00D63, WBP::Extend},
    +
    342 {0x00D66, 0x00D6F, WBP::Numeric},
    +
    343 {0x00D7A, 0x00D7F, WBP::ALetter},
    +
    344 {0x00D81, 0x00D83, WBP::Extend},
    +
    345 {0x00D85, 0x00D96, WBP::ALetter},
    +
    346 {0x00D9A, 0x00DB1, WBP::ALetter},
    +
    347 {0x00DB3, 0x00DBB, WBP::ALetter},
    +
    348 {0x00DBD, 0x00DBD, WBP::ALetter},
    +
    349 {0x00DC0, 0x00DC6, WBP::ALetter},
    +
    350 {0x00DCA, 0x00DCA, WBP::Extend},
    +
    351 {0x00DCF, 0x00DD4, WBP::Extend},
    +
    352 {0x00DD6, 0x00DD6, WBP::Extend},
    +
    353 {0x00DD8, 0x00DDF, WBP::Extend},
    +
    354 {0x00DE6, 0x00DEF, WBP::Numeric},
    +
    355 {0x00DF2, 0x00DF3, WBP::Extend},
    +
    356 {0x00E31, 0x00E31, WBP::Extend},
    +
    357 {0x00E34, 0x00E3A, WBP::Extend},
    +
    358 {0x00E47, 0x00E4E, WBP::Extend},
    +
    359 {0x00E50, 0x00E59, WBP::Numeric},
    +
    360 {0x00EB1, 0x00EB1, WBP::Extend},
    +
    361 {0x00EB4, 0x00EBC, WBP::Extend},
    +
    362 {0x00EC8, 0x00ECD, WBP::Extend},
    +
    363 {0x00ED0, 0x00ED9, WBP::Numeric},
    +
    364 {0x00F00, 0x00F00, WBP::ALetter},
    +
    365 {0x00F18, 0x00F19, WBP::Extend},
    +
    366 {0x00F20, 0x00F29, WBP::Numeric},
    +
    367 {0x00F35, 0x00F35, WBP::Extend},
    +
    368 {0x00F37, 0x00F37, WBP::Extend},
    +
    369 {0x00F39, 0x00F39, WBP::Extend},
    +
    370 {0x00F3E, 0x00F3F, WBP::Extend},
    +
    371 {0x00F40, 0x00F47, WBP::ALetter},
    +
    372 {0x00F49, 0x00F6C, WBP::ALetter},
    +
    373 {0x00F71, 0x00F84, WBP::Extend},
    +
    374 {0x00F86, 0x00F87, WBP::Extend},
    +
    375 {0x00F88, 0x00F8C, WBP::ALetter},
    +
    376 {0x00F8D, 0x00F97, WBP::Extend},
    +
    377 {0x00F99, 0x00FBC, WBP::Extend},
    +
    378 {0x00FC6, 0x00FC6, WBP::Extend},
    +
    379 {0x0102B, 0x0103E, WBP::Extend},
    +
    380 {0x01040, 0x01049, WBP::Numeric},
    +
    381 {0x01056, 0x01059, WBP::Extend},
    +
    382 {0x0105E, 0x01060, WBP::Extend},
    +
    383 {0x01062, 0x01064, WBP::Extend},
    +
    384 {0x01067, 0x0106D, WBP::Extend},
    +
    385 {0x01071, 0x01074, WBP::Extend},
    +
    386 {0x01082, 0x0108D, WBP::Extend},
    +
    387 {0x0108F, 0x0108F, WBP::Extend},
    +
    388 {0x01090, 0x01099, WBP::Numeric},
    +
    389 {0x0109A, 0x0109D, WBP::Extend},
    +
    390 {0x010A0, 0x010C5, WBP::ALetter},
    +
    391 {0x010C7, 0x010C7, WBP::ALetter},
    +
    392 {0x010CD, 0x010CD, WBP::ALetter},
    +
    393 {0x010D0, 0x010FA, WBP::ALetter},
    +
    394 {0x010FC, 0x01248, WBP::ALetter},
    +
    395 {0x0124A, 0x0124D, WBP::ALetter},
    +
    396 {0x01250, 0x01256, WBP::ALetter},
    +
    397 {0x01258, 0x01258, WBP::ALetter},
    +
    398 {0x0125A, 0x0125D, WBP::ALetter},
    +
    399 {0x01260, 0x01288, WBP::ALetter},
    +
    400 {0x0128A, 0x0128D, WBP::ALetter},
    +
    401 {0x01290, 0x012B0, WBP::ALetter},
    +
    402 {0x012B2, 0x012B5, WBP::ALetter},
    +
    403 {0x012B8, 0x012BE, WBP::ALetter},
    +
    404 {0x012C0, 0x012C0, WBP::ALetter},
    +
    405 {0x012C2, 0x012C5, WBP::ALetter},
    +
    406 {0x012C8, 0x012D6, WBP::ALetter},
    +
    407 {0x012D8, 0x01310, WBP::ALetter},
    +
    408 {0x01312, 0x01315, WBP::ALetter},
    +
    409 {0x01318, 0x0135A, WBP::ALetter},
    +
    410 {0x0135D, 0x0135F, WBP::Extend},
    +
    411 {0x01380, 0x0138F, WBP::ALetter},
    +
    412 {0x013A0, 0x013F5, WBP::ALetter},
    +
    413 {0x013F8, 0x013FD, WBP::ALetter},
    +
    414 {0x01401, 0x0166C, WBP::ALetter},
    +
    415 {0x0166F, 0x0167F, WBP::ALetter},
    +
    416 {0x01680, 0x01680, WBP::WSegSpace},
    +
    417 {0x01681, 0x0169A, WBP::ALetter},
    +
    418 {0x016A0, 0x016EA, WBP::ALetter},
    +
    419 {0x016EE, 0x016F8, WBP::ALetter},
    +
    420 {0x01700, 0x0170C, WBP::ALetter},
    +
    421 {0x0170E, 0x01711, WBP::ALetter},
    +
    422 {0x01712, 0x01714, WBP::Extend},
    +
    423 {0x01720, 0x01731, WBP::ALetter},
    +
    424 {0x01732, 0x01734, WBP::Extend},
    +
    425 {0x01740, 0x01751, WBP::ALetter},
    +
    426 {0x01752, 0x01753, WBP::Extend},
    +
    427 {0x01760, 0x0176C, WBP::ALetter},
    +
    428 {0x0176E, 0x01770, WBP::ALetter},
    +
    429 {0x01772, 0x01773, WBP::Extend},
    +
    430 {0x017B4, 0x017D3, WBP::Extend},
    +
    431 {0x017DD, 0x017DD, WBP::Extend},
    +
    432 {0x017E0, 0x017E9, WBP::Numeric},
    +
    433 {0x0180B, 0x0180D, WBP::Extend},
    +
    434 {0x0180E, 0x0180E, WBP::Format},
    +
    435 {0x01810, 0x01819, WBP::Numeric},
    +
    436 {0x01820, 0x01878, WBP::ALetter},
    +
    437 {0x01880, 0x01884, WBP::ALetter},
    +
    438 {0x01885, 0x01886, WBP::Extend},
    +
    439 {0x01887, 0x018A8, WBP::ALetter},
    +
    440 {0x018A9, 0x018A9, WBP::Extend},
    +
    441 {0x018AA, 0x018AA, WBP::ALetter},
    +
    442 {0x018B0, 0x018F5, WBP::ALetter},
    +
    443 {0x01900, 0x0191E, WBP::ALetter},
    +
    444 {0x01920, 0x0192B, WBP::Extend},
    +
    445 {0x01930, 0x0193B, WBP::Extend},
    +
    446 {0x01946, 0x0194F, WBP::Numeric},
    +
    447 {0x019D0, 0x019D9, WBP::Numeric},
    +
    448 {0x01A00, 0x01A16, WBP::ALetter},
    +
    449 {0x01A17, 0x01A1B, WBP::Extend},
    +
    450 {0x01A55, 0x01A5E, WBP::Extend},
    +
    451 {0x01A60, 0x01A7C, WBP::Extend},
    +
    452 {0x01A7F, 0x01A7F, WBP::Extend},
    +
    453 {0x01A80, 0x01A89, WBP::Numeric},
    +
    454 {0x01A90, 0x01A99, WBP::Numeric},
    +
    455 {0x01AB0, 0x01AC0, WBP::Extend},
    +
    456 {0x01B00, 0x01B04, WBP::Extend},
    +
    457 {0x01B05, 0x01B33, WBP::ALetter},
    +
    458 {0x01B34, 0x01B44, WBP::Extend},
    +
    459 {0x01B45, 0x01B4B, WBP::ALetter},
    +
    460 {0x01B50, 0x01B59, WBP::Numeric},
    +
    461 {0x01B6B, 0x01B73, WBP::Extend},
    +
    462 {0x01B80, 0x01B82, WBP::Extend},
    +
    463 {0x01B83, 0x01BA0, WBP::ALetter},
    +
    464 {0x01BA1, 0x01BAD, WBP::Extend},
    +
    465 {0x01BAE, 0x01BAF, WBP::ALetter},
    +
    466 {0x01BB0, 0x01BB9, WBP::Numeric},
    +
    467 {0x01BBA, 0x01BE5, WBP::ALetter},
    +
    468 {0x01BE6, 0x01BF3, WBP::Extend},
    +
    469 {0x01C00, 0x01C23, WBP::ALetter},
    +
    470 {0x01C24, 0x01C37, WBP::Extend},
    +
    471 {0x01C40, 0x01C49, WBP::Numeric},
    +
    472 {0x01C4D, 0x01C4F, WBP::ALetter},
    +
    473 {0x01C50, 0x01C59, WBP::Numeric},
    +
    474 {0x01C5A, 0x01C7D, WBP::ALetter},
    +
    475 {0x01C80, 0x01C88, WBP::ALetter},
    +
    476 {0x01C90, 0x01CBA, WBP::ALetter},
    +
    477 {0x01CBD, 0x01CBF, WBP::ALetter},
    +
    478 {0x01CD0, 0x01CD2, WBP::Extend},
    +
    479 {0x01CD4, 0x01CE8, WBP::Extend},
    +
    480 {0x01CE9, 0x01CEC, WBP::ALetter},
    +
    481 {0x01CED, 0x01CED, WBP::Extend},
    +
    482 {0x01CEE, 0x01CF3, WBP::ALetter},
    +
    483 {0x01CF4, 0x01CF4, WBP::Extend},
    +
    484 {0x01CF5, 0x01CF6, WBP::ALetter},
    +
    485 {0x01CF7, 0x01CF9, WBP::Extend},
    +
    486 {0x01CFA, 0x01CFA, WBP::ALetter},
    +
    487 {0x01D00, 0x01DBF, WBP::ALetter},
    +
    488 {0x01DC0, 0x01DF9, WBP::Extend},
    +
    489 {0x01DFB, 0x01DFF, WBP::Extend},
    +
    490 {0x01E00, 0x01F15, WBP::ALetter},
    +
    491 {0x01F18, 0x01F1D, WBP::ALetter},
    +
    492 {0x01F20, 0x01F45, WBP::ALetter},
    +
    493 {0x01F48, 0x01F4D, WBP::ALetter},
    +
    494 {0x01F50, 0x01F57, WBP::ALetter},
    +
    495 {0x01F59, 0x01F59, WBP::ALetter},
    +
    496 {0x01F5B, 0x01F5B, WBP::ALetter},
    +
    497 {0x01F5D, 0x01F5D, WBP::ALetter},
    +
    498 {0x01F5F, 0x01F7D, WBP::ALetter},
    +
    499 {0x01F80, 0x01FB4, WBP::ALetter},
    +
    500 {0x01FB6, 0x01FBC, WBP::ALetter},
    +
    501 {0x01FBE, 0x01FBE, WBP::ALetter},
    +
    502 {0x01FC2, 0x01FC4, WBP::ALetter},
    +
    503 {0x01FC6, 0x01FCC, WBP::ALetter},
    +
    504 {0x01FD0, 0x01FD3, WBP::ALetter},
    +
    505 {0x01FD6, 0x01FDB, WBP::ALetter},
    +
    506 {0x01FE0, 0x01FEC, WBP::ALetter},
    +
    507 {0x01FF2, 0x01FF4, WBP::ALetter},
    +
    508 {0x01FF6, 0x01FFC, WBP::ALetter},
    +
    509 {0x02000, 0x02006, WBP::WSegSpace},
    +
    510 {0x02008, 0x0200A, WBP::WSegSpace},
    +
    511 {0x0200C, 0x0200C, WBP::Extend},
    +
    512 {0x0200D, 0x0200D, WBP::ZWJ},
    +
    513 {0x0200E, 0x0200F, WBP::Format},
    +
    514 {0x02018, 0x02019, WBP::MidNumLet},
    +
    515 {0x02024, 0x02024, WBP::MidNumLet},
    +
    516 {0x02027, 0x02027, WBP::MidLetter},
    +
    517 {0x02028, 0x02029, WBP::Newline},
    +
    518 {0x0202A, 0x0202E, WBP::Format},
    +
    519 {0x0202F, 0x0202F, WBP::ExtendNumLet},
    +
    520 {0x0203F, 0x02040, WBP::ExtendNumLet},
    +
    521 {0x02044, 0x02044, WBP::MidNum},
    +
    522 {0x02054, 0x02054, WBP::ExtendNumLet},
    +
    523 {0x0205F, 0x0205F, WBP::WSegSpace},
    +
    524 {0x02060, 0x02064, WBP::Format},
    +
    525 {0x02066, 0x0206F, WBP::Format},
    +
    526 {0x02071, 0x02071, WBP::ALetter},
    +
    527 {0x0207F, 0x0207F, WBP::ALetter},
    +
    528 {0x02090, 0x0209C, WBP::ALetter},
    +
    529 {0x020D0, 0x020F0, WBP::Extend},
    +
    530 {0x02102, 0x02102, WBP::ALetter},
    +
    531 {0x02107, 0x02107, WBP::ALetter},
    +
    532 {0x0210A, 0x02113, WBP::ALetter},
    +
    533 {0x02115, 0x02115, WBP::ALetter},
    +
    534 {0x02119, 0x0211D, WBP::ALetter},
    +
    535 {0x02124, 0x02124, WBP::ALetter},
    +
    536 {0x02126, 0x02126, WBP::ALetter},
    +
    537 {0x02128, 0x02128, WBP::ALetter},
    +
    538 {0x0212A, 0x0212D, WBP::ALetter},
    +
    539 {0x0212F, 0x02139, WBP::ALetter},
    +
    540 {0x0213C, 0x0213F, WBP::ALetter},
    +
    541 {0x02145, 0x02149, WBP::ALetter},
    +
    542 {0x0214E, 0x0214E, WBP::ALetter},
    +
    543 {0x02160, 0x02188, WBP::ALetter},
    +
    544 {0x024B6, 0x024E9, WBP::ALetter},
    +
    545 {0x02C00, 0x02C2E, WBP::ALetter},
    +
    546 {0x02C30, 0x02C5E, WBP::ALetter},
    +
    547 {0x02C60, 0x02CE4, WBP::ALetter},
    +
    548 {0x02CEB, 0x02CEE, WBP::ALetter},
    +
    549 {0x02CEF, 0x02CF1, WBP::Extend},
    +
    550 {0x02CF2, 0x02CF3, WBP::ALetter},
    +
    551 {0x02D00, 0x02D25, WBP::ALetter},
    +
    552 {0x02D27, 0x02D27, WBP::ALetter},
    +
    553 {0x02D2D, 0x02D2D, WBP::ALetter},
    +
    554 {0x02D30, 0x02D67, WBP::ALetter},
    +
    555 {0x02D6F, 0x02D6F, WBP::ALetter},
    +
    556 {0x02D7F, 0x02D7F, WBP::Extend},
    +
    557 {0x02D80, 0x02D96, WBP::ALetter},
    +
    558 {0x02DA0, 0x02DA6, WBP::ALetter},
    +
    559 {0x02DA8, 0x02DAE, WBP::ALetter},
    +
    560 {0x02DB0, 0x02DB6, WBP::ALetter},
    +
    561 {0x02DB8, 0x02DBE, WBP::ALetter},
    +
    562 {0x02DC0, 0x02DC6, WBP::ALetter},
    +
    563 {0x02DC8, 0x02DCE, WBP::ALetter},
    +
    564 {0x02DD0, 0x02DD6, WBP::ALetter},
    +
    565 {0x02DD8, 0x02DDE, WBP::ALetter},
    +
    566 {0x02DE0, 0x02DFF, WBP::Extend},
    +
    567 {0x02E2F, 0x02E2F, WBP::ALetter},
    +
    568 {0x03000, 0x03000, WBP::WSegSpace},
    +
    569 {0x03005, 0x03005, WBP::ALetter},
    +
    570 {0x0302A, 0x0302F, WBP::Extend},
    +
    571 {0x03031, 0x03035, WBP::Katakana},
    +
    572 {0x0303B, 0x0303C, WBP::ALetter},
    +
    573 {0x03099, 0x0309A, WBP::Extend},
    +
    574 {0x0309B, 0x0309C, WBP::Katakana},
    +
    575 {0x030A0, 0x030FA, WBP::Katakana},
    +
    576 {0x030FC, 0x030FF, WBP::Katakana},
    +
    577 {0x03105, 0x0312F, WBP::ALetter},
    +
    578 {0x03131, 0x0318E, WBP::ALetter},
    +
    579 {0x031A0, 0x031BF, WBP::ALetter},
    +
    580 {0x031F0, 0x031FF, WBP::Katakana},
    +
    581 {0x032D0, 0x032FE, WBP::Katakana},
    +
    582 {0x03300, 0x03357, WBP::Katakana},
    +
    583 {0x0A000, 0x0A48C, WBP::ALetter},
    +
    584 {0x0A4D0, 0x0A4FD, WBP::ALetter},
    +
    585 {0x0A500, 0x0A60C, WBP::ALetter},
    +
    586 {0x0A610, 0x0A61F, WBP::ALetter},
    +
    587 {0x0A620, 0x0A629, WBP::Numeric},
    +
    588 {0x0A62A, 0x0A62B, WBP::ALetter},
    +
    589 {0x0A640, 0x0A66E, WBP::ALetter},
    +
    590 {0x0A66F, 0x0A672, WBP::Extend},
    +
    591 {0x0A674, 0x0A67D, WBP::Extend},
    +
    592 {0x0A67F, 0x0A69D, WBP::ALetter},
    +
    593 {0x0A69E, 0x0A69F, WBP::Extend},
    +
    594 {0x0A6A0, 0x0A6EF, WBP::ALetter},
    +
    595 {0x0A6F0, 0x0A6F1, WBP::Extend},
    +
    596 {0x0A708, 0x0A7BF, WBP::ALetter},
    +
    597 {0x0A7C2, 0x0A7CA, WBP::ALetter},
    +
    598 {0x0A7F5, 0x0A801, WBP::ALetter},
    +
    599 {0x0A802, 0x0A802, WBP::Extend},
    +
    600 {0x0A803, 0x0A805, WBP::ALetter},
    +
    601 {0x0A806, 0x0A806, WBP::Extend},
    +
    602 {0x0A807, 0x0A80A, WBP::ALetter},
    +
    603 {0x0A80B, 0x0A80B, WBP::Extend},
    +
    604 {0x0A80C, 0x0A822, WBP::ALetter},
    +
    605 {0x0A823, 0x0A827, WBP::Extend},
    +
    606 {0x0A82C, 0x0A82C, WBP::Extend},
    +
    607 {0x0A840, 0x0A873, WBP::ALetter},
    +
    608 {0x0A880, 0x0A881, WBP::Extend},
    +
    609 {0x0A882, 0x0A8B3, WBP::ALetter},
    +
    610 {0x0A8B4, 0x0A8C5, WBP::Extend},
    +
    611 {0x0A8D0, 0x0A8D9, WBP::Numeric},
    +
    612 {0x0A8E0, 0x0A8F1, WBP::Extend},
    +
    613 {0x0A8F2, 0x0A8F7, WBP::ALetter},
    +
    614 {0x0A8FB, 0x0A8FB, WBP::ALetter},
    +
    615 {0x0A8FD, 0x0A8FE, WBP::ALetter},
    +
    616 {0x0A8FF, 0x0A8FF, WBP::Extend},
    +
    617 {0x0A900, 0x0A909, WBP::Numeric},
    +
    618 {0x0A90A, 0x0A925, WBP::ALetter},
    +
    619 {0x0A926, 0x0A92D, WBP::Extend},
    +
    620 {0x0A930, 0x0A946, WBP::ALetter},
    +
    621 {0x0A947, 0x0A953, WBP::Extend},
    +
    622 {0x0A960, 0x0A97C, WBP::ALetter},
    +
    623 {0x0A980, 0x0A983, WBP::Extend},
    +
    624 {0x0A984, 0x0A9B2, WBP::ALetter},
    +
    625 {0x0A9B3, 0x0A9C0, WBP::Extend},
    +
    626 {0x0A9CF, 0x0A9CF, WBP::ALetter},
    +
    627 {0x0A9D0, 0x0A9D9, WBP::Numeric},
    +
    628 {0x0A9E5, 0x0A9E5, WBP::Extend},
    +
    629 {0x0A9F0, 0x0A9F9, WBP::Numeric},
    +
    630 {0x0AA00, 0x0AA28, WBP::ALetter},
    +
    631 {0x0AA29, 0x0AA36, WBP::Extend},
    +
    632 {0x0AA40, 0x0AA42, WBP::ALetter},
    +
    633 {0x0AA43, 0x0AA43, WBP::Extend},
    +
    634 {0x0AA44, 0x0AA4B, WBP::ALetter},
    +
    635 {0x0AA4C, 0x0AA4D, WBP::Extend},
    +
    636 {0x0AA50, 0x0AA59, WBP::Numeric},
    +
    637 {0x0AA7B, 0x0AA7D, WBP::Extend},
    +
    638 {0x0AAB0, 0x0AAB0, WBP::Extend},
    +
    639 {0x0AAB2, 0x0AAB4, WBP::Extend},
    +
    640 {0x0AAB7, 0x0AAB8, WBP::Extend},
    +
    641 {0x0AABE, 0x0AABF, WBP::Extend},
    +
    642 {0x0AAC1, 0x0AAC1, WBP::Extend},
    +
    643 {0x0AAE0, 0x0AAEA, WBP::ALetter},
    +
    644 {0x0AAEB, 0x0AAEF, WBP::Extend},
    +
    645 {0x0AAF2, 0x0AAF4, WBP::ALetter},
    +
    646 {0x0AAF5, 0x0AAF6, WBP::Extend},
    +
    647 {0x0AB01, 0x0AB06, WBP::ALetter},
    +
    648 {0x0AB09, 0x0AB0E, WBP::ALetter},
    +
    649 {0x0AB11, 0x0AB16, WBP::ALetter},
    +
    650 {0x0AB20, 0x0AB26, WBP::ALetter},
    +
    651 {0x0AB28, 0x0AB2E, WBP::ALetter},
    +
    652 {0x0AB30, 0x0AB69, WBP::ALetter},
    +
    653 {0x0AB70, 0x0ABE2, WBP::ALetter},
    +
    654 {0x0ABE3, 0x0ABEA, WBP::Extend},
    +
    655 {0x0ABEC, 0x0ABED, WBP::Extend},
    +
    656 {0x0ABF0, 0x0ABF9, WBP::Numeric},
    +
    657 {0x0AC00, 0x0D7A3, WBP::ALetter},
    +
    658 {0x0D7B0, 0x0D7C6, WBP::ALetter},
    +
    659 {0x0D7CB, 0x0D7FB, WBP::ALetter},
    +
    660 {0x0FB00, 0x0FB06, WBP::ALetter},
    +
    661 {0x0FB13, 0x0FB17, WBP::ALetter},
    +
    662 {0x0FB1D, 0x0FB1D, WBP::Hebrew_Letter},
    +
    663 {0x0FB1E, 0x0FB1E, WBP::Extend},
    +
    664 {0x0FB1F, 0x0FB28, WBP::Hebrew_Letter},
    +
    665 {0x0FB2A, 0x0FB36, WBP::Hebrew_Letter},
    +
    666 {0x0FB38, 0x0FB3C, WBP::Hebrew_Letter},
    +
    667 {0x0FB3E, 0x0FB3E, WBP::Hebrew_Letter},
    +
    668 {0x0FB40, 0x0FB41, WBP::Hebrew_Letter},
    +
    669 {0x0FB43, 0x0FB44, WBP::Hebrew_Letter},
    +
    670 {0x0FB46, 0x0FB4F, WBP::Hebrew_Letter},
    +
    671 {0x0FB50, 0x0FBB1, WBP::ALetter},
    +
    672 {0x0FBD3, 0x0FD3D, WBP::ALetter},
    +
    673 {0x0FD50, 0x0FD8F, WBP::ALetter},
    +
    674 {0x0FD92, 0x0FDC7, WBP::ALetter},
    +
    675 {0x0FDF0, 0x0FDFB, WBP::ALetter},
    +
    676 {0x0FE00, 0x0FE0F, WBP::Extend},
    +
    677 {0x0FE10, 0x0FE10, WBP::MidNum},
    +
    678 {0x0FE13, 0x0FE13, WBP::MidLetter},
    +
    679 {0x0FE14, 0x0FE14, WBP::MidNum},
    +
    680 {0x0FE20, 0x0FE2F, WBP::Extend},
    +
    681 {0x0FE33, 0x0FE34, WBP::ExtendNumLet},
    +
    682 {0x0FE4D, 0x0FE4F, WBP::ExtendNumLet},
    +
    683 {0x0FE50, 0x0FE50, WBP::MidNum},
    +
    684 {0x0FE52, 0x0FE52, WBP::MidNumLet},
    +
    685 {0x0FE54, 0x0FE54, WBP::MidNum},
    +
    686 {0x0FE55, 0x0FE55, WBP::MidLetter},
    +
    687 {0x0FE70, 0x0FE74, WBP::ALetter},
    +
    688 {0x0FE76, 0x0FEFC, WBP::ALetter},
    +
    689 {0x0FEFF, 0x0FEFF, WBP::Format},
    +
    690 {0x0FF07, 0x0FF07, WBP::MidNumLet},
    +
    691 {0x0FF0C, 0x0FF0C, WBP::MidNum},
    +
    692 {0x0FF0E, 0x0FF0E, WBP::MidNumLet},
    +
    693 {0x0FF10, 0x0FF19, WBP::Numeric},
    +
    694 {0x0FF1A, 0x0FF1A, WBP::MidLetter},
    +
    695 {0x0FF1B, 0x0FF1B, WBP::MidNum},
    +
    696 {0x0FF21, 0x0FF3A, WBP::ALetter},
    +
    697 {0x0FF3F, 0x0FF3F, WBP::ExtendNumLet},
    +
    698 {0x0FF41, 0x0FF5A, WBP::ALetter},
    +
    699 {0x0FF66, 0x0FF9D, WBP::Katakana},
    +
    700 {0x0FF9E, 0x0FF9F, WBP::Extend},
    +
    701 {0x0FFA0, 0x0FFBE, WBP::ALetter},
    +
    702 {0x0FFC2, 0x0FFC7, WBP::ALetter},
    +
    703 {0x0FFCA, 0x0FFCF, WBP::ALetter},
    +
    704 {0x0FFD2, 0x0FFD7, WBP::ALetter},
    +
    705 {0x0FFDA, 0x0FFDC, WBP::ALetter},
    +
    706 {0x0FFF9, 0x0FFFB, WBP::Format},
    +
    707 {0x10000, 0x1000B, WBP::ALetter},
    +
    708 {0x1000D, 0x10026, WBP::ALetter},
    +
    709 {0x10028, 0x1003A, WBP::ALetter},
    +
    710 {0x1003C, 0x1003D, WBP::ALetter},
    +
    711 {0x1003F, 0x1004D, WBP::ALetter},
    +
    712 {0x10050, 0x1005D, WBP::ALetter},
    +
    713 {0x10080, 0x100FA, WBP::ALetter},
    +
    714 {0x10140, 0x10174, WBP::ALetter},
    +
    715 {0x101FD, 0x101FD, WBP::Extend},
    +
    716 {0x10280, 0x1029C, WBP::ALetter},
    +
    717 {0x102A0, 0x102D0, WBP::ALetter},
    +
    718 {0x102E0, 0x102E0, WBP::Extend},
    +
    719 {0x10300, 0x1031F, WBP::ALetter},
    +
    720 {0x1032D, 0x1034A, WBP::ALetter},
    +
    721 {0x10350, 0x10375, WBP::ALetter},
    +
    722 {0x10376, 0x1037A, WBP::Extend},
    +
    723 {0x10380, 0x1039D, WBP::ALetter},
    +
    724 {0x103A0, 0x103C3, WBP::ALetter},
    +
    725 {0x103C8, 0x103CF, WBP::ALetter},
    +
    726 {0x103D1, 0x103D5, WBP::ALetter},
    +
    727 {0x10400, 0x1049D, WBP::ALetter},
    +
    728 {0x104A0, 0x104A9, WBP::Numeric},
    +
    729 {0x104B0, 0x104D3, WBP::ALetter},
    +
    730 {0x104D8, 0x104FB, WBP::ALetter},
    +
    731 {0x10500, 0x10527, WBP::ALetter},
    +
    732 {0x10530, 0x10563, WBP::ALetter},
    +
    733 {0x10600, 0x10736, WBP::ALetter},
    +
    734 {0x10740, 0x10755, WBP::ALetter},
    +
    735 {0x10760, 0x10767, WBP::ALetter},
    +
    736 {0x10800, 0x10805, WBP::ALetter},
    +
    737 {0x10808, 0x10808, WBP::ALetter},
    +
    738 {0x1080A, 0x10835, WBP::ALetter},
    +
    739 {0x10837, 0x10838, WBP::ALetter},
    +
    740 {0x1083C, 0x1083C, WBP::ALetter},
    +
    741 {0x1083F, 0x10855, WBP::ALetter},
    +
    742 {0x10860, 0x10876, WBP::ALetter},
    +
    743 {0x10880, 0x1089E, WBP::ALetter},
    +
    744 {0x108E0, 0x108F2, WBP::ALetter},
    +
    745 {0x108F4, 0x108F5, WBP::ALetter},
    +
    746 {0x10900, 0x10915, WBP::ALetter},
    +
    747 {0x10920, 0x10939, WBP::ALetter},
    +
    748 {0x10980, 0x109B7, WBP::ALetter},
    +
    749 {0x109BE, 0x109BF, WBP::ALetter},
    +
    750 {0x10A00, 0x10A00, WBP::ALetter},
    +
    751 {0x10A01, 0x10A03, WBP::Extend},
    +
    752 {0x10A05, 0x10A06, WBP::Extend},
    +
    753 {0x10A0C, 0x10A0F, WBP::Extend},
    +
    754 {0x10A10, 0x10A13, WBP::ALetter},
    +
    755 {0x10A15, 0x10A17, WBP::ALetter},
    +
    756 {0x10A19, 0x10A35, WBP::ALetter},
    +
    757 {0x10A38, 0x10A3A, WBP::Extend},
    +
    758 {0x10A3F, 0x10A3F, WBP::Extend},
    +
    759 {0x10A60, 0x10A7C, WBP::ALetter},
    +
    760 {0x10A80, 0x10A9C, WBP::ALetter},
    +
    761 {0x10AC0, 0x10AC7, WBP::ALetter},
    +
    762 {0x10AC9, 0x10AE4, WBP::ALetter},
    +
    763 {0x10AE5, 0x10AE6, WBP::Extend},
    +
    764 {0x10B00, 0x10B35, WBP::ALetter},
    +
    765 {0x10B40, 0x10B55, WBP::ALetter},
    +
    766 {0x10B60, 0x10B72, WBP::ALetter},
    +
    767 {0x10B80, 0x10B91, WBP::ALetter},
    +
    768 {0x10C00, 0x10C48, WBP::ALetter},
    +
    769 {0x10C80, 0x10CB2, WBP::ALetter},
    +
    770 {0x10CC0, 0x10CF2, WBP::ALetter},
    +
    771 {0x10D00, 0x10D23, WBP::ALetter},
    +
    772 {0x10D24, 0x10D27, WBP::Extend},
    +
    773 {0x10D30, 0x10D39, WBP::Numeric},
    +
    774 {0x10E80, 0x10EA9, WBP::ALetter},
    +
    775 {0x10EAB, 0x10EAC, WBP::Extend},
    +
    776 {0x10EB0, 0x10EB1, WBP::ALetter},
    +
    777 {0x10F00, 0x10F1C, WBP::ALetter},
    +
    778 {0x10F27, 0x10F27, WBP::ALetter},
    +
    779 {0x10F30, 0x10F45, WBP::ALetter},
    +
    780 {0x10F46, 0x10F50, WBP::Extend},
    +
    781 {0x10FB0, 0x10FC4, WBP::ALetter},
    +
    782 {0x10FE0, 0x10FF6, WBP::ALetter},
    +
    783 {0x11000, 0x11002, WBP::Extend},
    +
    784 {0x11003, 0x11037, WBP::ALetter},
    +
    785 {0x11038, 0x11046, WBP::Extend},
    +
    786 {0x11066, 0x1106F, WBP::Numeric},
    +
    787 {0x1107F, 0x11082, WBP::Extend},
    +
    788 {0x11083, 0x110AF, WBP::ALetter},
    +
    789 {0x110B0, 0x110BA, WBP::Extend},
    +
    790 {0x110BD, 0x110BD, WBP::Format},
    +
    791 {0x110CD, 0x110CD, WBP::Format},
    +
    792 {0x110D0, 0x110E8, WBP::ALetter},
    +
    793 {0x110F0, 0x110F9, WBP::Numeric},
    +
    794 {0x11100, 0x11102, WBP::Extend},
    +
    795 {0x11103, 0x11126, WBP::ALetter},
    +
    796 {0x11127, 0x11134, WBP::Extend},
    +
    797 {0x11136, 0x1113F, WBP::Numeric},
    +
    798 {0x11144, 0x11144, WBP::ALetter},
    +
    799 {0x11145, 0x11146, WBP::Extend},
    +
    800 {0x11147, 0x11147, WBP::ALetter},
    +
    801 {0x11150, 0x11172, WBP::ALetter},
    +
    802 {0x11173, 0x11173, WBP::Extend},
    +
    803 {0x11176, 0x11176, WBP::ALetter},
    +
    804 {0x11180, 0x11182, WBP::Extend},
    +
    805 {0x11183, 0x111B2, WBP::ALetter},
    +
    806 {0x111B3, 0x111C0, WBP::Extend},
    +
    807 {0x111C1, 0x111C4, WBP::ALetter},
    +
    808 {0x111C9, 0x111CC, WBP::Extend},
    +
    809 {0x111CE, 0x111CF, WBP::Extend},
    +
    810 {0x111D0, 0x111D9, WBP::Numeric},
    +
    811 {0x111DA, 0x111DA, WBP::ALetter},
    +
    812 {0x111DC, 0x111DC, WBP::ALetter},
    +
    813 {0x11200, 0x11211, WBP::ALetter},
    +
    814 {0x11213, 0x1122B, WBP::ALetter},
    +
    815 {0x1122C, 0x11237, WBP::Extend},
    +
    816 {0x1123E, 0x1123E, WBP::Extend},
    +
    817 {0x11280, 0x11286, WBP::ALetter},
    +
    818 {0x11288, 0x11288, WBP::ALetter},
    +
    819 {0x1128A, 0x1128D, WBP::ALetter},
    +
    820 {0x1128F, 0x1129D, WBP::ALetter},
    +
    821 {0x1129F, 0x112A8, WBP::ALetter},
    +
    822 {0x112B0, 0x112DE, WBP::ALetter},
    +
    823 {0x112DF, 0x112EA, WBP::Extend},
    +
    824 {0x112F0, 0x112F9, WBP::Numeric},
    +
    825 {0x11300, 0x11303, WBP::Extend},
    +
    826 {0x11305, 0x1130C, WBP::ALetter},
    +
    827 {0x1130F, 0x11310, WBP::ALetter},
    +
    828 {0x11313, 0x11328, WBP::ALetter},
    +
    829 {0x1132A, 0x11330, WBP::ALetter},
    +
    830 {0x11332, 0x11333, WBP::ALetter},
    +
    831 {0x11335, 0x11339, WBP::ALetter},
    +
    832 {0x1133B, 0x1133C, WBP::Extend},
    +
    833 {0x1133D, 0x1133D, WBP::ALetter},
    +
    834 {0x1133E, 0x11344, WBP::Extend},
    +
    835 {0x11347, 0x11348, WBP::Extend},
    +
    836 {0x1134B, 0x1134D, WBP::Extend},
    +
    837 {0x11350, 0x11350, WBP::ALetter},
    +
    838 {0x11357, 0x11357, WBP::Extend},
    +
    839 {0x1135D, 0x11361, WBP::ALetter},
    +
    840 {0x11362, 0x11363, WBP::Extend},
    +
    841 {0x11366, 0x1136C, WBP::Extend},
    +
    842 {0x11370, 0x11374, WBP::Extend},
    +
    843 {0x11400, 0x11434, WBP::ALetter},
    +
    844 {0x11435, 0x11446, WBP::Extend},
    +
    845 {0x11447, 0x1144A, WBP::ALetter},
    +
    846 {0x11450, 0x11459, WBP::Numeric},
    +
    847 {0x1145E, 0x1145E, WBP::Extend},
    +
    848 {0x1145F, 0x11461, WBP::ALetter},
    +
    849 {0x11480, 0x114AF, WBP::ALetter},
    +
    850 {0x114B0, 0x114C3, WBP::Extend},
    +
    851 {0x114C4, 0x114C5, WBP::ALetter},
    +
    852 {0x114C7, 0x114C7, WBP::ALetter},
    +
    853 {0x114D0, 0x114D9, WBP::Numeric},
    +
    854 {0x11580, 0x115AE, WBP::ALetter},
    +
    855 {0x115AF, 0x115B5, WBP::Extend},
    +
    856 {0x115B8, 0x115C0, WBP::Extend},
    +
    857 {0x115D8, 0x115DB, WBP::ALetter},
    +
    858 {0x115DC, 0x115DD, WBP::Extend},
    +
    859 {0x11600, 0x1162F, WBP::ALetter},
    +
    860 {0x11630, 0x11640, WBP::Extend},
    +
    861 {0x11644, 0x11644, WBP::ALetter},
    +
    862 {0x11650, 0x11659, WBP::Numeric},
    +
    863 {0x11680, 0x116AA, WBP::ALetter},
    +
    864 {0x116AB, 0x116B7, WBP::Extend},
    +
    865 {0x116B8, 0x116B8, WBP::ALetter},
    +
    866 {0x116C0, 0x116C9, WBP::Numeric},
    +
    867 {0x1171D, 0x1172B, WBP::Extend},
    +
    868 {0x11730, 0x11739, WBP::Numeric},
    +
    869 {0x11800, 0x1182B, WBP::ALetter},
    +
    870 {0x1182C, 0x1183A, WBP::Extend},
    +
    871 {0x118A0, 0x118DF, WBP::ALetter},
    +
    872 {0x118E0, 0x118E9, WBP::Numeric},
    +
    873 {0x118FF, 0x11906, WBP::ALetter},
    +
    874 {0x11909, 0x11909, WBP::ALetter},
    +
    875 {0x1190C, 0x11913, WBP::ALetter},
    +
    876 {0x11915, 0x11916, WBP::ALetter},
    +
    877 {0x11918, 0x1192F, WBP::ALetter},
    +
    878 {0x11930, 0x11935, WBP::Extend},
    +
    879 {0x11937, 0x11938, WBP::Extend},
    +
    880 {0x1193B, 0x1193E, WBP::Extend},
    +
    881 {0x1193F, 0x1193F, WBP::ALetter},
    +
    882 {0x11940, 0x11940, WBP::Extend},
    +
    883 {0x11941, 0x11941, WBP::ALetter},
    +
    884 {0x11942, 0x11943, WBP::Extend},
    +
    885 {0x11950, 0x11959, WBP::Numeric},
    +
    886 {0x119A0, 0x119A7, WBP::ALetter},
    +
    887 {0x119AA, 0x119D0, WBP::ALetter},
    +
    888 {0x119D1, 0x119D7, WBP::Extend},
    +
    889 {0x119DA, 0x119E0, WBP::Extend},
    +
    890 {0x119E1, 0x119E1, WBP::ALetter},
    +
    891 {0x119E3, 0x119E3, WBP::ALetter},
    +
    892 {0x119E4, 0x119E4, WBP::Extend},
    +
    893 {0x11A00, 0x11A00, WBP::ALetter},
    +
    894 {0x11A01, 0x11A0A, WBP::Extend},
    +
    895 {0x11A0B, 0x11A32, WBP::ALetter},
    +
    896 {0x11A33, 0x11A39, WBP::Extend},
    +
    897 {0x11A3A, 0x11A3A, WBP::ALetter},
    +
    898 {0x11A3B, 0x11A3E, WBP::Extend},
    +
    899 {0x11A47, 0x11A47, WBP::Extend},
    +
    900 {0x11A50, 0x11A50, WBP::ALetter},
    +
    901 {0x11A51, 0x11A5B, WBP::Extend},
    +
    902 {0x11A5C, 0x11A89, WBP::ALetter},
    +
    903 {0x11A8A, 0x11A99, WBP::Extend},
    +
    904 {0x11A9D, 0x11A9D, WBP::ALetter},
    +
    905 {0x11AC0, 0x11AF8, WBP::ALetter},
    +
    906 {0x11C00, 0x11C08, WBP::ALetter},
    +
    907 {0x11C0A, 0x11C2E, WBP::ALetter},
    +
    908 {0x11C2F, 0x11C36, WBP::Extend},
    +
    909 {0x11C38, 0x11C3F, WBP::Extend},
    +
    910 {0x11C40, 0x11C40, WBP::ALetter},
    +
    911 {0x11C50, 0x11C59, WBP::Numeric},
    +
    912 {0x11C72, 0x11C8F, WBP::ALetter},
    +
    913 {0x11C92, 0x11CA7, WBP::Extend},
    +
    914 {0x11CA9, 0x11CB6, WBP::Extend},
    +
    915 {0x11D00, 0x11D06, WBP::ALetter},
    +
    916 {0x11D08, 0x11D09, WBP::ALetter},
    +
    917 {0x11D0B, 0x11D30, WBP::ALetter},
    +
    918 {0x11D31, 0x11D36, WBP::Extend},
    +
    919 {0x11D3A, 0x11D3A, WBP::Extend},
    +
    920 {0x11D3C, 0x11D3D, WBP::Extend},
    +
    921 {0x11D3F, 0x11D45, WBP::Extend},
    +
    922 {0x11D46, 0x11D46, WBP::ALetter},
    +
    923 {0x11D47, 0x11D47, WBP::Extend},
    +
    924 {0x11D50, 0x11D59, WBP::Numeric},
    +
    925 {0x11D60, 0x11D65, WBP::ALetter},
    +
    926 {0x11D67, 0x11D68, WBP::ALetter},
    +
    927 {0x11D6A, 0x11D89, WBP::ALetter},
    +
    928 {0x11D8A, 0x11D8E, WBP::Extend},
    +
    929 {0x11D90, 0x11D91, WBP::Extend},
    +
    930 {0x11D93, 0x11D97, WBP::Extend},
    +
    931 {0x11D98, 0x11D98, WBP::ALetter},
    +
    932 {0x11DA0, 0x11DA9, WBP::Numeric},
    +
    933 {0x11EE0, 0x11EF2, WBP::ALetter},
    +
    934 {0x11EF3, 0x11EF6, WBP::Extend},
    +
    935 {0x11FB0, 0x11FB0, WBP::ALetter},
    +
    936 {0x12000, 0x12399, WBP::ALetter},
    +
    937 {0x12400, 0x1246E, WBP::ALetter},
    +
    938 {0x12480, 0x12543, WBP::ALetter},
    +
    939 {0x13000, 0x1342E, WBP::ALetter},
    +
    940 {0x13430, 0x13438, WBP::Format},
    +
    941 {0x14400, 0x14646, WBP::ALetter},
    +
    942 {0x16800, 0x16A38, WBP::ALetter},
    +
    943 {0x16A40, 0x16A5E, WBP::ALetter},
    +
    944 {0x16A60, 0x16A69, WBP::Numeric},
    +
    945 {0x16AD0, 0x16AED, WBP::ALetter},
    +
    946 {0x16AF0, 0x16AF4, WBP::Extend},
    +
    947 {0x16B00, 0x16B2F, WBP::ALetter},
    +
    948 {0x16B30, 0x16B36, WBP::Extend},
    +
    949 {0x16B40, 0x16B43, WBP::ALetter},
    +
    950 {0x16B50, 0x16B59, WBP::Numeric},
    +
    951 {0x16B63, 0x16B77, WBP::ALetter},
    +
    952 {0x16B7D, 0x16B8F, WBP::ALetter},
    +
    953 {0x16E40, 0x16E7F, WBP::ALetter},
    +
    954 {0x16F00, 0x16F4A, WBP::ALetter},
    +
    955 {0x16F4F, 0x16F4F, WBP::Extend},
    +
    956 {0x16F50, 0x16F50, WBP::ALetter},
    +
    957 {0x16F51, 0x16F87, WBP::Extend},
    +
    958 {0x16F8F, 0x16F92, WBP::Extend},
    +
    959 {0x16F93, 0x16F9F, WBP::ALetter},
    +
    960 {0x16FE0, 0x16FE1, WBP::ALetter},
    +
    961 {0x16FE3, 0x16FE3, WBP::ALetter},
    +
    962 {0x16FE4, 0x16FE4, WBP::Extend},
    +
    963 {0x16FF0, 0x16FF1, WBP::Extend},
    +
    964 {0x1B000, 0x1B000, WBP::Katakana},
    +
    965 {0x1B164, 0x1B167, WBP::Katakana},
    +
    966 {0x1BC00, 0x1BC6A, WBP::ALetter},
    +
    967 {0x1BC70, 0x1BC7C, WBP::ALetter},
    +
    968 {0x1BC80, 0x1BC88, WBP::ALetter},
    +
    969 {0x1BC90, 0x1BC99, WBP::ALetter},
    +
    970 {0x1BC9D, 0x1BC9E, WBP::Extend},
    +
    971 {0x1BCA0, 0x1BCA3, WBP::Format},
    +
    972 {0x1D165, 0x1D169, WBP::Extend},
    +
    973 {0x1D16D, 0x1D172, WBP::Extend},
    +
    974 {0x1D173, 0x1D17A, WBP::Format},
    +
    975 {0x1D17B, 0x1D182, WBP::Extend},
    +
    976 {0x1D185, 0x1D18B, WBP::Extend},
    +
    977 {0x1D1AA, 0x1D1AD, WBP::Extend},
    +
    978 {0x1D242, 0x1D244, WBP::Extend},
    +
    979 {0x1D400, 0x1D454, WBP::ALetter},
    +
    980 {0x1D456, 0x1D49C, WBP::ALetter},
    +
    981 {0x1D49E, 0x1D49F, WBP::ALetter},
    +
    982 {0x1D4A2, 0x1D4A2, WBP::ALetter},
    +
    983 {0x1D4A5, 0x1D4A6, WBP::ALetter},
    +
    984 {0x1D4A9, 0x1D4AC, WBP::ALetter},
    +
    985 {0x1D4AE, 0x1D4B9, WBP::ALetter},
    +
    986 {0x1D4BB, 0x1D4BB, WBP::ALetter},
    +
    987 {0x1D4BD, 0x1D4C3, WBP::ALetter},
    +
    988 {0x1D4C5, 0x1D505, WBP::ALetter},
    +
    989 {0x1D507, 0x1D50A, WBP::ALetter},
    +
    990 {0x1D50D, 0x1D514, WBP::ALetter},
    +
    991 {0x1D516, 0x1D51C, WBP::ALetter},
    +
    992 {0x1D51E, 0x1D539, WBP::ALetter},
    +
    993 {0x1D53B, 0x1D53E, WBP::ALetter},
    +
    994 {0x1D540, 0x1D544, WBP::ALetter},
    +
    995 {0x1D546, 0x1D546, WBP::ALetter},
    +
    996 {0x1D54A, 0x1D550, WBP::ALetter},
    +
    997 {0x1D552, 0x1D6A5, WBP::ALetter},
    +
    998 {0x1D6A8, 0x1D6C0, WBP::ALetter},
    +
    999 {0x1D6C2, 0x1D6DA, WBP::ALetter},
    +
    1000 {0x1D6DC, 0x1D6FA, WBP::ALetter},
    +
    1001 {0x1D6FC, 0x1D714, WBP::ALetter},
    +
    1002 {0x1D716, 0x1D734, WBP::ALetter},
    +
    1003 {0x1D736, 0x1D74E, WBP::ALetter},
    +
    1004 {0x1D750, 0x1D76E, WBP::ALetter},
    +
    1005 {0x1D770, 0x1D788, WBP::ALetter},
    +
    1006 {0x1D78A, 0x1D7A8, WBP::ALetter},
    +
    1007 {0x1D7AA, 0x1D7C2, WBP::ALetter},
    +
    1008 {0x1D7C4, 0x1D7CB, WBP::ALetter},
    +
    1009 {0x1D7CE, 0x1D7FF, WBP::Numeric},
    +
    1010 {0x1DA00, 0x1DA36, WBP::Extend},
    +
    1011 {0x1DA3B, 0x1DA6C, WBP::Extend},
    +
    1012 {0x1DA75, 0x1DA75, WBP::Extend},
    +
    1013 {0x1DA84, 0x1DA84, WBP::Extend},
    +
    1014 {0x1DA9B, 0x1DA9F, WBP::Extend},
    +
    1015 {0x1DAA1, 0x1DAAF, WBP::Extend},
    +
    1016 {0x1E000, 0x1E006, WBP::Extend},
    +
    1017 {0x1E008, 0x1E018, WBP::Extend},
    +
    1018 {0x1E01B, 0x1E021, WBP::Extend},
    +
    1019 {0x1E023, 0x1E024, WBP::Extend},
    +
    1020 {0x1E026, 0x1E02A, WBP::Extend},
    +
    1021 {0x1E100, 0x1E12C, WBP::ALetter},
    +
    1022 {0x1E130, 0x1E136, WBP::Extend},
    +
    1023 {0x1E137, 0x1E13D, WBP::ALetter},
    +
    1024 {0x1E140, 0x1E149, WBP::Numeric},
    +
    1025 {0x1E14E, 0x1E14E, WBP::ALetter},
    +
    1026 {0x1E2C0, 0x1E2EB, WBP::ALetter},
    +
    1027 {0x1E2EC, 0x1E2EF, WBP::Extend},
    +
    1028 {0x1E2F0, 0x1E2F9, WBP::Numeric},
    +
    1029 {0x1E800, 0x1E8C4, WBP::ALetter},
    +
    1030 {0x1E8D0, 0x1E8D6, WBP::Extend},
    +
    1031 {0x1E900, 0x1E943, WBP::ALetter},
    +
    1032 {0x1E944, 0x1E94A, WBP::Extend},
    +
    1033 {0x1E94B, 0x1E94B, WBP::ALetter},
    +
    1034 {0x1E950, 0x1E959, WBP::Numeric},
    +
    1035 {0x1EE00, 0x1EE03, WBP::ALetter},
    +
    1036 {0x1EE05, 0x1EE1F, WBP::ALetter},
    +
    1037 {0x1EE21, 0x1EE22, WBP::ALetter},
    +
    1038 {0x1EE24, 0x1EE24, WBP::ALetter},
    +
    1039 {0x1EE27, 0x1EE27, WBP::ALetter},
    +
    1040 {0x1EE29, 0x1EE32, WBP::ALetter},
    +
    1041 {0x1EE34, 0x1EE37, WBP::ALetter},
    +
    1042 {0x1EE39, 0x1EE39, WBP::ALetter},
    +
    1043 {0x1EE3B, 0x1EE3B, WBP::ALetter},
    +
    1044 {0x1EE42, 0x1EE42, WBP::ALetter},
    +
    1045 {0x1EE47, 0x1EE47, WBP::ALetter},
    +
    1046 {0x1EE49, 0x1EE49, WBP::ALetter},
    +
    1047 {0x1EE4B, 0x1EE4B, WBP::ALetter},
    +
    1048 {0x1EE4D, 0x1EE4F, WBP::ALetter},
    +
    1049 {0x1EE51, 0x1EE52, WBP::ALetter},
    +
    1050 {0x1EE54, 0x1EE54, WBP::ALetter},
    +
    1051 {0x1EE57, 0x1EE57, WBP::ALetter},
    +
    1052 {0x1EE59, 0x1EE59, WBP::ALetter},
    +
    1053 {0x1EE5B, 0x1EE5B, WBP::ALetter},
    +
    1054 {0x1EE5D, 0x1EE5D, WBP::ALetter},
    +
    1055 {0x1EE5F, 0x1EE5F, WBP::ALetter},
    +
    1056 {0x1EE61, 0x1EE62, WBP::ALetter},
    +
    1057 {0x1EE64, 0x1EE64, WBP::ALetter},
    +
    1058 {0x1EE67, 0x1EE6A, WBP::ALetter},
    +
    1059 {0x1EE6C, 0x1EE72, WBP::ALetter},
    +
    1060 {0x1EE74, 0x1EE77, WBP::ALetter},
    +
    1061 {0x1EE79, 0x1EE7C, WBP::ALetter},
    +
    1062 {0x1EE7E, 0x1EE7E, WBP::ALetter},
    +
    1063 {0x1EE80, 0x1EE89, WBP::ALetter},
    +
    1064 {0x1EE8B, 0x1EE9B, WBP::ALetter},
    +
    1065 {0x1EEA1, 0x1EEA3, WBP::ALetter},
    +
    1066 {0x1EEA5, 0x1EEA9, WBP::ALetter},
    +
    1067 {0x1EEAB, 0x1EEBB, WBP::ALetter},
    +
    1068 {0x1F130, 0x1F149, WBP::ALetter},
    +
    1069 {0x1F150, 0x1F169, WBP::ALetter},
    +
    1070 {0x1F170, 0x1F189, WBP::ALetter},
    +
    1071 {0x1F1E6, 0x1F1FF, WBP::Regional_Indicator},
    +
    1072 {0x1F3FB, 0x1F3FF, WBP::Extend},
    +
    1073 {0x1FBF0, 0x1FBF9, WBP::Numeric},
    +
    1074 {0xE0001, 0xE0001, WBP::Format},
    +
    1075 {0xE0020, 0xE007F, WBP::Extend},
    +
    1076 {0xE0100, 0xE01EF, WBP::Extend},
    +
    1077}};
    +
    1078
    +
    1079// Construct table of just WBP::Extend character intervals
    +
    1080constexpr auto g_extend_characters{[]() constexpr {
    +
    1081 // Compute number of extend character intervals
    +
    1082 constexpr size_t size = []() constexpr {
    +
    1083 size_t count = 0;
    +
    1084 for (auto interval : g_word_break_intervals) {
    +
    1085 if (interval.property == WBP::Extend) {
    +
    1086 count++;
    +
    1087 }
    +
    1088 }
    +
    1089 return count;
    +
    1090 }();
    +
    1091
    +
    1092 // Create array of extend character intervals
    +
    1093 std::array<Interval, size> result{};
    +
    1094 size_t index = 0;
    +
    1095 for (auto interval : g_word_break_intervals) {
    +
    1096 if (interval.property == WBP::Extend) {
    +
    1097 result[index++] = {interval.first, interval.last}; // NOLINT
    +
    1098 }
    +
    1099 }
    +
    1100 return result;
    +
    1101}()};
    +
    1102
    +
    1103// Find a codepoint inside a sorted list of Interval.
    +
    1104template <size_t N>
    +
    1105bool Bisearch(uint32_t ucs, const std::array<Interval, N>& table) {
    +
    1106 if (ucs < table.front().first || ucs > table.back().last) { // NOLINT
    +
    1107 return false;
    +
    1108 }
    +
    1109
    +
    1110 int min = 0;
    +
    1111 int max = N - 1;
    +
    1112 while (max >= min) {
    +
    1113 const int mid = (min + max) / 2;
    +
    1114 if (ucs > table[mid].last) { // NOLINT
    +
    1115 min = mid + 1;
    +
    1116 } else if (ucs < table[mid].first) { // NOLINT
    +
    1117 max = mid - 1;
    +
    1118 } else {
    +
    1119 return true;
    +
    1120 }
    +
    1121 }
    +
    1122
    +
    1123 return false;
    +
    1124}
    +
    1125
    +
    1126// Find a value inside a sorted list of Interval + property.
    +
    1127template <class C, size_t N>
    +
    1128bool Bisearch(uint32_t ucs, const std::array<C, N>& table, C* out) {
    +
    1129 if (ucs < table.front().first || ucs > table.back().last) { // NOLINT
    +
    1130 return false;
    +
    1131 }
    +
    1132
    +
    1133 int min = 0;
    +
    1134 int max = N - 1;
    +
    1135 while (max >= min) {
    +
    1136 const int mid = (min + max) / 2;
    +
    1137 if (ucs > table[mid].last) { // NOLINT
    +
    1138 min = mid + 1;
    +
    1139 } else if (ucs < table[mid].first) { // NOLINT
    +
    1140 max = mid - 1;
    +
    1141 } else {
    +
    1142 *out = table[mid]; // NOLINT
    +
    1143 return true;
    +
    1144 }
    +
    1145 }
    +
    1146
    +
    1147 return false;
    +
    1148}
    +
    1149
    +
    1150int codepoint_width(uint32_t ucs) {
    +
    1151 if (ftxui::IsControl(ucs)) {
    +
    1152 return -1;
    +
    1153 }
    +
    1154
    +
    1155 if (ftxui::IsCombining(ucs)) {
    +
    1156 return 0;
    +
    1157 }
    +
    1158
    +
    1159 if (ftxui::IsFullWidth(ucs)) {
    +
    1160 return 2;
    +
    1161 }
    +
    1162
    +
    1163 return 1;
    +
    1164}
    +
    1165
    +
    1166} // namespace
    +
    1167
    +
    1168namespace ftxui {
    +
    1169
    +
    1170// From UTF8 encoded string |input|, eat in between 1 and 4 byte representing
    +
    1171// one codepoint. Put the codepoint into |ucs|. Start at |start| and update
    +
    1172// |end| to represent the beginning of the next byte to eat for consecutive
    +
    1173// executions.
    +
    +
    1174bool EatCodePoint(const std::string& input,
    +
    1175 size_t start,
    +
    1176 size_t* end,
    +
    1177 uint32_t* ucs) {
    +
    1178 if (start >= input.size()) {
    +
    1179 *end = start + 1;
    +
    1180 return false;
    +
    1181 }
    +
    1182 const uint8_t C0 = input[start];
    +
    1183
    +
    1184 // 1 byte string.
    +
    1185 if ((C0 & 0b1000'0000) == 0b0000'0000) { // NOLINT
    +
    1186 *ucs = C0 & 0b0111'1111; // NOLINT
    +
    1187 *end = start + 1;
    +
    1188 return true;
    +
    1189 }
    +
    1190
    +
    1191 // 2 byte string.
    +
    1192 if ((C0 & 0b1110'0000) == 0b1100'0000 && // NOLINT
    +
    1193 start + 1 < input.size()) {
    +
    1194 const uint8_t C1 = input[start + 1];
    +
    1195 *ucs = 0;
    +
    1196 *ucs += C0 & 0b0001'1111; // NOLINT
    +
    1197 *ucs <<= 6; // NOLINT
    +
    1198 *ucs += C1 & 0b0011'1111; // NOLINT
    +
    1199 *end = start + 2;
    +
    1200 return true;
    +
    1201 }
    +
    1202
    +
    1203 // 3 byte string.
    +
    1204 if ((C0 & 0b1111'0000) == 0b1110'0000 && // NOLINT
    +
    1205 start + 2 < input.size()) {
    +
    1206 const uint8_t C1 = input[start + 1];
    +
    1207 const uint8_t C2 = input[start + 2];
    +
    1208 *ucs = 0;
    +
    1209 *ucs += C0 & 0b0000'1111; // NOLINT
    +
    1210 *ucs <<= 6; // NOLINT
    +
    1211 *ucs += C1 & 0b0011'1111; // NOLINT
    +
    1212 *ucs <<= 6; // NOLINT
    +
    1213 *ucs += C2 & 0b0011'1111; // NOLINT
    +
    1214 *end = start + 3;
    +
    1215 return true;
    +
    1216 }
    +
    1217
    +
    1218 // 4 byte string.
    +
    1219 if ((C0 & 0b1111'1000) == 0b1111'0000 && // NOLINT
    +
    1220 start + 3 < input.size()) {
    +
    1221 const uint8_t C1 = input[start + 1];
    +
    1222 const uint8_t C2 = input[start + 2];
    +
    1223 const uint8_t C3 = input[start + 3];
    +
    1224 *ucs = 0;
    +
    1225 *ucs += C0 & 0b0000'0111; // NOLINT
    +
    1226 *ucs <<= 6; // NOLINT
    +
    1227 *ucs += C1 & 0b0011'1111; // NOLINT
    +
    1228 *ucs <<= 6; // NOLINT
    +
    1229 *ucs += C2 & 0b0011'1111; // NOLINT
    +
    1230 *ucs <<= 6; // NOLINT
    +
    1231 *ucs += C3 & 0b0011'1111; // NOLINT
    +
    1232 *end = start + 4;
    +
    1233 return true;
    +
    1234 }
    +
    1235
    +
    1236 *end = start + 1;
    +
    1237 return false;
    +
    1238}
    +
    +
    1239
    +
    1240// From UTF16 encoded string |input|, eat in between 1 and 4 byte representing
    +
    1241// one codepoint. Put the codepoint into |ucs|. Start at |start| and update
    +
    1242// |end| to represent the beginning of the next byte to eat for consecutive
    +
    1243// executions.
    +
    +
    1244bool EatCodePoint(const std::wstring& input,
    +
    1245 size_t start,
    +
    1246 size_t* end,
    +
    1247 uint32_t* ucs) {
    +
    1248 if (start >= input.size()) {
    +
    1249 *end = start + 1;
    +
    1250 return false;
    +
    1251 }
    +
    1252
    +
    1253 // On linux wstring uses the UTF32 encoding:
    +
    1254 if constexpr (sizeof(wchar_t) == 4) {
    +
    1255 *ucs = input[start]; // NOLINT
    +
    1256 *end = start + 1;
    +
    1257 return true;
    +
    1258 }
    +
    1259
    +
    1260 // On windows, wstring uses the UTF16 encoding:
    +
    1261 int32_t C0 = input[start]; // NOLINT
    +
    1262
    +
    1263 // 1 word size:
    +
    1264 if (C0 < 0xd800 || C0 >= 0xdc00) { // NOLINT
    +
    1265 *ucs = C0;
    +
    1266 *end = start + 1;
    +
    1267 return true;
    +
    1268 }
    +
    1269
    +
    1270 // 2 word size:
    +
    1271 if (start + 1 >= input.size()) {
    +
    1272 *end = start + 2;
    +
    1273 return false;
    +
    1274 }
    +
    1275
    +
    1276 int32_t C1 = input[start + 1]; // NOLINT
    +
    1277 *ucs = ((C0 & 0x3ff) << 10) + (C1 & 0x3ff) + 0x10000; // NOLINT
    +
    1278 *end = start + 2;
    +
    1279 return true;
    +
    1280}
    +
    +
    1281
    +
    +
    1282bool IsCombining(uint32_t ucs) {
    +
    1283 return Bisearch(ucs, g_extend_characters);
    +
    1284}
    +
    +
    1285
    +
    +
    1286bool IsFullWidth(uint32_t ucs) {
    +
    1287 if (ucs < 0x0300) { // Quick path: // NOLINT
    +
    1288 return false;
    +
    1289 }
    +
    1290
    +
    1291 return Bisearch(ucs, g_full_width_characters);
    +
    1292}
    +
    +
    1293
    +
    +
    1294bool IsControl(uint32_t ucs) {
    +
    1295 if (ucs == 0) {
    +
    1296 return true;
    +
    1297 }
    +
    1298 if (ucs < 32) { // NOLINT
    +
    1299 const uint32_t LINE_FEED = 10;
    +
    1300 return ucs != LINE_FEED;
    +
    1301 }
    +
    1302 if (ucs >= 0x7f && ucs < 0xa0) { // NOLINT
    +
    1303 return true;
    +
    1304 }
    +
    1305 return false;
    +
    1306}
    +
    +
    1307
    +
    + +
    1309 WordBreakPropertyInterval interval = {0, 0, WBP::ALetter};
    +
    1310 std::ignore = Bisearch(codepoint, g_word_break_intervals, &interval);
    +
    1311 return interval.property;
    +
    1312}
    +
    +
    1313
    +
    +
    1314int wchar_width(wchar_t ucs) {
    +
    1315 return codepoint_width(uint32_t(ucs));
    +
    1316}
    +
    +
    1317
    +
    +
    1318int wstring_width(const std::wstring& text) {
    +
    1319 int width = 0;
    +
    1320
    +
    1321 for (const wchar_t& it : text) {
    +
    1322 const int w = wchar_width(it);
    +
    1323 if (w < 0) {
    +
    1324 return -1;
    +
    1325 }
    +
    1326 width += w;
    +
    1327 }
    +
    1328 return width;
    +
    1329}
    +
    +
    1330
    +
    +
    1331int string_width(const std::string& input) {
    +
    1332 int width = 0;
    +
    1333 size_t start = 0;
    +
    1334 while (start < input.size()) {
    +
    1335 uint32_t codepoint = 0;
    +
    1336 if (!EatCodePoint(input, start, &start, &codepoint)) {
    +
    1337 continue;
    +
    1338 }
    +
    1339
    +
    1340 if (IsControl(codepoint)) {
    +
    1341 continue;
    +
    1342 }
    +
    1343
    +
    1344 if (IsCombining(codepoint)) {
    +
    1345 continue;
    +
    1346 }
    +
    1347
    +
    1348 if (IsFullWidth(codepoint)) {
    +
    1349 width += 2;
    +
    1350 continue;
    +
    1351 }
    +
    1352
    +
    1353 width += 1;
    +
    1354 }
    +
    1355 return width;
    +
    1356}
    +
    +
    1357
    +
    +
    1358std::vector<std::string> Utf8ToGlyphs(const std::string& input) {
    +
    1359 std::vector<std::string> out;
    +
    1360 out.reserve(input.size());
    +
    1361 size_t start = 0;
    +
    1362 size_t end = 0;
    +
    1363 while (start < input.size()) {
    +
    1364 uint32_t codepoint = 0;
    +
    1365 if (!EatCodePoint(input, start, &end, &codepoint)) {
    +
    1366 start = end;
    +
    1367 continue;
    +
    1368 }
    +
    1369
    +
    1370 const std::string append = input.substr(start, end - start);
    +
    1371 start = end;
    +
    1372
    +
    1373 // Ignore control characters.
    +
    1374 if (IsControl(codepoint)) {
    +
    1375 continue;
    +
    1376 }
    +
    1377
    +
    1378 // Combining characters are put with the previous glyph they are modifying.
    +
    1379 if (IsCombining(codepoint)) {
    +
    1380 if (!out.empty()) {
    +
    1381 out.back() += append;
    +
    1382 }
    +
    1383 continue;
    +
    1384 }
    +
    1385
    +
    1386 // Fullwidth characters take two cells. The second is made of the empty
    +
    1387 // string to reserve the space the first is taking.
    +
    1388 if (IsFullWidth(codepoint)) {
    +
    1389 out.push_back(append);
    +
    1390 out.emplace_back("");
    +
    1391 continue;
    +
    1392 }
    +
    1393
    +
    1394 // Normal characters:
    +
    1395 out.push_back(append);
    +
    1396 }
    +
    1397 return out;
    +
    1398}
    +
    +
    1399
    +
    +
    1400size_t GlyphPrevious(const std::string& input, size_t start) {
    +
    1401 while (true) {
    +
    1402 if (start == 0) {
    +
    1403 return 0;
    +
    1404 }
    +
    1405 start--;
    +
    1406
    +
    1407 // Skip the UTF8 continuation bytes.
    +
    1408 if ((input[start] & 0b1100'0000) == 0b1000'0000) {
    +
    1409 continue;
    +
    1410 }
    +
    1411
    +
    1412 uint32_t codepoint = 0;
    +
    1413 size_t end = 0;
    +
    1414 const bool eaten = EatCodePoint(input, start, &end, &codepoint);
    +
    1415
    +
    1416 // Ignore invalid, control characters and combining characters.
    +
    1417 if (!eaten || IsControl(codepoint) || IsCombining(codepoint)) {
    +
    1418 continue;
    +
    1419 }
    +
    1420
    +
    1421 return start;
    +
    1422 }
    +
    1423}
    +
    +
    1424
    +
    +
    1425size_t GlyphNext(const std::string& input, size_t start) {
    +
    1426 bool glyph_found = false;
    +
    1427 while (start < input.size()) {
    +
    1428 size_t end = 0;
    +
    1429 uint32_t codepoint = 0;
    +
    1430 const bool eaten = EatCodePoint(input, start, &end, &codepoint);
    +
    1431
    +
    1432 // Ignore invalid, control characters and combining characters.
    +
    1433 if (!eaten || IsControl(codepoint) || IsCombining(codepoint)) {
    +
    1434 start = end;
    +
    1435 continue;
    +
    1436 }
    +
    1437
    +
    1438 // We eat the beginning of the next glyph. If we are eating the one
    +
    1439 // requested, return its start position immediately.
    +
    1440 if (glyph_found) {
    +
    1441 return static_cast<int>(start);
    +
    1442 }
    +
    1443
    +
    1444 // Otherwise, skip this glyph and iterate:
    +
    1445 glyph_found = true;
    +
    1446 start = end;
    +
    1447 }
    +
    1448 return static_cast<int>(input.size());
    +
    1449}
    +
    +
    1450
    +
    +
    1451size_t GlyphIterate(const std::string& input, int glyph_offset, size_t start) {
    +
    1452 if (glyph_offset >= 0) {
    +
    1453 for (int i = 0; i < glyph_offset; ++i) {
    +
    1454 start = GlyphNext(input, start);
    +
    1455 }
    +
    1456 return start;
    +
    1457 } else {
    +
    1458 for (int i = 0; i < -glyph_offset; ++i) {
    +
    1459 start = GlyphPrevious(input, start);
    +
    1460 }
    +
    1461 return start;
    +
    1462 }
    +
    1463}
    +
    +
    1464
    +
    +
    1465std::vector<int> CellToGlyphIndex(const std::string& input) {
    +
    1466 int x = -1;
    +
    1467 std::vector<int> out;
    +
    1468 out.reserve(input.size());
    +
    1469 size_t start = 0;
    +
    1470 size_t end = 0;
    +
    1471 while (start < input.size()) {
    +
    1472 uint32_t codepoint = 0;
    +
    1473 const bool eaten = EatCodePoint(input, start, &end, &codepoint);
    +
    1474 start = end;
    +
    1475
    +
    1476 // Ignore invalid / control characters.
    +
    1477 if (!eaten || IsControl(codepoint)) {
    +
    1478 continue;
    +
    1479 }
    +
    1480
    +
    1481 // Combining characters are put with the previous glyph they are modifying.
    +
    1482 if (IsCombining(codepoint)) {
    +
    1483 if (x == -1) {
    +
    1484 ++x;
    +
    1485 out.push_back(x);
    +
    1486 }
    +
    1487 continue;
    +
    1488 }
    +
    1489
    +
    1490 // Fullwidth characters take two cells. The second is made of the empty
    +
    1491 // string to reserve the space the first is taking.
    +
    1492 if (IsFullWidth(codepoint)) {
    +
    1493 ++x;
    +
    1494 out.push_back(x);
    +
    1495 out.push_back(x);
    +
    1496 continue;
    +
    1497 }
    +
    1498
    +
    1499 // Normal characters:
    +
    1500 ++x;
    +
    1501 out.push_back(x);
    +
    1502 }
    +
    1503 return out;
    +
    1504}
    +
    +
    1505
    +
    +
    1506int GlyphCount(const std::string& input) {
    +
    1507 int size = 0;
    +
    1508 size_t start = 0;
    +
    1509 size_t end = 0;
    +
    1510 while (start < input.size()) {
    +
    1511 uint32_t codepoint = 0;
    +
    1512 const bool eaten = EatCodePoint(input, start, &end, &codepoint);
    +
    1513 start = end;
    +
    1514
    +
    1515 // Ignore invalid characters:
    +
    1516 if (!eaten || IsControl(codepoint)) {
    +
    1517 continue;
    +
    1518 }
    +
    1519
    +
    1520 // Ignore combining characters, except when they don't have a preceding to
    +
    1521 // combine with.
    +
    1522 if (IsCombining(codepoint)) {
    +
    1523 if (size == 0) {
    +
    1524 size++;
    +
    1525 }
    +
    1526 continue;
    +
    1527 }
    +
    1528
    +
    1529 size++;
    +
    1530 }
    +
    1531 return size;
    +
    1532}
    +
    +
    1533
    +
    +
    1534std::vector<WordBreakProperty> Utf8ToWordBreakProperty(
    +
    1535 const std::string& input) {
    +
    1536 std::vector<WordBreakProperty> out;
    +
    1537 out.reserve(input.size());
    +
    1538 size_t start = 0;
    +
    1539 size_t end = 0;
    +
    1540 while (start < input.size()) {
    +
    1541 uint32_t codepoint = 0;
    +
    1542 if (!EatCodePoint(input, start, &end, &codepoint)) {
    +
    1543 start = end;
    +
    1544 continue;
    +
    1545 }
    +
    1546 start = end;
    +
    1547
    +
    1548 // Ignore control characters.
    +
    1549 if (IsControl(codepoint)) {
    +
    1550 continue;
    +
    1551 }
    +
    1552
    +
    1553 // Ignore combining characters.
    +
    1554 if (IsCombining(codepoint)) {
    +
    1555 continue;
    +
    1556 }
    +
    1557
    +
    1558 WordBreakPropertyInterval interval = {0, 0, WBP::ALetter};
    +
    1559 std::ignore = Bisearch(codepoint, g_word_break_intervals, &interval);
    +
    1560 out.push_back(interval.property);
    +
    1561 }
    +
    1562 return out;
    +
    1563}
    +
    +
    1564
    +
    1565/// Convert a std::wstring into a UTF8 std::string.
    +
    +
    1566std::string to_string(const std::wstring& s) {
    +
    1567 std::string out;
    +
    1568
    +
    1569 size_t i = 0;
    +
    1570 uint32_t codepoint = 0;
    +
    1571 while (EatCodePoint(s, i, &i, &codepoint)) {
    +
    1572 // Code point <-> UTF-8 conversion
    +
    1573 //
    +
    1574 // ┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓
    +
    1575 // ┃Byte 1 ┃Byte 2 ┃Byte 3 ┃Byte 4 ┃
    +
    1576 // ┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━┩
    +
    1577 // │0xxxxxxx│ │ │ │
    +
    1578 // ├────────┼────────┼────────┼────────┤
    +
    1579 // │110xxxxx│10xxxxxx│ │ │
    +
    1580 // ├────────┼────────┼────────┼────────┤
    +
    1581 // │1110xxxx│10xxxxxx│10xxxxxx│ │
    +
    1582 // ├────────┼────────┼────────┼────────┤
    +
    1583 // │11110xxx│10xxxxxx│10xxxxxx│10xxxxxx│
    +
    1584 // └────────┴────────┴────────┴────────┘
    +
    1585
    +
    1586 // 1 byte UTF8
    +
    1587 if (codepoint <= 0b000'0000'0111'1111) { // NOLINT
    +
    1588 const uint8_t p1 = codepoint;
    +
    1589 out.push_back(p1); // NOLINT
    +
    1590 continue;
    +
    1591 }
    +
    1592
    +
    1593 // 2 bytes UTF8
    +
    1594 if (codepoint <= 0b000'0111'1111'1111) { // NOLINT
    +
    1595 uint8_t p2 = codepoint & 0b111111; // NOLINT
    +
    1596 codepoint >>= 6; // NOLINT
    +
    1597 uint8_t p1 = codepoint; // NOLINT
    +
    1598 out.push_back(0b11000000 + p1); // NOLINT
    +
    1599 out.push_back(0b10000000 + p2); // NOLINT
    +
    1600 continue;
    +
    1601 }
    +
    1602
    +
    1603 // 3 bytes UTF8
    +
    1604 if (codepoint <= 0b1111'1111'1111'1111) { // NOLINT
    +
    1605 uint8_t p3 = codepoint & 0b111111; // NOLINT
    +
    1606 codepoint >>= 6; // NOLINT
    +
    1607 uint8_t p2 = codepoint & 0b111111; // NOLINT
    +
    1608 codepoint >>= 6; // NOLINT
    +
    1609 uint8_t p1 = codepoint; // NOLINT
    +
    1610 out.push_back(0b11100000 + p1); // NOLINT
    +
    1611 out.push_back(0b10000000 + p2); // NOLINT
    +
    1612 out.push_back(0b10000000 + p3); // NOLINT
    +
    1613 continue;
    +
    1614 }
    +
    1615
    +
    1616 // 4 bytes UTF8
    +
    1617 if (codepoint <= 0b1'0000'1111'1111'1111'1111) { // NOLINT
    +
    1618 uint8_t p4 = codepoint & 0b111111; // NOLINT
    +
    1619 codepoint >>= 6; // NOLINT
    +
    1620 uint8_t p3 = codepoint & 0b111111; // NOLINT
    +
    1621 codepoint >>= 6; // NOLINT
    +
    1622 uint8_t p2 = codepoint & 0b111111; // NOLINT
    +
    1623 codepoint >>= 6; // NOLINT
    +
    1624 uint8_t p1 = codepoint; // NOLINT
    +
    1625 out.push_back(0b11110000 + p1); // NOLINT
    +
    1626 out.push_back(0b10000000 + p2); // NOLINT
    +
    1627 out.push_back(0b10000000 + p3); // NOLINT
    +
    1628 out.push_back(0b10000000 + p4); // NOLINT
    +
    1629 continue;
    +
    1630 }
    +
    1631
    +
    1632 // Something else?
    +
    1633 }
    +
    1634 return out;
    +
    1635}
    +
    +
    1636
    +
    1637/// Convert a UTF8 std::string into a std::wstring.
    +
    +
    1638std::wstring to_wstring(const std::string& s) {
    +
    1639 std::wstring out;
    +
    1640
    +
    1641 size_t i = 0;
    +
    1642 uint32_t codepoint = 0;
    +
    1643 while (EatCodePoint(s, i, &i, &codepoint)) {
    +
    1644 // On linux wstring are UTF32 encoded:
    +
    1645 if constexpr (sizeof(wchar_t) == 4) {
    +
    1646 out.push_back(codepoint); // NOLINT
    +
    1647 continue;
    +
    1648 }
    +
    1649
    +
    1650 // On Windows, wstring are UTF16 encoded:
    +
    1651
    +
    1652 // Codepoint encoded using 1 word:
    +
    1653 // NOLINTNEXTLINE
    +
    1654 if (codepoint < 0xD800 || (codepoint > 0xDFFF && codepoint < 0x10000)) {
    +
    1655 uint16_t p0 = codepoint; // NOLINT
    +
    1656 out.push_back(p0); // NOLINT
    +
    1657 continue;
    +
    1658 }
    +
    1659
    +
    1660 // Codepoint encoded using 2 words:
    +
    1661 codepoint -= 0x010000; // NOLINT
    +
    1662 uint16_t p0 = (((codepoint << 12) >> 22) + 0xD800); // NOLINT
    +
    1663 uint16_t p1 = (((codepoint << 22) >> 22) + 0xDC00); // NOLINT
    +
    1664 out.push_back(p0); // NOLINT
    +
    1665 out.push_back(p1); // NOLINT
    +
    1666 }
    +
    1667 return out;
    +
    1668}
    +
    +
    1669
    +
    1670} // namespace ftxui
    +
    Decorator size(WidthOrHeight, Constraint, int value)
    Apply a constraint on the size of an element.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    size_t GlyphNext(const std::string &input, size_t start)
    Definition string.cpp:1425
    +
    bool IsControl(uint32_t ucs)
    Definition string.cpp:1294
    +
    WordBreakProperty CodepointToWordBreakProperty(uint32_t codepoint)
    Definition string.cpp:1308
    +
    int wchar_width(wchar_t)
    Definition string.cpp:1314
    +
    std::vector< std::string > Utf8ToGlyphs(const std::string &input)
    Definition string.cpp:1358
    +
    bool IsCombining(uint32_t ucs)
    Definition string.cpp:1282
    +
    int string_width(const std::string &)
    Definition string.cpp:1331
    +
    std::wstring to_wstring(const std::string &s)
    Convert a UTF8 std::string into a std::wstring.
    Definition string.cpp:1638
    + +
    std::string to_string(const std::wstring &s)
    Convert a std::wstring into a UTF8 std::string.
    Definition string.cpp:1566
    +
    bool EatCodePoint(const std::string &input, size_t start, size_t *end, uint32_t *ucs)
    Definition string.cpp:1174
    +
    std::vector< int > CellToGlyphIndex(const std::string &input)
    Definition string.cpp:1465
    +
    int GlyphCount(const std::string &input)
    Definition string.cpp:1506
    +
    bool IsFullWidth(uint32_t ucs)
    Definition string.cpp:1286
    +
    std::vector< WordBreakProperty > Utf8ToWordBreakProperty(const std::string &input)
    Definition string.cpp:1534
    +
    size_t GlyphIterate(const std::string &input, int glyph_offset, size_t start)
    Definition string.cpp:1451
    +
    int wstring_width(const std::wstring &)
    Definition string.cpp:1318
    +
    size_t GlyphPrevious(const std::string &input, size_t start)
    Definition string.cpp:1400
    + + + +
    +
    + + + + + diff --git a/string_8cppm.html b/string_8cppm.html new file mode 100644 index 000000000..f7d21d217 --- /dev/null +++ b/string_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: string.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    string.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/string_8cppm_source.html b/string_8cppm_source.html new file mode 100644 index 000000000..23608f05e --- /dev/null +++ b/string_8cppm_source.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: string.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    string.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen.string
    +
    2/// @brief Module file for string functions of the Screen module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.screen.string;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::to_string;
    +
    16 using ftxui::to_wstring;
    +
    17 using ftxui::string_width;
    +
    18 using ftxui::Utf8ToGlyphs;
    +
    19 using ftxui::CellToGlyphIndex;
    +
    20}
    +
    Module file for string functions of the Screen module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/string_8hpp.html b/string_8hpp.html new file mode 100644 index 000000000..f06ac07a9 --- /dev/null +++ b/string_8hpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: string.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    string.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + + + + +

    +Functions

    std::string to_string (const std::wstring &s)
     Convert a std::wstring into a UTF8 std::string.
     
    std::wstring to_wstring (const std::string &s)
     Convert a UTF8 std::string into a std::wstring.
     
    template<typename T >
    std::wstring to_wstring (T s)
     
    int string_width (const std::string &)
     
    std::vector< std::string > Utf8ToGlyphs (const std::string &input)
     
    std::vector< int > CellToGlyphIndex (const std::string &input)
     
    +
    +
    + + + + + diff --git a/string_8hpp.js b/string_8hpp.js new file mode 100644 index 000000000..130392250 --- /dev/null +++ b/string_8hpp.js @@ -0,0 +1,9 @@ +var string_8hpp = +[ + [ "to_string", "string_8hpp.html#a757b345f73bb6cde5165a4d7f0c0a298", null ], + [ "to_wstring", "string_8hpp.html#a57429a83a46c643a81dee81e49384439", null ], + [ "to_wstring", "string_8hpp.html#a24ea52e8ef70889ef1da986837e0ff34", null ], + [ "string_width", "string_8hpp.html#a517b35c7721e632812d8b3a7697c4099", null ], + [ "Utf8ToGlyphs", "string_8hpp.html#a389c58d385e861cd2ef109b53fc6ef96", null ], + [ "CellToGlyphIndex", "string_8hpp.html#a9769a28baa6a84d5de6a8bd624a29294", null ] +]; \ No newline at end of file diff --git a/string_8hpp_source.html b/string_8hpp_source.html new file mode 100644 index 000000000..5080ad84b --- /dev/null +++ b/string_8hpp_source.html @@ -0,0 +1,248 @@ + + + + + + + + +FTXUI: string.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    string.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_STRING_HPP
    +
    5#define FTXUI_SCREEN_STRING_HPP
    +
    6
    +
    7#include <string> // for string, wstring, to_string
    +
    8#include <vector> // for vector
    +
    9
    +
    10namespace ftxui {
    +
    11std::string to_string(const std::wstring& s);
    +
    12std::wstring to_wstring(const std::string& s);
    +
    13
    +
    14template <typename T>
    +
    +
    15std::wstring to_wstring(T s) {
    +
    16 return to_wstring(std::to_string(s));
    +
    17}
    +
    +
    18
    +
    19int string_width(const std::string&);
    +
    20
    +
    21// Split the string into a its glyphs. An empty one is inserted ater fullwidth
    +
    22// ones.
    +
    23std::vector<std::string> Utf8ToGlyphs(const std::string& input);
    +
    24
    +
    25// Map every cells drawn by |input| to their corresponding Glyphs. Half-size
    +
    26// Glyphs takes one cell, full-size Glyphs take two cells.
    +
    27std::vector<int> CellToGlyphIndex(const std::string& input);
    +
    28
    +
    29} // namespace ftxui
    +
    30
    +
    31#endif /* end of include guard: FTXUI_SCREEN_STRING_HPP */
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::vector< std::string > Utf8ToGlyphs(const std::string &input)
    Definition string.cpp:1358
    +
    int string_width(const std::string &)
    Definition string.cpp:1331
    +
    std::wstring to_wstring(const std::string &s)
    Convert a UTF8 std::string into a std::wstring.
    Definition string.cpp:1638
    +
    std::string to_string(const std::wstring &s)
    Convert a std::wstring into a UTF8 std::string.
    Definition string.cpp:1566
    +
    std::vector< int > CellToGlyphIndex(const std::string &input)
    Definition string.cpp:1465
    +
    +
    + + + + + diff --git a/string__internal_8hpp.html b/string__internal_8hpp.html new file mode 100644 index 000000000..6b4305140 --- /dev/null +++ b/string__internal_8hpp.html @@ -0,0 +1,291 @@ + + + + + + + + +FTXUI: string_internal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    string_internal.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + +

    +Enumerations

    enum class  WordBreakProperty : int8_t {
    +  ALetter +,
    +  CR +,
    +  Double_Quote +,
    +  Extend +,
    +  ExtendNumLet +,
    +  Format +,
    +  Hebrew_Letter +,
    +  Katakana +,
    +  LF +,
    +  MidLetter +,
    +  MidNum +,
    +  MidNumLet +,
    +  Newline +,
    +  Numeric +,
    +  Regional_Indicator +,
    +  Single_Quote +,
    +  WSegSpace +,
    +  ZWJ +
    + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    bool EatCodePoint (const std::string &input, size_t start, size_t *end, uint32_t *ucs)
     
    bool EatCodePoint (const std::wstring &input, size_t start, size_t *end, uint32_t *ucs)
     
    bool IsCombining (uint32_t ucs)
     
    bool IsFullWidth (uint32_t ucs)
     
    bool IsControl (uint32_t ucs)
     
    size_t GlyphPrevious (const std::string &input, size_t start)
     
    size_t GlyphNext (const std::string &input, size_t start)
     
    size_t GlyphIterate (const std::string &input, int glyph_offset, size_t start)
     
    int GlyphCount (const std::string &input)
     
    WordBreakProperty CodepointToWordBreakProperty (uint32_t codepoint)
     
    std::vector< WordBreakPropertyUtf8ToWordBreakProperty (const std::string &input)
     
    bool IsWordBreakingCharacter (const std::string &input, size_t glyph_index)
     
    +
    +
    + + + + + diff --git a/string__internal_8hpp.js b/string__internal_8hpp.js new file mode 100644 index 000000000..9495c5b54 --- /dev/null +++ b/string__internal_8hpp.js @@ -0,0 +1,35 @@ +var string__internal_8hpp = +[ + [ "WordBreakProperty", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968a", [ + [ "ALetter", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aab1bb481a6d76de94d35e1d67cb85d966", null ], + [ "CR", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa1d7b33fc26ca22c2011aaa97fecc43d8", null ], + [ "Double_Quote", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa3a1f5142815614aa554e376af7047de3", null ], + [ "Extend", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa3bc026b815790a05493fa56fc4b8d8bd", null ], + [ "ExtendNumLet", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aadcba983044c9eb2afae2e2eaef5fe818", null ], + [ "Format", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa520d0db389f362bf79ef56ca0af3dcab", null ], + [ "Hebrew_Letter", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa3b076a28de949c89c8443aa0cd42ef17", null ], + [ "Katakana", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aaedb097c9a1cb7aed483367f825211f75", null ], + [ "LF", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa618441d41cce47dbcfd9bed6e5ff64e6", null ], + [ "MidLetter", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aab681d24011467edf425478fed96fbcde", null ], + [ "MidNum", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa876e36e8a85514e9c141b2aa3a7bfb5c", null ], + [ "MidNumLet", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa4d4a2ec3c1ff2c647ff25b61136aabff", null ], + [ "Newline", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa755fee300780823fcf4df98383331745", null ], + [ "Numeric", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa87322391cc6e8948ce9fd5d6cb84fced", null ], + [ "Regional_Indicator", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa7f219844b91c2bb3bdb5fb7ffbdfca72", null ], + [ "Single_Quote", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aab6f9a00a0255e4da280686c4640c7671", null ], + [ "WSegSpace", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aa3ddc36a0c4e381a754fb00548d567d09", null ], + [ "ZWJ", "string__internal_8hpp.html#a5a8ec19f52346e9aad9dbab9108b968aacb4adf7b93435bdfbae8f32d5bcda514", null ] + ] ], + [ "EatCodePoint", "string__internal_8hpp.html#a903cd2e24b3b7cf8d7d4daa680e0a8d5", null ], + [ "EatCodePoint", "string__internal_8hpp.html#a88b8b2f726acaf2aca140a403989d8d0", null ], + [ "IsCombining", "string__internal_8hpp.html#a506e6b467ddd8d11646942fd101d8e9e", null ], + [ "IsFullWidth", "string__internal_8hpp.html#abd13f584efddd3a7e5749c9c5e841a11", null ], + [ "IsControl", "string__internal_8hpp.html#a037df033cc26c960faa54b52bdbea900", null ], + [ "GlyphPrevious", "string__internal_8hpp.html#ae2ef74edc55750554e97ea71c5887650", null ], + [ "GlyphNext", "string__internal_8hpp.html#a02453c4504a5cfbc83b38abd4ec6d8ba", null ], + [ "GlyphIterate", "string__internal_8hpp.html#ad74a7d623ff7a09787469021d30c9461", null ], + [ "GlyphCount", "string__internal_8hpp.html#a9b4f3faecfbeb6b2c0fdf9c30e3f1553", null ], + [ "CodepointToWordBreakProperty", "string__internal_8hpp.html#a191b3278846ceb6ac35d2e4eb26db759", null ], + [ "Utf8ToWordBreakProperty", "string__internal_8hpp.html#ad15724e497f0001e146da530183ca552", null ], + [ "IsWordBreakingCharacter", "string__internal_8hpp.html#a64a9bd1df7ca3ffb1622507d01cd0b13", null ] +]; \ No newline at end of file diff --git a/string__internal_8hpp_source.html b/string__internal_8hpp_source.html new file mode 100644 index 000000000..b1cb3984c --- /dev/null +++ b/string__internal_8hpp_source.html @@ -0,0 +1,309 @@ + + + + + + + + +FTXUI: string_internal.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    string_internal.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_STRING_INTERNAL_HPP
    +
    5#define FTXUI_SCREEN_STRING_INTERNAL_HPP
    +
    6
    +
    7#include <cstdint>
    +
    8#include <string>
    +
    9#include <vector>
    +
    10
    +
    11namespace ftxui {
    +
    12
    +
    13bool EatCodePoint(const std::string& input,
    +
    14 size_t start,
    +
    15 size_t* end,
    +
    16 uint32_t* ucs);
    +
    17bool EatCodePoint(const std::wstring& input,
    +
    18 size_t start,
    +
    19 size_t* end,
    +
    20 uint32_t* ucs);
    +
    21
    +
    22bool IsCombining(uint32_t ucs);
    +
    23bool IsFullWidth(uint32_t ucs);
    +
    24bool IsControl(uint32_t ucs);
    +
    25
    +
    26size_t GlyphPrevious(const std::string& input, size_t start);
    +
    27size_t GlyphNext(const std::string& input, size_t start);
    +
    28
    +
    29// Return the index in the |input| string of the glyph at |glyph_offset|,
    +
    30// starting at |start|
    +
    31size_t GlyphIterate(const std::string& input,
    +
    32 int glyph_offset,
    +
    33 size_t start = 0);
    +
    34
    +
    35// Returns the number of glyphs in |input|.
    +
    36int GlyphCount(const std::string& input);
    +
    37
    +
    38// Properties from:
    +
    39// https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/WordBreakProperty.txt
    +
    +
    40enum class WordBreakProperty : int8_t {
    +
    41 ALetter,
    +
    42 CR,
    + +
    44 Extend,
    + +
    46 Format,
    + + +
    49 LF,
    + +
    51 MidNum,
    + +
    53 Newline,
    +
    54 Numeric,
    + + + +
    58 ZWJ,
    +
    59};
    +
    + +
    61std::vector<WordBreakProperty> Utf8ToWordBreakProperty(
    +
    62 const std::string& input);
    +
    63
    +
    64bool IsWordBreakingCharacter(const std::string& input, size_t glyph_index);
    +
    65} // namespace ftxui
    +
    66
    +
    67#endif /* end of include guard: FTXUI_SCREEN_STRING_INTERNAL_HPP */
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    size_t GlyphNext(const std::string &input, size_t start)
    Definition string.cpp:1425
    +
    bool IsControl(uint32_t ucs)
    Definition string.cpp:1294
    +
    WordBreakProperty CodepointToWordBreakProperty(uint32_t codepoint)
    Definition string.cpp:1308
    +
    bool IsCombining(uint32_t ucs)
    Definition string.cpp:1282
    + + + + + + + + + + + + + + + + + + + +
    bool IsWordBreakingCharacter(const std::string &input, size_t glyph_index)
    +
    bool EatCodePoint(const std::string &input, size_t start, size_t *end, uint32_t *ucs)
    Definition string.cpp:1174
    +
    int GlyphCount(const std::string &input)
    Definition string.cpp:1506
    +
    bool IsFullWidth(uint32_t ucs)
    Definition string.cpp:1286
    +
    std::vector< WordBreakProperty > Utf8ToWordBreakProperty(const std::string &input)
    Definition string.cpp:1534
    +
    size_t GlyphIterate(const std::string &input, int glyph_offset, size_t start)
    Definition string.cpp:1451
    +
    size_t GlyphPrevious(const std::string &input, size_t start)
    Definition string.cpp:1400
    +
    +
    + + + + + diff --git a/structftxui_1_1AnimatedColorsOption-members.html b/structftxui_1_1AnimatedColorsOption-members.html new file mode 100644 index 000000000..e9d2cf909 --- /dev/null +++ b/structftxui_1_1AnimatedColorsOption-members.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    AnimatedColorsOption Member List
    +
    +
    + +

    This is the complete list of members for AnimatedColorsOption, including all inherited members.

    + + + +
    backgroundAnimatedColorsOption
    foregroundAnimatedColorsOption
    +
    + + + + + diff --git a/structftxui_1_1AnimatedColorsOption.html b/structftxui_1_1AnimatedColorsOption.html new file mode 100644 index 000000000..d5e6049e5 --- /dev/null +++ b/structftxui_1_1AnimatedColorsOption.html @@ -0,0 +1,261 @@ + + + + + + + + +FTXUI: AnimatedColorsOption Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    AnimatedColorsOption Struct Reference
    +
    +
    + +

    #include <component_options.hpp>

    + + + + + + +

    +Public Attributes

    AnimatedColorOption background
     
    AnimatedColorOption foreground
     
    +

    Detailed Description

    +
    +

    Definition at line 72 of file component_options.hpp.

    +

    Member Data Documentation

    + +

    ◆ background

    + +
    +
    + + + + +
    AnimatedColorOption background
    +
    + +

    Definition at line 73 of file component_options.hpp.

    + +
    +
    + +

    ◆ foreground

    + +
    +
    + + + + +
    AnimatedColorOption foreground
    +
    + +

    Definition at line 74 of file component_options.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1AnimatedColorsOption.js b/structftxui_1_1AnimatedColorsOption.js new file mode 100644 index 000000000..dd7102da2 --- /dev/null +++ b/structftxui_1_1AnimatedColorsOption.js @@ -0,0 +1,5 @@ +var structftxui_1_1AnimatedColorsOption = +[ + [ "background", "structftxui_1_1AnimatedColorsOption.html#a550692ff465684652d29385a6b24304d", null ], + [ "foreground", "structftxui_1_1AnimatedColorsOption.html#a1acdd8b06eb18ae37ffb815462c4374a", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1EntryState-members.html b/structftxui_1_1EntryState-members.html new file mode 100644 index 000000000..50f0f0996 --- /dev/null +++ b/structftxui_1_1EntryState-members.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    EntryState Member List
    +
    +
    + +

    This is the complete list of members for EntryState, including all inherited members.

    + + + + + + +
    activeEntryState
    focusedEntryState
    indexEntryState
    labelEntryState
    stateEntryState
    +
    + + + + + diff --git a/structftxui_1_1EntryState.html b/structftxui_1_1EntryState.html new file mode 100644 index 000000000..ea4acf2e8 --- /dev/null +++ b/structftxui_1_1EntryState.html @@ -0,0 +1,334 @@ + + + + + + + + +FTXUI: EntryState Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    EntryState Struct Reference
    +
    +
    + +

    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|. + More...

    + +

    #include <component_options.hpp>

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

    +Public Attributes

    std::string label
     The label to display.
     
    bool state
     The state of the button/checkbox/radiobox.
     
    bool active
     Whether the entry is the active one.
     
    bool focused
     Whether the entry is one focused by the user.
     
    int index
     Index of the entry when applicable or -1.
     
    +

    Detailed Description

    +

    arguments for transform from |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|.

    + +

    Definition at line 23 of file component_options.hpp.

    +

    Member Data Documentation

    + +

    ◆ label

    + +
    +
    + + + + +
    std::string label
    +
    + +

    The label to display.

    + +

    Definition at line 24 of file component_options.hpp.

    + +
    +
    + +

    ◆ state

    + +
    +
    + + + + +
    bool state
    +
    + +

    The state of the button/checkbox/radiobox.

    + +

    Definition at line 25 of file component_options.hpp.

    + +
    +
    + +

    ◆ active

    + +
    +
    + + + + +
    bool active
    +
    + +

    Whether the entry is the active one.

    + +

    Definition at line 26 of file component_options.hpp.

    + +
    +
    + +

    ◆ focused

    + +
    +
    + + + + +
    bool focused
    +
    + +

    Whether the entry is one focused by the user.

    + +

    Definition at line 27 of file component_options.hpp.

    + +
    +
    + +

    ◆ index

    + +
    +
    + + + + +
    int index
    +
    + +

    Index of the entry when applicable or -1.

    + +

    Definition at line 28 of file component_options.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1EntryState.js b/structftxui_1_1EntryState.js new file mode 100644 index 000000000..aafd2cc34 --- /dev/null +++ b/structftxui_1_1EntryState.js @@ -0,0 +1,8 @@ +var structftxui_1_1EntryState = +[ + [ "label", "structftxui_1_1EntryState.html#a1dd28f5ea7b5b0780013e960944ddaa0", null ], + [ "state", "structftxui_1_1EntryState.html#ab30ba07e2a0bd07a15e45a92c32db9c5", null ], + [ "active", "structftxui_1_1EntryState.html#a03c996f9fcf0e10baeb3e700be0c409a", null ], + [ "focused", "structftxui_1_1EntryState.html#a2a19dbfcd2235def5967609ab0c7901a", null ], + [ "index", "structftxui_1_1EntryState.html#a750b5d744c39a06bfb13e6eb010e35d0", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1InputState-members.html b/structftxui_1_1InputState-members.html new file mode 100644 index 000000000..1acc60bbb --- /dev/null +++ b/structftxui_1_1InputState-members.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    InputState Member List
    +
    +
    + +

    This is the complete list of members for InputState, including all inherited members.

    + + + + + +
    elementInputState
    focusedInputState
    hoveredInputState
    is_placeholderInputState
    +
    + + + + + diff --git a/structftxui_1_1InputState.html b/structftxui_1_1InputState.html new file mode 100644 index 000000000..6ba1d5394 --- /dev/null +++ b/structftxui_1_1InputState.html @@ -0,0 +1,308 @@ + + + + + + + + +FTXUI: InputState Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    InputState Struct Reference
    +
    +
    + +

    Used to define style for the Input component. + More...

    + +

    #include <component_options.hpp>

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

    +Public Attributes

    Element element
     
    bool hovered
     Whether the input is hovered by the mouse.
     
    bool focused
     Whether the input is focused by the user.
     
    bool is_placeholder
     
    +

    Detailed Description

    +

    Used to define style for the Input component.

    + +

    Definition at line 154 of file component_options.hpp.

    +

    Member Data Documentation

    + +

    ◆ element

    + +
    +
    + + + + +
    Element element
    +
    + +

    Definition at line 155 of file component_options.hpp.

    + +
    +
    + +

    ◆ hovered

    + +
    +
    + + + + +
    bool hovered
    +
    + +

    Whether the input is hovered by the mouse.

    + +

    Definition at line 156 of file component_options.hpp.

    + +
    +
    + +

    ◆ focused

    + +
    +
    + + + + +
    bool focused
    +
    + +

    Whether the input is focused by the user.

    + +

    Definition at line 157 of file component_options.hpp.

    + +
    +
    + +

    ◆ is_placeholder

    + +
    +
    + + + + +
    bool is_placeholder
    +
    +

    Whether the input is empty and displaying the placeholder.

    + +

    Definition at line 158 of file component_options.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1InputState.js b/structftxui_1_1InputState.js new file mode 100644 index 000000000..3cf92cf6d --- /dev/null +++ b/structftxui_1_1InputState.js @@ -0,0 +1,7 @@ +var structftxui_1_1InputState = +[ + [ "element", "structftxui_1_1InputState.html#ae6bcc69b531dedf3a1d9142f46bcbb77", null ], + [ "hovered", "structftxui_1_1InputState.html#a9a61bb2fb8c309b32c457adb0392ec31", null ], + [ "focused", "structftxui_1_1InputState.html#a2a19dbfcd2235def5967609ab0c7901a", null ], + [ "is_placeholder", "structftxui_1_1InputState.html#aa39d5717e975c9a321417690c76519a1", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1LinearGradient_1_1Stop-members.html b/structftxui_1_1LinearGradient_1_1Stop-members.html new file mode 100644 index 000000000..49e37b74e --- /dev/null +++ b/structftxui_1_1LinearGradient_1_1Stop-members.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    LinearGradient::Stop Member List
    +
    +
    + +

    This is the complete list of members for LinearGradient::Stop, including all inherited members.

    + + + +
    colorLinearGradient::Stop
    positionLinearGradient::Stop
    +
    + + + + + diff --git a/structftxui_1_1LinearGradient_1_1Stop.html b/structftxui_1_1LinearGradient_1_1Stop.html new file mode 100644 index 000000000..8137d9057 --- /dev/null +++ b/structftxui_1_1LinearGradient_1_1Stop.html @@ -0,0 +1,262 @@ + + + + + + + + +FTXUI: LinearGradient::Stop Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    LinearGradient::Stop Struct Reference
    +
    +
    + +

    #include <linear_gradient.hpp>

    + + + + + + +

    +Public Attributes

    Color color = Color::Default
     
    std::optional< float > position
     
    +

    Detailed Description

    +

    A stop is a color at a specific position in the gradient. The position is a value between 0.0 and 1.0, where 0.0 is the start of the gradient and 1.0 is the end of the gradient.

    + +

    Definition at line 39 of file linear_gradient.hpp.

    +

    Member Data Documentation

    + +

    ◆ color

    + +
    +
    + + + + +
    Color color = Color::Default
    +
    + +

    Definition at line 40 of file linear_gradient.hpp.

    + +
    +
    + +

    ◆ position

    + +
    +
    + + + + +
    std::optional<float> position
    +
    + +

    Definition at line 41 of file linear_gradient.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1LinearGradient_1_1Stop.js b/structftxui_1_1LinearGradient_1_1Stop.js new file mode 100644 index 000000000..05fafad42 --- /dev/null +++ b/structftxui_1_1LinearGradient_1_1Stop.js @@ -0,0 +1,5 @@ +var structftxui_1_1LinearGradient_1_1Stop = +[ + [ "color", "structftxui_1_1LinearGradient_1_1Stop.html#aa5f4d1eda21c196bd8401ff73f105073", null ], + [ "position", "structftxui_1_1LinearGradient_1_1Stop.html#a2f3c9e83b473a71f2882ee1ec4fb88de", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1Node_1_1Status-members.html b/structftxui_1_1Node_1_1Status-members.html new file mode 100644 index 000000000..a786a061f --- /dev/null +++ b/structftxui_1_1Node_1_1Status-members.html @@ -0,0 +1,213 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Node::Status Member List
    +
    +
    + +

    This is the complete list of members for Node::Status, including all inherited members.

    + + + +
    iterationNode::Status
    need_iterationNode::Status
    +
    + + + + + diff --git a/structftxui_1_1Node_1_1Status.html b/structftxui_1_1Node_1_1Status.html new file mode 100644 index 000000000..bc2c19a9f --- /dev/null +++ b/structftxui_1_1Node_1_1Status.html @@ -0,0 +1,261 @@ + + + + + + + + +FTXUI: Node::Status Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Node::Status Struct Reference
    +
    +
    + +

    #include <node.hpp>

    + + + + + + +

    +Public Attributes

    int iteration = 0
     
    bool need_iteration = false
     
    +

    Detailed Description

    +
    +

    Definition at line 70 of file node.hpp.

    +

    Member Data Documentation

    + +

    ◆ iteration

    + +
    +
    + + + + +
    int iteration = 0
    +
    + +

    Definition at line 71 of file node.hpp.

    + +
    +
    + +

    ◆ need_iteration

    + +
    +
    + + + + +
    bool need_iteration = false
    +
    + +

    Definition at line 72 of file node.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1Node_1_1Status.js b/structftxui_1_1Node_1_1Status.js new file mode 100644 index 000000000..42ff20e43 --- /dev/null +++ b/structftxui_1_1Node_1_1Status.js @@ -0,0 +1,5 @@ +var structftxui_1_1Node_1_1Status = +[ + [ "iteration", "structftxui_1_1Node_1_1Status.html#aa6371382c6b4224e577e14ea610ab9a9", null ], + [ "need_iteration", "structftxui_1_1Node_1_1Status.html#a0fffbfa5479a3b6d3ddf5ff13504a51c", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1Requirement_1_1Focused-members.html b/structftxui_1_1Requirement_1_1Focused-members.html new file mode 100644 index 000000000..0fcd0c3a3 --- /dev/null +++ b/structftxui_1_1Requirement_1_1Focused-members.html @@ -0,0 +1,217 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Requirement::Focused Member List
    +
    +
    + +

    This is the complete list of members for Requirement::Focused, including all inherited members.

    + + + + + + + +
    boxRequirement::Focused
    component_activeRequirement::Focused
    cursor_shapeRequirement::Focused
    enabledRequirement::Focused
    nodeRequirement::Focused
    Prefer(const Focused &other) constRequirement::Focusedinline
    +
    + + + + + diff --git a/structftxui_1_1Requirement_1_1Focused.html b/structftxui_1_1Requirement_1_1Focused.html new file mode 100644 index 000000000..6e4ad8d93 --- /dev/null +++ b/structftxui_1_1Requirement_1_1Focused.html @@ -0,0 +1,349 @@ + + + + + + + + +FTXUI: Requirement::Focused Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Requirement::Focused Struct Reference
    +
    +
    + +

    #include <requirement.hpp>

    + + + + +

    +Public Member Functions

    bool Prefer (const Focused &other) const
     
    + + + + + + + + + + + +

    +Public Attributes

    bool enabled = false
     
    Box box
     
    Nodenode = nullptr
     
    Screen::Cursor::Shape cursor_shape = Screen::Cursor::Shape::Hidden
     
    bool component_active = false
     
    +

    Detailed Description

    +
    +

    Definition at line 30 of file requirement.hpp.

    +

    Member Function Documentation

    + +

    ◆ Prefer()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool Prefer (const Focused & other) const
    +
    +inline
    +
    + +

    Definition at line 40 of file requirement.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ enabled

    + +
    +
    + + + + +
    bool enabled = false
    +
    + +

    Definition at line 31 of file requirement.hpp.

    + +
    +
    + +

    ◆ box

    + +
    +
    + + + + +
    Box box
    +
    + +

    Definition at line 32 of file requirement.hpp.

    + +
    +
    + +

    ◆ node

    + +
    +
    + + + + +
    Node* node = nullptr
    +
    + +

    Definition at line 33 of file requirement.hpp.

    + +
    +
    + +

    ◆ cursor_shape

    + +
    +
    + +

    Definition at line 34 of file requirement.hpp.

    + +
    +
    + +

    ◆ component_active

    + +
    +
    + + + + +
    bool component_active = false
    +
    + +

    Definition at line 37 of file requirement.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1Requirement_1_1Focused.js b/structftxui_1_1Requirement_1_1Focused.js new file mode 100644 index 000000000..084f3c754 --- /dev/null +++ b/structftxui_1_1Requirement_1_1Focused.js @@ -0,0 +1,9 @@ +var structftxui_1_1Requirement_1_1Focused = +[ + [ "Prefer", "structftxui_1_1Requirement_1_1Focused.html#a8a204963959c73e971c7d030cbc34134", null ], + [ "enabled", "structftxui_1_1Requirement_1_1Focused.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ], + [ "box", "structftxui_1_1Requirement_1_1Focused.html#ab19e728e80bc2fc43d8e82c3602f8333", null ], + [ "node", "structftxui_1_1Requirement_1_1Focused.html#ab88cd70dad2e152cea983610f2a16e68", null ], + [ "cursor_shape", "structftxui_1_1Requirement_1_1Focused.html#a21f4c5c8f6862a204f795d4f0cb6d479", null ], + [ "component_active", "structftxui_1_1Requirement_1_1Focused.html#ac3226c18ed017dd81566f593d1257ce1", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1ResizableSplitOption-members.html b/structftxui_1_1ResizableSplitOption-members.html new file mode 100644 index 000000000..469acef8a --- /dev/null +++ b/structftxui_1_1ResizableSplitOption-members.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ResizableSplitOption Member List
    +
    + +
    + + + + + diff --git a/structftxui_1_1ResizableSplitOption.html b/structftxui_1_1ResizableSplitOption.html new file mode 100644 index 000000000..2de2852cc --- /dev/null +++ b/structftxui_1_1ResizableSplitOption.html @@ -0,0 +1,321 @@ + + + + + + + + +FTXUI: ResizableSplitOption Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    ResizableSplitOption Struct Reference
    +
    +
    + +

    #include <component_options.hpp>

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

    +Public Attributes

    Component main
     
    Component back
     
    Ref< Directiondirection = Direction::Left
     
    Ref< int > main_size
     
    std::function< Element()> separator_func = [] { return ::ftxui::separator(); }
     
    +

    Detailed Description

    +
    +

    Definition at line 212 of file component_options.hpp.

    +

    Member Data Documentation

    + +

    ◆ main

    + +
    +
    + + + + +
    Component main
    +
    + +

    Definition at line 213 of file component_options.hpp.

    + +
    +
    + +

    ◆ back

    + +
    +
    + + + + +
    Component back
    +
    + +

    Definition at line 214 of file component_options.hpp.

    + +
    +
    + +

    ◆ direction

    + +
    +
    + + + + +
    Ref<Direction> direction = Direction::Left
    +
    + +

    Definition at line 215 of file component_options.hpp.

    + +
    +
    + +

    ◆ main_size

    + +
    +
    + + + + +
    Ref<int> main_size
    +
    +Initial value: +

    Definition at line 216 of file component_options.hpp.

    + +
    +
    + +

    ◆ separator_func

    + +
    +
    + + + + +
    std::function<Element()> separator_func = [] { return ::ftxui::separator(); }
    +
    + +

    Definition at line 219 of file component_options.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1ResizableSplitOption.js b/structftxui_1_1ResizableSplitOption.js new file mode 100644 index 000000000..3b2fdb8e2 --- /dev/null +++ b/structftxui_1_1ResizableSplitOption.js @@ -0,0 +1,8 @@ +var structftxui_1_1ResizableSplitOption = +[ + [ "main", "structftxui_1_1ResizableSplitOption.html#af8a61f36bf328de8218ae03ac01294dc", null ], + [ "back", "structftxui_1_1ResizableSplitOption.html#a591ffd25e449a214855e0dfd78dab766", null ], + [ "direction", "structftxui_1_1ResizableSplitOption.html#ade634553502b9c3f7d21cd3f088b362e", null ], + [ "main_size", "structftxui_1_1ResizableSplitOption.html#a3b9f6b5826bf54bda63dcdf0321535ff", null ], + [ "separator_func", "structftxui_1_1ResizableSplitOption.html#a237a29bec11c71ee14c9b36ae94a1dbf", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1Screen_1_1Cursor-members.html b/structftxui_1_1Screen_1_1Cursor-members.html new file mode 100644 index 000000000..1deb198de --- /dev/null +++ b/structftxui_1_1Screen_1_1Cursor-members.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Screen::Cursor Member List
    +
    +
    + +

    This is the complete list of members for Screen::Cursor, including all inherited members.

    + + + + + + + + + + + + +
    Bar enum valueScreen::Cursor
    BarBlinking enum valueScreen::Cursor
    Block enum valueScreen::Cursor
    BlockBlinking enum valueScreen::Cursor
    Hidden enum valueScreen::Cursor
    Shape enum nameScreen::Cursor
    shapeScreen::Cursor
    Underline enum valueScreen::Cursor
    UnderlineBlinking enum valueScreen::Cursor
    xScreen::Cursor
    yScreen::Cursor
    +
    + + + + + diff --git a/structftxui_1_1Screen_1_1Cursor.html b/structftxui_1_1Screen_1_1Cursor.html new file mode 100644 index 000000000..ad5ef6193 --- /dev/null +++ b/structftxui_1_1Screen_1_1Cursor.html @@ -0,0 +1,326 @@ + + + + + + + + +FTXUI: Screen::Cursor Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Screen::Cursor Struct Reference
    +
    +
    + +

    #include <screen.hpp>

    + + + + +

    +Public Types

    enum  Shape {
    +  Hidden = 0 +,
    +  BlockBlinking = 1 +,
    +  Block = 2 +,
    +  UnderlineBlinking = 3 +,
    +  Underline = 4 +,
    +  BarBlinking = 5 +,
    +  Bar = 6 +
    + }
     
    + + + + + + + +

    +Public Attributes

    int x = 0
     
    int y = 0
     
    Shape shape
     
    +

    Detailed Description

    +
    +

    Definition at line 50 of file screen.hpp.

    +

    Member Enumeration Documentation

    + +

    ◆ Shape

    + +
    +
    + + + + +
    enum Shape
    +
    + + + + + + + + +
    Enumerator
    Hidden 
    BlockBlinking 
    Block 
    UnderlineBlinking 
    Underline 
    BarBlinking 
    Bar 
    + +

    Definition at line 54 of file screen.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ x

    + +
    +
    + + + + +
    int x = 0
    +
    + +

    Definition at line 51 of file screen.hpp.

    + +
    +
    + +

    ◆ y

    + +
    +
    + + + + +
    int y = 0
    +
    + +

    Definition at line 52 of file screen.hpp.

    + +
    +
    + +

    ◆ shape

    + +
    +
    + + + + +
    Shape shape
    +
    + +

    Definition at line 63 of file screen.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1Screen_1_1Cursor.js b/structftxui_1_1Screen_1_1Cursor.js new file mode 100644 index 000000000..912d225eb --- /dev/null +++ b/structftxui_1_1Screen_1_1Cursor.js @@ -0,0 +1,15 @@ +var structftxui_1_1Screen_1_1Cursor = +[ + [ "Shape", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37c", [ + [ "Hidden", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cacf46e529658ebc6532c204f3246929f4", null ], + [ "BlockBlinking", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca2f4a0b3cacb4468d8467dc0746ea23aa", null ], + [ "Block", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa00f801460e81f86eab56d86fe627551", null ], + [ "UnderlineBlinking", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cad7df11ee39d53d4ee2da1b22b2238abc", null ], + [ "Underline", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37caa909c5f2b588ba35fcc40b3b504ad2ed", null ], + [ "BarBlinking", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37cae7dfc08d4e90b88e0cb1cea7a54796c1", null ], + [ "Bar", "structftxui_1_1Screen_1_1Cursor.html#a55b506070847a13554f8b879c1bfb37ca6424dbda22da2f105580d1c8095600d3", null ] + ] ], + [ "x", "structftxui_1_1Screen_1_1Cursor.html#a6150e0515f7202e2fb518f7206ed97dc", null ], + [ "y", "structftxui_1_1Screen_1_1Cursor.html#a0a2f84ed7838f07779ae24c5a9086d33", null ], + [ "shape", "structftxui_1_1Screen_1_1Cursor.html#a8b9f7758a8bd2bef680aeecc40bcfe04", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1SliderOption-members.html b/structftxui_1_1SliderOption-members.html new file mode 100644 index 000000000..2bce75ccc --- /dev/null +++ b/structftxui_1_1SliderOption-members.html @@ -0,0 +1,219 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    SliderOption< T > Member List
    +
    + +
    + + + + + diff --git a/structftxui_1_1SliderOption.html b/structftxui_1_1SliderOption.html new file mode 100644 index 000000000..71e4d28d7 --- /dev/null +++ b/structftxui_1_1SliderOption.html @@ -0,0 +1,386 @@ + + + + + + + + +FTXUI: SliderOption< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    SliderOption< T > Struct Template Reference
    +
    +
    + +

    #include <component_options.hpp>

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

    +Public Attributes

    Ref< T > value
     
    ConstRef< T > min = T(0)
     
    ConstRef< T > max = T(100)
     
    ConstRef< T > increment = (max() - min()) / 20
     
    Direction direction = Direction::Right
     
    Color color_active = Color::White
     
    Color color_inactive = Color::GrayDark
     
    std::function< void()> on_change
     
    +

    Detailed Description

    +
    template<typename T>
    +struct ftxui::SliderOption< T >
    +

    Definition at line 225 of file component_options.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + +
    Ref<T> value
    +
    + +

    Definition at line 226 of file component_options.hpp.

    + +
    +
    + +

    ◆ min

    + +
    +
    +
    +template<typename T >
    + + + + +
    ConstRef<T> min = T(0)
    +
    + +

    Definition at line 227 of file component_options.hpp.

    + +
    +
    + +

    ◆ max

    + +
    +
    +
    +template<typename T >
    + + + + +
    ConstRef<T> max = T(100)
    +
    + +

    Definition at line 228 of file component_options.hpp.

    + +
    +
    + +

    ◆ increment

    + +
    +
    +
    +template<typename T >
    + + + + +
    ConstRef<T> increment = (max() - min()) / 20
    +
    + +

    Definition at line 229 of file component_options.hpp.

    + +
    +
    + +

    ◆ direction

    + +
    +
    +
    +template<typename T >
    + + + + +
    Direction direction = Direction::Right
    +
    + +

    Definition at line 230 of file component_options.hpp.

    + +
    +
    + +

    ◆ color_active

    + +
    +
    +
    +template<typename T >
    + + + + +
    Color color_active = Color::White
    +
    + +

    Definition at line 231 of file component_options.hpp.

    + +
    +
    + +

    ◆ color_inactive

    + +
    +
    +
    +template<typename T >
    + + + + +
    Color color_inactive = Color::GrayDark
    +
    + +

    Definition at line 232 of file component_options.hpp.

    + +
    +
    + +

    ◆ on_change

    + +
    +
    +
    +template<typename T >
    + + + + +
    std::function<void()> on_change
    +
    + +

    Definition at line 233 of file component_options.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1SliderOption.js b/structftxui_1_1SliderOption.js new file mode 100644 index 000000000..e7cbc0d1a --- /dev/null +++ b/structftxui_1_1SliderOption.js @@ -0,0 +1,11 @@ +var structftxui_1_1SliderOption = +[ + [ "value", "structftxui_1_1SliderOption.html#ab256d6c86a100045ed2329da289dce3a", null ], + [ "min", "structftxui_1_1SliderOption.html#a337a8e502154b70ef2a1d4bb3cb47ea9", null ], + [ "max", "structftxui_1_1SliderOption.html#abd146f0de5789f02aee07c54e819099b", null ], + [ "increment", "structftxui_1_1SliderOption.html#a752366b00bdf7bba57a18e239e86e2e1", null ], + [ "direction", "structftxui_1_1SliderOption.html#a53421c695d00016ab925777d423b4eb6", null ], + [ "color_active", "structftxui_1_1SliderOption.html#a593f1ba15add21d1972c01372db369df", null ], + [ "color_inactive", "structftxui_1_1SliderOption.html#ad5a77e0bc0ce649271a13949a7a0a635", null ], + [ "on_change", "structftxui_1_1SliderOption.html#abdfe3c83deeec2323ff90248815b8f0a", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1WindowOptions-members.html b/structftxui_1_1WindowOptions-members.html new file mode 100644 index 000000000..6385fb3ee --- /dev/null +++ b/structftxui_1_1WindowOptions-members.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    WindowOptions Member List
    +
    + +
    + + + + + diff --git a/structftxui_1_1WindowOptions.html b/structftxui_1_1WindowOptions.html new file mode 100644 index 000000000..79f9d8d89 --- /dev/null +++ b/structftxui_1_1WindowOptions.html @@ -0,0 +1,456 @@ + + + + + + + + +FTXUI: WindowOptions Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    WindowOptions Struct Reference
    +
    +
    + +

    #include <component_options.hpp>

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

    +Public Attributes

    Component inner
     The component wrapped by this window.
     
    ConstStringRef title = ""
     The title displayed by this window.
     
    Ref< int > left = 0
     The left side position of the window.
     
    Ref< int > top = 0
     The top side position of the window.
     
    Ref< int > width = 20
     The width of the window.
     
    Ref< int > height = 10
     The height of the window.
     
    Ref< bool > resize_left = true
     Can the left side be resized?
     
    Ref< bool > resize_right = true
     Can the right side be resized?
     
    Ref< bool > resize_top = true
     Can the top side be resized?
     
    Ref< bool > resize_down = true
     Can the down side be resized?
     
    std::function< Element(const WindowRenderState &)> render
     An optional function to customize how the window looks like:
     
    +

    Detailed Description

    +
    +

    Definition at line 252 of file component_options.hpp.

    +

    Member Data Documentation

    + +

    ◆ inner

    + +
    +
    + + + + +
    Component inner
    +
    + +

    The component wrapped by this window.

    + +

    Definition at line 253 of file component_options.hpp.

    + +
    +
    + +

    ◆ title

    + +
    +
    + + + + +
    ConstStringRef title = ""
    +
    + +

    The title displayed by this window.

    + +

    Definition at line 254 of file component_options.hpp.

    + +
    +
    + +

    ◆ left

    + +
    +
    + + + + +
    Ref<int> left = 0
    +
    + +

    The left side position of the window.

    + +

    Definition at line 256 of file component_options.hpp.

    + +
    +
    + +

    ◆ top

    + +
    +
    + + + + +
    Ref<int> top = 0
    +
    + +

    The top side position of the window.

    + +

    Definition at line 257 of file component_options.hpp.

    + +
    +
    + +

    ◆ width

    + +
    +
    + + + + +
    Ref<int> width = 20
    +
    + +

    The width of the window.

    + +

    Definition at line 258 of file component_options.hpp.

    + +
    +
    + +

    ◆ height

    + +
    +
    + + + + +
    Ref<int> height = 10
    +
    + +

    The height of the window.

    + +

    Definition at line 259 of file component_options.hpp.

    + +
    +
    + +

    ◆ resize_left

    + +
    +
    + + + + +
    Ref<bool> resize_left = true
    +
    + +

    Can the left side be resized?

    + +

    Definition at line 261 of file component_options.hpp.

    + +
    +
    + +

    ◆ resize_right

    + +
    +
    + + + + +
    Ref<bool> resize_right = true
    +
    + +

    Can the right side be resized?

    + +

    Definition at line 262 of file component_options.hpp.

    + +
    +
    + +

    ◆ resize_top

    + +
    +
    + + + + +
    Ref<bool> resize_top = true
    +
    + +

    Can the top side be resized?

    + +

    Definition at line 263 of file component_options.hpp.

    + +
    +
    + +

    ◆ resize_down

    + +
    +
    + + + + +
    Ref<bool> resize_down = true
    +
    + +

    Can the down side be resized?

    + +

    Definition at line 264 of file component_options.hpp.

    + +
    +
    + +

    ◆ render

    + +
    +
    + + + + +
    std::function<Element(const WindowRenderState&)> render
    +
    + +

    An optional function to customize how the window looks like:

    + +

    Definition at line 267 of file component_options.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1WindowOptions.js b/structftxui_1_1WindowOptions.js new file mode 100644 index 000000000..8ea2a5a02 --- /dev/null +++ b/structftxui_1_1WindowOptions.js @@ -0,0 +1,14 @@ +var structftxui_1_1WindowOptions = +[ + [ "inner", "structftxui_1_1WindowOptions.html#a105501b401a2286451c7992a6d54dcc0", null ], + [ "title", "structftxui_1_1WindowOptions.html#ab923eb70f0f480c7104ee696bd790a36", null ], + [ "left", "structftxui_1_1WindowOptions.html#ad5c9f9e9f1a5086dcc7a11431d37c1f4", null ], + [ "top", "structftxui_1_1WindowOptions.html#ae4390982a6943bb299f8626ffea0c8e5", null ], + [ "width", "structftxui_1_1WindowOptions.html#a9fb534b72660dd8bb6f17ce5d090a94a", null ], + [ "height", "structftxui_1_1WindowOptions.html#a3f551d52ec458be9ffbcd38c715f9e19", null ], + [ "resize_left", "structftxui_1_1WindowOptions.html#a17b2004b29ac06ad2b486d923fad0dbb", null ], + [ "resize_right", "structftxui_1_1WindowOptions.html#abaa0c8009acea8039e5b6f5bab86c4dc", null ], + [ "resize_top", "structftxui_1_1WindowOptions.html#a8885b0a965d3975426bd615b2fef3542", null ], + [ "resize_down", "structftxui_1_1WindowOptions.html#a0e28320aa6145db8201aebb07162d461", null ], + [ "render", "structftxui_1_1WindowOptions.html#aa3858f495756090a379c564844eaf342", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1box__helper_1_1Element-members.html b/structftxui_1_1box__helper_1_1Element-members.html new file mode 100644 index 000000000..73b342733 --- /dev/null +++ b/structftxui_1_1box__helper_1_1Element-members.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Element Member List
    +
    +
    + +

    This is the complete list of members for Element, including all inherited members.

    + + + + + +
    flex_growElement
    flex_shrinkElement
    min_sizeElement
    sizeElement
    +
    + + + + + diff --git a/structftxui_1_1box__helper_1_1Element.html b/structftxui_1_1box__helper_1_1Element.html new file mode 100644 index 000000000..b135fc04b --- /dev/null +++ b/structftxui_1_1box__helper_1_1Element.html @@ -0,0 +1,297 @@ + + + + + + + + +FTXUI: Element Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Element Struct Reference
    +
    +
    + +

    #include <box_helper.hpp>

    + + + + + + + + + + +

    +Public Attributes

    int min_size = 0
     
    int flex_grow = 0
     
    int flex_shrink = 0
     
    int size = 0
     
    +

    Detailed Description

    +
    +

    Definition at line 12 of file box_helper.hpp.

    +

    Member Data Documentation

    + +

    ◆ min_size

    + +
    +
    + + + + +
    int min_size = 0
    +
    + +

    Definition at line 14 of file box_helper.hpp.

    + +
    +
    + +

    ◆ flex_grow

    + +
    +
    + + + + +
    int flex_grow = 0
    +
    + +

    Definition at line 15 of file box_helper.hpp.

    + +
    +
    + +

    ◆ flex_shrink

    + +
    +
    + + + + +
    int flex_shrink = 0
    +
    + +

    Definition at line 16 of file box_helper.hpp.

    + +
    +
    + +

    ◆ size

    + +
    +
    + + + + +
    int size = 0
    +
    + +

    Definition at line 19 of file box_helper.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1box__helper_1_1Element.js b/structftxui_1_1box__helper_1_1Element.js new file mode 100644 index 000000000..83682f8a9 --- /dev/null +++ b/structftxui_1_1box__helper_1_1Element.js @@ -0,0 +1,7 @@ +var structftxui_1_1box__helper_1_1Element = +[ + [ "min_size", "structftxui_1_1box__helper_1_1Element.html#ac3f0cc8c8c9e0fb97f20cf7777773197", null ], + [ "flex_grow", "structftxui_1_1box__helper_1_1Element.html#a2fb16db68c0bf00d3bf872bc18675116", null ], + [ "flex_shrink", "structftxui_1_1box__helper_1_1Element.html#a94a9a7333988edf4249f38c1b1491cf4", null ], + [ "size", "structftxui_1_1box__helper_1_1Element.html#a439227feff9d7f55384e8780cfc2eb82", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1flexbox__helper_1_1Block-members.html b/structftxui_1_1flexbox__helper_1_1Block-members.html new file mode 100644 index 000000000..fb95ea92e --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Block-members.html @@ -0,0 +1,224 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Block Member List
    +
    + +
    + + + + + diff --git a/structftxui_1_1flexbox__helper_1_1Block.html b/structftxui_1_1flexbox__helper_1_1Block.html new file mode 100644 index 000000000..9d2b75b7d --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Block.html @@ -0,0 +1,459 @@ + + + + + + + + +FTXUI: Block Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Block Struct Reference
    +
    +
    + +

    #include <flexbox_helper.hpp>

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

    +Public Attributes

    int min_size_x = 0
     
    int min_size_y = 0
     
    int flex_grow_x = 0
     
    int flex_grow_y = 0
     
    int flex_shrink_x = 0
     
    int flex_shrink_y = 0
     
    int line {}
     
    int line_position {}
     
    int x = 0
     
    int y = 0
     
    int dim_x = 0
     
    int dim_y = 0
     
    bool overflow = false
     
    +

    Detailed Description

    +
    +

    Definition at line 13 of file flexbox_helper.hpp.

    +

    Member Data Documentation

    + +

    ◆ min_size_x

    + +
    +
    + + + + +
    int min_size_x = 0
    +
    + +

    Definition at line 15 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ min_size_y

    + +
    +
    + + + + +
    int min_size_y = 0
    +
    + +

    Definition at line 16 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ flex_grow_x

    + +
    +
    + + + + +
    int flex_grow_x = 0
    +
    + +

    Definition at line 17 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ flex_grow_y

    + +
    +
    + + + + +
    int flex_grow_y = 0
    +
    + +

    Definition at line 18 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ flex_shrink_x

    + +
    +
    + + + + +
    int flex_shrink_x = 0
    +
    + +

    Definition at line 19 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ flex_shrink_y

    + +
    +
    + + + + +
    int flex_shrink_y = 0
    +
    + +

    Definition at line 20 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ line

    + +
    +
    + + + + +
    int line {}
    +
    + +

    Definition at line 23 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ line_position

    + +
    +
    + + + + +
    int line_position {}
    +
    + +

    Definition at line 24 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ x

    + +
    +
    + + + + +
    int x = 0
    +
    + +

    Definition at line 25 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ y

    + +
    +
    + + + + +
    int y = 0
    +
    + +

    Definition at line 26 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ dim_x

    + +
    +
    + + + + +
    int dim_x = 0
    +
    + +

    Definition at line 27 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ dim_y

    + +
    +
    + + + + +
    int dim_y = 0
    +
    + +

    Definition at line 28 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ overflow

    + +
    +
    + + + + +
    bool overflow = false
    +
    + +

    Definition at line 29 of file flexbox_helper.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1flexbox__helper_1_1Block.js b/structftxui_1_1flexbox__helper_1_1Block.js new file mode 100644 index 000000000..d8f5cb8ee --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Block.js @@ -0,0 +1,16 @@ +var structftxui_1_1flexbox__helper_1_1Block = +[ + [ "min_size_x", "structftxui_1_1flexbox__helper_1_1Block.html#ab7c34cdb13953ba4b496c2dba7aa1a92", null ], + [ "min_size_y", "structftxui_1_1flexbox__helper_1_1Block.html#a3f7935f028cb7bfadb118396547e27fa", null ], + [ "flex_grow_x", "structftxui_1_1flexbox__helper_1_1Block.html#a874ced28be7064feaaf97c70c2097bd6", null ], + [ "flex_grow_y", "structftxui_1_1flexbox__helper_1_1Block.html#a13f6aa7165c63a4494fc2f1ed4428880", null ], + [ "flex_shrink_x", "structftxui_1_1flexbox__helper_1_1Block.html#ad293f2488e260e36e72fd3da9c16df9a", null ], + [ "flex_shrink_y", "structftxui_1_1flexbox__helper_1_1Block.html#ab4e07297a2a55de7158ef0115b6b46a9", null ], + [ "line", "structftxui_1_1flexbox__helper_1_1Block.html#a41ebd28ef1d7c6ade45642cb6acc1039", null ], + [ "line_position", "structftxui_1_1flexbox__helper_1_1Block.html#a989ca01c829a3fc1e21bdbd0b9c811ed", null ], + [ "x", "structftxui_1_1flexbox__helper_1_1Block.html#a6150e0515f7202e2fb518f7206ed97dc", null ], + [ "y", "structftxui_1_1flexbox__helper_1_1Block.html#a0a2f84ed7838f07779ae24c5a9086d33", null ], + [ "dim_x", "structftxui_1_1flexbox__helper_1_1Block.html#a78e7e791466dc8e951311de2a1709955", null ], + [ "dim_y", "structftxui_1_1flexbox__helper_1_1Block.html#ad26cec1d8cdf8ba04707fd4cf822065a", null ], + [ "overflow", "structftxui_1_1flexbox__helper_1_1Block.html#a49aa97067a36875627e1380c3fb3833d", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1flexbox__helper_1_1Global-members.html b/structftxui_1_1flexbox__helper_1_1Global-members.html new file mode 100644 index 000000000..bdfbf4c6f --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Global-members.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Global Member List
    +
    +
    + +

    This is the complete list of members for Global, including all inherited members.

    + + + + + + +
    blocksGlobal
    configGlobal
    linesGlobal
    size_xGlobal
    size_yGlobal
    +
    + + + + + diff --git a/structftxui_1_1flexbox__helper_1_1Global.html b/structftxui_1_1flexbox__helper_1_1Global.html new file mode 100644 index 000000000..2a8a61b07 --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Global.html @@ -0,0 +1,315 @@ + + + + + + + + +FTXUI: Global Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Global Struct Reference
    +
    +
    + +

    #include <flexbox_helper.hpp>

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

    +Public Attributes

    std::vector< Blockblocks
     
    std::vector< Linelines
     
    FlexboxConfig config
     
    int size_x
     
    int size_y
     
    +

    Detailed Description

    +
    +

    Definition at line 41 of file flexbox_helper.hpp.

    +

    Member Data Documentation

    + +

    ◆ blocks

    + +
    +
    + + + + +
    std::vector<Block> blocks
    +
    + +

    Definition at line 42 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ lines

    + +
    +
    + + + + +
    std::vector<Line> lines
    +
    + +

    Definition at line 43 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ config

    + +
    +
    + + + + +
    FlexboxConfig config
    +
    + +

    Definition at line 44 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ size_x

    + +
    +
    + + + + +
    int size_x
    +
    + +

    Definition at line 45 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ size_y

    + +
    +
    + + + + +
    int size_y
    +
    + +

    Definition at line 46 of file flexbox_helper.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1flexbox__helper_1_1Global.js b/structftxui_1_1flexbox__helper_1_1Global.js new file mode 100644 index 000000000..4dc8b048c --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Global.js @@ -0,0 +1,8 @@ +var structftxui_1_1flexbox__helper_1_1Global = +[ + [ "blocks", "structftxui_1_1flexbox__helper_1_1Global.html#ac91f06264613997a325271ce8e35d840", null ], + [ "lines", "structftxui_1_1flexbox__helper_1_1Global.html#a441e790889c9bcd6e2deba604663d2ad", null ], + [ "config", "structftxui_1_1flexbox__helper_1_1Global.html#ae1dac1dbfb99211895f88d2c4b609849", null ], + [ "size_x", "structftxui_1_1flexbox__helper_1_1Global.html#aec1dee03c858e0d3910c40c209890ab0", null ], + [ "size_y", "structftxui_1_1flexbox__helper_1_1Global.html#a22aeb82e7a98517be5f90c810e423af0", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1flexbox__helper_1_1Line-members.html b/structftxui_1_1flexbox__helper_1_1Line-members.html new file mode 100644 index 000000000..e33a76bae --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Line-members.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Line Member List
    +
    +
    + +

    This is the complete list of members for Line, including all inherited members.

    + + + + + + +
    blocksLine
    dim_xLine
    dim_yLine
    xLine
    yLine
    +
    + + + + + diff --git a/structftxui_1_1flexbox__helper_1_1Line.html b/structftxui_1_1flexbox__helper_1_1Line.html new file mode 100644 index 000000000..86b84f13d --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Line.html @@ -0,0 +1,315 @@ + + + + + + + + +FTXUI: Line Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Line Struct Reference
    +
    +
    + +

    #include <flexbox_helper.hpp>

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

    +Public Attributes

    std::vector< Block * > blocks
     
    int x = 0
     
    int y = 0
     
    int dim_x = 0
     
    int dim_y = 0
     
    +

    Detailed Description

    +
    +

    Definition at line 33 of file flexbox_helper.hpp.

    +

    Member Data Documentation

    + +

    ◆ blocks

    + +
    +
    + + + + +
    std::vector<Block*> blocks
    +
    + +

    Definition at line 34 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ x

    + +
    +
    + + + + +
    int x = 0
    +
    + +

    Definition at line 35 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ y

    + +
    +
    + + + + +
    int y = 0
    +
    + +

    Definition at line 36 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ dim_x

    + +
    +
    + + + + +
    int dim_x = 0
    +
    + +

    Definition at line 37 of file flexbox_helper.hpp.

    + +
    +
    + +

    ◆ dim_y

    + +
    +
    + + + + +
    int dim_y = 0
    +
    + +

    Definition at line 38 of file flexbox_helper.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + + diff --git a/structftxui_1_1flexbox__helper_1_1Line.js b/structftxui_1_1flexbox__helper_1_1Line.js new file mode 100644 index 000000000..f2481cb05 --- /dev/null +++ b/structftxui_1_1flexbox__helper_1_1Line.js @@ -0,0 +1,8 @@ +var structftxui_1_1flexbox__helper_1_1Line = +[ + [ "blocks", "structftxui_1_1flexbox__helper_1_1Line.html#acb3eeab6f2ab1007cacd9f72caf9cdb8", null ], + [ "x", "structftxui_1_1flexbox__helper_1_1Line.html#a6150e0515f7202e2fb518f7206ed97dc", null ], + [ "y", "structftxui_1_1flexbox__helper_1_1Line.html#a0a2f84ed7838f07779ae24c5a9086d33", null ], + [ "dim_x", "structftxui_1_1flexbox__helper_1_1Line.html#a78e7e791466dc8e951311de2a1709955", null ], + [ "dim_y", "structftxui_1_1flexbox__helper_1_1Line.html#ad26cec1d8cdf8ba04707fd4cf822065a", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1task_1_1PendingTask-members.html b/structftxui_1_1task_1_1PendingTask-members.html new file mode 100644 index 000000000..9cd41d5ff --- /dev/null +++ b/structftxui_1_1task_1_1PendingTask-members.html @@ -0,0 +1,216 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    PendingTask Member List
    +
    +
    + +

    This is the complete list of members for PendingTask, including all inherited members.

    + + + + + + +
    operator<(const PendingTask &other) constPendingTask
    PendingTask(Task t)PendingTaskinline
    PendingTask(Task t, std::chrono::steady_clock::duration duration)PendingTaskinline
    taskPendingTask
    timePendingTask
    +
    + + + + + diff --git a/structftxui_1_1task_1_1PendingTask.html b/structftxui_1_1task_1_1PendingTask.html new file mode 100644 index 000000000..9cc1a8349 --- /dev/null +++ b/structftxui_1_1task_1_1PendingTask.html @@ -0,0 +1,357 @@ + + + + + + + + +FTXUI: PendingTask Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    PendingTask Struct Reference
    +
    +
    + +

    #include <task_internal.hpp>

    + + + + + + + + +

    +Public Member Functions

     PendingTask (Task t)
     
     PendingTask (Task t, std::chrono::steady_clock::duration duration)
     
    bool operator< (const PendingTask &other) const
     
    + + + + + + +

    +Public Attributes

    Task task
     The task to be executed.
     
    std::optional< std::chrono::steady_clock::time_point > time
     
    +

    Detailed Description

    +

    A PendingTask represents a task that is scheduled to be executed at a specific time, or as soon as possible.

    + +

    Definition at line 18 of file task_internal.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ PendingTask() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    PendingTask (Task t)
    +
    +inline
    +
    + +

    Definition at line 20 of file task_internal.hpp.

    + +
    +
    + +

    ◆ PendingTask() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    PendingTask (Task t,
    std::chrono::steady_clock::duration duration )
    +
    +inline
    +
    + +

    Definition at line 23 of file task_internal.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator<()

    + +
    +
    + + + + + + + +
    bool operator< (const PendingTask & other) const
    +
    +

    Compare two PendingTasks by their time. If both tasks have no time, they are considered equal.

    + +

    Definition at line 7 of file task.cpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ task

    + +
    +
    + + + + +
    Task task
    +
    + +

    The task to be executed.

    + +

    Definition at line 27 of file task_internal.hpp.

    + +
    +
    + +

    ◆ time

    + +
    +
    + + + + +
    std::optional<std::chrono::steady_clock::time_point> time
    +
    +

    The time when the task should be executed. If the time is empty, the task should be executed as soon as possible.

    + +

    Definition at line 31 of file task_internal.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following files: +
    +
    + + + + + diff --git a/structftxui_1_1task_1_1PendingTask.js b/structftxui_1_1task_1_1PendingTask.js new file mode 100644 index 000000000..08dffd3b9 --- /dev/null +++ b/structftxui_1_1task_1_1PendingTask.js @@ -0,0 +1,8 @@ +var structftxui_1_1task_1_1PendingTask = +[ + [ "PendingTask", "structftxui_1_1task_1_1PendingTask.html#afc8e67df1a9259a50e7afa49765cb7c8", null ], + [ "PendingTask", "structftxui_1_1task_1_1PendingTask.html#a5e36044e86c7936eee25d0ff222b7235", null ], + [ "operator<", "structftxui_1_1task_1_1PendingTask.html#abca1f607e0e907841b7a6d88190995db", null ], + [ "task", "structftxui_1_1task_1_1PendingTask.html#a8bcc572b9d73774627be66dd46aa61a8", null ], + [ "time", "structftxui_1_1task_1_1PendingTask.html#aae372ed4494e3631e9cac889d7384795", null ] +]; \ No newline at end of file diff --git a/structftxui_1_1task_1_1TaskQueue-members.html b/structftxui_1_1task_1_1TaskQueue-members.html new file mode 100644 index 000000000..ed2bb0011 --- /dev/null +++ b/structftxui_1_1task_1_1TaskQueue-members.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Member List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    TaskQueue Member List
    +
    +
    + +

    This is the complete list of members for TaskQueue, including all inherited members.

    + + + + + +
    Get() -> MaybeTaskTaskQueue
    HasImmediateTasks() constTaskQueueinline
    MaybeTask typedefTaskQueue
    PostTask(PendingTask task) -> voidTaskQueue
    +
    + + + + + diff --git a/structftxui_1_1task_1_1TaskQueue.html b/structftxui_1_1task_1_1TaskQueue.html new file mode 100644 index 000000000..422c5acf2 --- /dev/null +++ b/structftxui_1_1task_1_1TaskQueue.html @@ -0,0 +1,327 @@ + + + + + + + + +FTXUI: TaskQueue Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    TaskQueue Struct Reference
    +
    +
    + +

    #include <task_queue.hpp>

    + + + + +

    +Public Types

    using MaybeTask
     
    + + + + + + + +

    +Public Member Functions

    auto PostTask (PendingTask task) -> void
     
    auto Get () -> MaybeTask
     
    bool HasImmediateTasks () const
     
    +

    Detailed Description

    +

    A task queue that schedules tasks to be executed in the future. Tasks can be scheduled to be executed immediately, or after a certain duration.

      +
    • The tasks are executed in the order they were scheduled.
    • +
    • If multiple tasks are scheduled to be executed at the same time, they are executed in the order they were scheduled.
    • +
    • If a task is scheduled to be executed in the past, it is executed immediately.
    • +
    + +

    Definition at line 21 of file task_queue.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ MaybeTask

    + +
    +
    + + + + +
    using MaybeTask
    +
    +Initial value:
    +
    std::variant<Task, std::chrono::steady_clock::duration, std::monostate>
    +
    +

    Definition at line 24 of file task_queue.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ PostTask()

    + +
    +
    + + + + + + + +
    auto PostTask (PendingTask task) -> void
    +
    + +

    Definition at line 8 of file task_queue.cpp.

    + +
    +
    + +

    ◆ Get()

    + +
    +
    + + + + + + + +
    auto Get () -> MaybeTask
    +
    + +

    Definition at line 22 of file task_queue.cpp.

    + +
    +
    + +

    ◆ HasImmediateTasks()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool HasImmediateTasks () const
    +
    +inline
    +
    + +

    Definition at line 28 of file task_queue.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following files: +
    +
    + + + + + diff --git a/structftxui_1_1task_1_1TaskQueue.js b/structftxui_1_1task_1_1TaskQueue.js new file mode 100644 index 000000000..d72ab6f6e --- /dev/null +++ b/structftxui_1_1task_1_1TaskQueue.js @@ -0,0 +1,7 @@ +var structftxui_1_1task_1_1TaskQueue = +[ + [ "MaybeTask", "structftxui_1_1task_1_1TaskQueue.html#aaebfee5f2f839afb18fd9c1a68483188", null ], + [ "PostTask", "structftxui_1_1task_1_1TaskQueue.html#ada41a34871c48f856bf3659e0b0c4f81", null ], + [ "Get", "structftxui_1_1task_1_1TaskQueue.html#aa79dc0bf12b85e6ac05adf59818e3939", null ], + [ "HasImmediateTasks", "structftxui_1_1task_1_1TaskQueue.html#a257afcb3d4b649b1a39a697cea2843ce", null ] +]; \ No newline at end of file diff --git a/style__blink_8cpp.html b/style__blink_8cpp.html new file mode 100644 index 000000000..370e4825a --- /dev/null +++ b/style__blink_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_blink.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_blink.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_blink.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__blink_8cpp.js b/style__blink_8cpp.js new file mode 100644 index 000000000..ae1274ab9 --- /dev/null +++ b/style__blink_8cpp.js @@ -0,0 +1,4 @@ +var style__blink_8cpp = +[ + [ "main", "style__blink_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__blink_8cpp_source.html b/style__blink_8cpp_source.html new file mode 100644 index 000000000..8392e1b1f --- /dev/null +++ b/style__blink_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_blink.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_blink.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, blink, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is "),
    +
    16 text("blink") | blink,
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + +
    +
    + + + + + diff --git a/style__bold_8cpp.html b/style__bold_8cpp.html new file mode 100644 index 000000000..b57298a04 --- /dev/null +++ b/style__bold_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_bold.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_bold.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_bold.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__bold_8cpp.js b/style__bold_8cpp.js new file mode 100644 index 000000000..20856296a --- /dev/null +++ b/style__bold_8cpp.js @@ -0,0 +1,4 @@ +var style__bold_8cpp = +[ + [ "main", "style__bold_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__bold_8cpp_source.html b/style__bold_8cpp_source.html new file mode 100644 index 000000000..bf665e3ab --- /dev/null +++ b/style__bold_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_bold.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_bold.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, bold, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is "),
    +
    16 text("bold") | bold,
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/style__color_8cpp.html b/style__color_8cpp.html new file mode 100644 index 000000000..68225f2bd --- /dev/null +++ b/style__color_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_color.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_color.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file style_color.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__color_8cpp.js b/style__color_8cpp.js new file mode 100644 index 000000000..2a909913a --- /dev/null +++ b/style__color_8cpp.js @@ -0,0 +1,4 @@ +var style__color_8cpp = +[ + [ "main", "style__color_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__color_8cpp_source.html b/style__color_8cpp_source.html new file mode 100644 index 000000000..1d6b74d51 --- /dev/null +++ b/style__color_8cpp_source.html @@ -0,0 +1,286 @@ + + + + + + + + +FTXUI: style_color.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_color.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/linear_gradient.hpp> // for LinearGradient
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/elements.hpp" // for text, bgcolor, color, vbox, filler, Fit, hbox
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for Color, operator""_rgb, Color::Black, Color::Blue, Color::BlueLight, Color::Cyan, Color::CyanLight, Color::DeepSkyBlue4, Color::Default, Color::GrayDark, Color::GrayLight, Color::Green, Color::GreenLight, Color::Magenta, Color::MagentaLight, Color::Red, Color::RedLight, Color::SkyBlue1, Color::White, Color::Yellow, Color::YellowLight, ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto document = hbox({
    +
    15 vbox({
    +
    16 color(Color::Default, text("Default")),
    +
    17 color(Color::Black, text("Black")),
    +
    18 color(Color::GrayDark, text("GrayDark")),
    +
    19 color(Color::GrayLight, text("GrayLight")),
    +
    20 color(Color::White, text("White")),
    +
    21 color(Color::Blue, text("Blue")),
    +
    22 color(Color::BlueLight, text("BlueLight")),
    +
    23 color(Color::Cyan, text("Cyan")),
    +
    24 color(Color::CyanLight, text("CyanLight")),
    +
    25 color(Color::Green, text("Green")),
    +
    26 color(Color::GreenLight, text("GreenLight")),
    +
    27 color(Color::Magenta, text("Magenta")),
    +
    28 color(Color::MagentaLight, text("MagentaLight")),
    +
    29 color(Color::Red, text("Red")),
    +
    30 color(Color::RedLight, text("RedLight")),
    +
    31 color(Color::Yellow, text("Yellow")),
    +
    32 color(Color::YellowLight, text("YellowLight")),
    +
    33 color(0x66ff66_rgb, text("Phosphor")),
    +
    34 color(LinearGradient(Color::SkyBlue1, Color::DeepSkyBlue4),
    +
    35 text("Skyblue to DeepSkyBlue")),
    +
    36 }),
    +
    37 vbox({
    +
    38 bgcolor(Color::Default, text("Default")),
    +
    39 bgcolor(Color::Black, text("Black")),
    +
    40 bgcolor(Color::GrayDark, text("GrayDark")),
    +
    41 bgcolor(Color::GrayLight, text("GrayLight")),
    +
    42 bgcolor(Color::White, text("White")),
    +
    43 bgcolor(Color::Blue, text("Blue")),
    +
    44 bgcolor(Color::BlueLight, text("BlueLight")),
    +
    45 bgcolor(Color::Cyan, text("Cyan")),
    +
    46 bgcolor(Color::CyanLight, text("CyanLight")),
    +
    47 bgcolor(Color::Green, text("Green")),
    +
    48 bgcolor(Color::GreenLight, text("GreenLight")),
    +
    49 bgcolor(Color::Magenta, text("Magenta")),
    +
    50 bgcolor(Color::MagentaLight, text("MagentaLight")),
    +
    51 bgcolor(Color::Red, text("Red")),
    +
    52 bgcolor(Color::RedLight, text("RedLight")),
    +
    53 bgcolor(Color::Yellow, text("Yellow")),
    +
    54 bgcolor(Color::YellowLight, text("YellowLight")),
    +
    55 bgcolor(0x66ff66_rgb, text("Phosphor")),
    +
    56 bgcolor(LinearGradient(Color::SkyBlue1, Color::DeepSkyBlue4),
    +
    57 text("Skyblue to DeepSkyBlue")),
    +
    58 }),
    +
    59 filler(),
    +
    60 });
    +
    61
    +
    62 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    63 Render(screen, document);
    +
    64 screen.Print();
    +
    65
    +
    66 return 0;
    +
    67}
    +
    + + +
    A class representing the settings for linear-gradient color effect.
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/style__dim_8cpp.html b/style__dim_8cpp.html new file mode 100644 index 000000000..93f76dd56 --- /dev/null +++ b/style__dim_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_dim.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_dim.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_dim.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__dim_8cpp.js b/style__dim_8cpp.js new file mode 100644 index 000000000..60079fc94 --- /dev/null +++ b/style__dim_8cpp.js @@ -0,0 +1,4 @@ +var style__dim_8cpp = +[ + [ "main", "style__dim_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__dim_8cpp_source.html b/style__dim_8cpp_source.html new file mode 100644 index 000000000..7fcbffd67 --- /dev/null +++ b/style__dim_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_dim.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_dim.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, dim, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is "),
    +
    16 text("dim") | dim,
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    Definition style_dim.cpp:11
    +
    +
    + + + + + diff --git a/style__gallery_8cpp.html b/style__gallery_8cpp.html new file mode 100644 index 000000000..8bd9b3191 --- /dev/null +++ b/style__gallery_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_gallery.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_gallery.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_gallery.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__gallery_8cpp.js b/style__gallery_8cpp.js new file mode 100644 index 000000000..d14988af7 --- /dev/null +++ b/style__gallery_8cpp.js @@ -0,0 +1,4 @@ +var style__gallery_8cpp = +[ + [ "main", "style__gallery_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__gallery_8cpp_source.html b/style__gallery_8cpp_source.html new file mode 100644 index 000000000..67ce9657e --- /dev/null +++ b/style__gallery_8cpp_source.html @@ -0,0 +1,252 @@ + + + + + + + + +FTXUI: style_gallery.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_gallery.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, Element, bgcolor, color, blink, bold, dim, inverted, underlined, Fit, hbox
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for Color, Color::Blue, ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 // clang-format off
    +
    14 auto document =
    +
    15 hbox({
    +
    16 text("normal") , text(" ") ,
    +
    17 text("bold") | bold , text(" ") ,
    +
    18 text("italic") | italic , text(" ") ,
    +
    19 text("dim") | dim , text(" ") ,
    +
    20 text("inverted") | inverted , text(" ") ,
    +
    21 text("underlined") | underlined , text(" ") ,
    +
    22 text("underlinedDouble") | underlinedDouble , text(" ") ,
    +
    23 text("blink") | blink , text(" ") ,
    +
    24 text("strikethrough") | strikethrough , text(" ") ,
    +
    25 text("color") | color(Color::Blue) , text(" ") ,
    +
    26 text("bgcolor") | bgcolor(Color::Blue) , text(" ") ,
    +
    27 text("hyperlink") | hyperlink("https://github.com/ArthurSonzogni/FTXUI"),
    +
    28 });
    +
    29 // clang-format on
    +
    30 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    31 Render(screen, document);
    +
    32 screen.Print();
    +
    33
    +
    34 return 0;
    +
    35}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + +
    +
    + + + + + diff --git a/style__hyperlink_8cpp.html b/style__hyperlink_8cpp.html new file mode 100644 index 000000000..ba0e9e451 --- /dev/null +++ b/style__hyperlink_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_hyperlink.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_hyperlink.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_hyperlink.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__hyperlink_8cpp.js b/style__hyperlink_8cpp.js new file mode 100644 index 000000000..ff5ea0e7b --- /dev/null +++ b/style__hyperlink_8cpp.js @@ -0,0 +1,4 @@ +var style__hyperlink_8cpp = +[ + [ "main", "style__hyperlink_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__hyperlink_8cpp_source.html b/style__hyperlink_8cpp_source.html new file mode 100644 index 000000000..bd2dd80ab --- /dev/null +++ b/style__hyperlink_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_hyperlink.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_hyperlink.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, bold, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is an "),
    +
    16 text("hyperlink") | hyperlink("https://www.google.com"),
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + +
    +
    + + + + + diff --git a/style__inverted_8cpp.html b/style__inverted_8cpp.html new file mode 100644 index 000000000..527cc1e3d --- /dev/null +++ b/style__inverted_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_inverted.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_inverted.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_inverted.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__inverted_8cpp.js b/style__inverted_8cpp.js new file mode 100644 index 000000000..c3e4ef3fd --- /dev/null +++ b/style__inverted_8cpp.js @@ -0,0 +1,4 @@ +var style__inverted_8cpp = +[ + [ "main", "style__inverted_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__inverted_8cpp_source.html b/style__inverted_8cpp_source.html new file mode 100644 index 000000000..fd73fd5e6 --- /dev/null +++ b/style__inverted_8cpp_source.html @@ -0,0 +1,240 @@ + + + + + + + + +FTXUI: style_inverted.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_inverted.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, inverted, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = hbox({
    +
    14 text("This text is "),
    +
    15 text("inverted") | inverted,
    +
    16 text(". Do you like it?"),
    +
    17 });
    +
    18 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    19 Render(screen, document);
    +
    20 screen.Print();
    +
    21
    +
    22 return 0;
    +
    23}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/style__italic_8cpp.html b/style__italic_8cpp.html new file mode 100644 index 000000000..305238b6d --- /dev/null +++ b/style__italic_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_italic.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_italic.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_italic.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__italic_8cpp.js b/style__italic_8cpp.js new file mode 100644 index 000000000..fb754dc66 --- /dev/null +++ b/style__italic_8cpp.js @@ -0,0 +1,4 @@ +var style__italic_8cpp = +[ + [ "main", "style__italic_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__italic_8cpp_source.html b/style__italic_8cpp_source.html new file mode 100644 index 000000000..b44927204 --- /dev/null +++ b/style__italic_8cpp_source.html @@ -0,0 +1,240 @@ + + + + + + + + +FTXUI: style_italic.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_italic.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2025 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, inverted, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = hbox({
    +
    14 text("This text is "),
    +
    15 text("italic") | italic,
    +
    16 text(". Do you like it?"),
    +
    17 });
    +
    18 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    19 Render(screen, document);
    +
    20 screen.Print();
    +
    21
    +
    22 return 0;
    +
    23}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/style__strikethrough_8cpp.html b/style__strikethrough_8cpp.html new file mode 100644 index 000000000..0ac58b585 --- /dev/null +++ b/style__strikethrough_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_strikethrough.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_strikethrough.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_strikethrough.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__strikethrough_8cpp.js b/style__strikethrough_8cpp.js new file mode 100644 index 000000000..ce2c4ca0d --- /dev/null +++ b/style__strikethrough_8cpp.js @@ -0,0 +1,4 @@ +var style__strikethrough_8cpp = +[ + [ "main", "style__strikethrough_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__strikethrough_8cpp_source.html b/style__strikethrough_8cpp_source.html new file mode 100644 index 000000000..98b729ac9 --- /dev/null +++ b/style__strikethrough_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_strikethrough.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_strikethrough.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, strikethrough, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is "),
    +
    16 text("strikethrough") | strikethrough,
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/style__underlined_8cpp.html b/style__underlined_8cpp.html new file mode 100644 index 000000000..13ac27a80 --- /dev/null +++ b/style__underlined_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_underlined.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_underlined.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_underlined.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__underlined_8cpp.js b/style__underlined_8cpp.js new file mode 100644 index 000000000..d2cd99674 --- /dev/null +++ b/style__underlined_8cpp.js @@ -0,0 +1,4 @@ +var style__underlined_8cpp = +[ + [ "main", "style__underlined_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__underlined_8cpp_source.html b/style__underlined_8cpp_source.html new file mode 100644 index 000000000..bbfd68210 --- /dev/null +++ b/style__underlined_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_underlined.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_underlined.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, underlined, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is "),
    +
    16 text("underlined") | underlined,
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    +
    +
    + + + + + diff --git a/style__underlined__double_8cpp.html b/style__underlined__double_8cpp.html new file mode 100644 index 000000000..3c0e3815a --- /dev/null +++ b/style__underlined__double_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: style_underlined_double.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    style_underlined_double.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 11 of file style_underlined_double.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/style__underlined__double_8cpp.js b/style__underlined__double_8cpp.js new file mode 100644 index 000000000..34de53f63 --- /dev/null +++ b/style__underlined__double_8cpp.js @@ -0,0 +1,4 @@ +var style__underlined__double_8cpp = +[ + [ "main", "style__underlined__double_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/style__underlined__double_8cpp_source.html b/style__underlined__double_8cpp_source.html new file mode 100644 index 000000000..977e8bd3e --- /dev/null +++ b/style__underlined__double_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + +FTXUI: style_underlined_double.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    style_underlined_double.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <ftxui/dom/elements.hpp> // for text, operator|, underlinedDouble, Fit, hbox, Element
    +
    5#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    6#include <memory> // for allocator
    +
    7
    +
    8#include "ftxui/dom/node.hpp" // for Render
    +
    9#include "ftxui/screen/color.hpp" // for ftxui
    +
    10
    +
    +
    11int main() {
    +
    12 using namespace ftxui;
    +
    13 auto document = //
    +
    14 hbox({
    +
    15 text("This text is "),
    +
    16 text("underlinedDouble") | underlinedDouble,
    +
    17 text(". Do you like it?"),
    +
    18 });
    +
    19 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    20 Render(screen, document);
    +
    21 screen.Print();
    +
    22
    +
    23 return 0;
    +
    24}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + + +
    +
    + + + + + diff --git a/stylesheet.css b/stylesheet.css new file mode 100644 index 000000000..a9cfd6fe4 --- /dev/null +++ b/stylesheet.css @@ -0,0 +1,119 @@ +html { + --primary-color: #9ed072; /* green (identifier, strings) */ + --primary-dark-color: #f39660; /* orange (functions, tags) */ + --primary-light-color: #7fbbb3; /* teal (types, decorators) */ + + --page-background-color: #2c2e34; /* main background */ + --page-foreground-color: #e2e2e3; /* main text */ + --page-secondary-foreground-color: #9aa5ce; /* dim text */ + --separator-color: #3b3e48; + --side-nav-background: #1a1b26; + + --code-background: #2a2e38; + --code-foreground: #e2e2e3; + + --tablehead-background: #1f1f28; + + --blockquote-background: #3a3e44; + --blockquote-foreground: #d4bfff; + + --warning-color: #e0af68; + --warning-color-dark: #ff9e64; + --warning-color-darker: #f7768e; + --bug-color: #f7768e; + + --fragment-background: #222222; + --fragment-foreground: #e2e2e3; + --fragment-keyword: #f7768e; /* pink */ + --fragment-keywordtype: #7fbbb3; /* teal */ + --fragment-keywordflow: #e0af68; /* orange-yellow */ + --fragment-token: #9ed072; /* green */ + --fragment-comment: #5c6370; + --fragment-link: #7aa2f7; /* blue link */ + --fragment-preprocessor: #f39660; /* orange */ + --fragment-linenumber-color: #414868; + --fragment-linenumber-background: #2c2e34; + --fragment-linenumber-border: #1a1b26; + --fragment-lineheight: 1.125em; +} + +/* Base style for all sections */ +.section.note, +.section.warning, +.section.remark, +.section.attention, +.section.important { + border-left: 4px solid var(--primary-dark-color); + border-radius: 6px; + padding: 0.9em 1.2em; + margin: 1.5em 0; + background-color: #2e303e; + color: var(--page-foreground-color); + font-size: 0.95em; +} + +/* Section title */ +.section.note dt, +.section.warning dt, +.section.remark dt, +.section.attention dt, +.section.important dt { + font-weight: bold; + display: block; + margin-bottom: 0.35em; +} + +/* Section body */ +.section.note dd, +.section.warning dd, +.section.remark dd, +.section.attention dd, +.section.important dd { + margin: 0; +} + +/* Note - soft cyan */ +.section.note { + border-left-color: #7fbbb3; + background-color: #263640; +} +.section.note dt { + color: #7fbbb3; +} + +/* Warning - amber */ +.section.warning { + border-left-color: #e0af68; + background-color: #3d2f1f; +} +.section.warning dt { + color: #e0af68; +} + +/* Tip (Remark) - green */ +.section.remark { + border-left-color: #9ed072; + background-color: #2d3a2d; +} +.section.remark dt { + color: #9ed072; +} + +/* Caution (Attention) - bold red-orange */ +.section.attention { + border-left-color: #f7768e; + background-color: #3d2a2e; +} +.section.attention dt { + color: #f7768e; +} + +/* Important - purple */ +.section.important { + border-left-color: #ab9df2; + background-color: #2f2a3a; +} +.section.important dt { + color: #ab9df2; +} + diff --git a/svg.min.js b/svg.min.js new file mode 100644 index 000000000..916732fe5 --- /dev/null +++ b/svg.min.js @@ -0,0 +1,46 @@ +/*! +* @svgdotjs/svg.js - A lightweight library for manipulating and animating SVG. +* @version 3.1.2 +* https://svgjs.dev/ +* +* @copyright Wout Fierens +* @license MIT +* +* BUILT: Wed Jan 26 2022 23:19:07 GMT+0100 (Mitteleuropäische Normalzeit) +*/var SVG=function(){"use strict";const methods$1={};const names=[];function registerMethods(name,m){if(Array.isArray(name)){for(const _name of name){registerMethods(_name,m)}return}if(typeof name==="object"){for(const _name in name){registerMethods(_name,name[_name])}return}addMethodNames(Object.getOwnPropertyNames(m));methods$1[name]=Object.assign(methods$1[name]||{},m)}function getMethodsFor(name){return methods$1[name]||{}}function getMethodNames(){return[...new Set(names)]}function addMethodNames(_names){names.push(..._names)}function map(array,block){let i;const il=array.length;const result=[];for(i=0;i=0;i--){assignNewId(node.children[i])}if(node.id){node.id=eid(node.nodeName);return node}return node}function extend(modules,methods){let key,i;modules=Array.isArray(modules)?modules:[modules];for(i=modules.length-1;i>=0;i--){for(key in methods){modules[i].prototype[key]=methods[key]}}}function wrapWithAttrCheck(fn){return function(...args){const o=args[args.length-1];if(o&&o.constructor===Object&&!(o instanceof Array)){return fn.apply(this,args.slice(0,-1)).attr(o)}else{return fn.apply(this,args)}}}function siblings(){return this.parent().children()}function position(){return this.parent().index(this)}function next(){return this.siblings()[this.position()+1]}function prev(){return this.siblings()[this.position()-1]}function forward(){const i=this.position();const p=this.parent();p.add(this.remove(),i+1);return this}function backward(){const i=this.position();const p=this.parent();p.add(this.remove(),i?i-1:0);return this}function front(){const p=this.parent();p.add(this.remove());return this}function back(){const p=this.parent();p.add(this.remove(),0);return this}function before(element){element=makeInstance(element);element.remove();const i=this.position();this.parent().add(element,i);return this}function after(element){element=makeInstance(element);element.remove();const i=this.position();this.parent().add(element,i+1);return this}function insertBefore(element){element=makeInstance(element);element.before(this);return this}function insertAfter(element){element=makeInstance(element);element.after(this);return this}registerMethods("Dom",{siblings:siblings,position:position,next:next,prev:prev,forward:forward,backward:backward,front:front,back:back,before:before,after:after,insertBefore:insertBefore,insertAfter:insertAfter});const numberAndUnit=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i;const hex=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;const rgb=/rgb\((\d+),(\d+),(\d+)\)/;const reference=/(#[a-z_][a-z0-9\-_]*)/i;const transforms=/\)\s*,?\s*/;const whitespace=/\s/g;const isHex=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i;const isRgb=/^rgb\(/;const isBlank=/^(\s+)?$/;const isNumber=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;const isImage=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i;const delimiter=/[\s,]+/;const isPathLetter=/[MLHVCSQTAZ]/i;var regex={__proto__:null,numberAndUnit:numberAndUnit,hex:hex,rgb:rgb,reference:reference,transforms:transforms,whitespace:whitespace,isHex:isHex,isRgb:isRgb,isBlank:isBlank,isNumber:isNumber,isImage:isImage,delimiter:delimiter,isPathLetter:isPathLetter};function classes(){const attr=this.attr("class");return attr==null?[]:attr.trim().split(delimiter)}function hasClass(name){return this.classes().indexOf(name)!==-1}function addClass(name){if(!this.hasClass(name)){const array=this.classes();array.push(name);this.attr("class",array.join(" "))}return this}function removeClass(name){if(this.hasClass(name)){this.attr("class",this.classes().filter(function(c){return c!==name}).join(" "))}return this}function toggleClass(name){return this.hasClass(name)?this.removeClass(name):this.addClass(name)}registerMethods("Dom",{classes:classes,hasClass:hasClass,addClass:addClass,removeClass:removeClass,toggleClass:toggleClass});function css(style,val){const ret={};if(arguments.length===0){this.node.style.cssText.split(/\s*;\s*/).filter(function(el){return!!el.length}).forEach(function(el){const t=el.split(/\s*:\s*/);ret[t[0]]=t[1]});return ret}if(arguments.length<2){if(Array.isArray(style)){for(const name of style){const cased=camelCase(name);ret[name]=this.node.style[cased]}return ret}if(typeof style==="string"){return this.node.style[camelCase(style)]}if(typeof style==="object"){for(const name in style){this.node.style[camelCase(name)]=style[name]==null||isBlank.test(style[name])?"":style[name]}}}if(arguments.length===2){this.node.style[camelCase(style)]=val==null||isBlank.test(val)?"":val}return this}function show(){return this.css("display","")}function hide(){return this.css("display","none")}function visible(){return this.css("display")!=="none"}registerMethods("Dom",{css:css,show:show,hide:hide,visible:visible});function data(a,v,r){if(a==null){return this.data(map(filter(this.node.attributes,el=>el.nodeName.indexOf("data-")===0),el=>el.nodeName.slice(5)))}else if(a instanceof Array){const data={};for(const key of a){data[key]=this.data(key)}return data}else if(typeof a==="object"){for(v in a){this.data(v,a[v])}}else if(arguments.length<2){try{return JSON.parse(this.attr("data-"+a))}catch(e){return this.attr("data-"+a)}}else{this.attr("data-"+a,v===null?null:r===true||typeof v==="string"||typeof v==="number"?v:JSON.stringify(v))}return this}registerMethods("Dom",{data:data});function remember(k,v){if(typeof arguments[0]==="object"){for(const key in k){this.remember(key,k[key])}}else if(arguments.length===1){return this.memory()[k]}else{this.memory()[k]=v}return this}function forget(){if(arguments.length===0){this._memory={}}else{for(let i=arguments.length-1;i>=0;i--){delete this.memory()[arguments[i]]}}return this}function memory(){return this._memory=this._memory||{}}registerMethods("Dom",{remember:remember,forget:forget,memory:memory});function sixDigitHex(hex){return hex.length===4?["#",hex.substring(1,2),hex.substring(1,2),hex.substring(2,3),hex.substring(2,3),hex.substring(3,4),hex.substring(3,4)].join(""):hex}function componentHex(component){const integer=Math.round(component);const bounded=Math.max(0,Math.min(255,integer));const hex=bounded.toString(16);return hex.length===1?"0"+hex:hex}function is(object,space){for(let i=space.length;i--;){if(object[space[i]]==null){return false}}return true}function getParameters(a,b){const params=is(a,"rgb")?{_a:a.r,_b:a.g,_c:a.b,_d:0,space:"rgb"}:is(a,"xyz")?{_a:a.x,_b:a.y,_c:a.z,_d:0,space:"xyz"}:is(a,"hsl")?{_a:a.h,_b:a.s,_c:a.l,_d:0,space:"hsl"}:is(a,"lab")?{_a:a.l,_b:a.a,_c:a.b,_d:0,space:"lab"}:is(a,"lch")?{_a:a.l,_b:a.c,_c:a.h,_d:0,space:"lch"}:is(a,"cmyk")?{_a:a.c,_b:a.m,_c:a.y,_d:a.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};params.space=b||params.space;return params}function cieSpace(space){if(space==="lab"||space==="xyz"||space==="lch"){return true}else{return false}}function hueToRgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*(2/3-t)*6;return p}class Color{constructor(...inputs){this.init(...inputs)}static isColor(color){return color&&(color instanceof Color||this.isRgb(color)||this.test(color))}static isRgb(color){return color&&typeof color.r==="number"&&typeof color.g==="number"&&typeof color.b==="number"}static random(mode="vibrant",t,u){const{random,round,sin,PI:pi}=Math;if(mode==="vibrant"){const l=(81-57)*random()+57;const c=(83-45)*random()+45;const h=360*random();const color=new Color(l,c,h,"lch");return color}else if(mode==="sine"){t=t==null?random():t;const r=round(80*sin(2*pi*t/.5+.01)+150);const g=round(50*sin(2*pi*t/.5+4.6)+200);const b=round(100*sin(2*pi*t/.5+2.3)+150);const color=new Color(r,g,b);return color}else if(mode==="pastel"){const l=(94-86)*random()+86;const c=(26-9)*random()+9;const h=360*random();const color=new Color(l,c,h,"lch");return color}else if(mode==="dark"){const l=10+10*random();const c=(125-75)*random()+86;const h=360*random();const color=new Color(l,c,h,"lch");return color}else if(mode==="rgb"){const r=255*random();const g=255*random();const b=255*random();const color=new Color(r,g,b);return color}else if(mode==="lab"){const l=100*random();const a=256*random()-128;const b=256*random()-128;const color=new Color(l,a,b,"lab");return color}else if(mode==="grey"){const grey=255*random();const color=new Color(grey,grey,grey);return color}else{throw new Error("Unsupported random color mode")}}static test(color){return typeof color==="string"&&(isHex.test(color)||isRgb.test(color))}cmyk(){const{_a,_b,_c}=this.rgb();const[r,g,b]=[_a,_b,_c].map(v=>v/255);const k=Math.min(1-r,1-g,1-b);if(k===1){return new Color(0,0,0,1,"cmyk")}const c=(1-r-k)/(1-k);const m=(1-g-k)/(1-k);const y=(1-b-k)/(1-k);const color=new Color(c,m,y,k,"cmyk");return color}hsl(){const{_a,_b,_c}=this.rgb();const[r,g,b]=[_a,_b,_c].map(v=>v/255);const max=Math.max(r,g,b);const min=Math.min(r,g,b);const l=(max+min)/2;const isGrey=max===min;const delta=max-min;const s=isGrey?0:l>.5?delta/(2-max-min):delta/(max+min);const h=isGrey?0:max===r?((g-b)/delta+(gparseInt(v));Object.assign(this,{_a:_a,_b:_b,_c:_c,_d:0,space:"rgb"})}else if(isHex.test(a)){const hexParse=v=>parseInt(v,16);const[,_a,_b,_c]=hex.exec(sixDigitHex(a)).map(hexParse);Object.assign(this,{_a:_a,_b:_b,_c:_c,_d:0,space:"rgb"})}else throw Error("Unsupported string format, can't construct Color")}const{_a,_b,_c,_d}=this;const components=this.space==="rgb"?{r:_a,g:_b,b:_c}:this.space==="xyz"?{x:_a,y:_b,z:_c}:this.space==="hsl"?{h:_a,s:_b,l:_c}:this.space==="lab"?{l:_a,a:_b,b:_c}:this.space==="lch"?{l:_a,c:_b,h:_c}:this.space==="cmyk"?{c:_a,m:_b,y:_c,k:_d}:{};Object.assign(this,components)}lab(){const{x,y,z}=this.xyz();const l=116*y-16;const a=500*(x-y);const b=200*(y-z);const color=new Color(l,a,b,"lab");return color}lch(){const{l,a,b}=this.lab();const c=Math.sqrt(a**2+b**2);let h=180*Math.atan2(b,a)/Math.PI;if(h<0){h*=-1;h=360-h}const color=new Color(l,c,h,"lch");return color}rgb(){if(this.space==="rgb"){return this}else if(cieSpace(this.space)){let{x,y,z}=this;if(this.space==="lab"||this.space==="lch"){let{l,a,b}=this;if(this.space==="lch"){const{c,h}=this;const dToR=Math.PI/180;a=c*Math.cos(dToR*h);b=c*Math.sin(dToR*h)}const yL=(l+16)/116;const xL=a/500+yL;const zL=yL-b/200;const ct=16/116;const mx=.008856;const nm=7.787;x=.95047*(xL**3>mx?xL**3:(xL-ct)/nm);y=1*(yL**3>mx?yL**3:(yL-ct)/nm);z=1.08883*(zL**3>mx?zL**3:(zL-ct)/nm)}const rU=x*3.2406+y*-1.5372+z*-.4986;const gU=x*-.9689+y*1.8758+z*.0415;const bU=x*.0557+y*-.204+z*1.057;const pow=Math.pow;const bd=.0031308;const r=rU>bd?1.055*pow(rU,1/2.4)-.055:12.92*rU;const g=gU>bd?1.055*pow(gU,1/2.4)-.055:12.92*gU;const b=bU>bd?1.055*pow(bU,1/2.4)-.055:12.92*bU;const color=new Color(255*r,255*g,255*b);return color}else if(this.space==="hsl"){let{h,s,l}=this;h/=360;s/=100;l/=100;if(s===0){l*=255;const color=new Color(l,l,l);return color}const q=l<.5?l*(1+s):l+s-l*s;const p=2*l-q;const r=255*hueToRgb(p,q,h+1/3);const g=255*hueToRgb(p,q,h);const b=255*hueToRgb(p,q,h-1/3);const color=new Color(r,g,b);return color}else if(this.space==="cmyk"){const{c,m,y,k}=this;const r=255*(1-Math.min(1,c*(1-k)+k));const g=255*(1-Math.min(1,m*(1-k)+k));const b=255*(1-Math.min(1,y*(1-k)+k));const color=new Color(r,g,b);return color}else{return this}}toArray(){const{_a,_b,_c,_d,space}=this;return[_a,_b,_c,_d,space]}toHex(){const[r,g,b]=this._clamped().map(componentHex);return`#${r}${g}${b}`}toRgb(){const[rV,gV,bV]=this._clamped();const string=`rgb(${rV},${gV},${bV})`;return string}toString(){return this.toHex()}xyz(){const{_a:r255,_b:g255,_c:b255}=this.rgb();const[r,g,b]=[r255,g255,b255].map(v=>v/255);const rL=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;const gL=g>.04045?Math.pow((g+.055)/1.055,2.4):g/12.92;const bL=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92;const xU=(rL*.4124+gL*.3576+bL*.1805)/.95047;const yU=(rL*.2126+gL*.7152+bL*.0722)/1;const zU=(rL*.0193+gL*.1192+bL*.9505)/1.08883;const x=xU>.008856?Math.pow(xU,1/3):7.787*xU+16/116;const y=yU>.008856?Math.pow(yU,1/3):7.787*yU+16/116;const z=zU>.008856?Math.pow(zU,1/3):7.787*zU+16/116;const color=new Color(x,y,z,"xyz");return color}_clamped(){const{_a,_b,_c}=this.rgb();const{max,min,round}=Math;const format=v=>max(0,min(round(v),255));return[_a,_b,_c].map(format)}}class Point{constructor(...args){this.init(...args)}clone(){return new Point(this)}init(x,y){const base={x:0,y:0};const source=Array.isArray(x)?{x:x[0],y:x[1]}:typeof x==="object"?{x:x.x,y:x.y}:{x:x,y:y};this.x=source.x==null?base.x:source.x;this.y=source.y==null?base.y:source.y;return this}toArray(){return[this.x,this.y]}transform(m){return this.clone().transformO(m)}transformO(m){if(!Matrix.isMatrixLike(m)){m=new Matrix(m)}const{x,y}=this;this.x=m.a*x+m.c*y+m.e;this.y=m.b*x+m.d*y+m.f;return this}}function point(x,y){return new Point(x,y).transform(this.screenCTM().inverse())}function closeEnough(a,b,threshold){return Math.abs(b-a)<(threshold||1e-6)}class Matrix{constructor(...args){this.init(...args)}static formatTransforms(o){const flipBoth=o.flip==="both"||o.flip===true;const flipX=o.flip&&(flipBoth||o.flip==="x")?-1:1;const flipY=o.flip&&(flipBoth||o.flip==="y")?-1:1;const skewX=o.skew&&o.skew.length?o.skew[0]:isFinite(o.skew)?o.skew:isFinite(o.skewX)?o.skewX:0;const skewY=o.skew&&o.skew.length?o.skew[1]:isFinite(o.skew)?o.skew:isFinite(o.skewY)?o.skewY:0;const scaleX=o.scale&&o.scale.length?o.scale[0]*flipX:isFinite(o.scale)?o.scale*flipX:isFinite(o.scaleX)?o.scaleX*flipX:flipX;const scaleY=o.scale&&o.scale.length?o.scale[1]*flipY:isFinite(o.scale)?o.scale*flipY:isFinite(o.scaleY)?o.scaleY*flipY:flipY;const shear=o.shear||0;const theta=o.rotate||o.theta||0;const origin=new Point(o.origin||o.around||o.ox||o.originX,o.oy||o.originY);const ox=origin.x;const oy=origin.y;const position=new Point(o.position||o.px||o.positionX||NaN,o.py||o.positionY||NaN);const px=position.x;const py=position.y;const translate=new Point(o.translate||o.tx||o.translateX,o.ty||o.translateY);const tx=translate.x;const ty=translate.y;const relative=new Point(o.relative||o.rx||o.relativeX,o.ry||o.relativeY);const rx=relative.x;const ry=relative.y;return{scaleX:scaleX,scaleY:scaleY,skewX:skewX,skewY:skewY,shear:shear,theta:theta,rx:rx,ry:ry,tx:tx,ty:ty,ox:ox,oy:oy,px:px,py:py}}static fromArray(a){return{a:a[0],b:a[1],c:a[2],d:a[3],e:a[4],f:a[5]}}static isMatrixLike(o){return o.a!=null||o.b!=null||o.c!=null||o.d!=null||o.e!=null||o.f!=null}static matrixMultiply(l,r,o){const a=l.a*r.a+l.c*r.b;const b=l.b*r.a+l.d*r.b;const c=l.a*r.c+l.c*r.d;const d=l.b*r.c+l.d*r.d;const e=l.e+l.a*r.e+l.c*r.f;const f=l.f+l.b*r.e+l.d*r.f;o.a=a;o.b=b;o.c=c;o.d=d;o.e=e;o.f=f;return o}around(cx,cy,matrix){return this.clone().aroundO(cx,cy,matrix)}aroundO(cx,cy,matrix){const dx=cx||0;const dy=cy||0;return this.translateO(-dx,-dy).lmultiplyO(matrix).translateO(dx,dy)}clone(){return new Matrix(this)}decompose(cx=0,cy=0){const a=this.a;const b=this.b;const c=this.c;const d=this.d;const e=this.e;const f=this.f;const determinant=a*d-b*c;const ccw=determinant>0?1:-1;const sx=ccw*Math.sqrt(a*a+b*b);const thetaRad=Math.atan2(ccw*b,ccw*a);const theta=180/Math.PI*thetaRad;const ct=Math.cos(thetaRad);const st=Math.sin(thetaRad);const lam=(a*c+b*d)/determinant;const sy=c*sx/(lam*a-b)||d*sx/(lam*b+a);const tx=e-cx+cx*ct*sx+cy*(lam*ct*sx-st*sy);const ty=f-cy+cx*st*sx+cy*(lam*st*sx+ct*sy);return{scaleX:sx,scaleY:sy,shear:lam,rotate:theta,translateX:tx,translateY:ty,originX:cx,originY:cy,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(other){if(other===this)return true;const comp=new Matrix(other);return closeEnough(this.a,comp.a)&&closeEnough(this.b,comp.b)&&closeEnough(this.c,comp.c)&&closeEnough(this.d,comp.d)&&closeEnough(this.e,comp.e)&&closeEnough(this.f,comp.f)}flip(axis,around){return this.clone().flipO(axis,around)}flipO(axis,around){return axis==="x"?this.scaleO(-1,1,around,0):axis==="y"?this.scaleO(1,-1,0,around):this.scaleO(-1,-1,axis,around||axis)}init(source){const base=Matrix.fromArray([1,0,0,1,0,0]);source=source instanceof Element?source.matrixify():typeof source==="string"?Matrix.fromArray(source.split(delimiter).map(parseFloat)):Array.isArray(source)?Matrix.fromArray(source):typeof source==="object"&&Matrix.isMatrixLike(source)?source:typeof source==="object"?(new Matrix).transform(source):arguments.length===6?Matrix.fromArray([].slice.call(arguments)):base;this.a=source.a!=null?source.a:base.a;this.b=source.b!=null?source.b:base.b;this.c=source.c!=null?source.c:base.c;this.d=source.d!=null?source.d:base.d;this.e=source.e!=null?source.e:base.e;this.f=source.f!=null?source.f:base.f;return this}inverse(){return this.clone().inverseO()}inverseO(){const a=this.a;const b=this.b;const c=this.c;const d=this.d;const e=this.e;const f=this.f;const det=a*d-b*c;if(!det)throw new Error("Cannot invert "+this);const na=d/det;const nb=-b/det;const nc=-c/det;const nd=a/det;const ne=-(na*e+nc*f);const nf=-(nb*e+nd*f);this.a=na;this.b=nb;this.c=nc;this.d=nd;this.e=ne;this.f=nf;return this}lmultiply(matrix){return this.clone().lmultiplyO(matrix)}lmultiplyO(matrix){const r=this;const l=matrix instanceof Matrix?matrix:new Matrix(matrix);return Matrix.matrixMultiply(l,r,this)}multiply(matrix){return this.clone().multiplyO(matrix)}multiplyO(matrix){const l=this;const r=matrix instanceof Matrix?matrix:new Matrix(matrix);return Matrix.matrixMultiply(l,r,this)}rotate(r,cx,cy){return this.clone().rotateO(r,cx,cy)}rotateO(r,cx=0,cy=0){r=radians(r);const cos=Math.cos(r);const sin=Math.sin(r);const{a,b,c,d,e,f}=this;this.a=a*cos-b*sin;this.b=b*cos+a*sin;this.c=c*cos-d*sin;this.d=d*cos+c*sin;this.e=e*cos-f*sin+cy*sin-cx*cos+cx;this.f=f*cos+e*sin-cx*sin-cy*cos+cy;return this}scale(x,y,cx,cy){return this.clone().scaleO(...arguments)}scaleO(x,y=x,cx=0,cy=0){if(arguments.length===3){cy=cx;cx=y;y=x}const{a,b,c,d,e,f}=this;this.a=a*x;this.b=b*y;this.c=c*x;this.d=d*y;this.e=e*x-cx*x+cx;this.f=f*y-cy*y+cy;return this}shear(a,cx,cy){return this.clone().shearO(a,cx,cy)}shearO(lx,cx=0,cy=0){const{a,b,c,d,e,f}=this;this.a=a+b*lx;this.c=c+d*lx;this.e=e+f*lx-cy*lx;return this}skew(x,y,cx,cy){return this.clone().skewO(...arguments)}skewO(x,y=x,cx=0,cy=0){if(arguments.length===3){cy=cx;cx=y;y=x}x=radians(x);y=radians(y);const lx=Math.tan(x);const ly=Math.tan(y);const{a,b,c,d,e,f}=this;this.a=a+b*lx;this.b=b+a*ly;this.c=c+d*lx;this.d=d+c*ly;this.e=e+f*lx-cy*lx;this.f=f+e*ly-cx*ly;return this}skewX(x,cx,cy){return this.skew(x,0,cx,cy)}skewY(y,cx,cy){return this.skew(0,y,cx,cy)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(o){if(Matrix.isMatrixLike(o)){const matrix=new Matrix(o);return matrix.multiplyO(this)}const t=Matrix.formatTransforms(o);const current=this;const{x:ox,y:oy}=new Point(t.ox,t.oy).transform(current);const transformer=(new Matrix).translateO(t.rx,t.ry).lmultiplyO(current).translateO(-ox,-oy).scaleO(t.scaleX,t.scaleY).skewO(t.skewX,t.skewY).shearO(t.shear).rotateO(t.theta).translateO(ox,oy);if(isFinite(t.px)||isFinite(t.py)){const origin=new Point(ox,oy).transform(transformer);const dx=isFinite(t.px)?t.px-origin.x:0;const dy=isFinite(t.py)?t.py-origin.y:0;transformer.translateO(dx,dy)}transformer.translateO(t.tx,t.ty);return transformer}translate(x,y){return this.clone().translateO(x,y)}translateO(x,y){this.e+=x||0;this.f+=y||0;return this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function ctm(){return new Matrix(this.node.getCTM())}function screenCTM(){if(typeof this.isRoot==="function"&&!this.isRoot()){const rect=this.rect(1,1);const m=rect.node.getScreenCTM();rect.remove();return new Matrix(m)}return new Matrix(this.node.getScreenCTM())}register(Matrix,"Matrix");function parser(){if(!parser.nodes){const svg=makeInstance().size(2,0);svg.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";");svg.attr("focusable","false");svg.attr("aria-hidden","true");const path=svg.path().node;parser.nodes={svg:svg,path:path}}if(!parser.nodes.svg.node.parentNode){const b=globals.document.body||globals.document.documentElement;parser.nodes.svg.addTo(b)}return parser.nodes}function isNulledBox(box){return!box.width&&!box.height&&!box.x&&!box.y}function domContains(node){return node===globals.document||(globals.document.documentElement.contains||function(node){while(node.parentNode){node=node.parentNode}return node===globals.document}).call(globals.document.documentElement,node)}class Box{constructor(...args){this.init(...args)}addOffset(){this.x+=globals.window.pageXOffset;this.y+=globals.window.pageYOffset;return new Box(this)}init(source){const base=[0,0,0,0];source=typeof source==="string"?source.split(delimiter).map(parseFloat):Array.isArray(source)?source:typeof source==="object"?[source.left!=null?source.left:source.x,source.top!=null?source.top:source.y,source.width,source.height]:arguments.length===4?[].slice.call(arguments):base;this.x=source[0]||0;this.y=source[1]||0;this.width=this.w=source[2]||0;this.height=this.h=source[3]||0;this.x2=this.x+this.w;this.y2=this.y+this.h;this.cx=this.x+this.w/2;this.cy=this.y+this.h/2;return this}isNulled(){return isNulledBox(this)}merge(box){const x=Math.min(this.x,box.x);const y=Math.min(this.y,box.y);const width=Math.max(this.x+this.width,box.x+box.width)-x;const height=Math.max(this.y+this.height,box.y+box.height)-y;return new Box(x,y,width,height)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(m){if(!(m instanceof Matrix)){m=new Matrix(m)}let xMin=Infinity;let xMax=-Infinity;let yMin=Infinity;let yMax=-Infinity;const pts=[new Point(this.x,this.y),new Point(this.x2,this.y),new Point(this.x,this.y2),new Point(this.x2,this.y2)];pts.forEach(function(p){p=p.transform(m);xMin=Math.min(xMin,p.x);xMax=Math.max(xMax,p.x);yMin=Math.min(yMin,p.y);yMax=Math.max(yMax,p.y)});return new Box(xMin,yMin,xMax-xMin,yMax-yMin)}}function getBox(el,getBBoxFn,retry){let box;try{box=getBBoxFn(el.node);if(isNulledBox(box)&&!domContains(el.node)){throw new Error("Element not in the dom")}}catch(e){box=retry(el)}return box}function bbox(){const getBBox=node=>node.getBBox();const retry=el=>{try{const clone=el.clone().addTo(parser().svg).show();const box=clone.node.getBBox();clone.remove();return box}catch(e){throw new Error(`Getting bbox of element "${el.node.nodeName}" is not possible: ${e.toString()}`)}};const box=getBox(this,getBBox,retry);const bbox=new Box(box);return bbox}function rbox(el){const getRBox=node=>node.getBoundingClientRect();const retry=el=>{throw new Error(`Getting rbox of element "${el.node.nodeName}" is not possible`)};const box=getBox(this,getRBox,retry);const rbox=new Box(box);if(el){return rbox.transform(el.screenCTM().inverseO())}return rbox.addOffset()}function inside(x,y){const box=this.bbox();return x>box.x&&y>box.y&&x{return fnOrMethodName.call(el,el,i,arr)})}else{return this.map(el=>{return el[fnOrMethodName](...args)})}},toArray(){return Array.prototype.concat.apply([],this)}});const reserved=["toArray","constructor","each"];List.extend=function(methods){methods=methods.reduce((obj,name)=>{if(reserved.includes(name))return obj;if(name[0]==="_")return obj;obj[name]=function(...attrs){return this.each(name,...attrs)};return obj},{});extend([List],methods)};function baseFind(query,parent){return new List(map((parent||globals.document).querySelectorAll(query),function(node){return adopt(node)}))}function find(query){return baseFind(query,this.node)}function findOne(query){return adopt(this.node.querySelector(query))}let listenerId=0;const windowEvents={};function getEvents(instance){let n=instance.getEventHolder();if(n===globals.window)n=windowEvents;if(!n.events)n.events={};return n.events}function getEventTarget(instance){return instance.getEventTarget()}function clearEvents(instance){let n=instance.getEventHolder();if(n===globals.window)n=windowEvents;if(n.events)n.events={}}function on(node,events,listener,binding,options){const l=listener.bind(binding||node);const instance=makeInstance(node);const bag=getEvents(instance);const n=getEventTarget(instance);events=Array.isArray(events)?events:events.split(delimiter);if(!listener._svgjsListenerId){listener._svgjsListenerId=++listenerId}events.forEach(function(event){const ev=event.split(".")[0];const ns=event.split(".")[1]||"*";bag[ev]=bag[ev]||{};bag[ev][ns]=bag[ev][ns]||{};bag[ev][ns][listener._svgjsListenerId]=l;n.addEventListener(ev,l,options||false)})}function off(node,events,listener,options){const instance=makeInstance(node);const bag=getEvents(instance);const n=getEventTarget(instance);if(typeof listener==="function"){listener=listener._svgjsListenerId;if(!listener)return}events=Array.isArray(events)?events:(events||"").split(delimiter);events.forEach(function(event){const ev=event&&event.split(".")[0];const ns=event&&event.split(".")[1];let namespace,l;if(listener){if(bag[ev]&&bag[ev][ns||"*"]){n.removeEventListener(ev,bag[ev][ns||"*"][listener],options||false);delete bag[ev][ns||"*"][listener]}}else if(ev&&ns){if(bag[ev]&&bag[ev][ns]){for(l in bag[ev][ns]){off(n,[ev,ns].join("."),l)}delete bag[ev][ns]}}else if(ns){for(event in bag){for(namespace in bag[event]){if(ns===namespace){off(n,[event,ns].join("."))}}}}else if(ev){if(bag[ev]){for(namespace in bag[ev]){off(n,[ev,namespace].join("."))}delete bag[ev]}}else{for(event in bag){off(n,event)}clearEvents(instance)}})}function dispatch(node,event,data,options){const n=getEventTarget(node);if(event instanceof globals.window.Event){n.dispatchEvent(event)}else{event=new globals.window.CustomEvent(event,{detail:data,cancelable:true,...options});n.dispatchEvent(event)}return event}class EventTarget extends Base{addEventListener(){}dispatch(event,data,options){return dispatch(this,event,data,options)}dispatchEvent(event){const bag=this.getEventHolder().events;if(!bag)return true;const events=bag[event.type];for(const i in events){for(const j in events[i]){events[i][j](event)}}return!event.defaultPrevented}fire(event,data,options){this.dispatch(event,data,options);return this}getEventHolder(){return this}getEventTarget(){return this}off(event,listener,options){off(this,event,listener,options);return this}on(event,listener,binding,options){on(this,event,listener,binding,options);return this}removeEventListener(){}}register(EventTarget,"EventTarget");function noop(){}const timeline={duration:400,ease:">",delay:0};const attrs={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var defaults={__proto__:null,noop:noop,timeline:timeline,attrs:attrs};class SVGArray extends Array{constructor(...args){super(...args);this.init(...args)}clone(){return new this.constructor(this)}init(arr){if(typeof arr==="number")return this;this.length=0;this.push(...this.parse(arr));return this}parse(array=[]){if(array instanceof Array)return array;return array.trim().split(delimiter).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const ret=[];ret.push(...this);return ret}}class SVGNumber{constructor(...args){this.init(...args)}convert(unit){return new SVGNumber(this.value,unit)}divide(number){number=new SVGNumber(number);return new SVGNumber(this/number,this.unit||number.unit)}init(value,unit){unit=Array.isArray(value)?value[1]:unit;value=Array.isArray(value)?value[0]:value;this.value=0;this.unit=unit||"";if(typeof value==="number"){this.value=isNaN(value)?0:!isFinite(value)?value<0?-34e37:+34e37:value}else if(typeof value==="string"){unit=value.match(numberAndUnit);if(unit){this.value=parseFloat(unit[1]);if(unit[5]==="%"){this.value/=100}else if(unit[5]==="s"){this.value*=1e3}this.unit=unit[5]}}else{if(value instanceof SVGNumber){this.value=value.valueOf();this.unit=value.unit}}return this}minus(number){number=new SVGNumber(number);return new SVGNumber(this-number,this.unit||number.unit)}plus(number){number=new SVGNumber(number);return new SVGNumber(this+number,this.unit||number.unit)}times(number){number=new SVGNumber(number);return new SVGNumber(this*number,this.unit||number.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return(this.unit==="%"?~~(this.value*1e8)/1e6:this.unit==="s"?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const hooks=[];function registerAttrHook(fn){hooks.push(fn)}function attr(attr,val,ns){if(attr==null){attr={};val=this.node.attributes;for(const node of val){attr[node.nodeName]=isNumber.test(node.nodeValue)?parseFloat(node.nodeValue):node.nodeValue}return attr}else if(attr instanceof Array){return attr.reduce((last,curr)=>{last[curr]=this.attr(curr);return last},{})}else if(typeof attr==="object"&&attr.constructor===Object){for(val in attr)this.attr(val,attr[val])}else if(val===null){this.node.removeAttribute(attr)}else if(val==null){val=this.node.getAttribute(attr);return val==null?attrs[attr]:isNumber.test(val)?parseFloat(val):val}else{val=hooks.reduce((_val,hook)=>{return hook(attr,_val,this)},val);if(typeof val==="number"){val=new SVGNumber(val)}else if(Color.isColor(val)){val=new Color(val)}else if(val.constructor===Array){val=new SVGArray(val)}if(attr==="leading"){if(this.leading){this.leading(val)}}else{typeof ns==="string"?this.node.setAttributeNS(ns,attr,val.toString()):this.node.setAttribute(attr,val.toString())}if(this.rebuild&&(attr==="font-size"||attr==="x")){this.rebuild()}}return this}class Dom extends EventTarget{constructor(node,attrs){super();this.node=node;this.type=node.nodeName;if(attrs&&node!==attrs){this.attr(attrs)}}add(element,i){element=makeInstance(element);if(element.removeNamespace&&this.node instanceof globals.window.SVGElement){element.removeNamespace()}if(i==null){this.node.appendChild(element.node)}else if(element.node!==this.node.childNodes[i]){this.node.insertBefore(element.node,this.node.childNodes[i])}return this}addTo(parent,i){return makeInstance(parent).put(this,i)}children(){return new List(map(this.node.children,function(node){return adopt(node)}))}clear(){while(this.node.hasChildNodes()){this.node.removeChild(this.node.lastChild)}return this}clone(deep=true){this.writeDataToDom();return new this.constructor(assignNewId(this.node.cloneNode(deep)))}each(block,deep){const children=this.children();let i,il;for(i=0,il=children.length;i=0}html(htmlOrFn,outerHTML){return this.xml(htmlOrFn,outerHTML,html)}id(id){if(typeof id==="undefined"&&!this.node.id){this.node.id=eid(this.type)}return this.attr("id",id)}index(element){return[].slice.call(this.node.childNodes).indexOf(element.node)}last(){return adopt(this.node.lastChild)}matches(selector){const el=this.node;const matcher=el.matches||el.matchesSelector||el.msMatchesSelector||el.mozMatchesSelector||el.webkitMatchesSelector||el.oMatchesSelector||null;return matcher&&matcher.call(el,selector)}parent(type){let parent=this;if(!parent.node.parentNode)return null;parent=adopt(parent.node.parentNode);if(!type)return parent;do{if(typeof type==="string"?parent.matches(type):parent instanceof type)return parent}while(parent=adopt(parent.node.parentNode));return parent}put(element,i){element=makeInstance(element);this.add(element,i);return element}putIn(parent,i){return makeInstance(parent).add(this,i)}remove(){if(this.parent()){this.parent().removeElement(this)}return this}removeElement(element){this.node.removeChild(element.node);return this}replace(element){element=makeInstance(element);if(this.node.parentNode){this.node.parentNode.replaceChild(element.node,this.node)}return element}round(precision=2,map=null){const factor=10**precision;const attrs=this.attr(map);for(const i in attrs){if(typeof attrs[i]==="number"){attrs[i]=Math.round(attrs[i]*factor)/factor}}this.attr(attrs);return this}svg(svgOrFn,outerSVG){return this.xml(svgOrFn,outerSVG,svg)}toString(){return this.id()}words(text){this.node.textContent=text;return this}wrap(node){const parent=this.parent();if(!parent){return this.addTo(node)}const position=parent.index(this);return parent.put(node,position).put(this)}writeDataToDom(){this.each(function(){this.writeDataToDom()});return this}xml(xmlOrFn,outerXML,ns){if(typeof xmlOrFn==="boolean"){ns=outerXML;outerXML=xmlOrFn;xmlOrFn=null}if(xmlOrFn==null||typeof xmlOrFn==="function"){outerXML=outerXML==null?true:outerXML;this.writeDataToDom();let current=this;if(xmlOrFn!=null){current=adopt(current.node.cloneNode(true));if(outerXML){const result=xmlOrFn(current);current=result||current;if(result===false)return""}current.each(function(){const result=xmlOrFn(this);const _this=result||this;if(result===false){this.remove()}else if(result&&this!==_this){this.replace(_this)}},true)}return outerXML?current.node.outerHTML:current.node.innerHTML}outerXML=outerXML==null?false:outerXML;const well=create("wrapper",ns);const fragment=globals.document.createDocumentFragment();well.innerHTML=xmlOrFn;for(let len=well.children.length;len--;){fragment.appendChild(well.firstElementChild)}const parent=this.parent();return outerXML?this.replace(fragment)&&parent:this.add(fragment)}}extend(Dom,{attr:attr,find:find,findOne:findOne});register(Dom,"Dom");class Element extends Dom{constructor(node,attrs){super(node,attrs);this.dom={};this.node.instance=this;if(node.hasAttribute("svgjs:data")){this.setData(JSON.parse(node.getAttribute("svgjs:data"))||{})}}center(x,y){return this.cx(x).cy(y)}cx(x){return x==null?this.x()+this.width()/2:this.x(x-this.width()/2)}cy(y){return y==null?this.y()+this.height()/2:this.y(y-this.height()/2)}defs(){const root=this.root();return root&&root.defs()}dmove(x,y){return this.dx(x).dy(y)}dx(x=0){return this.x(new SVGNumber(x).plus(this.x()))}dy(y=0){return this.y(new SVGNumber(y).plus(this.y()))}getEventHolder(){return this}height(height){return this.attr("height",height)}move(x,y){return this.x(x).y(y)}parents(until=this.root()){const isSelector=typeof until==="string";if(!isSelector){until=makeInstance(until)}const parents=new List;let parent=this;while((parent=parent.parent())&&parent.node!==globals.document&&parent.nodeName!=="#document-fragment"){parents.push(parent);if(!isSelector&&parent.node===until.node){break}if(isSelector&&parent.matches(until)){break}if(parent.node===this.root().node){return null}}return parents}reference(attr){attr=this.attr(attr);if(!attr)return null;const m=(attr+"").match(reference);return m?makeInstance(m[1]):null}root(){const p=this.parent(getClass(root));return p&&p.root()}setData(o){this.dom=o;return this}size(width,height){const p=proportionalSize(this,width,height);return this.width(new SVGNumber(p.width)).height(new SVGNumber(p.height))}width(width){return this.attr("width",width)}writeDataToDom(){this.node.removeAttribute("svgjs:data");if(Object.keys(this.dom).length){this.node.setAttribute("svgjs:data",JSON.stringify(this.dom))}return super.writeDataToDom()}x(x){return this.attr("x",x)}y(y){return this.attr("y",y)}}extend(Element,{bbox:bbox,rbox:rbox,inside:inside,point:point,ctm:ctm,screenCTM:screenCTM});register(Element,"Element");const sugar={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,a){return a==="color"?t:t+"-"+a}};["fill","stroke"].forEach(function(m){const extension={};let i;extension[m]=function(o){if(typeof o==="undefined"){return this.attr(m)}if(typeof o==="string"||o instanceof Color||Color.isRgb(o)||o instanceof Element){this.attr(m,o)}else{for(i=sugar[m].length-1;i>=0;i--){if(o[sugar[m][i]]!=null){this.attr(sugar.prefix(m,sugar[m][i]),o[sugar[m][i]])}}}return this};registerMethods(["Element","Runner"],extension)});registerMethods(["Element","Runner"],{matrix:function(mat,b,c,d,e,f){if(mat==null){return new Matrix(this)}return this.attr("transform",new Matrix(mat,b,c,d,e,f))},rotate:function(angle,cx,cy){return this.transform({rotate:angle,ox:cx,oy:cy},true)},skew:function(x,y,cx,cy){return arguments.length===1||arguments.length===3?this.transform({skew:x,ox:y,oy:cx},true):this.transform({skew:[x,y],ox:cx,oy:cy},true)},shear:function(lam,cx,cy){return this.transform({shear:lam,ox:cx,oy:cy},true)},scale:function(x,y,cx,cy){return arguments.length===1||arguments.length===3?this.transform({scale:x,ox:y,oy:cx},true):this.transform({scale:[x,y],ox:cx,oy:cy},true)},translate:function(x,y){return this.transform({translate:[x,y]},true)},relative:function(x,y){return this.transform({relative:[x,y]},true)},flip:function(direction="both",origin="center"){if("xybothtrue".indexOf(direction)===-1){origin=direction;direction="both"}return this.transform({flip:direction,origin:origin},true)},opacity:function(value){return this.attr("opacity",value)}});registerMethods("radius",{radius:function(x,y=x){const type=(this._element||this).type;return type==="radialGradient"?this.attr("r",new SVGNumber(x)):this.rx(x).ry(y)}});registerMethods("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(length){return new Point(this.node.getPointAtLength(length))}});registerMethods(["Element","Runner"],{font:function(a,v){if(typeof a==="object"){for(v in a)this.font(v,a[v]);return this}return a==="leading"?this.leading(v):a==="anchor"?this.attr("text-anchor",v):a==="size"||a==="family"||a==="weight"||a==="stretch"||a==="variant"||a==="style"?this.attr("font-"+a,v):this.attr(a,v)}});const methods=["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel"].reduce(function(last,event){const fn=function(f){if(f===null){this.off(event)}else{this.on(event,f)}return this};last[event]=fn;return last},{});registerMethods("Element",methods);function untransform(){return this.attr("transform",null)}function matrixify(){const matrix=(this.attr("transform")||"").split(transforms).slice(0,-1).map(function(str){const kv=str.trim().split("(");return[kv[0],kv[1].split(delimiter).map(function(str){return parseFloat(str)})]}).reverse().reduce(function(matrix,transform){if(transform[0]==="matrix"){return matrix.lmultiply(Matrix.fromArray(transform[1]))}return matrix[transform[0]].apply(matrix,transform[1])},new Matrix);return matrix}function toParent(parent,i){if(this===parent)return this;const ctm=this.screenCTM();const pCtm=parent.screenCTM().inverse();this.addTo(parent,i).untransform().transform(pCtm.multiply(ctm));return this}function toRoot(i){return this.toParent(this.root(),i)}function transform(o,relative){if(o==null||typeof o==="string"){const decomposed=new Matrix(this).decompose();return o==null?decomposed:decomposed[o]}if(!Matrix.isMatrixLike(o)){o={...o,origin:getOrigin(o,this)}}const cleanRelative=relative===true?this:relative||false;const result=new Matrix(cleanRelative).transform(o);return this.attr("transform",result)}registerMethods("Element",{untransform:untransform,matrixify:matrixify,toParent:toParent,toRoot:toRoot,transform:transform});class Container extends Element{flatten(parent=this,index){this.each(function(){if(this instanceof Container){return this.flatten().ungroup()}});return this}ungroup(parent=this.parent(),index=parent.index(this)){index=index===-1?parent.children().length:index;this.each(function(i,children){return children[children.length-i-1].toParent(parent,index)});return this.remove()}}register(Container,"Container");class Defs extends Container{constructor(node,attrs=node){super(nodeOrNew("defs",node),attrs)}flatten(){return this}ungroup(){return this}}register(Defs,"Defs");class Shape extends Element{}register(Shape,"Shape");function rx(rx){return this.attr("rx",rx)}function ry(ry){return this.attr("ry",ry)}function x$3(x){return x==null?this.cx()-this.rx():this.cx(x+this.rx())}function y$3(y){return y==null?this.cy()-this.ry():this.cy(y+this.ry())}function cx$1(x){return this.attr("cx",x)}function cy$1(y){return this.attr("cy",y)}function width$2(width){return width==null?this.rx()*2:this.rx(new SVGNumber(width).divide(2))}function height$2(height){return height==null?this.ry()*2:this.ry(new SVGNumber(height).divide(2))}var circled={__proto__:null,rx:rx,ry:ry,x:x$3,y:y$3,cx:cx$1,cy:cy$1,width:width$2,height:height$2};class Ellipse extends Shape{constructor(node,attrs=node){super(nodeOrNew("ellipse",node),attrs)}size(width,height){const p=proportionalSize(this,width,height);return this.rx(new SVGNumber(p.width).divide(2)).ry(new SVGNumber(p.height).divide(2))}}extend(Ellipse,circled);registerMethods("Container",{ellipse:wrapWithAttrCheck(function(width=0,height=width){return this.put(new Ellipse).size(width,height).move(0,0)})});register(Ellipse,"Ellipse");class Fragment extends Dom{constructor(node=globals.document.createDocumentFragment()){super(node)}xml(xmlOrFn,outerXML,ns){if(typeof xmlOrFn==="boolean"){ns=outerXML;outerXML=xmlOrFn;xmlOrFn=null}if(xmlOrFn==null||typeof xmlOrFn==="function"){const wrapper=new Dom(create("wrapper",ns));wrapper.add(this.node.cloneNode(true));return wrapper.xml(false,ns)}return super.xml(xmlOrFn,false,ns)}}register(Fragment,"Fragment");function from(x,y){return(this._element||this).type==="radialGradient"?this.attr({fx:new SVGNumber(x),fy:new SVGNumber(y)}):this.attr({x1:new SVGNumber(x),y1:new SVGNumber(y)})}function to(x,y){return(this._element||this).type==="radialGradient"?this.attr({cx:new SVGNumber(x),cy:new SVGNumber(y)}):this.attr({x2:new SVGNumber(x),y2:new SVGNumber(y)})}var gradiented={__proto__:null,from:from,to:to};class Gradient extends Container{constructor(type,attrs){super(nodeOrNew(type+"Gradient",typeof type==="string"?null:type),attrs)}attr(a,b,c){if(a==="transform")a="gradientTransform";return super.attr(a,b,c)}bbox(){return new Box}targets(){return baseFind('svg [fill*="'+this.id()+'"]')}toString(){return this.url()}update(block){this.clear();if(typeof block==="function"){block.call(this,this)}return this}url(){return'url("#'+this.id()+'")'}}extend(Gradient,gradiented);registerMethods({Container:{gradient(...args){return this.defs().gradient(...args)}},Defs:{gradient:wrapWithAttrCheck(function(type,block){return this.put(new Gradient(type)).update(block)})}});register(Gradient,"Gradient");class Pattern extends Container{constructor(node,attrs=node){super(nodeOrNew("pattern",node),attrs)}attr(a,b,c){if(a==="transform")a="patternTransform";return super.attr(a,b,c)}bbox(){return new Box}targets(){return baseFind('svg [fill*="'+this.id()+'"]')}toString(){return this.url()}update(block){this.clear();if(typeof block==="function"){block.call(this,this)}return this}url(){return'url("#'+this.id()+'")'}}registerMethods({Container:{pattern(...args){return this.defs().pattern(...args)}},Defs:{pattern:wrapWithAttrCheck(function(width,height,block){return this.put(new Pattern).update(block).attr({x:0,y:0,width:width,height:height,patternUnits:"userSpaceOnUse"})})}});register(Pattern,"Pattern");class Image extends Shape{constructor(node,attrs=node){super(nodeOrNew("image",node),attrs)}load(url,callback){if(!url)return this;const img=new globals.window.Image;on(img,"load",function(e){const p=this.parent(Pattern);if(this.width()===0&&this.height()===0){this.size(img.width,img.height)}if(p instanceof Pattern){if(p.width()===0&&p.height()===0){p.size(this.width(),this.height())}}if(typeof callback==="function"){callback.call(this,e)}},this);on(img,"load error",function(){off(img)});return this.attr("href",img.src=url,xlink)}}registerAttrHook(function(attr,val,_this){if(attr==="fill"||attr==="stroke"){if(isImage.test(val)){val=_this.root().defs().image(val)}}if(val instanceof Image){val=_this.root().defs().pattern(0,0,pattern=>{pattern.add(val)})}return val});registerMethods({Container:{image:wrapWithAttrCheck(function(source,callback){return this.put(new Image).size(0,0).load(source,callback)})}});register(Image,"Image");class PointArray extends SVGArray{bbox(){let maxX=-Infinity;let maxY=-Infinity;let minX=Infinity;let minY=Infinity;this.forEach(function(el){maxX=Math.max(el[0],maxX);maxY=Math.max(el[1],maxY);minX=Math.min(el[0],minX);minY=Math.min(el[1],minY)});return new Box(minX,minY,maxX-minX,maxY-minY)}move(x,y){const box=this.bbox();x-=box.x;y-=box.y;if(!isNaN(x)&&!isNaN(y)){for(let i=this.length-1;i>=0;i--){this[i]=[this[i][0]+x,this[i][1]+y]}}return this}parse(array=[0,0]){const points=[];if(array instanceof Array){array=Array.prototype.concat.apply([],array)}else{array=array.trim().split(delimiter).map(parseFloat)}if(array.length%2!==0)array.pop();for(let i=0,len=array.length;i=0;i--){if(box.width)this[i][0]=(this[i][0]-box.x)*width/box.width+box.x;if(box.height)this[i][1]=(this[i][1]-box.y)*height/box.height+box.y}return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const array=[];for(let i=0,il=this.length;i":function(pos){return-Math.cos(pos*Math.PI)/2+.5},">":function(pos){return Math.sin(pos*Math.PI/2)},"<":function(pos){return-Math.cos(pos*Math.PI/2)+1},bezier:function(x1,y1,x2,y2){return function(t){if(t<0){if(x1>0){return y1/x1*t}else if(x2>0){return y2/x2*t}else{return 0}}else if(t>1){if(x2<1){return(1-y2)/(1-x2)*t+(y2-x2)/(1-x2)}else if(x1<1){return(1-y1)/(1-x1)*t+(y1-x1)/(1-x1)}else{return 1}}else{return 3*t*(1-t)**2*y1+3*t**2*(1-t)*y2+t**3}}},steps:function(steps,stepPosition="end"){stepPosition=stepPosition.split("-").reverse()[0];let jumps=steps;if(stepPosition==="none"){--jumps}else if(stepPosition==="both"){++jumps}return(t,beforeFlag=false)=>{let step=Math.floor(t*steps);const jumping=t*step%1===0;if(stepPosition==="start"||stepPosition==="both"){++step}if(beforeFlag&&jumping){--step}if(t>=0&&step<0){step=0}if(t<=1&&step>jumps){step=jumps}return step/jumps}}};class Stepper{done(){return false}}class Ease extends Stepper{constructor(fn=timeline.ease){super();this.ease=easing[fn]||fn}step(from,to,pos){if(typeof from!=="number"){return pos<1?from:to}return from+(to-from)*this.ease(pos)}}class Controller extends Stepper{constructor(fn){super();this.stepper=fn}done(c){return c.done}step(current,target,dt,c){return this.stepper(current,target,dt,c)}}function recalculate(){const duration=(this._duration||500)/1e3;const overshoot=this._overshoot||0;const eps=1e-10;const pi=Math.PI;const os=Math.log(overshoot/100+eps);const zeta=-os/Math.sqrt(pi*pi+os*os);const wn=3.9/(zeta*duration);this.d=2*zeta*wn;this.k=wn*wn}class Spring extends Controller{constructor(duration=500,overshoot=0){super();this.duration(duration).overshoot(overshoot)}step(current,target,dt,c){if(typeof current==="string")return current;c.done=dt===Infinity;if(dt===Infinity)return target;if(dt===0)return current;if(dt>100)dt=16;dt/=1e3;const velocity=c.velocity||0;const acceleration=-this.d*velocity-this.k*(current-target);const newPosition=current+velocity*dt+acceleration*dt*dt/2;c.velocity=velocity+acceleration*dt;c.done=Math.abs(target-newPosition)+Math.abs(velocity)<.002;return c.done?target:newPosition}}extend(Spring,{duration:makeSetterGetter("_duration",recalculate),overshoot:makeSetterGetter("_overshoot",recalculate)});class PID extends Controller{constructor(p=.1,i=.01,d=0,windup=1e3){super();this.p(p).i(i).d(d).windup(windup)}step(current,target,dt,c){if(typeof current==="string")return current;c.done=dt===Infinity;if(dt===Infinity)return target;if(dt===0)return current;const p=target-current;let i=(c.integral||0)+p*dt;const d=(p-(c.error||0))/dt;const windup=this._windup;if(windup!==false){i=Math.max(-windup,Math.min(i,windup))}c.error=p;c.integral=i;c.done=Math.abs(p)<.001;return c.done?target:current+(this.P*p+this.I*i+this.D*d)}}extend(PID,{windup:makeSetterGetter("_windup"),p:makeSetterGetter("P"),i:makeSetterGetter("I"),d:makeSetterGetter("D")});const segmentParameters={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0};const pathHandlers={M:function(c,p,p0){p.x=p0.x=c[0];p.y=p0.y=c[1];return["M",p.x,p.y]},L:function(c,p){p.x=c[0];p.y=c[1];return["L",c[0],c[1]]},H:function(c,p){p.x=c[0];return["H",c[0]]},V:function(c,p){p.y=c[0];return["V",c[0]]},C:function(c,p){p.x=c[4];p.y=c[5];return["C",c[0],c[1],c[2],c[3],c[4],c[5]]},S:function(c,p){p.x=c[2];p.y=c[3];return["S",c[0],c[1],c[2],c[3]]},Q:function(c,p){p.x=c[2];p.y=c[3];return["Q",c[0],c[1],c[2],c[3]]},T:function(c,p){p.x=c[0];p.y=c[1];return["T",c[0],c[1]]},Z:function(c,p,p0){p.x=p0.x;p.y=p0.y;return["Z"]},A:function(c,p){p.x=c[5];p.y=c[6];return["A",c[0],c[1],c[2],c[3],c[4],c[5],c[6]]}};const mlhvqtcsaz="mlhvqtcsaz".split("");for(let i=0,il=mlhvqtcsaz.length;i=0;i--){l=this[i][0];if(l==="M"||l==="L"||l==="T"){this[i][1]+=x;this[i][2]+=y}else if(l==="H"){this[i][1]+=x}else if(l==="V"){this[i][1]+=y}else if(l==="C"||l==="S"||l==="Q"){this[i][1]+=x;this[i][2]+=y;this[i][3]+=x;this[i][4]+=y;if(l==="C"){this[i][5]+=x;this[i][6]+=y}}else if(l==="A"){this[i][6]+=x;this[i][7]+=y}}}return this}parse(d="M0 0"){if(Array.isArray(d)){d=Array.prototype.concat.apply([],d).toString()}return pathParser(d)}size(width,height){const box=this.bbox();let i,l;box.width=box.width===0?1:box.width;box.height=box.height===0?1:box.height;for(i=this.length-1;i>=0;i--){l=this[i][0];if(l==="M"||l==="L"||l==="T"){this[i][1]=(this[i][1]-box.x)*width/box.width+box.x;this[i][2]=(this[i][2]-box.y)*height/box.height+box.y}else if(l==="H"){this[i][1]=(this[i][1]-box.x)*width/box.width+box.x}else if(l==="V"){this[i][1]=(this[i][1]-box.y)*height/box.height+box.y}else if(l==="C"||l==="S"||l==="Q"){this[i][1]=(this[i][1]-box.x)*width/box.width+box.x;this[i][2]=(this[i][2]-box.y)*height/box.height+box.y;this[i][3]=(this[i][3]-box.x)*width/box.width+box.x;this[i][4]=(this[i][4]-box.y)*height/box.height+box.y;if(l==="C"){this[i][5]=(this[i][5]-box.x)*width/box.width+box.x;this[i][6]=(this[i][6]-box.y)*height/box.height+box.y}}else if(l==="A"){this[i][1]=this[i][1]*width/box.width;this[i][2]=this[i][2]*height/box.height;this[i][6]=(this[i][6]-box.x)*width/box.width+box.x;this[i][7]=(this[i][7]-box.y)*height/box.height+box.y}}return this}toString(){return arrayToString(this)}}const getClassForType=value=>{const type=typeof value;if(type==="number"){return SVGNumber}else if(type==="string"){if(Color.isColor(value)){return Color}else if(delimiter.test(value)){return isPathLetter.test(value)?PathArray:SVGArray}else if(numberAndUnit.test(value)){return SVGNumber}else{return NonMorphable}}else if(morphableTypes.indexOf(value.constructor)>-1){return value.constructor}else if(Array.isArray(value)){return SVGArray}else if(type==="object"){return ObjectBag}else{return NonMorphable}};class Morphable{constructor(stepper){this._stepper=stepper||new Ease("-");this._from=null;this._to=null;this._type=null;this._context=null;this._morphObj=null}at(pos){return this._morphObj.morph(this._from,this._to,pos,this._stepper,this._context)}done(){const complete=this._context.map(this._stepper.done).reduce(function(last,curr){return last&&curr},true);return complete}from(val){if(val==null){return this._from}this._from=this._set(val);return this}stepper(stepper){if(stepper==null)return this._stepper;this._stepper=stepper;return this}to(val){if(val==null){return this._to}this._to=this._set(val);return this}type(type){if(type==null){return this._type}this._type=type;return this}_set(value){if(!this._type){this.type(getClassForType(value))}let result=new this._type(value);if(this._type===Color){result=this._to?result[this._to[4]]():this._from?result[this._from[4]]():result}if(this._type===ObjectBag){result=this._to?result.align(this._to):this._from?result.align(this._from):result}result=result.toConsumable();this._morphObj=this._morphObj||new this._type;this._context=this._context||Array.apply(null,Array(result.length)).map(Object).map(function(o){o.done=true;return o});return result}}class NonMorphable{constructor(...args){this.init(...args)}init(val){val=Array.isArray(val)?val[0]:val;this.value=val;return this}toArray(){return[this.value]}valueOf(){return this.value}}class TransformBag{constructor(...args){this.init(...args)}init(obj){if(Array.isArray(obj)){obj={scaleX:obj[0],scaleY:obj[1],shear:obj[2],rotate:obj[3],translateX:obj[4],translateY:obj[5],originX:obj[6],originY:obj[7]}}Object.assign(this,TransformBag.defaults,obj);return this}toArray(){const v=this;return[v.scaleX,v.scaleY,v.shear,v.rotate,v.translateX,v.translateY,v.originX,v.originY]}}TransformBag.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const sortByKey=(a,b)=>{return a[0]b[0]?1:0};class ObjectBag{constructor(...args){this.init(...args)}align(other){const values=this.values;for(let i=0,il=values.length;ilast.concat(curr),[]);return this}toArray(){return this.values}valueOf(){const obj={};const arr=this.values;while(arr.length){const key=arr.shift();const Type=arr.shift();const num=arr.shift();const values=arr.splice(0,num);obj[key]=new Type(values)}return obj}}const morphableTypes=[NonMorphable,TransformBag,ObjectBag];function registerMorphableType(type=[]){morphableTypes.push(...[].concat(type))}function makeMorphable(){extend(morphableTypes,{to(val){return(new Morphable).type(this.constructor).from(this.toArray()).to(val)},fromArray(arr){this.init(arr);return this},toConsumable(){return this.toArray()},morph(from,to,pos,stepper,context){const mapper=function(i,index){return stepper.step(i,to[index],pos,context[index],context)};return this.fromArray(from.map(mapper))}})}class Path extends Shape{constructor(node,attrs=node){super(nodeOrNew("path",node),attrs)}array(){return this._array||(this._array=new PathArray(this.attr("d")))}clear(){delete this._array;return this}height(height){return height==null?this.bbox().height:this.size(this.bbox().width,height)}move(x,y){return this.attr("d",this.array().move(x,y))}plot(d){return d==null?this.array():this.clear().attr("d",typeof d==="string"?d:this._array=new PathArray(d))}size(width,height){const p=proportionalSize(this,width,height);return this.attr("d",this.array().size(p.width,p.height))}width(width){return width==null?this.bbox().width:this.size(width,this.bbox().height)}x(x){return x==null?this.bbox().x:this.move(x,this.bbox().y)}y(y){return y==null?this.bbox().y:this.move(this.bbox().x,y)}}Path.prototype.MorphArray=PathArray;registerMethods({Container:{path:wrapWithAttrCheck(function(d){return this.put(new Path).plot(d||new PathArray)})}});register(Path,"Path");function array(){return this._array||(this._array=new PointArray(this.attr("points")))}function clear(){delete this._array;return this}function move$2(x,y){return this.attr("points",this.array().move(x,y))}function plot(p){return p==null?this.array():this.clear().attr("points",typeof p==="string"?p:this._array=new PointArray(p))}function size$1(width,height){const p=proportionalSize(this,width,height);return this.attr("points",this.array().size(p.width,p.height))}var poly={__proto__:null,array:array,clear:clear,move:move$2,plot:plot,size:size$1};class Polygon extends Shape{constructor(node,attrs=node){super(nodeOrNew("polygon",node),attrs)}}registerMethods({Container:{polygon:wrapWithAttrCheck(function(p){return this.put(new Polygon).plot(p||new PointArray)})}});extend(Polygon,pointed);extend(Polygon,poly);register(Polygon,"Polygon");class Polyline extends Shape{constructor(node,attrs=node){super(nodeOrNew("polyline",node),attrs)}}registerMethods({Container:{polyline:wrapWithAttrCheck(function(p){return this.put(new Polyline).plot(p||new PointArray)})}});extend(Polyline,pointed);extend(Polyline,poly);register(Polyline,"Polyline");class Rect extends Shape{constructor(node,attrs=node){super(nodeOrNew("rect",node),attrs)}}extend(Rect,{rx:rx,ry:ry});registerMethods({Container:{rect:wrapWithAttrCheck(function(width,height){return this.put(new Rect).size(width,height)})}});register(Rect,"Rect");class Queue{constructor(){this._first=null;this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(value){const item=typeof value.next!=="undefined"?value:{value:value,next:null,prev:null};if(this._last){item.prev=this._last;this._last.next=item;this._last=item}else{this._last=item;this._first=item}return item}remove(item){if(item.prev)item.prev.next=item.next;if(item.next)item.next.prev=item.prev;if(item===this._last)this._last=item.prev;if(item===this._first)this._first=item.next;item.prev=null;item.next=null}shift(){const remove=this._first;if(!remove)return null;this._first=remove.next;if(this._first)this._first.prev=null;this._last=this._first?this._last:null;return remove.value}}const Animator={nextDraw:null,frames:new Queue,timeouts:new Queue,immediates:new Queue,timer:()=>globals.window.performance||globals.window.Date,transforms:[],frame(fn){const node=Animator.frames.push({run:fn});if(Animator.nextDraw===null){Animator.nextDraw=globals.window.requestAnimationFrame(Animator._draw)}return node},timeout(fn,delay){delay=delay||0;const time=Animator.timer().now()+delay;const node=Animator.timeouts.push({run:fn,time:time});if(Animator.nextDraw===null){Animator.nextDraw=globals.window.requestAnimationFrame(Animator._draw)}return node},immediate(fn){const node=Animator.immediates.push(fn);if(Animator.nextDraw===null){Animator.nextDraw=globals.window.requestAnimationFrame(Animator._draw)}return node},cancelFrame(node){node!=null&&Animator.frames.remove(node)},clearTimeout(node){node!=null&&Animator.timeouts.remove(node)},cancelImmediate(node){node!=null&&Animator.immediates.remove(node)},_draw(now){let nextTimeout=null;const lastTimeout=Animator.timeouts.last();while(nextTimeout=Animator.timeouts.shift()){if(now>=nextTimeout.time){nextTimeout.run()}else{Animator.timeouts.push(nextTimeout)}if(nextTimeout===lastTimeout)break}let nextFrame=null;const lastFrame=Animator.frames.last();while(nextFrame!==lastFrame&&(nextFrame=Animator.frames.shift())){nextFrame.run(now)}let nextImmediate=null;while(nextImmediate=Animator.immediates.shift()){nextImmediate()}Animator.nextDraw=Animator.timeouts.first()||Animator.frames.first()?globals.window.requestAnimationFrame(Animator._draw):null}};const makeSchedule=function(runnerInfo){const start=runnerInfo.start;const duration=runnerInfo.runner.duration();const end=start+duration;return{start:start,duration:duration,end:end,runner:runnerInfo.runner}};const defaultSource=function(){const w=globals.window;return(w.performance||w.Date).now()};class Timeline extends EventTarget{constructor(timeSource=defaultSource){super();this._timeSource=timeSource;this._startTime=0;this._speed=1;this._persist=0;this._nextFrame=null;this._paused=true;this._runners=[];this._runnerIds=[];this._lastRunnerId=-1;this._time=0;this._lastSourceTime=0;this._lastStepTime=0;this._step=this._stepFn.bind(this,false);this._stepImmediate=this._stepFn.bind(this,true)}active(){return!!this._nextFrame}finish(){this.time(this.getEndTimeOfTimeline()+1);return this.pause()}getEndTime(){const lastRunnerInfo=this.getLastRunnerInfo();const lastDuration=lastRunnerInfo?lastRunnerInfo.runner.duration():0;const lastStartTime=lastRunnerInfo?lastRunnerInfo.start:this._time;return lastStartTime+lastDuration}getEndTimeOfTimeline(){const endTimes=this._runners.map(i=>i.start+i.runner.duration());return Math.max(0,...endTimes)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(id){return this._runners[this._runnerIds.indexOf(id)]||null}pause(){this._paused=true;return this._continue()}persist(dtOrForever){if(dtOrForever==null)return this._persist;this._persist=dtOrForever;return this}play(){this._paused=false;return this.updateTime()._continue()}reverse(yes){const currentSpeed=this.speed();if(yes==null)return this.speed(-currentSpeed);const positive=Math.abs(currentSpeed);return this.speed(yes?-positive:positive)}schedule(runner,delay,when){if(runner==null){return this._runners.map(makeSchedule)}let absoluteStartTime=0;const endTime=this.getEndTime();delay=delay||0;if(when==null||when==="last"||when==="after"){absoluteStartTime=endTime}else if(when==="absolute"||when==="start"){absoluteStartTime=delay;delay=0}else if(when==="now"){absoluteStartTime=this._time}else if(when==="relative"){const runnerInfo=this.getRunnerInfoById(runner.id);if(runnerInfo){absoluteStartTime=runnerInfo.start+delay;delay=0}}else if(when==="with-last"){const lastRunnerInfo=this.getLastRunnerInfo();const lastStartTime=lastRunnerInfo?lastRunnerInfo.start:this._time;absoluteStartTime=lastStartTime}else{throw new Error('Invalid value for the "when" parameter')}runner.unschedule();runner.timeline(this);const persist=runner.persist();const runnerInfo={persist:persist===null?this._persist:persist,start:absoluteStartTime+delay,runner:runner};this._lastRunnerId=runner.id;this._runners.push(runnerInfo);this._runners.sort((a,b)=>a.start-b.start);this._runnerIds=this._runners.map(info=>info.runner.id);this.updateTime()._continue();return this}seek(dt){return this.time(this._time+dt)}source(fn){if(fn==null)return this._timeSource;this._timeSource=fn;return this}speed(speed){if(speed==null)return this._speed;this._speed=speed;return this}stop(){this.time(0);return this.pause()}time(time){if(time==null)return this._time;this._time=time;return this._continue(true)}unschedule(runner){const index=this._runnerIds.indexOf(runner.id);if(index<0)return this;this._runners.splice(index,1);this._runnerIds.splice(index,1);runner.timeline(null);return this}updateTime(){if(!this.active()){this._lastSourceTime=this._timeSource()}return this}_continue(immediateStep=false){Animator.cancelFrame(this._nextFrame);this._nextFrame=null;if(immediateStep)return this._stepImmediate();if(this._paused)return this;this._nextFrame=Animator.frame(this._step);return this}_stepFn(immediateStep=false){const time=this._timeSource();let dtSource=time-this._lastSourceTime;if(immediateStep)dtSource=0;const dtTime=this._speed*dtSource+(this._time-this._lastStepTime);this._lastSourceTime=time;if(!immediateStep){this._time+=dtTime;this._time=this._time<0?0:this._time}this._lastStepTime=this._time;this.fire("time",this._time);for(let k=this._runners.length;k--;){const runnerInfo=this._runners[k];const runner=runnerInfo.runner;const dtToStart=this._time-runnerInfo.start;if(dtToStart<=0){runner.reset()}}let runnersLeft=false;for(let i=0,len=this._runners.length;i0){this._continue()}else{this.pause();this.fire("finished")}return this}}registerMethods({Element:{timeline:function(timeline){if(timeline==null){this._timeline=this._timeline||new Timeline;return this._timeline}else{this._timeline=timeline;return this}}}});class Runner extends EventTarget{constructor(options){super();this.id=Runner.id++;options=options==null?timeline.duration:options;options=typeof options==="function"?new Controller(options):options;this._element=null;this._timeline=null;this.done=false;this._queue=[];this._duration=typeof options==="number"&&options;this._isDeclarative=options instanceof Controller;this._stepper=this._isDeclarative?options:new Ease;this._history={};this.enabled=true;this._time=0;this._lastTime=0;this._reseted=true;this.transforms=new Matrix;this.transformId=1;this._haveReversed=false;this._reverse=false;this._loopsDone=0;this._swing=false;this._wait=0;this._times=1;this._frameId=null;this._persist=this._isDeclarative?true:null}static sanitise(duration,delay,when){let times=1;let swing=false;let wait=0;duration=duration||timeline.duration;delay=delay||timeline.delay;when=when||"last";if(typeof duration==="object"&&!(duration instanceof Stepper)){delay=duration.delay||delay;when=duration.when||when;swing=duration.swing||swing;times=duration.times||times;wait=duration.wait||wait;duration=duration.duration||timeline.duration}return{duration:duration,delay:delay,swing:swing,times:times,wait:wait,when:when}}active(enabled){if(enabled==null)return this.enabled;this.enabled=enabled;return this}addTransform(transform,index){this.transforms.lmultiplyO(transform);return this}after(fn){return this.on("finished",fn)}animate(duration,delay,when){const o=Runner.sanitise(duration,delay,when);const runner=new Runner(o.duration);if(this._timeline)runner.timeline(this._timeline);if(this._element)runner.element(this._element);return runner.loop(o).schedule(o.delay,o.when)}clearTransform(){this.transforms=new Matrix;return this}clearTransformsFromQueue(){if(!this.done||!this._timeline||!this._timeline._runnerIds.includes(this.id)){this._queue=this._queue.filter(item=>{return!item.isTransform})}}delay(delay){return this.animate(0,delay)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(fn){return this.queue(null,fn)}ease(fn){this._stepper=new Ease(fn);return this}element(element){if(element==null)return this._element;this._element=element;element._prepareRunner();return this}finish(){return this.step(Infinity)}loop(times,swing,wait){if(typeof times==="object"){swing=times.swing;wait=times.wait;times=times.times}this._times=times||Infinity;this._swing=swing||false;this._wait=wait||0;if(this._times===true){this._times=Infinity}return this}loops(p){const loopDuration=this._duration+this._wait;if(p==null){const loopsDone=Math.floor(this._time/loopDuration);const relativeTime=this._time-loopsDone*loopDuration;const position=relativeTime/this._duration;return Math.min(loopsDone+position,this._times)}const whole=Math.floor(p);const partial=p%1;const time=loopDuration*whole+this._duration*partial;return this.time(time)}persist(dtOrForever){if(dtOrForever==null)return this._persist;this._persist=dtOrForever;return this}position(p){const x=this._time;const d=this._duration;const w=this._wait;const t=this._times;const s=this._swing;const r=this._reverse;let position;if(p==null){const f=function(x){const swinging=s*Math.floor(x%(2*(w+d))/(w+d));const backwards=swinging&&!r||!swinging&&r;const uncliped=Math.pow(-1,backwards)*(x%(w+d))/d+backwards;const clipped=Math.max(Math.min(uncliped,1),0);return clipped};const endTime=t*(w+d)-w;position=x<=0?Math.round(f(1e-5)):x=0;this._lastPosition=position;const duration=this.duration();const justStarted=this._lastTime<=0&&this._time>0;const justFinished=this._lastTime=duration;this._lastTime=this._time;if(justStarted){this.fire("start",this)}const declarative=this._isDeclarative;this.done=!declarative&&!justFinished&&this._time>=duration;this._reseted=false;let converged=false;if(running||declarative){this._initialise(running);this.transforms=new Matrix;converged=this._run(declarative?dt:position);this.fire("step",this)}this.done=this.done||converged&&declarative;if(justFinished){this.fire("finished",this)}return this}time(time){if(time==null){return this._time}const dt=time-this._time;this.step(dt);return this}timeline(timeline){if(typeof timeline==="undefined")return this._timeline;this._timeline=timeline;return this}unschedule(){const timeline=this.timeline();timeline&&timeline.unschedule(this);return this}_initialise(running){if(!running&&!this._isDeclarative)return;for(let i=0,len=this._queue.length;ilast.lmultiplyO(curr);const getRunnerTransform=runner=>runner.transforms;function mergeTransforms(){const runners=this._transformationRunners.runners;const netTransform=runners.map(getRunnerTransform).reduce(lmultiply,new Matrix);this.transform(netTransform);this._transformationRunners.merge();if(this._transformationRunners.length()===1){this._frameId=null}}class RunnerArray{constructor(){this.runners=[];this.ids=[]}add(runner){if(this.runners.includes(runner))return;const id=runner.id+1;this.runners.push(runner);this.ids.push(id);return this}clearBefore(id){const deleteCnt=this.ids.indexOf(id+1)||1;this.ids.splice(0,deleteCnt,0);this.runners.splice(0,deleteCnt,new FakeRunner).forEach(r=>r.clearTransformsFromQueue());return this}edit(id,newRunner){const index=this.ids.indexOf(id+1);this.ids.splice(index,1,id+1);this.runners.splice(index,1,newRunner);return this}getByID(id){return this.runners[this.ids.indexOf(id+1)]}length(){return this.ids.length}merge(){let lastRunner=null;for(let i=0;irunner.id<=current.id).map(getRunnerTransform).reduce(lmultiply,new Matrix)},_addRunner(runner){this._transformationRunners.add(runner);Animator.cancelImmediate(this._frameId);this._frameId=Animator.immediate(mergeTransforms.bind(this))},_prepareRunner(){if(this._frameId==null){this._transformationRunners=(new RunnerArray).add(new FakeRunner(new Matrix(this)))}}}});const difference=(a,b)=>a.filter(x=>!b.includes(x));extend(Runner,{attr(a,v){return this.styleAttr("attr",a,v)},css(s,v){return this.styleAttr("css",s,v)},styleAttr(type,nameOrAttrs,val){if(typeof nameOrAttrs==="string"){return this.styleAttr(type,{[nameOrAttrs]:val})}let attrs=nameOrAttrs;if(this._tryRetarget(type,attrs))return this;let morpher=new Morphable(this._stepper).to(attrs);let keys=Object.keys(attrs);this.queue(function(){morpher=morpher.from(this.element()[type](keys))},function(pos){this.element()[type](morpher.at(pos).valueOf());return morpher.done()},function(newToAttrs){const newKeys=Object.keys(newToAttrs);const differences=difference(newKeys,keys);if(differences.length){const addedFromAttrs=this.element()[type](differences);const oldFromAttrs=new ObjectBag(morpher.from()).valueOf();Object.assign(oldFromAttrs,addedFromAttrs);morpher.from(oldFromAttrs)}const oldToAttrs=new ObjectBag(morpher.to()).valueOf();Object.assign(oldToAttrs,newToAttrs);morpher.to(oldToAttrs);keys=newKeys;attrs=newToAttrs});this._rememberMorpher(type,morpher);return this},zoom(level,point){if(this._tryRetarget("zoom",level,point))return this;let morpher=new Morphable(this._stepper).to(new SVGNumber(level));this.queue(function(){morpher=morpher.from(this.element().zoom())},function(pos){this.element().zoom(morpher.at(pos),point);return morpher.done()},function(newLevel,newPoint){point=newPoint;morpher.to(newLevel)});this._rememberMorpher("zoom",morpher);return this},transform(transforms,relative,affine){relative=transforms.relative||relative;if(this._isDeclarative&&!relative&&this._tryRetarget("transform",transforms)){return this}const isMatrix=Matrix.isMatrixLike(transforms);affine=transforms.affine!=null?transforms.affine:affine!=null?affine:!isMatrix;const morpher=new Morphable(this._stepper).type(affine?TransformBag:Matrix);let origin;let element;let current;let currentAngle;let startTransform;function setup(){element=element||this.element();origin=origin||getOrigin(transforms,element);startTransform=new Matrix(relative?undefined:element);element._addRunner(this);if(!relative){element._clearTransformRunnersBefore(this)}}function run(pos){if(!relative)this.clearTransform();const{x,y}=new Point(origin).transform(element._currentTransform(this));let target=new Matrix({...transforms,origin:[x,y]});let start=this._isDeclarative&¤t?current:startTransform;if(affine){target=target.decompose(x,y);start=start.decompose(x,y);const rTarget=target.rotate;const rCurrent=start.rotate;const possibilities=[rTarget-360,rTarget,rTarget+360];const distances=possibilities.map(a=>Math.abs(a-rCurrent));const shortest=Math.min(...distances);const index=distances.indexOf(shortest);target.rotate=possibilities[index]}if(relative){if(!isMatrix){target.rotate=transforms.rotate||0}if(this._isDeclarative&¤tAngle){start.rotate=currentAngle}}morpher.from(start);morpher.to(target);const affineParameters=morpher.at(pos);currentAngle=affineParameters.rotate;current=new Matrix(affineParameters);this.addTransform(current);element._addRunner(this);return morpher.done()}function retarget(newTransforms){if((newTransforms.origin||"center").toString()!==(transforms.origin||"center").toString()){origin=getOrigin(newTransforms,element)}transforms={...newTransforms,origin:origin}}this.queue(setup,run,retarget,true);this._isDeclarative&&this._rememberMorpher("transform",morpher);return this},x(x,relative){return this._queueNumber("x",x)},y(y){return this._queueNumber("y",y)},dx(x=0){return this._queueNumberDelta("x",x)},dy(y=0){return this._queueNumberDelta("y",y)},dmove(x,y){return this.dx(x).dy(y)},_queueNumberDelta(method,to){to=new SVGNumber(to);if(this._tryRetarget(method,to))return this;const morpher=new Morphable(this._stepper).to(to);let from=null;this.queue(function(){from=this.element()[method]();morpher.from(from);morpher.to(from+to)},function(pos){this.element()[method](morpher.at(pos));return morpher.done()},function(newTo){morpher.to(from+new SVGNumber(newTo))});this._rememberMorpher(method,morpher);return this},_queueObject(method,to){if(this._tryRetarget(method,to))return this;const morpher=new Morphable(this._stepper).to(to);this.queue(function(){morpher.from(this.element()[method]())},function(pos){this.element()[method](morpher.at(pos));return morpher.done()});this._rememberMorpher(method,morpher);return this},_queueNumber(method,value){return this._queueObject(method,new SVGNumber(value))},cx(x){return this._queueNumber("cx",x)},cy(y){return this._queueNumber("cy",y)},move(x,y){return this.x(x).y(y)},center(x,y){return this.cx(x).cy(y)},size(width,height){let box;if(!width||!height){box=this._element.bbox()}if(!width){width=box.width/box.height*height}if(!height){height=box.height/box.width*width}return this.width(width).height(height)},width(width){return this._queueNumber("width",width)},height(height){return this._queueNumber("height",height)},plot(a,b,c,d){if(arguments.length===4){return this.plot([a,b,c,d])}if(this._tryRetarget("plot",a))return this;const morpher=new Morphable(this._stepper).type(this._element.MorphArray).to(a);this.queue(function(){morpher.from(this._element.array())},function(pos){this._element.plot(morpher.at(pos));return morpher.done()});this._rememberMorpher("plot",morpher);return this},leading(value){return this._queueNumber("leading",value)},viewbox(x,y,width,height){return this._queueObject("viewbox",new Box(x,y,width,height))},update(o){if(typeof o!=="object"){return this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]})}if(o.opacity!=null)this.attr("stop-opacity",o.opacity);if(o.color!=null)this.attr("stop-color",o.color);if(o.offset!=null)this.attr("offset",o.offset);return this}});extend(Runner,{rx:rx,ry:ry,from:from,to:to});register(Runner,"Runner");class Svg extends Container{constructor(node,attrs=node){super(nodeOrNew("svg",node),attrs);this.namespace()}defs(){if(!this.isRoot())return this.root().defs();return adopt(this.node.querySelector("defs"))||this.put(new Defs)}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof globals.window.SVGElement)&&this.node.parentNode.nodeName!=="#document-fragment"}namespace(){if(!this.isRoot())return this.root().namespace();return this.attr({xmlns:svg,version:"1.1"}).attr("xmlns:xlink",xlink,xmlns).attr("xmlns:svgjs",svgjs,xmlns)}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,xmlns).attr("xmlns:svgjs",null,xmlns)}root(){if(this.isRoot())return this;return super.root()}}registerMethods({Container:{nested:wrapWithAttrCheck(function(){return this.put(new Svg)})}});register(Svg,"Svg",true);class Symbol extends Container{constructor(node,attrs=node){super(nodeOrNew("symbol",node),attrs)}}registerMethods({Container:{symbol:wrapWithAttrCheck(function(){return this.put(new Symbol)})}});register(Symbol,"Symbol");function plain(text){if(this._build===false){this.clear()}this.node.appendChild(globals.document.createTextNode(text));return this}function length(){return this.node.getComputedTextLength()}function x$1(x,box=this.bbox()){if(x==null){return box.x}return this.attr("x",this.attr("x")+x-box.x)}function y$1(y,box=this.bbox()){if(y==null){return box.y}return this.attr("y",this.attr("y")+y-box.y)}function move$1(x,y,box=this.bbox()){return this.x(x,box).y(y,box)}function cx(x,box=this.bbox()){if(x==null){return box.cx}return this.attr("x",this.attr("x")+x-box.cx)}function cy(y,box=this.bbox()){if(y==null){return box.cy}return this.attr("y",this.attr("y")+y-box.cy)}function center(x,y,box=this.bbox()){return this.cx(x,box).cy(y,box)}function ax(x){return this.attr("x",x)}function ay(y){return this.attr("y",y)}function amove(x,y){return this.ax(x).ay(y)}function build(build){this._build=!!build;return this}var textable={__proto__:null,plain:plain,length:length,x:x$1,y:y$1,move:move$1,cx:cx,cy:cy,center:center,ax:ax,ay:ay,amove:amove,build:build};class Text extends Shape{constructor(node,attrs=node){super(nodeOrNew("text",node),attrs);this.dom.leading=new SVGNumber(1.3);this._rebuild=true;this._build=false}leading(value){if(value==null){return this.dom.leading}this.dom.leading=new SVGNumber(value);return this.rebuild()}rebuild(rebuild){if(typeof rebuild==="boolean"){this._rebuild=rebuild}if(this._rebuild){const self=this;let blankLineOffset=0;const leading=this.dom.leading;this.each(function(i){const fontSize=globals.window.getComputedStyle(this.node).getPropertyValue("font-size");const dy=leading*new SVGNumber(fontSize);if(this.dom.newLined){this.attr("x",self.attr("x"));if(this.text()==="\n"){blankLineOffset+=dy}else{this.attr("dy",i?dy+blankLineOffset:0);blankLineOffset=0}}});this.fire("rebuild")}return this}setData(o){this.dom=o;this.dom.leading=new SVGNumber(o.leading||1.3);return this}text(text){if(text===undefined){const children=this.node.childNodes;let firstLine=0;text="";for(let i=0,len=children.length;i{let bbox;try{bbox=child.bbox()}catch(e){return}const m=new Matrix(child);const matrix=m.translate(dx,dy).transform(m.inverse());const p=new Point(bbox.x,bbox.y).transform(matrix);child.move(p.x,p.y)});return this}function dx(dx){return this.dmove(dx,0)}function dy(dy){return this.dmove(0,dy)}function height(height,box=this.bbox()){if(height==null)return box.height;return this.size(box.width,height,box)}function move(x=0,y=0,box=this.bbox()){const dx=x-box.x;const dy=y-box.y;return this.dmove(dx,dy)}function size(width,height,box=this.bbox()){const p=proportionalSize(this,width,height,box);const scaleX=p.width/box.width;const scaleY=p.height/box.height;this.children().forEach((child,i)=>{const o=new Point(box).transform(new Matrix(child).inverse());child.scale(scaleX,scaleY,o.x,o.y)});return this}function width(width,box=this.bbox()){if(width==null)return box.width;return this.size(width,box.height,box)}function x(x,box=this.bbox()){if(x==null)return box.x;return this.move(x,box.y,box)}function y(y,box=this.bbox()){if(y==null)return box.y;return this.move(box.x,y,box)}var containerGeometry={__proto__:null,dmove:dmove,dx:dx,dy:dy,height:height,move:move,size:size,width:width,x:x,y:y};class G extends Container{constructor(node,attrs=node){super(nodeOrNew("g",node),attrs)}}extend(G,containerGeometry);registerMethods({Container:{group:wrapWithAttrCheck(function(){return this.put(new G)})}});register(G,"G");class A extends Container{constructor(node,attrs=node){super(nodeOrNew("a",node),attrs)}target(target){return this.attr("target",target)}to(url){return this.attr("href",url,xlink)}}extend(A,containerGeometry);registerMethods({Container:{link:wrapWithAttrCheck(function(url){return this.put(new A).to(url)})},Element:{unlink(){const link=this.linker();if(!link)return this;const parent=link.parent();if(!parent){return this.remove()}const index=parent.index(link);parent.add(this,index);link.remove();return this},linkTo(url){let link=this.linker();if(!link){link=new A;this.wrap(link)}if(typeof url==="function"){url.call(link,link)}else{link.to(url)}return this},linker(){const link=this.parent();if(link&&link.node.nodeName.toLowerCase()==="a"){return link}return null}}});register(A,"A");class Mask extends Container{constructor(node,attrs=node){super(nodeOrNew("mask",node),attrs)}remove(){this.targets().forEach(function(el){el.unmask()});return super.remove()}targets(){return baseFind('svg [mask*="'+this.id()+'"]')}}registerMethods({Container:{mask:wrapWithAttrCheck(function(){return this.defs().put(new Mask)})},Element:{masker(){return this.reference("mask")},maskWith(element){const masker=element instanceof Mask?element:this.parent().mask().add(element);return this.attr("mask",'url("#'+masker.id()+'")')},unmask(){return this.attr("mask",null)}}});register(Mask,"Mask");class Stop extends Element{constructor(node,attrs=node){super(nodeOrNew("stop",node),attrs)}update(o){if(typeof o==="number"||o instanceof SVGNumber){o={offset:arguments[0],color:arguments[1],opacity:arguments[2]}}if(o.opacity!=null)this.attr("stop-opacity",o.opacity);if(o.color!=null)this.attr("stop-color",o.color);if(o.offset!=null)this.attr("offset",new SVGNumber(o.offset));return this}}registerMethods({Gradient:{stop:function(offset,color,opacity){return this.put(new Stop).update(offset,color,opacity)}}});register(Stop,"Stop");function cssRule(selector,rule){if(!selector)return"";if(!rule)return selector;let ret=selector+"{";for(const i in rule){ret+=unCamelCase(i)+":"+rule[i]+";"}ret+="}";return ret}class Style extends Element{constructor(node,attrs=node){super(nodeOrNew("style",node),attrs)}addText(w=""){this.node.textContent+=w;return this}font(name,src,params={}){return this.rule("@font-face",{fontFamily:name,src:src,...params})}rule(selector,obj){return this.addText(cssRule(selector,obj))}}registerMethods("Dom",{style(selector,obj){return this.put(new Style).rule(selector,obj)},fontface(name,src,params){return this.put(new Style).font(name,src,params)}});register(Style,"Style");class TextPath extends Text{constructor(node,attrs=node){super(nodeOrNew("textPath",node),attrs)}array(){const track=this.track();return track?track.array():null}plot(d){const track=this.track();let pathArray=null;if(track){pathArray=track.plot(d)}return d==null?pathArray:this}track(){return this.reference("href")}}registerMethods({Container:{textPath:wrapWithAttrCheck(function(text,path){if(!(text instanceof Text)){text=this.text(text)}return text.path(path)})},Text:{path:wrapWithAttrCheck(function(track,importNodes=true){const textPath=new TextPath;if(!(track instanceof Path)){track=this.defs().path(track)}textPath.attr("href","#"+track,xlink);let node;if(importNodes){while(node=this.node.firstChild){textPath.node.appendChild(node)}}return this.put(textPath)}),textPath(){return this.findOne("textPath")}},Path:{text:wrapWithAttrCheck(function(text){if(!(text instanceof Text)){text=(new Text).addTo(this.parent()).text(text)}return text.path(this)}),targets(){return baseFind("svg textPath").filter(node=>{return(node.attr("href")||"").includes(this.id())})}}});TextPath.prototype.MorphArray=PathArray;register(TextPath,"TextPath");class Use extends Shape{constructor(node,attrs=node){super(nodeOrNew("use",node),attrs)}use(element,file){return this.attr("href",(file||"")+"#"+element,xlink)}}registerMethods({Container:{use:wrapWithAttrCheck(function(element,file){return this.put(new Use).use(element,file)})}});register(Use,"Use");const SVG$1=makeInstance;extend([Svg,Symbol,Image,Pattern,Marker],getMethodsFor("viewbox"));extend([Line,Polyline,Polygon,Path],getMethodsFor("marker"));extend(Text,getMethodsFor("Text"));extend(Path,getMethodsFor("Path"));extend(Defs,getMethodsFor("Defs"));extend([Text,Tspan],getMethodsFor("Tspan"));extend([Rect,Ellipse,Gradient,Runner],getMethodsFor("radius"));extend(EventTarget,getMethodsFor("EventTarget"));extend(Dom,getMethodsFor("Dom"));extend(Element,getMethodsFor("Element"));extend(Shape,getMethodsFor("Shape"));extend([Container,Fragment],getMethodsFor("Container"));extend(Gradient,getMethodsFor("Gradient"));extend(Runner,getMethodsFor("Runner"));List.extend(getMethodNames());registerMorphableType([SVGNumber,Color,Box,Matrix,SVGArray,PointArray,PathArray,Point]);makeMorphable();var svgMembers={__proto__:null,Morphable:Morphable,registerMorphableType:registerMorphableType,makeMorphable:makeMorphable,TransformBag:TransformBag,ObjectBag:ObjectBag,NonMorphable:NonMorphable,defaults:defaults,utils:utils,namespaces:namespaces,regex:regex,SVG:SVG$1,parser:parser,find:baseFind,getWindow:getWindow,registerWindow:registerWindow,restoreWindow:restoreWindow,saveWindow:saveWindow,withWindow:withWindow,Animator:Animator,Controller:Controller,Ease:Ease,PID:PID,Spring:Spring,easing:easing,Queue:Queue,Runner:Runner,Timeline:Timeline,Array:SVGArray,Box:Box,Color:Color,EventTarget:EventTarget,Matrix:Matrix,Number:SVGNumber,PathArray:PathArray,Point:Point,PointArray:PointArray,List:List,Circle:Circle,ClipPath:ClipPath,Container:Container,Defs:Defs,Dom:Dom,Element:Element,Ellipse:Ellipse,ForeignObject:ForeignObject,Fragment:Fragment,Gradient:Gradient,G:G,A:A,Image:Image,Line:Line,Marker:Marker,Mask:Mask,Path:Path,Pattern:Pattern,Polygon:Polygon,Polyline:Polyline,Rect:Rect,Shape:Shape,Stop:Stop,Style:Style,Svg:Svg,Symbol:Symbol,Text:Text,TextPath:TextPath,Tspan:Tspan,Use:Use,windowEvents:windowEvents,getEvents:getEvents,getEventTarget:getEventTarget,clearEvents:clearEvents,on:on,off:off,dispatch:dispatch,root:root,create:create,makeInstance:makeInstance,nodeOrNew:nodeOrNew,adopt:adopt,mockAdopt:mockAdopt,register:register,getClass:getClass,eid:eid,assignNewId:assignNewId,extend:extend,wrapWithAttrCheck:wrapWithAttrCheck};function SVG(element,isHTML){return makeInstance(element,isHTML)}Object.assign(SVG,svgMembers);return SVG}(); +/*! + @licstart The following is the entire license notice for the JavaScript code in this file. + The code below is based on SVGPan Library 1.2 and was modified for doxygen + to support both zooming and panning via the mouse and via embedded buttons. + + This code is licensed under the following BSD license: + + Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + The views and conclusions contained in the software and documentation are those of the + authors and should not be interpreted as representing official policies, either expressed + or implied, of Andrea Leofreddi. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var root=document.documentElement;var state="none";var stateOrigin;var stateTf=root.createSVGMatrix();var cursorGrab=' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move';var zoomSteps=10;var zoomInFactor;var zoomOutFactor;var windowWidth;var windowHeight;var svgDoc;var minZoom;var maxZoom;if(!window)window=this;function show(){if(window.innerHeight){windowWidth=window.innerWidth;windowHeight=window.innerHeight}else if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight}if(!windowWidth||!windowHeight){windowWidth=800;windowHeight=600}minZoom=Math.min(Math.min(viewHeight,windowHeight)/viewHeight,Math.min(viewWidth,windowWidth)/viewWidth);maxZoom=minZoom+1.5;zoomInFactor=Math.pow(maxZoom/minZoom,1/zoomSteps);zoomOutFactor=1/zoomInFactor;var g=svgDoc.getElementById("viewport");try{var bb=g.getBBox();var tx=(windowWidth-viewWidth*minZoom+8)/(2*minZoom);var ty=viewHeight+(windowHeight-viewHeight*minZoom)/(2*minZoom);var a="scale("+minZoom+") rotate(0) translate("+tx+" "+ty+")";g.setAttribute("transform",a)}catch(e){}}function init(evt){svgDoc=evt.target.ownerDocument;try{if(top.window&&top.window.registerShow){top.window.registerShow(sectionId,show)}}catch(e){}show();setAttributes(root,{onmousedown:"handleMouseDown(evt)",onmousemove:"handleMouseMove(evt)",onmouseup:"handleMouseUp(evt)"});if(window.addEventListener){if(navigator.userAgent.toLowerCase().indexOf("webkit")>=0||navigator.userAgent.toLowerCase().indexOf("opera")>=0||navigator.appVersion.indexOf("MSIE")!=-1){window.addEventListener("mousewheel",handleMouseWheel,false)}else{window.addEventListener("DOMMouseScroll",handleMouseWheel,false)}}}window.onresize=function(){if(svgDoc){show()}};function getEventPoint(evt){var p=root.createSVGPoint();p.x=evt.clientX;p.y=evt.clientY;return p}function setCTM(element,matrix){var s="matrix("+matrix.a+","+matrix.b+","+matrix.c+","+matrix.d+","+matrix.e+","+matrix.f+")";element.setAttribute("transform",s)}function setAttributes(element,attributes){for(i in attributes)element.setAttributeNS(null,i,attributes[i])}function doZoom(g,point,zoomFactor){var p=point.matrixTransform(g.getCTM().inverse());var k=root.createSVGMatrix().translate(p.x,p.y).scale(zoomFactor).translate(-p.x,-p.y);var n=g.getCTM().multiply(k);var s=Math.max(n.a,n.d);if(s>maxZoom)n=n.translate(p.x,p.y).scale(maxZoom/s).translate(-p.x,-p.y);else if(s');d.write("Print SVG");d.write('');d.write('
    '+xs+"
    ");d.write("");d.write("");d.close()}catch(e){alert("Failed to open popup window needed for printing!\n"+e.message)}}function highlightEdges(){var elems=document.getElementsByTagName("g");if(elems){for(var i=0;i g");function findEnclosingG(domEl){let curEl=domEl;while(curEl.nodeName!="g"||curEl.id.substr(0,4)!="Node"){curEl=curEl.parentElement}return curEl}function onMouseOverElem(domEl){let e=SVG(findEnclosingG(domEl.target));walk(s,e=>{if(SVG(e)!=s)SVG(e).attr("data-mouse-over-selected","false")});walk(e,e=>SVG(e).attr("data-mouse-over-selected","true"));let{nodes,edges}=getEdgesAndDistance1Nodes(SVG(e),s);for(let node of nodes){walk(node,e=>SVG(e).attr("data-mouse-over-selected","true"))}for(let edge of edges){walk(edge,e=>SVG(e).attr("data-mouse-over-selected","true"))}}function onMouseOutElem(domEl){let e=SVG(findEnclosingG(domEl.target));walk(s,e=>e.attr("data-mouse-over-selected",null))}let gs=s.find("g[id^=Node]");for(let g of gs){g.on("mouseover",onMouseOverElem);g.on("mouseout",onMouseOutElem)}} diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..0cf4ab7a060b1c451a09169207b0dec96b79ee54 GIT binary patch literal 845 zcmV-T1G4;yP)89D#?(Ya zT&ao1NOVzLU}BSMVw$w+qC!l%=%UqbNGm=-c@#R*?;GYa_g?N0XxN^dU*_C<=br!h zzWY74uCf#T0I^sqY!OO?_k_hlobZ>>C;T8h5Pk!2!WBaxQ}{v%M%Dna7#3~`UkQHz zmKhIVqf)pmtN@q;UZGytC44U2Fh6ty=J~16Gmp*9BSW|@G{+LC5U$0r3Sh3B6Al^| zad{k2rvWSgdf0AZz_6f2$OW(y@Y%f>9iBuNfD=C9j0Tauog*9oEYl_Lo~rS` z+wp!ffFlLD3AFADkeuWwv|GqmfhxOe(o@}>J(R|_Vvl=ld=kKsH=~nmE=r>PNIJP$ zj-M{50;T3Vh07AT_*ps|*CYbWiPcNuxzLctru-zpGOJXe*tps*?l^ZiKu(4x>(uz5 z&_m;nRF3VO!Wc(CP9<2bDG;@~ZGV8^htYc)JSvc-tK*+6;$-!r8U8Fo^ z%E_y*I9TE1&=!k{^uK(^z)&b0RmMv6GSvGwEL{b`i*-wtI*E=RQ3b;+XE z_(Rz`56$8(zjtcKOFeJ7{YdK>fR%#01Uehj!|SneDPZ^B(Ea0x`7eDc&?Jiv^WBx% z@wC+X!@pO)8|M1=Zvkddyef%r>H}db&)ylN_jgeNOtV7;*2v-)A;tV8HQ7zeUO&J7 zIWen1-A7)&>>A|n*C7Bq8;pLSMQ*x4O-F^>rQ!GQ^TCi~7I{5xCPI^pPdFyyLv2=u zK%UU60RXT7sIN4Ee>N)FGtC`<1>&@BZtrL}1r0B)=K%kgcH!&Udh%i6yx<3z2bx^1 z=FQCw$2=ZKnvVu}zC&9Duya3hFwH3-I-M-A6jx!7P$^_a8i@*O+ztqjBAbT&4PfU# XG{mY+#!f=T00000NkvXXu0mjfM-qsh literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..04564eb97b637e2ca4df5c300344cc32ff743236 GIT binary patch literal 834 zcmV-I1HJr-P)vnMQP;|-BJM_I4h!~TQ4`x?t+r#;hH*eGPoR8<6 zb8FOm{|X?RnPRo57E45taEZS}xA;Ze5zhcJF|q`hE{=$3@);nTH{y~wE?xkR>IO)& zMw}Pr03RSAz7-qA0dc|pM-#Bu9pc7EG;S}`M29$(EkK?4Im@U3K2)1%w7$5?s^bAQ zy7s&PUhFJfZAHZRL zsfX6D!}z^f18o+S8lXPY)I{=3PBaym>#BSV4aWc+`UhjITOoPI3s@DLYLNm_eGTz$HqNnm%VZCUq3(~aOIn-CZ zxwzMU8>IbuKO>_PN%4mUxGWD1_8- + + + + + + + +FTXUI: tab_horizontal.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tab_horizontal.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file tab_horizontal.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/tab__horizontal_8cpp.js b/tab__horizontal_8cpp.js new file mode 100644 index 000000000..ed537a984 --- /dev/null +++ b/tab__horizontal_8cpp.js @@ -0,0 +1,4 @@ +var tab__horizontal_8cpp = +[ + [ "main", "tab__horizontal_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/tab__horizontal_8cpp_source.html b/tab__horizontal_8cpp_source.html new file mode 100644 index 000000000..df097cdaa --- /dev/null +++ b/tab__horizontal_8cpp_source.html @@ -0,0 +1,297 @@ + + + + + + + + +FTXUI: tab_horizontal.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tab_horizontal.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, __shared_ptr_access, shared_ptr
    +
    5#include <string> // for string, basic_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Radiobox, Renderer, Tab, Toggle, Vertical
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for Element, separator, operator|, vbox, border
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> tab_values{
    +
    18 "tab_1",
    +
    19 "tab_2",
    +
    20 "tab_3",
    +
    21 };
    +
    22 int tab_selected = 0;
    +
    23 auto tab_toggle = Toggle(&tab_values, &tab_selected);
    +
    24
    +
    25 std::vector<std::string> tab_1_entries{
    +
    26 "Forest",
    +
    27 "Water",
    +
    28 "I don't know",
    +
    29 };
    +
    30 int tab_1_selected = 0;
    +
    31
    +
    32 std::vector<std::string> tab_2_entries{
    +
    33 "Hello",
    +
    34 "Hi",
    +
    35 "Hay",
    +
    36 };
    +
    37 int tab_2_selected = 0;
    +
    38
    +
    39 std::vector<std::string> tab_3_entries{
    +
    40 "Table",
    +
    41 "Nothing",
    +
    42 "Is",
    +
    43 "Empty",
    +
    44 };
    +
    45 int tab_3_selected = 0;
    +
    46 auto tab_container = Container::Tab(
    +
    47 {
    +
    48 Radiobox(&tab_1_entries, &tab_1_selected),
    +
    49 Radiobox(&tab_2_entries, &tab_2_selected),
    +
    50 Radiobox(&tab_3_entries, &tab_3_selected),
    +
    51 },
    +
    52 &tab_selected);
    +
    53
    +
    54 auto container = Container::Vertical({
    +
    55 tab_toggle,
    +
    56 tab_container,
    +
    57 });
    +
    58
    +
    59 auto renderer = Renderer(container, [&] {
    +
    60 return vbox({
    +
    61 tab_toggle->Render(),
    +
    62 separator(),
    +
    63 tab_container->Render(),
    +
    64 }) |
    +
    65 border;
    +
    66 });
    +
    67
    + +
    69 screen.Loop(renderer);
    +
    70}
    +
    + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Component Toggle(ConstStringListRef entries, int *selected)
    An horizontal list of elements. The user can navigate through them.
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Component Tab(Components children, int *selector)
    A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    int main()
    +
    +
    + + + + + diff --git a/tab__vertical_8cpp.html b/tab__vertical_8cpp.html new file mode 100644 index 000000000..0013bfc86 --- /dev/null +++ b/tab__vertical_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: tab_vertical.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tab_vertical.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file tab_vertical.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/tab__vertical_8cpp.js b/tab__vertical_8cpp.js new file mode 100644 index 000000000..5be3b2562 --- /dev/null +++ b/tab__vertical_8cpp.js @@ -0,0 +1,4 @@ +var tab__vertical_8cpp = +[ + [ "main", "tab__vertical_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/tab__vertical_8cpp_source.html b/tab__vertical_8cpp_source.html new file mode 100644 index 000000000..cad457763 --- /dev/null +++ b/tab__vertical_8cpp_source.html @@ -0,0 +1,297 @@ + + + + + + + + +FTXUI: tab_vertical.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tab_vertical.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, __shared_ptr_access, shared_ptr
    +
    5#include <string> // for string, basic_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Radiobox, Horizontal, Menu, Renderer, Tab
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for Element, separator, hbox, operator|, border
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> tab_values{
    +
    18 "tab_1",
    +
    19 "tab_2",
    +
    20 "tab_3",
    +
    21 };
    +
    22 int tab_selected = 0;
    +
    23 auto tab_menu = Menu(&tab_values, &tab_selected);
    +
    24
    +
    25 std::vector<std::string> tab_1_entries{
    +
    26 "Forest",
    +
    27 "Water",
    +
    28 "I don't know",
    +
    29 };
    +
    30 int tab_1_selected = 0;
    +
    31
    +
    32 std::vector<std::string> tab_2_entries{
    +
    33 "Hello",
    +
    34 "Hi",
    +
    35 "Hay",
    +
    36 };
    +
    37 int tab_2_selected = 0;
    +
    38
    +
    39 std::vector<std::string> tab_3_entries{
    +
    40 "Table",
    +
    41 "Nothing",
    +
    42 "Is",
    +
    43 "Empty",
    +
    44 };
    +
    45 int tab_3_selected = 0;
    +
    46 auto tab_container = Container::Tab(
    +
    47 {
    +
    48 Radiobox(&tab_1_entries, &tab_1_selected),
    +
    49 Radiobox(&tab_2_entries, &tab_2_selected),
    +
    50 Radiobox(&tab_3_entries, &tab_3_selected),
    +
    51 },
    +
    52 &tab_selected);
    +
    53
    +
    54 auto container = Container::Horizontal({
    +
    55 tab_menu,
    +
    56 tab_container,
    +
    57 });
    +
    58
    +
    59 auto renderer = Renderer(container, [&] {
    +
    60 return hbox({
    +
    61 tab_menu->Render(),
    +
    62 separator(),
    +
    63 tab_container->Render(),
    +
    64 }) |
    +
    65 border;
    +
    66 });
    +
    67
    + +
    69 screen.Loop(renderer);
    +
    70}
    +
    + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Component Horizontal(Components children)
    A list of components, drawn one by one horizontally and navigated horizontally using left/right arrow...
    +
    Component Menu(MenuOption options)
    A list of text. The focused element is selected.
    +
    Component Radiobox(RadioboxOption options)
    A list of element, where only one can be selected.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Tab(Components children, int *selector)
    A list of components, where only one is drawn and interacted with at a time. The |selector| gives the...
    +
    virtual void Render(Screen &screen)
    Display an element on a ftxui::Screen.
    Definition node.cpp:59
    +
    Element separator()
    Draw a vertical or horizontal separation in between two other elements.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    + +
    int main()
    +
    +
    + + + + + diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..e5bcea33391c10f57d0ceeec56c6ecc45e0104da GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|53{H7M{n&*tBE zJh`BtF#Usz-@X3|Yysycs`<{IqnNdO;k=yc=As259Ssu%Zd$3OJBoKVg!ea@D^WXaR$#tDnm{r-UW|L##CV literal 0 HcmV?d00001 diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..2877c3eb464b070798e37b74b3975476d8d0652a GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QeK`ejv*C{Z(~pLHW=`HzF4<_ z=K%Y+`;*jIR`Lj*+$1V*%up(~eb4-$+bmj+rM|CQZ>20x`?>$l@{JV}d*d<<%%;`- goAkD@@oxn~>;p#Yslrw(fu=Hey85}Sb4q9e01L$~761SM literal 0 HcmV?d00001 diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8599a339a8b6e2d185c6f808db7defd3ce0769 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qk9-Ajv*C{Z|^$tH97FKKHR3C zWh8z6$-Sw1z79@JJqlhoR&2Re(^q95|Me^~PEB_E^Z92rn>q~QtsRc8cpLq5HIsnBrHxG{o%3Dq8b$Bq Y_sA3DP?uT$4d?&{Pgg&ebxsLQ0MU#=YybcN literal 0 HcmV?d00001 diff --git a/tab_hd.png b/tab_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..973beb40e5de890635f09ab435e0943956615722 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QiYx_jv*C{Z|^$tH5mxBKAicT z>*^u4Mbgs*6!i8sh!?m!B|SQJ#JI{PIx6##soMQN??sCC)jQmF>Xs7Pw?;od?DOmI z;g^l2UL143vRv2Ge9cZ~7n}aSLZZ`_Ylkp;s_(9Ty+3i0nzshOz=UnPH)cHJy|-TM VmdlGb6M&X8c)I$ztaD0e0sz@$K#u?b literal 0 HcmV?d00001 diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..57454d4a430c222797715068bec196af47618623 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|~-EF*-6dJUm(5 zvsA^iPGF*%&+Tn%w$5IE;gn%nS=u)py+<*A35Oi#Rd+mp?fY-V$vt1*iT33N*00Ss z{diR{w(iho*SRvQ7dyYx?QTw;7o9dUao1*_pu-l1J(Ic~9y93JyJFG*>)fWXp%(*Z oeG4*g5!jOAsbK1>KjA4m>pEqt)vuYp0-eL)>FVdQ&MBb@0IEGq%>V!Z literal 0 HcmV?d00001 diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..34c367d125f5579b476095e0d8db4f5393587b0d GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qe~bljv*C{Z|B-_H9H8js(-$A z*L6`#DsRq&33{$v+#5G-^qA=UY?<2X#~t4#?tQOISm%)V%Sd--r_rCkn?FCiz5N6K zJF~ZuVt$KP?d6MRyZuEYX?dhz+^T1vrsTD)lzUZ}SK4jVIsc$tQ?9N(hkEd-%9sBY a%Cyf$shnN$^-wL)1q`09elF{r5}E*pfk%7* literal 0 HcmV?d00001 diff --git a/table_8cppm.html b/table_8cppm.html new file mode 100644 index 000000000..d4484cdc9 --- /dev/null +++ b/table_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: table.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    table.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/table_8cppm_source.html b/table_8cppm_source.html new file mode 100644 index 000000000..0d87ff53a --- /dev/null +++ b/table_8cppm_source.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: table.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    table.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.dom.table
    +
    2/// @brief Module file for the Table class of the Dom module
    +
    3
    +
    4module;
    +
    5
    +
    6#include <ftxui/dom/table.hpp>
    +
    7
    +
    8export module ftxui.dom.table;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    +
    15 using ftxui::Table;
    + +
    17}
    + +
    Table is a utility to draw tables.
    Definition table.hpp:36
    +
    Module file for the Table class of the Dom module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/table_8hpp.html b/table_8hpp.html new file mode 100644 index 000000000..256e8540d --- /dev/null +++ b/table_8hpp.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: table.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    table.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Classes

    class  Table
     Table is a utility to draw tables. More...
     
    class  TableSelection
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/table_8hpp.js b/table_8hpp.js new file mode 100644 index 000000000..684608739 --- /dev/null +++ b/table_8hpp.js @@ -0,0 +1,4 @@ +var table_8hpp = +[ + [ "TableSelection", "classftxui_1_1TableSelection.html", "classftxui_1_1TableSelection" ] +]; \ No newline at end of file diff --git a/table_8hpp_source.html b/table_8hpp_source.html new file mode 100644 index 000000000..3b7ad3334 --- /dev/null +++ b/table_8hpp_source.html @@ -0,0 +1,339 @@ + + + + + + + + +FTXUI: table.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    table.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_DOM_TABLE
    +
    5#define FTXUI_DOM_TABLE
    +
    6
    +
    7#include <string> // for string
    +
    8#include <vector> // for vector
    +
    9
    +
    10#include "ftxui/dom/elements.hpp" // for Element, BorderStyle, LIGHT, Decorator
    +
    11
    +
    12namespace ftxui {
    +
    13
    +
    14class Table;
    +
    15class TableSelection;
    +
    16
    +
    17/// @brief Table is a utility to draw tables.
    +
    18///
    +
    19/// **example**
    +
    20/// ```cpp
    +
    21/// auto table = Table({
    +
    22/// {"X", "Y"},
    +
    23/// {"-1", "1"},
    +
    24/// {"+0", "0"},
    +
    25/// {"+1", "1"},
    +
    26/// });
    +
    27///
    +
    28/// table.SelectAll().Border(LIGHT);
    +
    29/// table.SelectRow(1).Border(DOUBLE);
    +
    30/// table.SelectRow(1).SeparatorInternal(LIGHT);
    +
    31///
    +
    32/// std::move(table).Render();
    +
    33/// ```
    +
    34///
    +
    35/// @ingroup dom
    +
    +
    36class Table {
    +
    37 public:
    +
    38 Table();
    +
    39 explicit Table(std::vector<std::vector<std::string>>);
    +
    40 explicit Table(std::vector<std::vector<Element>>);
    +
    41 Table(std::initializer_list<std::vector<std::string>> init);
    + +
    43 TableSelection SelectCell(int column, int row);
    +
    44 TableSelection SelectRow(int row_index);
    +
    45 TableSelection SelectRows(int row_min, int row_max);
    +
    46 TableSelection SelectColumn(int column_index);
    +
    47 TableSelection SelectColumns(int column_min, int column_max);
    +
    48 TableSelection SelectRectangle(int column_min,
    +
    49 int column_max,
    +
    50 int row_min,
    +
    51 int row_max);
    + +
    53
    +
    54 private:
    +
    55 void Initialize(std::vector<std::vector<Element>>);
    +
    56 friend TableSelection;
    +
    57 std::vector<std::vector<Element>> elements_;
    +
    58 int input_dim_x_ = 0;
    +
    59 int input_dim_y_ = 0;
    +
    60 int dim_x_ = 0;
    +
    61 int dim_y_ = 0;
    +
    62};
    +
    +
    63
    +
    + +
    65 public:
    +
    66 void Decorate(Decorator);
    +
    67 void DecorateAlternateRow(Decorator, int modulo = 2, int shift = 0);
    +
    68 void DecorateAlternateColumn(Decorator, int modulo = 2, int shift = 0);
    +
    69
    + +
    71 void DecorateCellsAlternateColumn(Decorator, int modulo = 2, int shift = 0);
    +
    72 void DecorateCellsAlternateRow(Decorator, int modulo = 2, int shift = 0);
    +
    73
    +
    74 void Border(BorderStyle border = LIGHT);
    +
    75 void BorderLeft(BorderStyle border = LIGHT);
    +
    76 void BorderRight(BorderStyle border = LIGHT);
    +
    77 void BorderTop(BorderStyle border = LIGHT);
    +
    78 void BorderBottom(BorderStyle border = LIGHT);
    +
    79
    +
    80 void Separator(BorderStyle border = LIGHT);
    +
    81 void SeparatorVertical(BorderStyle border = LIGHT);
    + +
    83
    +
    84 private:
    +
    85 friend Table;
    +
    86 Table* table_;
    +
    87 int x_min_;
    +
    88 int x_max_;
    +
    89 int y_min_;
    +
    90 int y_max_;
    +
    91};
    +
    +
    92
    +
    93} // namespace ftxui
    +
    94
    +
    95#endif /* end of include guard: FTXUI_DOM_TABLE */
    + +
    void DecorateAlternateColumn(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shif...
    +
    void SeparatorVertical(BorderStyle border=LIGHT)
    Draw some vertical separator lines in the selection.
    +
    void DecorateCells(Decorator)
    Apply the decorator to the selection.
    +
    void BorderLeft(BorderStyle border=LIGHT)
    Draw some separator lines to the left side of the selection.
    +
    void DecorateCellsAlternateColumn(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of sh...
    +
    void Decorate(Decorator)
    Apply the decorator to the selection. This decorate both the cells, the lines and the corners.
    +
    void DecorateAlternateRow(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the lines modulo modulo with a shift of shif...
    +
    void BorderTop(BorderStyle border=LIGHT)
    Draw some separator lines to the top side of the selection.
    +
    void Separator(BorderStyle border=LIGHT)
    Draw some separator lines in the selection.
    +
    void BorderBottom(BorderStyle border=LIGHT)
    Draw some separator lines to the bottom side of the selection.
    +
    void DecorateCellsAlternateRow(Decorator, int modulo=2, int shift=0)
    Apply the decorator to the selection. This decorate only the corners modulo modulo with a shift of sh...
    +
    void BorderRight(BorderStyle border=LIGHT)
    Draw some separator lines to the right side of the selection.
    +
    void Border(BorderStyle border=LIGHT)
    Apply a border around the selection.
    +
    void SeparatorHorizontal(BorderStyle border=LIGHT)
    Draw some horizontal separator lines in the selection.
    + +
    Element Render()
    Render the table.
    +
    Table()
    Create an empty table.
    +
    TableSelection SelectCell(int column, int row)
    Select a cell of the table.
    +
    TableSelection SelectColumn(int column_index)
    Select a column of the table.
    +
    TableSelection SelectRow(int row_index)
    Select a row of the table.
    +
    TableSelection SelectColumns(int column_min, int column_max)
    Select a range of columns of the table.
    +
    TableSelection SelectRows(int row_min, int row_max)
    Select a range of rows of the table.
    +
    TableSelection SelectAll()
    Select all the table.
    +
    TableSelection SelectRectangle(int column_min, int column_max, int row_min, int row_max)
    Select a rectangle of the table.
    +
    Table is a utility to draw tables.
    Definition table.hpp:36
    +
    BorderStyle
    BorderStyle is an enumeration that represents the different styles of borders that can be applied to ...
    Definition elements.hpp:35
    +
    @ LIGHT
    Definition elements.hpp:36
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::function< Element(Element)> Decorator
    Definition elements.hpp:24
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    +
    + + + + + diff --git a/tabs.css b/tabs.css new file mode 100644 index 000000000..79508e5de --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#13429F;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url('tab_b.png')}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255, 255, 255, 0.9);color:#0E3177;outline:0}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:white}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url('tab_b.png');line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#0E3177 transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url('tab_s.png');background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent white transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:white;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555555;background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:white;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url('tab_b.png')}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:white}} diff --git a/task_8cpp.html b/task_8cpp.html new file mode 100644 index 000000000..b6da4f687 --- /dev/null +++ b/task_8cpp.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: task.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    +
    +
    + + + + + diff --git a/task_8cpp_source.html b/task_8cpp_source.html new file mode 100644 index 000000000..b1e2c2cfc --- /dev/null +++ b/task_8cpp_source.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: task.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6namespace ftxui::task {
    +
    +
    7bool PendingTask::operator<(const PendingTask& other) const {
    +
    8 if (!time && !other.time) {
    +
    9 return false;
    +
    10 }
    +
    11 if (!time) {
    +
    12 return true;
    +
    13 }
    +
    14 if (!other.time) {
    +
    15 return false;
    +
    16 }
    +
    17 return time.value() > other.time.value();
    +
    18}
    +
    +
    19} // namespace ftxui::task
    + + +
    std::optional< std::chrono::steady_clock::time_point > time
    +
    bool operator<(const PendingTask &other) const
    Definition task.cpp:7
    + +
    +
    + + + + + diff --git a/task_8cppm.html b/task_8cppm.html new file mode 100644 index 000000000..48861e27e --- /dev/null +++ b/task_8cppm.html @@ -0,0 +1,220 @@ + + + + + + + + +FTXUI: task.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/task_8cppm_source.html b/task_8cppm_source.html new file mode 100644 index 000000000..4e56ab843 --- /dev/null +++ b/task_8cppm_source.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: task.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.component.task
    +
    2/// @brief Module file for the Task class of the Component module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.component.task;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16 using ftxui::Closure;
    +
    17 using ftxui::Task;
    +
    18}
    + +
    Module file for the Task class of the Component module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::variant< Event, Closure, AnimationTask > Task
    Definition task.hpp:14
    +
    std::function< void()> Closure
    Definition task.hpp:13
    + +
    +
    + + + + + diff --git a/task_8hpp.html b/task_8hpp.html new file mode 100644 index 000000000..b4a926385 --- /dev/null +++ b/task_8hpp.html @@ -0,0 +1,234 @@ + + + + + + + + +FTXUI: task.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Classes

    class  AnimationTask
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + +

    +Typedefs

    using Closure = std::function<void()>
     
    using Task = std::variant<Event, Closure, AnimationTask>
     
    +
    +
    + + + + + diff --git a/task_8hpp.js b/task_8hpp.js new file mode 100644 index 000000000..9daabc136 --- /dev/null +++ b/task_8hpp.js @@ -0,0 +1,6 @@ +var task_8hpp = +[ + [ "AnimationTask", "classftxui_1_1AnimationTask.html", null ], + [ "Closure", "task_8hpp.html#adc2f3bfa69ce99c596a1ff1b69b04d33", null ], + [ "Task", "task_8hpp.html#aaa92a82e968c721805c62787cd000534", null ] +]; \ No newline at end of file diff --git a/task_8hpp_source.html b/task_8hpp_source.html new file mode 100644 index 000000000..aa1b4c299 --- /dev/null +++ b/task_8hpp_source.html @@ -0,0 +1,231 @@ + + + + + + + + +FTXUI: task.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_COMPONENT_ANIMATION_HPP
    +
    5#define FTXUI_COMPONENT_ANIMATION_HPP
    +
    6
    +
    7#include <functional>
    +
    8#include <variant>
    + +
    10
    +
    11namespace ftxui {
    + +
    13using Closure = std::function<void()>;
    +
    14using Task = std::variant<Event, Closure, AnimationTask>;
    +
    15} // namespace ftxui
    +
    16
    +
    17#endif // FTXUI_COMPONENT_ANIMATION_HPP
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::variant< Event, Closure, AnimationTask > Task
    Definition task.hpp:14
    +
    std::function< void()> Closure
    Definition task.hpp:13
    +
    +
    + + + + + diff --git a/task__internal_8hpp.html b/task__internal_8hpp.html new file mode 100644 index 000000000..a0b5f87e1 --- /dev/null +++ b/task__internal_8hpp.html @@ -0,0 +1,235 @@ + + + + + + + + +FTXUI: task_internal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task_internal.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  PendingTask
     
    + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    + + + + +

    +Typedefs

    using Task = std::function<void()>
     A task represents a unit of work.
     
    +
    +
    + + + + + diff --git a/task__internal_8hpp.js b/task__internal_8hpp.js new file mode 100644 index 000000000..28167b168 --- /dev/null +++ b/task__internal_8hpp.js @@ -0,0 +1,5 @@ +var task__internal_8hpp = +[ + [ "PendingTask", "structftxui_1_1task_1_1PendingTask.html", "structftxui_1_1task_1_1PendingTask" ], + [ "Task", "task__internal_8hpp.html#a8cb97ed7903b5e83d45d0a985e629185", null ] +]; \ No newline at end of file diff --git a/task__internal_8hpp_source.html b/task__internal_8hpp_source.html new file mode 100644 index 000000000..f6a084ae4 --- /dev/null +++ b/task__internal_8hpp_source.html @@ -0,0 +1,261 @@ + + + + + + + + +FTXUI: task_internal.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task_internal.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef TASK_HPP
    +
    5#define TASK_HPP
    +
    6
    +
    7#include <chrono>
    +
    8#include <functional>
    +
    9#include <optional>
    +
    10
    +
    11namespace ftxui::task {
    +
    12
    +
    13/// A task represents a unit of work.
    +
    14using Task = std::function<void()>;
    +
    15
    +
    16/// A PendingTask represents a task that is scheduled to be executed at a
    +
    17/// specific time, or as soon as possible.
    +
    + +
    19 // Immediate task:
    +
    20 PendingTask(Task t) : task(std::move(t)) {} // NOLINT
    +
    21
    +
    22 // Delayed task with a duration
    +
    +
    23 PendingTask(Task t, std::chrono::steady_clock::duration duration)
    +
    24 : task(std::move(t)), time(std::chrono::steady_clock::now() + duration) {}
    +
    +
    25
    +
    26 /// The task to be executed.
    + +
    28
    +
    29 /// The time when the task should be executed. If the time is empty, the task
    +
    30 /// should be executed as soon as possible.
    +
    31 std::optional<std::chrono::steady_clock::time_point> time;
    +
    32
    +
    33 /// Compare two PendingTasks by their time.
    +
    34 /// If both tasks have no time, they are considered equal.
    +
    35 bool operator<(const PendingTask& other) const;
    +
    36};
    +
    +
    37
    +
    38} // namespace ftxui::task
    +
    39
    +
    40#endif // TASK_HPP_
    + +
    std::function< void()> Task
    A task represents a unit of work.
    + +
    PendingTask(Task t, std::chrono::steady_clock::duration duration)
    +
    Task task
    The task to be executed.
    +
    std::optional< std::chrono::steady_clock::time_point > time
    +
    bool operator<(const PendingTask &other) const
    Definition task.cpp:7
    + +
    +
    + + + + + diff --git a/task__queue_8cpp.html b/task__queue_8cpp.html new file mode 100644 index 000000000..a9636ebd9 --- /dev/null +++ b/task__queue_8cpp.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: task_queue.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task_queue.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    +
    +
    + + + + + diff --git a/task__queue_8cpp_source.html b/task__queue_8cpp_source.html new file mode 100644 index 000000000..e0e96a093 --- /dev/null +++ b/task__queue_8cpp_source.html @@ -0,0 +1,272 @@ + + + + + + + + +FTXUI: task_queue.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task_queue.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6namespace ftxui::task {
    +
    7
    +
    +
    8auto TaskQueue::PostTask(PendingTask task) -> void {
    +
    9 if (!task.time) {
    +
    10 immediate_tasks_.push(task);
    +
    11 return;
    +
    12 }
    +
    13
    +
    14 if (task.time.value() < std::chrono::steady_clock::now()) {
    +
    15 immediate_tasks_.push(task);
    +
    16 return;
    +
    17 }
    +
    18
    +
    19 delayed_tasks_.push(task);
    +
    20}
    +
    +
    21
    +
    + +
    23 // Attempt to execute a task immediately.
    +
    24 if (!immediate_tasks_.empty()) {
    +
    25 auto task = immediate_tasks_.front();
    +
    26 immediate_tasks_.pop();
    +
    27 return task.task;
    +
    28 }
    +
    29
    +
    30 // Move all tasks that can be executed to the immediate queue.
    +
    31 auto now = std::chrono::steady_clock::now();
    +
    32 while (!delayed_tasks_.empty() && delayed_tasks_.top().time.value() <= now) {
    +
    33 immediate_tasks_.push(delayed_tasks_.top());
    +
    34 delayed_tasks_.pop();
    +
    35 }
    +
    36
    +
    37 // Attempt to execute a task immediately.
    +
    38 if (!immediate_tasks_.empty()) {
    +
    39 auto task = immediate_tasks_.front();
    +
    40 immediate_tasks_.pop();
    +
    41 return task.task;
    +
    42 }
    +
    43
    +
    44 // If there are no tasks to execute, return the delay until the next task.
    +
    45 if (!delayed_tasks_.empty()) {
    +
    46 return delayed_tasks_.top().time.value() - now;
    +
    47 }
    +
    48
    +
    49 // If there are no tasks to execute, return the maximum duration.
    +
    50 return std::monostate{};
    +
    51}
    +
    +
    52
    +
    53} // namespace ftxui::task
    + + +
    auto Get() -> MaybeTask
    +
    std::variant< Task, std::chrono::steady_clock::duration, std::monostate > MaybeTask
    +
    auto PostTask(PendingTask task) -> void
    Definition task_queue.cpp:8
    + +
    +
    + + + + + diff --git a/task__queue_8hpp.html b/task__queue_8hpp.html new file mode 100644 index 000000000..1fcbda416 --- /dev/null +++ b/task__queue_8hpp.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: task_queue.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task_queue.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  TaskQueue
     
    + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    +
    +
    + + + + + diff --git a/task__queue_8hpp.js b/task__queue_8hpp.js new file mode 100644 index 000000000..e56be2490 --- /dev/null +++ b/task__queue_8hpp.js @@ -0,0 +1,4 @@ +var task__queue_8hpp = +[ + [ "TaskQueue", "structftxui_1_1task_1_1TaskQueue.html", "structftxui_1_1task_1_1TaskQueue" ] +]; \ No newline at end of file diff --git a/task__queue_8hpp_source.html b/task__queue_8hpp_source.html new file mode 100644 index 000000000..b2bc863c3 --- /dev/null +++ b/task__queue_8hpp_source.html @@ -0,0 +1,256 @@ + + + + + + + + +FTXUI: task_queue.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task_queue.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef TASK_QUEUE_HPP
    +
    5#define TASK_QUEUE_HPP
    +
    6
    +
    7#include <queue>
    +
    8#include <variant>
    +
    9
    +
    10#include "ftxui/component/task_internal.hpp" // for PendingTask, Task
    +
    11
    +
    12namespace ftxui::task {
    +
    13
    +
    14/// A task queue that schedules tasks to be executed in the future. Tasks can be
    +
    15/// scheduled to be executed immediately, or after a certain duration.
    +
    16/// - The tasks are executed in the order they were scheduled.
    +
    17/// - If multiple tasks are scheduled to be executed at the same time, they are
    +
    18/// executed in the order they were scheduled.
    +
    19/// - If a task is scheduled to be executed in the past, it is executed
    +
    20/// immediately.
    +
    +
    21struct TaskQueue {
    +
    22 auto PostTask(PendingTask task) -> void;
    +
    23
    +
    24 using MaybeTask =
    +
    25 std::variant<Task, std::chrono::steady_clock::duration, std::monostate>;
    +
    26 auto Get() -> MaybeTask;
    +
    27
    +
    28 bool HasImmediateTasks() const { return !immediate_tasks_.empty(); }
    +
    29
    +
    30 private:
    +
    31 std::queue<PendingTask> immediate_tasks_;
    +
    32 std::priority_queue<PendingTask> delayed_tasks_;
    +
    33};
    +
    +
    34
    +
    35} // namespace ftxui::task
    +
    36
    +
    37#endif
    + + + +
    bool HasImmediateTasks() const
    +
    auto Get() -> MaybeTask
    +
    std::variant< Task, std::chrono::steady_clock::duration, std::monostate > MaybeTask
    +
    auto PostTask(PendingTask task) -> void
    Definition task_queue.cpp:8
    + +
    +
    + + + + + diff --git a/task__runner_8cpp.html b/task__runner_8cpp.html new file mode 100644 index 000000000..9445e0c3e --- /dev/null +++ b/task__runner_8cpp.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: task_runner.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task_runner.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    +
    +
    + + + + + diff --git a/task__runner_8cpp_source.html b/task__runner_8cpp_source.html new file mode 100644 index 000000000..66b930ed8 --- /dev/null +++ b/task__runner_8cpp_source.html @@ -0,0 +1,310 @@ + + + + + + + + +FTXUI: task_runner.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task_runner.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6#include <cassert>
    +
    7#include <thread>
    +
    8
    +
    9namespace ftxui::task {
    +
    10
    +
    11static thread_local TaskRunner* current_task_runner = nullptr; // NOLINT
    +
    12
    +
    + +
    14 assert(!previous_task_runner_);
    +
    15 previous_task_runner_ = current_task_runner;
    +
    16 current_task_runner = this;
    +
    17}
    +
    +
    18
    +
    + +
    20 current_task_runner = previous_task_runner_;
    +
    21}
    +
    +
    22
    +
    23// static
    +
    + +
    25 assert(current_task_runner);
    +
    26 return current_task_runner;
    +
    27}
    +
    +
    28
    +
    +
    29auto TaskRunner::PostTask(Task task) -> void {
    +
    30 queue_.PostTask(PendingTask{std::move(task)});
    +
    31}
    +
    +
    32
    +
    + +
    34 std::chrono::steady_clock::duration duration)
    +
    35 -> void {
    +
    36 queue_.PostTask(PendingTask{std::move(task), duration});
    +
    37}
    +
    +
    38
    +
    39/// Runs the tasks in the queue.
    +
    + +
    41 -> std::optional<std::chrono::steady_clock::duration> {
    +
    42 while (true) {
    +
    43 auto maybe_task = queue_.Get();
    +
    44 if (std::holds_alternative<std::monostate>(maybe_task)) {
    +
    45 // No more tasks to execute, exit the loop.
    +
    46 return std::nullopt;
    +
    47 }
    +
    48
    +
    49 if (std::holds_alternative<Task>(maybe_task)) {
    +
    50 executed_tasks_++;
    +
    51 std::get<Task>(maybe_task)();
    +
    52 continue;
    +
    53 }
    +
    54
    +
    55 if (std::holds_alternative<std::chrono::steady_clock::duration>(
    +
    56 maybe_task)) {
    +
    57 return std::get<std::chrono::steady_clock::duration>(maybe_task);
    +
    58 }
    +
    59 }
    +
    60}
    +
    +
    61
    +
    +
    62auto TaskRunner::Run() -> void {
    +
    63 while (true) {
    +
    64 auto duration = RunUntilIdle();
    +
    65 if (!duration) {
    +
    66 // No more tasks to execute, exit the loop.
    +
    67 return;
    +
    68 }
    +
    69
    +
    70 // Sleep for the duration until the next task can be executed.
    +
    71 std::this_thread::sleep_for(duration.value());
    +
    72 }
    +
    73}
    +
    +
    74
    +
    75} // namespace ftxui::task
    + +
    static auto Current() -> TaskRunner *
    + +
    auto PostTask(Task task) -> void
    Schedules a task to be executed immediately.
    +
    auto RunUntilIdle() -> std::optional< std::chrono::steady_clock::duration >
    Runs the tasks in the queue.
    +
    auto PostDelayedTask(Task task, std::chrono::steady_clock::duration duration) -> void
    Schedules a task to be executed after a certain duration.
    + + + +
    std::function< void()> Task
    A task represents a unit of work.
    + + +
    +
    + + + + + diff --git a/task__runner_8hpp.html b/task__runner_8hpp.html new file mode 100644 index 000000000..935821194 --- /dev/null +++ b/task__runner_8hpp.html @@ -0,0 +1,228 @@ + + + + + + + + +FTXUI: task_runner.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    task_runner.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Classes

    class  TaskRunner
     
    + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::task
     
    +
    +
    + + + + + diff --git a/task__runner_8hpp.js b/task__runner_8hpp.js new file mode 100644 index 000000000..91465b4ed --- /dev/null +++ b/task__runner_8hpp.js @@ -0,0 +1,4 @@ +var task__runner_8hpp = +[ + [ "TaskRunner", "classftxui_1_1task_1_1TaskRunner.html", "classftxui_1_1task_1_1TaskRunner" ] +]; \ No newline at end of file diff --git a/task__runner_8hpp_source.html b/task__runner_8hpp_source.html new file mode 100644 index 000000000..11967de9c --- /dev/null +++ b/task__runner_8hpp_source.html @@ -0,0 +1,273 @@ + + + + + + + + +FTXUI: task_runner.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    task_runner.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2024 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef TASK_RUNNER_HPP
    +
    5#define TASK_RUNNER_HPP
    +
    6
    + + +
    9
    +
    10namespace ftxui::task {
    +
    11
    +
    + +
    13 public:
    +
    14 TaskRunner();
    + +
    16
    +
    17 // Returns the task runner for the current thread.
    +
    18 static auto Current() -> TaskRunner*;
    +
    19
    +
    20 /// Schedules a task to be executed immediately.
    +
    21 auto PostTask(Task task) -> void;
    +
    22
    +
    23 /// Schedules a task to be executed after a certain duration.
    +
    24 auto PostDelayedTask(Task task, std::chrono::steady_clock::duration duration)
    +
    25 -> void;
    +
    26
    +
    27 /// Runs the tasks in the queue, return the delay until the next delayed task
    +
    28 /// can be executed.
    +
    29 auto RunUntilIdle() -> std::optional<std::chrono::steady_clock::duration>;
    +
    30
    +
    31 // Runs the tasks in the queue, blocking until all tasks are executed.
    +
    32 auto Run() -> void;
    +
    33
    +
    34 bool HasImmediateTasks() const { return queue_.HasImmediateTasks(); }
    +
    35
    +
    36 size_t ExecutedTasks() const { return executed_tasks_; }
    +
    37
    +
    38 private:
    +
    39 TaskRunner* previous_task_runner_ = nullptr;
    +
    40 TaskQueue queue_;
    +
    41 size_t executed_tasks_ = 0;
    +
    42};
    +
    +
    43
    +
    44} // namespace ftxui::task
    +
    45
    +
    46#endif // TASK_RUNNER_HPP
    + +
    bool HasImmediateTasks() const
    +
    static auto Current() -> TaskRunner *
    + +
    auto PostTask(Task task) -> void
    Schedules a task to be executed immediately.
    +
    auto RunUntilIdle() -> std::optional< std::chrono::steady_clock::duration >
    Runs the tasks in the queue.
    +
    auto PostDelayedTask(Task task, std::chrono::steady_clock::duration duration) -> void
    Schedules a task to be executed after a certain duration.
    + +
    size_t ExecutedTasks() const
    + + +
    std::function< void()> Task
    A task represents a unit of work.
    + +
    bool HasImmediateTasks() const
    + + +
    +
    + + + + + diff --git a/terminal_8cpp.html b/terminal_8cpp.html new file mode 100644 index 000000000..132f7fa1c --- /dev/null +++ b/terminal_8cpp.html @@ -0,0 +1,238 @@ + + + + + + + + +FTXUI: terminal.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    terminal.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::Terminal
     
    + + + + + + + + + + + + + +

    +Functions

    Dimensions Size ()
     Get the terminal size.
     
    void SetFallbackSize (const Dimensions &fallbackSize)
     Override terminal size in case auto-detection fails.
     
    Color ColorSupport ()
     Get the color support of the terminal.
     
    void SetColorSupport (Color color)
     Override terminal color support in case auto-detection fails.
     
    +
    +
    + + + + + diff --git a/terminal_8cpp.js b/terminal_8cpp.js new file mode 100644 index 000000000..777a65ba5 --- /dev/null +++ b/terminal_8cpp.js @@ -0,0 +1,7 @@ +var terminal_8cpp = +[ + [ "Size", "terminal_8cpp.html#gad890c37601448c82ed0d5051c29e2f0c", null ], + [ "SetFallbackSize", "terminal_8cpp.html#a765662bcabb59dc93884674ee2fcc9fc", null ], + [ "ColorSupport", "terminal_8cpp.html#gae6e034f37aa66cfe4458a8cb6e8fc526", null ], + [ "SetColorSupport", "terminal_8cpp.html#ga65945a706131f407a47a1b9960dc1a4a", null ] +]; \ No newline at end of file diff --git a/terminal_8cpp_source.html b/terminal_8cpp_source.html new file mode 100644 index 000000000..1a15a08b3 --- /dev/null +++ b/terminal_8cpp_source.html @@ -0,0 +1,375 @@ + + + + + + + + +FTXUI: terminal.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    terminal.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <cstdlib> // for getenv
    +
    5#include <string> // for string, allocator
    +
    6
    + +
    8
    +
    9#if defined(_WIN32)
    +
    10#define WIN32_LEAN_AND_MEAN
    +
    11
    +
    12#ifndef NOMINMAX
    +
    13#define NOMINMAX
    +
    14#endif
    +
    15
    +
    16#include <windows.h>
    +
    17#else
    +
    18#include <sys/ioctl.h> // for winsize, ioctl, TIOCGWINSZ
    +
    19#include <unistd.h> // for STDOUT_FILENO
    +
    20#endif
    +
    21
    +
    22namespace ftxui {
    +
    23
    +
    24namespace {
    +
    25
    +
    26bool g_cached = false; // NOLINT
    +
    27Terminal::Color g_cached_supported_color; // NOLINT
    +
    28
    +
    29Dimensions& FallbackSize() {
    +
    30#if defined(__EMSCRIPTEN__)
    +
    31 // This dimension was chosen arbitrarily to be able to display:
    +
    32 // https://arthursonzogni.com/FTXUI/examples
    +
    33 // This will have to be improved when someone has time to implement and need
    +
    34 // it.
    +
    35 constexpr int fallback_width = 140;
    +
    36 constexpr int fallback_height = 43;
    +
    37#else
    +
    38 // The terminal size in VT100 was 80x24. It is still used nowadays by
    +
    39 // default in many terminal emulator. That's a good choice for a fallback
    +
    40 // value.
    +
    41 constexpr int fallback_width = 80;
    +
    42 constexpr int fallback_height = 24;
    +
    43#endif
    +
    44 static Dimensions g_fallback_size{
    +
    45 fallback_width,
    +
    46 fallback_height,
    +
    47 };
    +
    48 return g_fallback_size;
    +
    49}
    +
    50
    +
    51const char* Safe(const char* c) {
    +
    52 return (c != nullptr) ? c : "";
    +
    53}
    +
    54
    +
    55bool Contains(const std::string& s, const char* key) {
    +
    56 return s.find(key) != std::string::npos;
    +
    57}
    +
    58
    +
    59Terminal::Color ComputeColorSupport() {
    +
    60#if defined(__EMSCRIPTEN__)
    + +
    62#endif
    +
    63
    +
    64 std::string COLORTERM = Safe(std::getenv("COLORTERM")); // NOLINT
    +
    65 if (Contains(COLORTERM, "24bit") || Contains(COLORTERM, "truecolor")) {
    + +
    67 }
    +
    68
    +
    69 std::string TERM = Safe(std::getenv("TERM")); // NOLINT
    +
    70 if (Contains(COLORTERM, "256") || Contains(TERM, "256")) {
    + +
    72 }
    +
    73
    +
    74#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
    +
    75 // Microsoft terminals do not properly declare themselves supporting true
    +
    76 // colors: https://github.com/microsoft/terminal/issues/1040
    +
    77 // As a fallback, assume microsoft terminal are the ones not setting those
    +
    78 // variables, and enable true colors.
    +
    79 if (TERM.empty() && COLORTERM.empty()) {
    + +
    81 }
    +
    82#endif
    +
    83
    + +
    85}
    +
    86
    +
    87} // namespace
    +
    88
    +
    89namespace Terminal {
    +
    90
    +
    91/// @brief Get the terminal size.
    +
    92/// @return The terminal size.
    +
    93/// @ingroup screen
    +
    + +
    95#if defined(__EMSCRIPTEN__)
    +
    96 // This dimension was chosen arbitrarily to be able to display:
    +
    97 // https://arthursonzogni.com/FTXUI/examples
    +
    98 // This will have to be improved when someone has time to implement and need
    +
    99 // it.
    +
    100 return FallbackSize();
    +
    101#elif defined(_WIN32)
    +
    102 CONSOLE_SCREEN_BUFFER_INFO csbi;
    +
    103
    +
    104 if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)) {
    +
    105 return Dimensions{csbi.srWindow.Right - csbi.srWindow.Left + 1,
    +
    106 csbi.srWindow.Bottom - csbi.srWindow.Top + 1};
    +
    107 }
    +
    108
    +
    109 return FallbackSize();
    +
    110#else
    +
    111 winsize w{};
    +
    112 const int status = ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); // NOLINT
    +
    113 // The ioctl return value result should be checked. Some operating systems
    +
    114 // don't support TIOCGWINSZ.
    +
    115 if (w.ws_col == 0 || w.ws_row == 0 || status < 0) {
    +
    116 return FallbackSize();
    +
    117 }
    +
    118 return Dimensions{w.ws_col, w.ws_row};
    +
    119#endif
    +
    120}
    +
    +
    121
    +
    122/// @brief Override terminal size in case auto-detection fails
    +
    123/// @param fallbackSize Terminal dimensions to fallback to
    +
    +
    124void SetFallbackSize(const Dimensions& fallbackSize) {
    +
    125 FallbackSize() = fallbackSize;
    +
    126}
    +
    +
    127
    +
    128/// @brief Get the color support of the terminal.
    +
    129/// @ingroup screen
    +
    + +
    131 if (!g_cached) {
    +
    132 g_cached = true;
    +
    133 g_cached_supported_color = ComputeColorSupport();
    +
    134 }
    +
    135 return g_cached_supported_color;
    +
    136}
    +
    +
    137
    +
    138/// @brief Override terminal color support in case auto-detection fails
    +
    139/// @ingroup dom
    +
    + +
    141 g_cached = true;
    +
    142 g_cached_supported_color = color;
    +
    143}
    +
    +
    144
    +
    145} // namespace Terminal
    +
    146} // namespace ftxui
    +
    void SetColorSupport(Color color)
    Override terminal color support in case auto-detection fails.
    Definition terminal.cpp:140
    +
    Decorator color(Color)
    Decorate using a foreground color.
    +
    Color
    Color is an enumeration that represents the color support of the terminal.
    Definition terminal.hpp:23
    +
    Dimensions Size()
    Get the terminal size.
    Definition terminal.cpp:94
    +
    Color ColorSupport()
    Get the color support of the terminal.
    Definition terminal.cpp:130
    + + + +
    Dimensions is a structure that represents the size of the terminal.
    Definition terminal.hpp:11
    +
    void SetFallbackSize(const Dimensions &fallbackSize)
    Override terminal size in case auto-detection fails.
    Definition terminal.cpp:124
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/terminal_8cppm.html b/terminal_8cppm.html new file mode 100644 index 000000000..8bf37f638 --- /dev/null +++ b/terminal_8cppm.html @@ -0,0 +1,222 @@ + + + + + + + + +FTXUI: terminal.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    terminal.cppm File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::Terminal
     
    +
    +
    + + + + + diff --git a/terminal_8cppm_source.html b/terminal_8cppm_source.html new file mode 100644 index 000000000..dd4d8107a --- /dev/null +++ b/terminal_8cppm_source.html @@ -0,0 +1,238 @@ + + + + + + + + +FTXUI: terminal.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    terminal.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.screen.terminal
    +
    2/// @brief Module file for the Terminal namespace of the Screen module
    +
    3
    +
    4module;
    +
    5
    + +
    7
    +
    8export module ftxui.screen.terminal;
    +
    9
    +
    10/**
    +
    11 * @namespace ftxui
    +
    12 * @brief The FTXUI ftxui:: namespace
    +
    13 */
    +
    14export namespace ftxui {
    + +
    16
    +
    17 namespace Terminal {
    +
    18 using ftxui::Terminal::Size;
    +
    19 using ftxui::Terminal::SetFallbackSize;
    + +
    21 using ftxui::Terminal::ColorSupport;
    +
    22 using ftxui::Terminal::SetColorSupport;
    +
    23 }
    +
    24}
    +
    Color
    Color is an enumeration that represents the color support of the terminal.
    Definition terminal.hpp:23
    +
    Dimensions is a structure that represents the size of the terminal.
    Definition terminal.hpp:11
    +
    Module file for the Terminal namespace of the Screen module.
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    +
    + + + + + diff --git a/terminal_8hpp.html b/terminal_8hpp.html new file mode 100644 index 000000000..ec7a5b7f4 --- /dev/null +++ b/terminal_8hpp.html @@ -0,0 +1,261 @@ + + + + + + + + +FTXUI: terminal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    terminal.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    struct  Dimensions
     Dimensions is a structure that represents the size of the terminal. More...
     
    + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::Terminal
     
    + + + + +

    +Enumerations

    enum  Color {
    +  Palette1 +,
    +  Palette16 +,
    +  Palette256 +,
    +  TrueColor +
    + }
     Color is an enumeration that represents the color support of the terminal. More...
     
    + + + + + + + + + + + + + +

    +Functions

    Dimensions Size ()
     Get the terminal size.
     
    void SetFallbackSize (const Dimensions &fallbackSize)
     Override terminal size in case auto-detection fails.
     
    Color ColorSupport ()
     Get the color support of the terminal.
     
    void SetColorSupport (Color color)
     Override terminal color support in case auto-detection fails.
     
    +
    +
    + + + + + diff --git a/terminal_8hpp.js b/terminal_8hpp.js new file mode 100644 index 000000000..77ab5b50f --- /dev/null +++ b/terminal_8hpp.js @@ -0,0 +1,13 @@ +var terminal_8hpp = +[ + [ "Color", "terminal_8hpp.html#gab87bacfdad76e61b9412d7124be44c1c", [ + [ "Palette1", "terminal_8hpp.html#ggab87bacfdad76e61b9412d7124be44c1caf8fee1420fe204b3dafbacf27a545c41", null ], + [ "Palette16", "terminal_8hpp.html#ggab87bacfdad76e61b9412d7124be44c1cae5a76102d821ec8233fee04273c60349", null ], + [ "Palette256", "terminal_8hpp.html#ggab87bacfdad76e61b9412d7124be44c1ca7b88ab2a5c8fe8866c96ea4acb623876", null ], + [ "TrueColor", "terminal_8hpp.html#ggab87bacfdad76e61b9412d7124be44c1ca7afd9568e82d523c91b2bfe0cc47be29", null ] + ] ], + [ "Size", "terminal_8hpp.html#gad890c37601448c82ed0d5051c29e2f0c", null ], + [ "SetFallbackSize", "terminal_8hpp.html#a765662bcabb59dc93884674ee2fcc9fc", null ], + [ "ColorSupport", "terminal_8hpp.html#gae6e034f37aa66cfe4458a8cb6e8fc526", null ], + [ "SetColorSupport", "terminal_8hpp.html#ga65945a706131f407a47a1b9960dc1a4a", null ] +]; \ No newline at end of file diff --git a/terminal_8hpp_source.html b/terminal_8hpp_source.html new file mode 100644 index 000000000..3a1563c2a --- /dev/null +++ b/terminal_8hpp_source.html @@ -0,0 +1,265 @@ + + + + + + + + +FTXUI: terminal.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    terminal.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_TERMINAL_HPP
    +
    5#define FTXUI_SCREEN_TERMINAL_HPP
    +
    6
    +
    7namespace ftxui {
    +
    8
    +
    9/// @brief Dimensions is a structure that represents the size of the terminal
    +
    10/// @ingroup screen
    +
    +
    11struct Dimensions {
    +
    12 int dimx;
    +
    13 int dimy;
    +
    14};
    +
    +
    15
    +
    +
    16namespace Terminal {
    + +
    18void SetFallbackSize(const Dimensions& fallbackSize);
    +
    19
    +
    20/// @brief Color is an enumeration that represents the color support of the
    +
    21/// terminal.
    +
    22/// @ingroup screen
    + + +
    30void SetColorSupport(Color color);
    +
    31
    +
    32} // namespace Terminal
    +
    +
    33
    +
    34} // namespace ftxui
    +
    35
    +
    36#endif // FTXUI_SCREEN_TERMINAL_HPP
    +
    void SetColorSupport(Color color)
    Override terminal color support in case auto-detection fails.
    Definition terminal.cpp:140
    + + +
    Color is a class that represents a color in the terminal user interface.
    Definition color.hpp:22
    +
    Color
    Color is an enumeration that represents the color support of the terminal.
    Definition terminal.hpp:23
    +
    Dimensions Size()
    Get the terminal size.
    Definition terminal.cpp:94
    +
    Color ColorSupport()
    Get the color support of the terminal.
    Definition terminal.cpp:130
    + + + + +
    Dimensions is a structure that represents the size of the terminal.
    Definition terminal.hpp:11
    +
    void SetFallbackSize(const Dimensions &fallbackSize)
    Override terminal size in case auto-detection fails.
    Definition terminal.cpp:124
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/terminal__input__parser_8cpp.html b/terminal__input__parser_8cpp.html new file mode 100644 index 000000000..af6baaf01 --- /dev/null +++ b/terminal__input__parser_8cpp.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: terminal_input_parser.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    terminal_input_parser.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + +

    +Variables

    const std::map< std::string, std::string > g_uniformize
     
    +
    +
    + + + + + diff --git a/terminal__input__parser_8cpp.js b/terminal__input__parser_8cpp.js new file mode 100644 index 000000000..16327a379 --- /dev/null +++ b/terminal__input__parser_8cpp.js @@ -0,0 +1,4 @@ +var terminal__input__parser_8cpp = +[ + [ "g_uniformize", "terminal__input__parser_8cpp.html#a81094ad1eae10308826bbd3be2723b18", null ] +]; \ No newline at end of file diff --git a/terminal__input__parser_8cpp_source.html b/terminal__input__parser_8cpp_source.html new file mode 100644 index 000000000..a81aafc01 --- /dev/null +++ b/terminal__input__parser_8cpp_source.html @@ -0,0 +1,696 @@ + + + + + + + + +FTXUI: terminal_input_parser.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    terminal_input_parser.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    + +
    5
    +
    6#include <cstdint> // for uint32_t
    +
    7#include <ftxui/component/mouse.hpp> // for Mouse, Mouse::Button, Mouse::Motion
    +
    8#include <functional> // for std::function
    +
    9#include <map>
    +
    10#include <memory> // for unique_ptr, allocator
    +
    11#include <utility> // for move
    +
    12#include <vector>
    +
    13#include "ftxui/component/event.hpp" // for Event
    +
    14#include "ftxui/component/task.hpp" // for Task
    +
    15
    +
    16namespace ftxui {
    +
    17
    +
    18// NOLINTNEXTLINE
    +
    +
    19const std::map<std::string, std::string> g_uniformize = {
    +
    20 // Microsoft's terminal uses a different new line character for the return
    +
    21 // key. This also happens with linux with the `bind` command:
    +
    22 // See https://github.com/ArthurSonzogni/FTXUI/issues/337
    +
    23 // Here, we uniformize the new line character to `\n`.
    +
    24 {"\r", "\n"},
    +
    25
    +
    26 // See: https://github.com/ArthurSonzogni/FTXUI/issues/508
    +
    27 {std::string({8}), std::string({127})},
    +
    28
    +
    29 // See: https://github.com/ArthurSonzogni/FTXUI/issues/626
    +
    30 //
    +
    31 // Depending on the Cursor Key Mode (DECCKM), the terminal sends different
    +
    32 // escape sequences:
    +
    33 //
    +
    34 // Key Normal Application
    +
    35 // ----- -------- -----------
    +
    36 // Up ESC [ A ESC O A
    +
    37 // Down ESC [ B ESC O B
    +
    38 // Right ESC [ C ESC O C
    +
    39 // Left ESC [ D ESC O D
    +
    40 // Home ESC [ H ESC O H
    +
    41 // End ESC [ F ESC O F
    +
    42 //
    +
    43 {"\x1BOA", "\x1B[A"}, // UP
    +
    44 {"\x1BOB", "\x1B[B"}, // DOWN
    +
    45 {"\x1BOC", "\x1B[C"}, // RIGHT
    +
    46 {"\x1BOD", "\x1B[D"}, // LEFT
    +
    47 {"\x1BOH", "\x1B[H"}, // HOME
    +
    48 {"\x1BOF", "\x1B[F"}, // END
    +
    49
    +
    50 // Variations around the FN keys.
    +
    51 // Internally, we are using:
    +
    52 // vt220, xterm-vt200, xterm-xf86-v44, xterm-new, mgt, screen
    +
    53 // See: https://invisible-island.net/xterm/xterm-function-keys.html
    +
    54
    +
    55 // For linux OS console (CTRL+ALT+FN), who do not belong to any
    +
    56 // real standard.
    +
    57 // See: https://github.com/ArthurSonzogni/FTXUI/issues/685
    +
    58 {"\x1B[[A", "\x1BOP"}, // F1
    +
    59 {"\x1B[[B", "\x1BOQ"}, // F2
    +
    60 {"\x1B[[C", "\x1BOR"}, // F3
    +
    61 {"\x1B[[D", "\x1BOS"}, // F4
    +
    62 {"\x1B[[E", "\x1B[15~"}, // F5
    +
    63
    +
    64 // xterm-r5, xterm-r6, rxvt
    +
    65 {"\x1B[11~", "\x1BOP"}, // F1
    +
    66 {"\x1B[12~", "\x1BOQ"}, // F2
    +
    67 {"\x1B[13~", "\x1BOR"}, // F3
    +
    68 {"\x1B[14~", "\x1BOS"}, // F4
    +
    69
    +
    70 // vt100
    +
    71 {"\x1BOt", "\x1B[15~"}, // F5
    +
    72 {"\x1BOu", "\x1B[17~"}, // F6
    +
    73 {"\x1BOv", "\x1B[18~"}, // F7
    +
    74 {"\x1BOl", "\x1B[19~"}, // F8
    +
    75 {"\x1BOw", "\x1B[20~"}, // F9
    +
    76 {"\x1BOx", "\x1B[21~"}, // F10
    +
    77
    +
    78 // scoansi
    +
    79 {"\x1B[M", "\x1BOP"}, // F1
    +
    80 {"\x1B[N", "\x1BOQ"}, // F2
    +
    81 {"\x1B[O", "\x1BOR"}, // F3
    +
    82 {"\x1B[P", "\x1BOS"}, // F4
    +
    83 {"\x1B[Q", "\x1B[15~"}, // F5
    +
    84 {"\x1B[R", "\x1B[17~"}, // F6
    +
    85 {"\x1B[S", "\x1B[18~"}, // F7
    +
    86 {"\x1B[T", "\x1B[19~"}, // F8
    +
    87 {"\x1B[U", "\x1B[20~"}, // F9
    +
    88 {"\x1B[V", "\x1B[21~"}, // F10
    +
    89 {"\x1B[W", "\x1B[23~"}, // F11
    +
    90 {"\x1B[X", "\x1B[24~"}, // F12
    +
    91};
    +
    +
    92
    +
    + +
    94 : out_(std::move(out)) {}
    +
    +
    95
    +
    + +
    97 timeout_ += time;
    +
    98 const int timeout_threshold = 50;
    +
    99 if (timeout_ < timeout_threshold) {
    +
    100 return;
    +
    101 }
    +
    102 timeout_ = 0;
    +
    103 if (!pending_.empty()) {
    +
    104 Send(SPECIAL);
    +
    105 }
    +
    106}
    +
    +
    107
    +
    + +
    109 pending_ += c;
    +
    110 timeout_ = 0;
    +
    111 position_ = -1;
    +
    112 Send(Parse());
    +
    113}
    +
    +
    114
    +
    115unsigned char TerminalInputParser::Current() {
    +
    116 return pending_[position_];
    +
    117}
    +
    118
    +
    119bool TerminalInputParser::Eat() {
    +
    120 position_++;
    +
    121 return position_ < static_cast<int>(pending_.size());
    +
    122}
    +
    123
    +
    124void TerminalInputParser::Send(TerminalInputParser::Output output) {
    +
    125 switch (output.type) {
    +
    126 case UNCOMPLETED:
    +
    127 return;
    +
    128
    +
    129 case DROP:
    +
    130 pending_.clear();
    +
    131 return;
    +
    132
    +
    133 case CHARACTER:
    +
    134 out_(Event::Character(std::move(pending_)));
    +
    135 pending_.clear();
    +
    136 return;
    +
    137
    +
    138 case SPECIAL: {
    +
    139 auto it = g_uniformize.find(pending_);
    +
    140 if (it != g_uniformize.end()) {
    +
    141 pending_ = it->second;
    +
    142 }
    +
    143 out_(Event::Special(std::move(pending_)));
    +
    144 pending_.clear();
    +
    145 }
    +
    146 return;
    +
    147
    +
    148 case MOUSE:
    +
    149 out_(Event::Mouse(std::move(pending_), output.mouse)); // NOLINT
    +
    150 pending_.clear();
    +
    151 return;
    +
    152
    +
    153 case CURSOR_POSITION:
    +
    154 out_(Event::CursorPosition(std::move(pending_), // NOLINT
    +
    155 output.cursor.x, // NOLINT
    +
    156 output.cursor.y)); // NOLINT
    +
    157 pending_.clear();
    +
    158 return;
    +
    159
    +
    160 case CURSOR_SHAPE:
    +
    161 out_(Event::CursorShape(std::move(pending_), output.cursor_shape));
    +
    162 pending_.clear();
    +
    163 return;
    +
    164 }
    +
    165 // NOT_REACHED().
    +
    166}
    +
    167
    +
    168TerminalInputParser::Output TerminalInputParser::Parse() {
    +
    169 if (!Eat()) {
    +
    170 return UNCOMPLETED;
    +
    171 }
    +
    172
    +
    173 if (Current() == '\x1B') {
    +
    174 return ParseESC();
    +
    175 }
    +
    176
    +
    177 if (Current() < 32) { // C0 NOLINT
    +
    178 return SPECIAL;
    +
    179 }
    +
    180
    +
    181 if (Current() == 127) { // Delete // NOLINT
    +
    182 return SPECIAL;
    +
    183 }
    +
    184
    +
    185 return ParseUTF8();
    +
    186}
    +
    187
    +
    188// Code point <-> UTF-8 conversion
    +
    189//
    +
    190// ┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓
    +
    191// ┃Byte 1 ┃Byte 2 ┃Byte 3 ┃Byte 4 ┃
    +
    192// ┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━┩
    +
    193// │0xxxxxxx│ │ │ │
    +
    194// ├────────┼────────┼────────┼────────┤
    +
    195// │110xxxxx│10xxxxxx│ │ │
    +
    196// ├────────┼────────┼────────┼────────┤
    +
    197// │1110xxxx│10xxxxxx│10xxxxxx│ │
    +
    198// ├────────┼────────┼────────┼────────┤
    +
    199// │11110xxx│10xxxxxx│10xxxxxx│10xxxxxx│
    +
    200// └────────┴────────┴────────┴────────┘
    +
    201//
    +
    202// Then some sequences are illegal if it exist a shorter representation of the
    +
    203// same codepoint.
    +
    204TerminalInputParser::Output TerminalInputParser::ParseUTF8() {
    +
    205 auto head = Current();
    +
    206 unsigned char selector = 0b1000'0000; // NOLINT
    +
    207
    +
    208 // The non code-point part of the first byte.
    +
    209 unsigned char mask = selector;
    +
    210
    +
    211 // Find the first zero in the first byte.
    +
    212 unsigned int first_zero = 8; // NOLINT
    +
    213 for (unsigned int i = 0; i < 8; ++i) { // NOLINT
    +
    214 mask |= selector;
    +
    215 if (!(head & selector)) {
    +
    216 first_zero = i;
    +
    217 break;
    +
    218 }
    +
    219 selector >>= 1U;
    +
    220 }
    +
    221
    +
    222 // Accumulate the value of the first byte.
    +
    223 auto value = uint32_t(head & ~mask); // NOLINT
    +
    224
    +
    225 // Invalid UTF8, with more than 5 bytes.
    +
    226 const unsigned int max_utf8_bytes = 5;
    +
    227 if (first_zero == 1 || first_zero >= max_utf8_bytes) {
    +
    228 return DROP;
    +
    229 }
    +
    230
    +
    231 // Multi byte UTF-8.
    +
    232 for (unsigned int i = 2; i <= first_zero; ++i) {
    +
    233 if (!Eat()) {
    +
    234 return UNCOMPLETED;
    +
    235 }
    +
    236
    +
    237 // Invalid continuation byte.
    +
    238 head = Current();
    +
    239 if ((head & 0b1100'0000) != 0b1000'0000) { // NOLINT
    +
    240 return DROP;
    +
    241 }
    +
    242 value <<= 6; // NOLINT
    +
    243 value += head & 0b0011'1111; // NOLINT
    +
    244 }
    +
    245
    +
    246 // Check for overlong UTF8 encoding.
    +
    247 int extra_byte = 0;
    +
    248 if (value <= 0b000'0000'0111'1111) { // NOLINT
    +
    249 extra_byte = 0; // NOLINT
    +
    250 } else if (value <= 0b000'0111'1111'1111) { // NOLINT
    +
    251 extra_byte = 1; // NOLINT
    +
    252 } else if (value <= 0b1111'1111'1111'1111) { // NOLINT
    +
    253 extra_byte = 2; // NOLINT
    +
    254 } else if (value <= 0b1'0000'1111'1111'1111'1111) { // NOLINT
    +
    255 extra_byte = 3; // NOLINT
    +
    256 } else { // NOLINT
    +
    257 return DROP;
    +
    258 }
    +
    259
    +
    260 if (extra_byte != position_) {
    +
    261 return DROP;
    +
    262 }
    +
    263
    +
    264 return CHARACTER;
    +
    265}
    +
    266
    +
    267TerminalInputParser::Output TerminalInputParser::ParseESC() {
    +
    268 if (!Eat()) {
    +
    269 return UNCOMPLETED;
    +
    270 }
    +
    271 switch (Current()) {
    +
    272 case 'P':
    +
    273 return ParseDCS();
    +
    274 case '[':
    +
    275 return ParseCSI();
    +
    276 case ']':
    +
    277 return ParseOSC();
    +
    278
    +
    279 // Expecting 2 characters.
    +
    280 case ' ':
    +
    281 case '#':
    +
    282 case '%':
    +
    283 case '(':
    +
    284 case ')':
    +
    285 case '*':
    +
    286 case '+':
    +
    287 case 'O':
    +
    288 case 'N': {
    +
    289 if (!Eat()) {
    +
    290 return UNCOMPLETED;
    +
    291 }
    +
    292 return SPECIAL;
    +
    293 }
    +
    294 // Expecting 1 character:
    +
    295 default:
    +
    296 return SPECIAL;
    +
    297 }
    +
    298}
    +
    299
    +
    300// ESC P ... ESC BACKSLASH
    +
    301TerminalInputParser::Output TerminalInputParser::ParseDCS() {
    +
    302 // Parse until the string terminator ST.
    +
    303 while (true) {
    +
    304 if (!Eat()) {
    +
    305 return UNCOMPLETED;
    +
    306 }
    +
    307
    +
    308 if (Current() != '\x1B') {
    +
    309 continue;
    +
    310 }
    +
    311
    +
    312 if (!Eat()) {
    +
    313 return UNCOMPLETED;
    +
    314 }
    +
    315
    +
    316 if (Current() != '\\') {
    +
    317 continue;
    +
    318 }
    +
    319
    +
    320 if (pending_.size() == 10 && //
    +
    321 pending_[2] == '1' && //
    +
    322 pending_[3] == '$' && //
    +
    323 pending_[4] == 'r' && //
    +
    324 true) {
    +
    325 Output output(CURSOR_SHAPE);
    +
    326 output.cursor_shape = pending_[5] - '0';
    +
    327 return output;
    +
    328 }
    +
    329
    +
    330 return SPECIAL;
    +
    331 }
    +
    332}
    +
    333
    +
    334TerminalInputParser::Output TerminalInputParser::ParseCSI() {
    +
    335 bool altered = false;
    +
    336 int argument = 0;
    +
    337 std::vector<int> arguments;
    +
    338 while (true) {
    +
    339 if (!Eat()) {
    +
    340 return UNCOMPLETED;
    +
    341 }
    +
    342
    +
    343 if (Current() == '<') {
    +
    344 altered = true;
    +
    345 continue;
    +
    346 }
    +
    347
    +
    348 if (Current() >= '0' && Current() <= '9') {
    +
    349 argument *= 10; // NOLINT
    +
    350 argument += Current() - '0';
    +
    351 continue;
    +
    352 }
    +
    353
    +
    354 if (Current() == ';') {
    +
    355 arguments.push_back(argument);
    +
    356 argument = 0;
    +
    357 continue;
    +
    358 }
    +
    359
    +
    360 // CSI is terminated by a character in the range 0x40–0x7E
    +
    361 // (ASCII @A–Z[\]^_`a–z{|}~),
    +
    362 if (Current() >= '@' && Current() <= '~' &&
    +
    363 // Note: I don't remember why we exclude '<'
    +
    364 Current() != '<' &&
    +
    365 // To handle F1-F4, we exclude '['.
    +
    366 Current() != '[') {
    +
    367 arguments.push_back(argument);
    +
    368 argument = 0; // NOLINT
    +
    369
    +
    370 switch (Current()) {
    +
    371 case 'M':
    +
    372 return ParseMouse(altered, true, std::move(arguments));
    +
    373 case 'm':
    +
    374 return ParseMouse(altered, false, std::move(arguments));
    +
    375 case 'R':
    +
    376 return ParseCursorPosition(std::move(arguments));
    +
    377 default:
    +
    378 return SPECIAL;
    +
    379 }
    +
    380 }
    +
    381
    +
    382 // Invalid ESC in CSI.
    +
    383 if (Current() == '\x1B') {
    +
    384 return SPECIAL;
    +
    385 }
    +
    386 }
    +
    387}
    +
    388
    +
    389TerminalInputParser::Output TerminalInputParser::ParseOSC() {
    +
    390 // Parse until the string terminator ST.
    +
    391 while (true) {
    +
    392 if (!Eat()) {
    +
    393 return UNCOMPLETED;
    +
    394 }
    +
    395 if (Current() != '\x1B') {
    +
    396 continue;
    +
    397 }
    +
    398 if (!Eat()) {
    +
    399 return UNCOMPLETED;
    +
    400 }
    +
    401 if (Current() != '\\') {
    +
    402 continue;
    +
    403 }
    +
    404 return SPECIAL;
    +
    405 }
    +
    406}
    +
    407
    +
    408TerminalInputParser::Output TerminalInputParser::ParseMouse( // NOLINT
    +
    409 bool altered,
    +
    410 bool pressed,
    +
    411 std::vector<int> arguments) {
    +
    412 if (arguments.size() != 3) {
    +
    413 return SPECIAL;
    +
    414 }
    +
    415
    +
    416 (void)altered;
    +
    417
    +
    418 Output output(MOUSE);
    +
    419 output.mouse.motion = Mouse::Motion(pressed); // NOLINT
    +
    420
    +
    421 // Bits value Modifer Comment
    +
    422 // ---- ----- ------- ---------
    +
    423 // 0 1 1 2 button 0 = Left, 1 = Middle, 2 = Right, 3 = Release
    +
    424 // 2 4 Shift
    +
    425 // 3 8 Meta
    +
    426 // 4 16 Control
    +
    427 // 5 32 Move
    +
    428 // 6 64 Wheel
    +
    429
    +
    430 // clang-format off
    +
    431 const int button = arguments[0] & (1 + 2); // NOLINT
    +
    432 const bool is_shift = arguments[0] & 4; // NOLINT
    +
    433 const bool is_meta = arguments[0] & 8; // NOLINT
    +
    434 const bool is_control = arguments[0] & 16; // NOLINT
    +
    435 const bool is_move = arguments[0] & 32; // NOLINT
    +
    436 const bool is_wheel = arguments[0] & 64; // NOLINT
    +
    437 // clang-format on
    +
    438
    +
    439 output.mouse.motion = is_move ? Mouse::Moved : Mouse::Motion(pressed);
    +
    440 output.mouse.button = is_wheel ? Mouse::Button(Mouse::WheelUp + button) //
    +
    441 : Mouse::Button(button);
    +
    442 output.mouse.shift = is_shift;
    +
    443 output.mouse.meta = is_meta;
    +
    444 output.mouse.control = is_control;
    +
    445 output.mouse.x = arguments[1]; // NOLINT
    +
    446 output.mouse.y = arguments[2]; // NOLINT
    +
    447
    +
    448 // Motion event.
    +
    449 return output;
    +
    450}
    +
    451
    +
    452// NOLINTNEXTLINE
    +
    453TerminalInputParser::Output TerminalInputParser::ParseCursorPosition(
    +
    454 std::vector<int> arguments) {
    +
    455 if (arguments.size() != 2) {
    +
    456 return SPECIAL;
    +
    457 }
    +
    458 Output output(CURSOR_POSITION);
    +
    459 output.cursor.y = arguments[0]; // NOLINT
    +
    460 output.cursor.x = arguments[1]; // NOLINT
    +
    461 return output;
    +
    462}
    +
    463
    +
    464} // namespace ftxui
    + + +
    TerminalInputParser(std::function< void(Event)> out)
    + + + + + +
    static Event Special(std::string)
    An custom event whose meaning is defined by the user of the library.
    Definition event.cpp:74
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    const std::map< std::string, std::string > g_uniformize
    + + +
    +
    + + + + + diff --git a/terminal__input__parser_8hpp.html b/terminal__input__parser_8hpp.html new file mode 100644 index 000000000..b030b4e46 --- /dev/null +++ b/terminal__input__parser_8hpp.html @@ -0,0 +1,226 @@ + + + + + + + + +FTXUI: terminal_input_parser.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    terminal_input_parser.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Classes

    class  TerminalInputParser
     
    + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    +
    +
    + + + + + diff --git a/terminal__input__parser_8hpp.js b/terminal__input__parser_8hpp.js new file mode 100644 index 000000000..99afbf10d --- /dev/null +++ b/terminal__input__parser_8hpp.js @@ -0,0 +1,4 @@ +var terminal__input__parser_8hpp = +[ + [ "TerminalInputParser", "classftxui_1_1TerminalInputParser.html", "classftxui_1_1TerminalInputParser" ] +]; \ No newline at end of file diff --git a/terminal__input__parser_8hpp_source.html b/terminal__input__parser_8hpp_source.html new file mode 100644 index 000000000..3a9b773df --- /dev/null +++ b/terminal__input__parser_8hpp_source.html @@ -0,0 +1,291 @@ + + + + + + + + +FTXUI: terminal_input_parser.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    terminal_input_parser.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_COMPONENT_TERMINAL_INPUT_PARSER
    +
    5#define FTXUI_COMPONENT_TERMINAL_INPUT_PARSER
    +
    6
    +
    7#include <functional>
    +
    8#include <string> // for string
    +
    9#include <vector> // for vector
    +
    10
    +
    11#include "ftxui/component/mouse.hpp" // for Mouse
    +
    12
    +
    13namespace ftxui {
    +
    14struct Event;
    +
    15
    +
    16// Parse a sequence of |char| accross |time|. Produces |Event|.
    +
    + +
    18 public:
    +
    19 explicit TerminalInputParser(std::function<void(Event)> out);
    +
    20 void Timeout(int time);
    +
    21 void Add(char c);
    +
    22
    +
    23 private:
    +
    24 unsigned char Current();
    +
    25 bool Eat();
    +
    26
    +
    27 enum Type {
    +
    28 UNCOMPLETED,
    +
    29 DROP,
    +
    30 CHARACTER,
    +
    31 MOUSE,
    +
    32 CURSOR_POSITION,
    +
    33 CURSOR_SHAPE,
    +
    34 SPECIAL,
    +
    35 };
    +
    36
    +
    37 struct CursorPosition {
    +
    38 int x;
    +
    39 int y;
    +
    40 };
    +
    41
    +
    42 struct Output {
    +
    43 Type type;
    +
    44 union {
    +
    45 Mouse mouse;
    +
    46 CursorPosition cursor{};
    +
    47 int cursor_shape;
    +
    48 };
    +
    49
    +
    50 Output(Type t) // NOLINT
    +
    51 : type(t) {}
    +
    52 };
    +
    53
    +
    54 void Send(Output output);
    +
    55 Output Parse();
    +
    56 Output ParseUTF8();
    +
    57 Output ParseESC();
    +
    58 Output ParseDCS();
    +
    59 Output ParseCSI();
    +
    60 Output ParseOSC();
    +
    61 Output ParseMouse(bool altered, bool pressed, std::vector<int> arguments);
    +
    62 Output ParseCursorPosition(std::vector<int> arguments);
    +
    63
    +
    64 std::function<void(Event)> out_;
    +
    65 int position_ = -1;
    +
    66 int timeout_ = 0;
    +
    67 std::string pending_;
    +
    68};
    +
    +
    69
    +
    70} // namespace ftxui
    +
    71
    +
    72#endif /* end of include guard: FTXUI_COMPONENT_TERMINAL_INPUT_PARSER */
    + + + +
    TerminalInputParser(std::function< void(Event)> out)
    +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift,...
    Definition mouse.hpp:11
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    +
    + + + + + diff --git a/terminal__input__parser__test__fuzzer_8cpp.html b/terminal__input__parser__test__fuzzer_8cpp.html new file mode 100644 index 000000000..871d92c75 --- /dev/null +++ b/terminal__input__parser__test__fuzzer_8cpp.html @@ -0,0 +1,243 @@ + + + + + + + + +FTXUI: terminal_input_parser_test_fuzzer.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    terminal_input_parser_test_fuzzer.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int LLVMFuzzerTestOneInput (const char *data, size_t size)
     
    +

    Function Documentation

    + +

    ◆ LLVMFuzzerTestOneInput()

    + +
    +
    + + + + + + + + + + + +
    int LLVMFuzzerTestOneInput (const char * data,
    size_t size )
    +
    + +

    Definition at line 8 of file terminal_input_parser_test_fuzzer.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/terminal__input__parser__test__fuzzer_8cpp.js b/terminal__input__parser__test__fuzzer_8cpp.js new file mode 100644 index 000000000..f287ddaaf --- /dev/null +++ b/terminal__input__parser__test__fuzzer_8cpp.js @@ -0,0 +1,4 @@ +var terminal__input__parser__test__fuzzer_8cpp = +[ + [ "LLVMFuzzerTestOneInput", "terminal__input__parser__test__fuzzer_8cpp.html#af5589fffd86439465eeb19c9774d1982", null ] +]; \ No newline at end of file diff --git a/terminal__input__parser__test__fuzzer_8cpp_source.html b/terminal__input__parser__test__fuzzer_8cpp_source.html new file mode 100644 index 000000000..15a0b037e --- /dev/null +++ b/terminal__input__parser__test__fuzzer_8cpp_source.html @@ -0,0 +1,233 @@ + + + + + + + + +FTXUI: terminal_input_parser_test_fuzzer.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    terminal_input_parser_test_fuzzer.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2021 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <cstddef>
    + + +
    7
    +
    +
    8extern "C" int LLVMFuzzerTestOneInput(const char* data, size_t size) {
    +
    9 using namespace ftxui;
    +
    10 auto parser = TerminalInputParser([&](Event) {});
    +
    11 for (size_t i = 0; i < size; ++i) {
    +
    12 parser.Add(data[i]);
    +
    13 }
    +
    14
    +
    15 return 0; // Non-zero return values are reserved for future use.
    +
    16}
    +
    + + +
    Represent an event. It can be key press event, a terminal resize, or more ...
    Definition event.hpp:29
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    int LLVMFuzzerTestOneInput(const char *data, size_t size)
    +
    +
    + + + + + diff --git a/text_8cpp.html b/text_8cpp.html new file mode 100644 index 000000000..9534752f7 --- /dev/null +++ b/text_8cpp.html @@ -0,0 +1,236 @@ + + + + + + + + +FTXUI: text.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    text.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + + + + + + + + + + +

    +Functions

    Element text (std::string text)
     Display a piece of UTF8 encoded unicode text.
     
    Element text (std::wstring text)
     Display a piece of unicode text.
     
    Element vtext (std::string text)
     Display a piece of unicode text vertically.
     
    Element vtext (std::wstring text)
     Display a piece unicode text vertically.
     
    +
    +
    + + + + + diff --git a/text_8cpp.js b/text_8cpp.js new file mode 100644 index 000000000..3c87e01d0 --- /dev/null +++ b/text_8cpp.js @@ -0,0 +1,7 @@ +var text_8cpp = +[ + [ "text", "text_8cpp.html#ga366051704fd333c23460f7932598a5e3", null ], + [ "text", "text_8cpp.html#ga75baaa2734ed76a9f478beaafa87ae57", null ], + [ "vtext", "text_8cpp.html#ga64172a43b4b526afeb6313e6e1a6d5a1", null ], + [ "vtext", "text_8cpp.html#ga9f9f7485a45aa9d432726ca9845d1eac", null ] +]; \ No newline at end of file diff --git a/text_8cpp_source.html b/text_8cpp_source.html new file mode 100644 index 000000000..3529f7c97 --- /dev/null +++ b/text_8cpp_source.html @@ -0,0 +1,460 @@ + + + + + + + + +FTXUI: text.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    text.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for min
    +
    5#include <memory> // for make_shared
    +
    6#include <sstream>
    +
    7#include <string> // for string, wstring
    +
    8#include <utility> // for move
    +
    9
    +
    10#include "ftxui/dom/deprecated.hpp" // for text, vtext
    +
    11#include "ftxui/dom/elements.hpp" // for Element, text, vtext
    +
    12#include "ftxui/dom/node.hpp" // for Node
    +
    13#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    14#include "ftxui/dom/selection.hpp" // for Selection
    +
    15#include "ftxui/screen/box.hpp" // for Box
    +
    16#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    17#include "ftxui/screen/string.hpp" // for string_width, Utf8ToGlyphs, to_string
    +
    18
    +
    19namespace ftxui {
    +
    20
    +
    21namespace {
    +
    22using ftxui::Screen;
    +
    23
    +
    24class Text : public Node {
    +
    25 public:
    +
    26 explicit Text(std::string text) : text_(std::move(text)) {}
    +
    27
    +
    28 void ComputeRequirement() override {
    +
    29 requirement_.min_x = string_width(text_);
    +
    30 requirement_.min_y = 1;
    +
    31 has_selection = false;
    +
    32 }
    +
    33
    +
    34 void Select(Selection& selection) override {
    +
    35 if (Box::Intersection(selection.GetBox(), box_).IsEmpty()) {
    +
    36 return;
    +
    37 }
    +
    38
    +
    39 const Selection selection_saturated = selection.SaturateHorizontal(box_);
    +
    40
    +
    41 has_selection = true;
    +
    42 selection_start_ = selection_saturated.GetBox().x_min;
    +
    43 selection_end_ = selection_saturated.GetBox().x_max;
    +
    44
    +
    45 std::stringstream ss;
    +
    46 int x = box_.x_min;
    +
    47 for (const auto& cell : Utf8ToGlyphs(text_)) {
    +
    48 if (cell == "\n") {
    +
    49 continue;
    +
    50 }
    +
    51 if (selection_start_ <= x && x <= selection_end_) {
    +
    52 ss << cell;
    +
    53 }
    +
    54 x++;
    +
    55 }
    +
    56 selection.AddPart(ss.str(), box_.y_min, selection_start_, selection_end_);
    +
    57 }
    +
    58
    +
    59 void Render(Screen& screen) override {
    +
    60 int x = box_.x_min;
    +
    61 const int y = box_.y_min;
    +
    62
    +
    63 if (y > box_.y_max) {
    +
    64 return;
    +
    65 }
    +
    66
    +
    67 for (const auto& cell : Utf8ToGlyphs(text_)) {
    +
    68 if (x > box_.x_max) {
    +
    69 break;
    +
    70 }
    +
    71 if (cell == "\n") {
    +
    72 continue;
    +
    73 }
    +
    74 screen.PixelAt(x, y).character = cell;
    +
    75
    +
    76 if (has_selection) {
    +
    77 auto selectionTransform = screen.GetSelectionStyle();
    +
    78 if ((x >= selection_start_) && (x <= selection_end_)) {
    +
    79 selectionTransform(screen.PixelAt(x, y));
    +
    80 }
    +
    81 }
    +
    82
    +
    83 ++x;
    +
    84 }
    +
    85 }
    +
    86
    +
    87 private:
    +
    88 std::string text_;
    +
    89 bool has_selection = false;
    +
    90 int selection_start_ = 0;
    +
    91 int selection_end_ = -1;
    +
    92};
    +
    93
    +
    94class VText : public Node {
    +
    95 public:
    +
    96 explicit VText(std::string text)
    +
    97 : text_(std::move(text)), width_{std::min(string_width(text_), 1)} {}
    +
    98
    +
    99 void ComputeRequirement() override {
    +
    100 requirement_.min_x = width_;
    +
    101 requirement_.min_y = string_width(text_);
    +
    102 }
    +
    103
    +
    104 void Render(Screen& screen) override {
    +
    105 const int x = box_.x_min;
    +
    106 int y = box_.y_min;
    +
    107 if (x + width_ - 1 > box_.x_max) {
    +
    108 return;
    +
    109 }
    +
    110 for (const auto& it : Utf8ToGlyphs(text_)) {
    +
    111 if (y > box_.y_max) {
    +
    112 return;
    +
    113 }
    +
    114 screen.PixelAt(x, y).character = it;
    +
    115 y += 1;
    +
    116 }
    +
    117 }
    +
    118
    +
    119 private:
    +
    120 std::string text_;
    +
    121 int width_ = 1;
    +
    122};
    +
    123
    +
    124} // namespace
    +
    125
    +
    126/// @brief Display a piece of UTF8 encoded unicode text.
    +
    127/// @ingroup dom
    +
    128/// @see ftxui::to_wstring
    +
    129///
    +
    130/// ### Example
    +
    131///
    +
    132/// ```cpp
    +
    133/// Element document = text("Hello world!");
    +
    134/// ```
    +
    135///
    +
    136/// ### Output
    +
    137///
    +
    138/// ```bash
    +
    139/// Hello world!
    +
    140/// ```
    +
    +
    141Element text(std::string text) {
    +
    142 return std::make_shared<Text>(std::move(text));
    +
    143}
    +
    +
    144
    +
    145/// @brief Display a piece of unicode text.
    +
    146/// @ingroup dom
    +
    147/// @see ftxui::to_wstring
    +
    148///
    +
    149/// ### Example
    +
    150///
    +
    151/// ```cpp
    +
    152/// Element document = text(L"Hello world!");
    +
    153/// ```
    +
    154///
    +
    155/// ### Output
    +
    156///
    +
    157/// ```bash
    +
    158/// Hello world!
    +
    159/// ```
    +
    +
    160Element text(std::wstring text) { // NOLINT
    +
    161 return std::make_shared<Text>(to_string(text));
    +
    162}
    +
    +
    163
    +
    164/// @brief Display a piece of unicode text vertically.
    +
    165/// @ingroup dom
    +
    166/// @see ftxui::to_wstring
    +
    167///
    +
    168/// ### Example
    +
    169///
    +
    170/// ```cpp
    +
    171/// Element document = vtext("Hello world!");
    +
    172/// ```
    +
    173///
    +
    174/// ### Output
    +
    175///
    +
    176/// ```bash
    +
    177/// H
    +
    178/// e
    +
    179/// l
    +
    180/// l
    +
    181/// o
    +
    182///
    +
    183/// w
    +
    184/// o
    +
    185/// r
    +
    186/// l
    +
    187/// d
    +
    188/// !
    +
    189/// ```
    +
    +
    190Element vtext(std::string text) {
    +
    191 return std::make_shared<VText>(std::move(text));
    +
    192}
    +
    +
    193
    +
    194/// @brief Display a piece unicode text vertically.
    +
    195/// @ingroup dom
    +
    196/// @see ftxui::to_wstring
    +
    197///
    +
    198/// ### Example
    +
    199///
    +
    200/// ```cpp
    +
    201/// Element document = vtext(L"Hello world!");
    +
    202/// ```
    +
    203///
    +
    204/// ### Output
    +
    205///
    +
    206/// ```bash
    +
    207/// H
    +
    208/// e
    +
    209/// l
    +
    210/// l
    +
    211/// o
    +
    212///
    +
    213/// w
    +
    214/// o
    +
    215/// r
    +
    216/// l
    +
    217/// d
    +
    218/// !
    +
    219/// ```
    +
    +
    220Element vtext(std::wstring text) { // NOLINT
    +
    221 return std::make_shared<VText>(to_string(text));
    +
    222}
    +
    +
    223
    +
    224} // namespace ftxui
    + + + +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element vtext(std::wstring text)
    Display a piece unicode text vertically.
    Definition text.cpp:220
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< std::string > Utf8ToGlyphs(const std::string &input)
    Definition string.cpp:1358
    +
    int string_width(const std::string &)
    Definition string.cpp:1331
    +
    std::string to_string(const std::wstring &s)
    Convert a std::wstring into a UTF8 std::string.
    Definition string.cpp:1566
    + + + + + +
    +
    + + + + + diff --git a/textarea_8cpp.html b/textarea_8cpp.html new file mode 100644 index 000000000..ee55dc017 --- /dev/null +++ b/textarea_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: textarea.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    textarea.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 13 of file textarea.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/textarea_8cpp.js b/textarea_8cpp.js new file mode 100644 index 000000000..896e697cf --- /dev/null +++ b/textarea_8cpp.js @@ -0,0 +1,4 @@ +var textarea_8cpp = +[ + [ "main", "textarea_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/textarea_8cpp_source.html b/textarea_8cpp_source.html new file mode 100644 index 000000000..87f058c17 --- /dev/null +++ b/textarea_8cpp_source.html @@ -0,0 +1,252 @@ + + + + + + + + +FTXUI: textarea.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    textarea.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, __shared_ptr_access, shared_ptr
    +
    5#include <string> // for string
    +
    6
    +
    7#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    8#include "ftxui/component/component.hpp" // for Input, Renderer, ResizableSplitLeft
    +
    9#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
    +
    10#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    11#include "ftxui/dom/elements.hpp" // for operator|, separator, text, Element, flex, vbox, border
    +
    12
    +
    +
    13int main() {
    +
    14 using namespace ftxui;
    +
    15
    +
    16 std::string content_1;
    +
    17 std::string content_2;
    +
    18 auto textarea_1 = Input(&content_1);
    +
    19 auto textarea_2 = Input(&content_2);
    +
    20 int size = 50;
    +
    21 auto layout = ResizableSplitLeft(textarea_1, textarea_2, &size);
    +
    22
    +
    23 auto component = Renderer(layout, [&] {
    +
    24 return vbox({
    +
    25 text("Input:"),
    +
    26 separator(),
    +
    27 layout->Render() | flex,
    +
    28 }) |
    +
    29 border;
    +
    30 });
    +
    31
    +
    32 auto screen = ScreenInteractive::Fullscreen();
    +
    33 screen.Loop(component);
    +
    34}
    +
    + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    int main()
    Definition textarea.cpp:13
    +
    +
    + + + + + diff --git a/todo.html b/todo.html new file mode 100644 index 000000000..2bab21c58 --- /dev/null +++ b/todo.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Todo List + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Todo List
    +
    +
    +
    +
    Page Conan
    +

    Add instructions on how to use the conan recipe.

    +

    Please consider adding an "official" recipe to Conan Center if know how. It could be a github action that will automatically update the conan center when a new release is made.

    +
    +
    +
    +
    +
    + + + + + diff --git a/toggle_8cpp.html b/toggle_8cpp.html new file mode 100644 index 000000000..84ee85513 --- /dev/null +++ b/toggle_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: toggle.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    toggle.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 16 of file toggle.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/toggle_8cpp.js b/toggle_8cpp.js new file mode 100644 index 000000000..80fc46ee9 --- /dev/null +++ b/toggle_8cpp.js @@ -0,0 +1,4 @@ +var toggle_8cpp = +[ + [ "main", "toggle_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/toggle_8cpp_source.html b/toggle_8cpp_source.html new file mode 100644 index 000000000..25a0fdeb1 --- /dev/null +++ b/toggle_8cpp_source.html @@ -0,0 +1,291 @@ + + + + + + + + +FTXUI: toggle.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    toggle.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for allocator, __shared_ptr_access
    +
    5#include <string> // for string, basic_string
    +
    6#include <vector> // for vector
    +
    7
    +
    8#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    9#include "ftxui/component/component.hpp" // for Toggle, Renderer, Vertical
    +
    10#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    11#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
    +
    12#include "ftxui/dom/elements.hpp" // for text, hbox, vbox, Element
    +
    13
    +
    14using namespace ftxui;
    +
    15
    +
    +
    16int main() {
    +
    17 std::vector<std::string> toggle_1_entries = {
    +
    18 "On",
    +
    19 "Off",
    +
    20 };
    +
    21 std::vector<std::string> toggle_2_entries = {
    +
    22 "Enabled",
    +
    23 "Disabled",
    +
    24 };
    +
    25 std::vector<std::string> toggle_3_entries = {
    +
    26 "10€",
    +
    27 "0€",
    +
    28 };
    +
    29 std::vector<std::string> toggle_4_entries = {
    +
    30 "Nothing",
    +
    31 "One element",
    +
    32 "Several elements",
    +
    33 };
    +
    34
    +
    35 int toggle_1_selected = 0;
    +
    36 int toggle_2_selected = 0;
    +
    37 int toggle_3_selected = 0;
    +
    38 int toggle_4_selected = 0;
    +
    39 Component toggle_1 = Toggle(&toggle_1_entries, &toggle_1_selected);
    +
    40 Component toggle_2 = Toggle(&toggle_2_entries, &toggle_2_selected);
    +
    41 Component toggle_3 = Toggle(&toggle_3_entries, &toggle_3_selected);
    +
    42 Component toggle_4 = Toggle(&toggle_4_entries, &toggle_4_selected);
    +
    43
    +
    44 auto container = Container::Vertical({
    +
    45 toggle_1,
    +
    46 toggle_2,
    +
    47 toggle_3,
    +
    48 toggle_4,
    +
    49 });
    +
    50
    +
    51 auto renderer = Renderer(container, [&] {
    +
    52 return vbox({
    +
    53 text("Choose your options:"),
    +
    54 text(""),
    +
    55 hbox(text(" * Poweroff on startup : "), toggle_1->Render()),
    +
    56 hbox(text(" * Out of process : "), toggle_2->Render()),
    +
    57 hbox(text(" * Price of the information : "), toggle_3->Render()),
    +
    58 hbox(text(" * Number of elements : "), toggle_4->Render()),
    +
    59 });
    +
    60 });
    +
    61
    + +
    63 screen.Loop(renderer);
    +
    64}
    +
    + + + + +
    static ScreenInteractive TerminalOutput()
    +
    Element Render()
    Draw the component. Build a ftxui::Element to be drawn on the ftxui::Screen representing this ftxui::...
    +
    Component Toggle(ConstStringListRef entries, int *selected)
    An horizontal list of elements. The user can navigate through them.
    +
    Component Renderer(Component child, std::function< Element()>)
    Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
    +
    Component Vertical(Components children)
    A list of components, drawn one by one vertically and navigated vertically using up/down arrow key or...
    +
    Element text(std::wstring text)
    Display a piece of unicode text.
    Definition text.cpp:160
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    Element hbox(Elements)
    A container displaying elements horizontally one by one.
    Definition hbox.cpp:94
    +
    std::shared_ptr< ComponentBase > Component
    + +
    int main()
    Definition toggle.cpp:16
    +
    +
    + + + + + diff --git a/topics.html b/topics.html new file mode 100644 index 000000000..7456e2dd8 --- /dev/null +++ b/topics.html @@ -0,0 +1,215 @@ + + + + + + + + +FTXUI: Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Reference
    +
    +
    +
    Here is a list of all topics with brief descriptions:
    +
    +
    + + + + + diff --git a/topics.js b/topics.js new file mode 100644 index 000000000..b72621278 --- /dev/null +++ b/topics.js @@ -0,0 +1,6 @@ +var topics = +[ + [ "ftxui/screen", "group__screen.html", "group__screen" ], + [ "ftxui/dom", "group__dom.html", "group__dom" ], + [ "ftxui/component", "group__component.html", "group__component" ] +]; \ No newline at end of file diff --git a/underlined_8cpp.html b/underlined_8cpp.html new file mode 100644 index 000000000..01513d0ff --- /dev/null +++ b/underlined_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: underlined.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    underlined.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element underlined (Element child)
     Underline the given element.
     
    +
    +
    + + + + + diff --git a/underlined_8cpp.js b/underlined_8cpp.js new file mode 100644 index 000000000..6e58ff176 --- /dev/null +++ b/underlined_8cpp.js @@ -0,0 +1,4 @@ +var underlined_8cpp = +[ + [ "underlined", "underlined_8cpp.html#ga5ad450c97c4d084b64ffb5b5ca942664", null ] +]; \ No newline at end of file diff --git a/underlined_8cpp_source.html b/underlined_8cpp_source.html new file mode 100644 index 000000000..c7677e1f0 --- /dev/null +++ b/underlined_8cpp_source.html @@ -0,0 +1,259 @@ + + + + + + + + +FTXUI: underlined.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    underlined.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, underlined
    +
    8#include "ftxui/dom/node.hpp" // for Node
    +
    9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15namespace {
    +
    16class Underlined : public NodeDecorator {
    +
    17 public:
    + +
    19
    +
    20 void Render(Screen& screen) override {
    +
    21 Node::Render(screen);
    +
    22 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    23 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    24 screen.PixelAt(x, y).underlined = true;
    +
    25 }
    +
    26 }
    +
    27 }
    +
    28};
    +
    29} // namespace
    +
    30
    +
    31/// @brief Underline the given element.
    +
    32/// @ingroup dom
    +
    + +
    34 return std::make_shared<Underlined>(std::move(child));
    +
    35}
    +
    +
    36
    +
    37} // namespace ftxui
    + +
    NodeDecorator(Element child)
    + +
    friend void Render(Screen &screen, Node *node, Selection &selection)
    Definition node.cpp:96
    +
    Element underlined(Element)
    Underline the given element.
    +
    void Render(Screen &screen, const Element &element)
    Display an element on a ftxui::Screen.
    Definition node.cpp:84
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    +
    + + + + + diff --git a/underlined__double_8cpp.html b/underlined__double_8cpp.html new file mode 100644 index 000000000..6671600f8 --- /dev/null +++ b/underlined__double_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: underlined_double.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    underlined_double.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element underlinedDouble (Element child)
     Apply a underlinedDouble to text.
     
    +
    +
    + + + + + diff --git a/underlined__double_8cpp.js b/underlined__double_8cpp.js new file mode 100644 index 000000000..53f7d20c5 --- /dev/null +++ b/underlined__double_8cpp.js @@ -0,0 +1,4 @@ +var underlined__double_8cpp = +[ + [ "underlinedDouble", "underlined__double_8cpp.html#ga16d1b74107610750276499ddb3dde8da", null ] +]; \ No newline at end of file diff --git a/underlined__double_8cpp_source.html b/underlined__double_8cpp_source.html new file mode 100644 index 000000000..faaed3520 --- /dev/null +++ b/underlined__double_8cpp_source.html @@ -0,0 +1,258 @@ + + + + + + + + +FTXUI: underlined_double.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    underlined_double.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2023 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <memory> // for make_shared
    +
    5#include <utility> // for move
    +
    6
    +
    7#include "ftxui/dom/elements.hpp" // for Element, underlinedDouble
    +
    8#include "ftxui/dom/node.hpp" // for Node
    +
    9#include "ftxui/dom/node_decorator.hpp" // for NodeDecorator
    +
    10#include "ftxui/screen/box.hpp" // for Box
    +
    11#include "ftxui/screen/screen.hpp" // for Pixel, Screen
    +
    12
    +
    13namespace ftxui {
    +
    14
    +
    15/// @brief Apply a underlinedDouble to text.
    +
    16/// @ingroup dom
    +
    + +
    18 class Impl : public NodeDecorator {
    +
    19 public:
    +
    20 using NodeDecorator::NodeDecorator;
    +
    21
    +
    22 void Render(Screen& screen) override {
    +
    23 for (int y = box_.y_min; y <= box_.y_max; ++y) {
    +
    24 for (int x = box_.x_min; x <= box_.x_max; ++x) {
    +
    25 screen.PixelAt(x, y).underlined_double = true;
    +
    26 }
    +
    27 }
    +
    28 Node::Render(screen);
    +
    29 }
    +
    30 };
    +
    31
    +
    32 return std::make_shared<Impl>(std::move(child));
    +
    33}
    +
    +
    34
    +
    35} // namespace ftxui
    + + + +
    Element underlinedDouble(Element)
    Apply a underlinedDouble to text.
    +
    Pixel & PixelAt(int x, int y)
    Access a cell (Pixel) at a given position.
    Definition image.cpp:43
    +
    bool underlined_double
    Definition pixel.hpp:34
    +
    A rectangular grid of Pixel.
    Definition screen.hpp:26
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    + + + +
    +
    + + + + + diff --git a/util_8cppm.html b/util_8cppm.html new file mode 100644 index 000000000..1fe40972e --- /dev/null +++ b/util_8cppm.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: util.cppm File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    util.cppm File Reference
    module ftxui.util
    +
    + +
    + + + + + diff --git a/util_8cppm_source.html b/util_8cppm_source.html new file mode 100644 index 000000000..3cd55018c --- /dev/null +++ b/util_8cppm_source.html @@ -0,0 +1,219 @@ + + + + + + + + +FTXUI: util.cppm Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    util.cppm
    +
    +
    +Go to the documentation of this file.
    1/// @module ftxui.util
    +
    2/// @brief Module file for FTXUI utility operations.
    +
    3
    +
    4export module ftxui.util;
    +
    5
    +
    6export import ftxui.util.autoreset;
    +
    7export import ftxui.util.ref;
    +
    Module file for the AutoReset class of the Util module.
    +
    Module file for the Ref classes of the Util module.
    +
    Module file for FTXUI utility operations.
    +
    +
    + + + + + diff --git a/util_8hpp.html b/util_8hpp.html new file mode 100644 index 000000000..9d030af17 --- /dev/null +++ b/util_8hpp.html @@ -0,0 +1,229 @@ + + + + + + + + +FTXUI: util.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    util.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    namespace  ftxui::util
     
    + + + + +

    +Functions

    template<class T >
    constexpr const T & clamp (const T &v, const T &lo, const T &hi)
     
    +
    +
    + + + + + diff --git a/util_8hpp.js b/util_8hpp.js new file mode 100644 index 000000000..f40b55906 --- /dev/null +++ b/util_8hpp.js @@ -0,0 +1,4 @@ +var util_8hpp = +[ + [ "clamp", "util_8hpp.html#aab9f0232e41c960b4a09629eac33aef3", null ] +]; \ No newline at end of file diff --git a/util_8hpp_source.html b/util_8hpp_source.html new file mode 100644 index 000000000..63b6c119c --- /dev/null +++ b/util_8hpp_source.html @@ -0,0 +1,232 @@ + + + + + + + + +FTXUI: util.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    util.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#ifndef FTXUI_SCREEN_UTIL_HPP
    +
    5#define FTXUI_SCREEN_UTIL_HPP
    +
    6
    +
    +
    7namespace ftxui::util {
    +
    8
    +
    9// Similar to std::clamp, but allow hi to be lower than lo.
    +
    10template <class T>
    +
    +
    11constexpr const T& clamp(const T& v, const T& lo, const T& hi) {
    +
    12 return v < lo ? lo : hi < v ? hi : v;
    +
    13}
    +
    +
    14
    +
    15} // namespace ftxui::util
    +
    +
    16
    +
    17#endif /* end of include guard: FTXUI_SCREEN_UTIL_HPP */
    + +
    constexpr const T & clamp(const T &v, const T &lo, const T &hi)
    Definition util.hpp:11
    +
    +
    + + + + + diff --git a/vbox_8cpp.html b/vbox_8cpp.html new file mode 100644 index 000000000..594a6452b --- /dev/null +++ b/vbox_8cpp.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: vbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    vbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + +

    +Namespaces

    namespace  ftxui
     The FTXUI ftxui:: namespace.
     
    + + + + +

    +Functions

    Element vbox (Elements children)
     A container displaying elements vertically one by one.
     
    +
    +
    + + + + + diff --git a/vbox_8cpp.js b/vbox_8cpp.js new file mode 100644 index 000000000..f7269e587 --- /dev/null +++ b/vbox_8cpp.js @@ -0,0 +1,4 @@ +var vbox_8cpp = +[ + [ "vbox", "vbox_8cpp.html#gafd28058f0ccbbdf34691a85a7cc9b2e3", null ] +]; \ No newline at end of file diff --git a/vbox_8cpp_source.html b/vbox_8cpp_source.html new file mode 100644 index 000000000..c75875d6c --- /dev/null +++ b/vbox_8cpp_source.html @@ -0,0 +1,324 @@ + + + + + + + + +FTXUI: vbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    vbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <algorithm> // for max
    +
    5#include <cstddef> // for size_t
    +
    6#include <memory> // for __shared_ptr_access, shared_ptr, make_shared, allocator_traits<>::value_type
    +
    7#include <utility> // for move
    +
    8#include <vector> // for vector, __alloc_traits<>::value_type
    +
    9
    +
    10#include "ftxui/dom/box_helper.hpp" // for Element, Compute
    +
    11#include "ftxui/dom/elements.hpp" // for Element, Elements, vbox
    +
    12#include "ftxui/dom/node.hpp" // for Node, Elements
    +
    13#include "ftxui/dom/requirement.hpp" // for Requirement
    +
    14#include "ftxui/dom/selection.hpp" // for Selection
    +
    15#include "ftxui/screen/box.hpp" // for Box
    +
    16
    +
    17namespace ftxui {
    +
    18
    +
    19namespace {
    +
    20class VBox : public Node {
    +
    21 public:
    +
    22 explicit VBox(Elements children) : Node(std::move(children)) {}
    +
    23
    +
    24 private:
    +
    25 void ComputeRequirement() override {
    +
    26 requirement_ = Requirement{};
    +
    27
    +
    28 for (auto& child : children_) {
    +
    29 child->ComputeRequirement();
    +
    30
    +
    31 // Propagate the focused requirement.
    +
    32 if (requirement_.focused.Prefer(child->requirement().focused)) {
    +
    33 requirement_.focused = child->requirement().focused;
    +
    34 requirement_.focused.box.Shift(0, requirement_.min_y);
    +
    35 }
    +
    36
    +
    37 // Extend the min_x and min_y to contain all the children
    +
    38 requirement_.min_y += child->requirement().min_y;
    +
    39 requirement_.min_x =
    +
    40 std::max(requirement_.min_x, child->requirement().min_x);
    +
    41 }
    +
    42 }
    +
    43
    +
    44 void SetBox(Box box) override {
    +
    45 Node::SetBox(box);
    +
    46
    +
    47 std::vector<box_helper::Element> elements(children_.size());
    +
    48 for (size_t i = 0; i < children_.size(); ++i) {
    +
    49 auto& element = elements[i];
    +
    50 const auto& requirement = children_[i]->requirement();
    +
    51 element.min_size = requirement.min_y;
    +
    52 element.flex_grow = requirement.flex_grow_y;
    +
    53 element.flex_shrink = requirement.flex_shrink_y;
    +
    54 }
    +
    55 const int target_size = box.y_max - box.y_min + 1;
    +
    56 box_helper::Compute(&elements, target_size);
    +
    57
    +
    58 int y = box.y_min;
    +
    59 for (size_t i = 0; i < children_.size(); ++i) {
    +
    60 box.y_min = y;
    +
    61 box.y_max = y + elements[i].size - 1;
    +
    62 children_[i]->SetBox(box);
    +
    63 y = box.y_max + 1;
    +
    64 }
    +
    65 }
    +
    66
    +
    67 void Select(Selection& selection) override {
    +
    68 // If this Node box_ doesn't intersect with the selection, then no
    +
    69 // selection.
    +
    70 if (Box::Intersection(selection.GetBox(), box_).IsEmpty()) {
    +
    71 return;
    +
    72 }
    +
    73
    +
    74 Selection selection_saturated = selection.SaturateVertical(box_);
    +
    75
    +
    76 for (auto& child : children_) {
    +
    77 child->Select(selection_saturated);
    +
    78 }
    +
    79 }
    +
    80};
    +
    81} // namespace
    +
    82
    +
    83/// @brief A container displaying elements vertically one by one.
    +
    84/// @param children The elements in the container
    +
    85/// @return The container.
    +
    86/// @ingroup dom
    +
    87///
    +
    88/// #### Example
    +
    89///
    +
    90/// ```cpp
    +
    91/// vbox({
    +
    92/// text("Up"),
    +
    93/// text("Down"),
    +
    94/// });
    +
    95/// ```
    +
    + +
    97 return std::make_shared<VBox>(std::move(children));
    +
    98}
    +
    +
    99
    +
    100} // namespace ftxui
    + + + +
    virtual void SetBox(Box box)
    Assign a position and a dimension to an element for drawing.
    Definition node.cpp:41
    +
    Element vbox(Elements)
    A container displaying elements vertically one by one.
    Definition vbox.cpp:96
    +
    static auto Intersection(Box a, Box b) -> Box
    Definition box.cpp:11
    +
    void Compute(std::vector< Element > *elements, int target_size)
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    +
    std::shared_ptr< Node > Element
    Definition elements.hpp:22
    +
    std::vector< Element > Elements
    Definition elements.hpp:23
    + + + +
    +
    + + + + + diff --git a/vbox__hbox_8cpp.html b/vbox__hbox_8cpp.html new file mode 100644 index 000000000..480717971 --- /dev/null +++ b/vbox__hbox_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: vbox_hbox.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    vbox_hbox.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file vbox_hbox.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/vbox__hbox_8cpp.js b/vbox__hbox_8cpp.js new file mode 100644 index 000000000..e18ca7187 --- /dev/null +++ b/vbox__hbox_8cpp.js @@ -0,0 +1,4 @@ +var vbox__hbox_8cpp = +[ + [ "main", "vbox__hbox_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/vbox__hbox_8cpp_source.html b/vbox__hbox_8cpp_source.html new file mode 100644 index 000000000..79b686d16 --- /dev/null +++ b/vbox__hbox_8cpp_source.html @@ -0,0 +1,257 @@ + + + + + + + + +FTXUI: vbox_hbox.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    vbox_hbox.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdio.h> // for getchar
    +
    5#include <ftxui/dom/elements.hpp> // for filler, text, hbox, vbox
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <memory> // for allocator
    +
    8
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto document = //
    +
    15 vbox({
    +
    16 hbox({
    +
    17 text("north-west"),
    +
    18 filler(),
    +
    19 text("north-east"),
    +
    20 }),
    +
    21 filler(),
    +
    22 hbox({
    +
    23 filler(),
    +
    24 text("center"),
    +
    25 filler(),
    +
    26 }),
    +
    27 filler(),
    +
    28 hbox({
    +
    29 text("south-west"),
    +
    30 filler(),
    +
    31 text("south-east"),
    +
    32 }),
    +
    33 });
    +
    34 auto screen = Screen::Create(Dimension::Full());
    +
    35 Render(screen, document);
    +
    36 screen.Print();
    +
    37 getchar();
    +
    38
    +
    39 return 0;
    +
    40}
    +
    + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    Definition vbox_hbox.cpp:12
    +
    +
    + + + + + diff --git a/vflow_8cpp.html b/vflow_8cpp.html new file mode 100644 index 000000000..cd6b419a9 --- /dev/null +++ b/vflow_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: vflow.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    vflow.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 12 of file vflow.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/vflow_8cpp.js b/vflow_8cpp.js new file mode 100644 index 000000000..f3c07095b --- /dev/null +++ b/vflow_8cpp.js @@ -0,0 +1,4 @@ +var vflow_8cpp = +[ + [ "main", "vflow_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/vflow_8cpp_source.html b/vflow_8cpp_source.html new file mode 100644 index 000000000..bae774197 --- /dev/null +++ b/vflow_8cpp_source.html @@ -0,0 +1,267 @@ + + + + + + + + +FTXUI: vflow.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    vflow.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2020 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <stdio.h> // for getchar
    +
    5#include <ftxui/dom/elements.hpp> // for operator|, Element, size, text, hcenter, Fit, vflow, window, EQUAL, bold, border, dim, HEIGHT, WIDTH
    +
    6#include <ftxui/screen/screen.hpp> // for Full, Screen
    +
    7#include <string> // for allocator, char_traits, operator+, to_string, string
    +
    8
    +
    9#include "ftxui/dom/node.hpp" // for Render
    +
    10#include "ftxui/screen/color.hpp" // for ftxui
    +
    11
    +
    +
    12int main() {
    +
    13 using namespace ftxui;
    +
    14 auto make_box = [](int dimx, int dimy) {
    +
    15 std::string title = std::to_string(dimx) + "x" + std::to_string(dimy);
    +
    16 return window(text(title) | hcenter | bold,
    +
    17 text("content") | hcenter | dim) |
    +
    18 size(WIDTH, EQUAL, dimx) | size(HEIGHT, EQUAL, dimy);
    +
    19 };
    +
    20
    +
    21 auto document = vflow({
    +
    22 make_box(7, 7),
    +
    23 make_box(7, 5),
    +
    24 make_box(5, 7),
    +
    25 make_box(10, 4),
    +
    26 make_box(10, 4),
    +
    27 make_box(10, 4),
    +
    28 make_box(10, 4),
    +
    29 make_box(11, 4),
    +
    30 make_box(11, 4),
    +
    31 make_box(11, 4),
    +
    32 make_box(11, 4),
    +
    33 make_box(12, 4),
    +
    34 make_box(12, 5),
    +
    35 make_box(12, 4),
    +
    36 make_box(13, 4),
    +
    37 make_box(13, 3),
    +
    38 make_box(13, 3),
    +
    39 make_box(10, 3),
    +
    40 }) |
    +
    41 border;
    +
    42
    +
    43 auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
    +
    44 Render(screen, document);
    +
    45 screen.Print();
    +
    46 getchar();
    +
    47
    +
    48 return 0;
    +
    49}
    +
    + + +
    Element make_box(int x, int y)
    +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + + +
    int main()
    Definition vflow.cpp:12
    +
    +
    + + + + + diff --git a/warn__windows__macro_8hpp.html b/warn__windows__macro_8hpp.html new file mode 100644 index 000000000..3287df402 --- /dev/null +++ b/warn__windows__macro_8hpp.html @@ -0,0 +1,211 @@ + + + + + + + + +FTXUI: warn_windows_macro.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    warn_windows_macro.hpp File Reference
    +
    + +
    + + + + + diff --git a/warn__windows__macro_8hpp_source.html b/warn__windows__macro_8hpp_source.html new file mode 100644 index 000000000..09e2d5396 --- /dev/null +++ b/warn__windows__macro_8hpp_source.html @@ -0,0 +1,227 @@ + + + + + + + + +FTXUI: warn_windows_macro.hpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    warn_windows_macro.hpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2025 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4
    +
    5#ifndef FTXUI_UTIL_WARN_WINDOWS_MACRO_H_
    +
    6#define FTXUI_UTIL_WARN_WINDOWS_MACRO_H_
    +
    7
    +
    8#ifdef min
    +
    9#error \
    +
    10 "The macro 'min' is defined, which conflicts with the standard C++ library and FTXUI. This is often caused by including <windows.h>. To fix this, add '#define NOMINMAX' before including <windows.h>, or pass '/DNOMINMAX' as a compiler flag."
    +
    11#endif
    +
    12
    +
    13#ifdef max
    +
    14#error \
    +
    15 "The macro 'max' is defined, which conflicts with the standard C++ library and FTXUI. This is often caused by including <windows.h>. To fix this, add '#define NOMINMAX' before including <windows.h>, or pass '/DNOMINMAX' as a compiler flag."
    +
    16#endif
    +
    17
    +
    18#endif // FTXUI_UTIL_WARN_WINDOWS_MACRO_H_
    +
    +
    + + + + + diff --git a/with__restored__io_8cpp.html b/with__restored__io_8cpp.html new file mode 100644 index 000000000..f2475d41a --- /dev/null +++ b/with__restored__io_8cpp.html @@ -0,0 +1,239 @@ + + + + + + + + +FTXUI: with_restored_io.cpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    with_restored_io.cpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    int main ()
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + +
    int main ()
    +
    + +

    Definition at line 15 of file with_restored_io.cpp.

    + +
    +
    +
    +
    + + + + + diff --git a/with__restored__io_8cpp.js b/with__restored__io_8cpp.js new file mode 100644 index 000000000..3f6a22860 --- /dev/null +++ b/with__restored__io_8cpp.js @@ -0,0 +1,4 @@ +var with__restored__io_8cpp = +[ + [ "main", "with__restored__io_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/with__restored__io_8cpp_source.html b/with__restored__io_8cpp_source.html new file mode 100644 index 000000000..db2eacd29 --- /dev/null +++ b/with__restored__io_8cpp_source.html @@ -0,0 +1,278 @@ + + + + + + + + +FTXUI: with_restored_io.cpp Source File + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    FTXUI 6.1.9 +
    +
    C++ functional terminal UI.
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    with_restored_io.cpp
    +
    +
    +Go to the documentation of this file.
    1// Copyright 2022 Arthur Sonzogni. All rights reserved.
    +
    2// Use of this source code is governed by the MIT license that can be found in
    +
    3// the LICENSE file.
    +
    4#include <cstdlib> // for system, EXIT_SUCCESS
    +
    5#include <iostream> // for operator<<, basic_ostream, basic_ostream::operator<<, cout, endl, flush, ostream, basic_ostream<>::__ostream_type, cin
    +
    6#include <memory> // for shared_ptr, __shared_ptr_access, allocator
    +
    7#include <string> // for getline, string
    +
    8
    +
    9#include "ftxui/component/captured_mouse.hpp" // for ftxui
    +
    10#include "ftxui/component/component.hpp" // for Button, Horizontal, Renderer
    +
    11#include "ftxui/component/component_base.hpp" // for ComponentBase
    +
    12#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
    +
    13#include "ftxui/dom/elements.hpp" // for operator|, filler, Element, borderEmpty, hbox, size, paragraph, vbox, LESS_THAN, border, center, HEIGHT, WIDTH
    +
    14
    +
    +
    15int main() {
    +
    16 using namespace ftxui;
    +
    17
    +
    18 auto screen = ScreenInteractive::Fullscreen();
    +
    19
    +
    20 // When pressing this button, "screen.WithRestoredIO" will execute the
    +
    21 // temporarily uninstall the terminal hook and execute the provided callback
    +
    22 // function. This allow running the application in a non-interactive mode.
    +
    23 auto btn_run = Button("Execute with restored IO", screen.WithRestoredIO([] {
    +
    24 std::cout << "This is a child program using stdin/stdout." << std::endl;
    +
    25 for (int i = 0; i < 10; ++i) {
    +
    26 std::cout << "Please enter 10 strings (" << i << "/10)" << std::flush;
    +
    27 std::string input;
    +
    28 std::getline(std::cin, input);
    +
    29 }
    +
    30 }));
    +
    31
    +
    32 auto btn_quit = Button("Quit", screen.ExitLoopClosure());
    +
    33
    +
    34 auto layout = Container::Horizontal({
    +
    35 btn_run,
    +
    36 btn_quit,
    +
    37 });
    +
    38
    +
    39 auto renderer = Renderer(layout, [&] {
    +
    40 auto explanation = paragraph(
    +
    41 "After clicking this button, the ScreenInteractive will be "
    +
    42 "suspended and access to stdin/stdout will temporarilly be "
    +
    43 "restore for running a function.");
    +
    44 auto element = vbox({
    +
    45 explanation | borderEmpty,
    +
    46 hbox({
    +
    47 btn_run->Render(),
    +
    48 filler(),
    +
    49 btn_quit->Render(),
    +
    50 }),
    +
    51 });
    +
    52
    +
    53 element = element | borderEmpty | border | size(WIDTH, LESS_THAN, 80) |
    +
    54 size(HEIGHT, LESS_THAN, 20) | center;
    +
    55 return element;
    +
    56 });
    +
    57
    +
    58 screen.Loop(renderer);
    +
    59 return EXIT_SUCCESS;
    +
    60}
    +
    + + + + +
    The FTXUI ftxui:: namespace.
    Definition animation.hpp:10
    + +
    int main()
    +
    +
    + + + + +
  4. 4F^Q*jjoW8y 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 R>Dm&m*h-?||LZK~+`sK-O5Okf literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_window.worker.js b/examples/component/ftxui_example_window.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_window.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/component/ftxui_example_with_restored_io.js b/examples/component/ftxui_example_with_restored_io.js new file mode 100644 index 000000000..646c1fc83 --- /dev/null +++ b/examples/component/ftxui_example_with_restored_io.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_with_restored_io.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={40176:function(){throw"Canceled!"},40194:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_with_restored_io.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=40168;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=52696;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_with_restored_io.wasm b/examples/component/ftxui_example_with_restored_io.wasm new file mode 100755 index 0000000000000000000000000000000000000000..2d4dd822bd5ba3f46944d5cbd7010fdda9b5e63a GIT binary patch literal 312556 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%0A?F9jE0p=Z; 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�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 OE8@5|wLCBWaEt>jdAxrB literal 0 HcmV?d00001 diff --git a/examples/component/ftxui_example_with_restored_io.worker.js b/examples/component/ftxui_example_with_restored_io.worker.js new file mode 100644 index 000000000..440270de2 --- /dev/null +++ b/examples/component/ftxui_example_with_restored_io.worker.js @@ -0,0 +1 @@ +var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}moduleLoaded()}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["PThread"].threadExit(result)}}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}} diff --git a/examples/dom/ftxui_example_border.js b/examples/dom/ftxui_example_border.js new file mode 100644 index 000000000..9bed24d04 --- /dev/null +++ b/examples/dom/ftxui_example_border.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_border.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["D"]);PThread.tlsInitFunctions.push(Module["asm"]["G"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={22968:function(){throw"Canceled!"},22986:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_border.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"b":___assert_fail,"x":___call_main,"m":___cxa_allocate_exception,"l":___cxa_throw,"C":__emscripten_notify_thread_queue,"g":_abort,"k":_emscripten_asm_const_int,"w":_emscripten_check_blocking_allowed,"j":_emscripten_conditional_set_current_thread_status,"d":_emscripten_futex_wait,"c":_emscripten_futex_wake,"e":_emscripten_get_now,"u":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"v":_emscripten_resize_heap,"A":_emscripten_set_canvas_element_size,"i":_emscripten_set_current_thread_status,"y":_emscripten_set_thread_name,"B":_emscripten_webgl_create_context,"o":_environ_get,"p":_environ_sizes_get,"r":_fd_close,"q":_fd_read,"s":_fd_seek,"f":_fd_write,"t":initPthreadsJS,"a":wasmMemory,"h":_pthread_create,"n":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["D"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["E"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["G"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["H"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["I"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["J"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["K"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["L"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["M"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["O"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["P"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["R"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["S"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["T"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["U"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["W"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["Z"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=22960;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=28852;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/dom/ftxui_example_border.wasm b/examples/dom/ftxui_example_border.wasm new file mode 100755 index 0000000000000000000000000000000000000000..030726aa3bce6819f54221d0b0d5a15f321afa4f GIT binary patch literal 197671 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_gallery.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={58832:function(){throw"Canceled!"},58850:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_gallery.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=58824;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=71736;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_gallery.wasm b/examples/component/ftxui_example_gallery.wasm new file mode 100755 index 0000000000000000000000000000000000000000..70e2a0c0f9a37b9777507472a5e5c662d731bf3e GIT binary patch literal 405582 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance==="undefined"){global.performance=require("perf_hooks").performance}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var str="";while(!(idx>=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker");runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error("Pthread aborting at "+(new Error).stack);what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="ftxui_example_homescreen.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["K"];addOnInit(Module["asm"]["I"]);PThread.tlsInitFunctions.push(Module["asm"]["M"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){removeRunDependency("wasm-instantiate")}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={67272:function(){throw"Canceled!"},67290:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};function _emscripten_futex_wake(addr,count){if(addr<=0||addr>HEAP8.length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(HEAP32,__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(HEAP32,__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(HEAP32,addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module["_emscripten_futex_wake"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in killThread!";HEAP32[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cancelThread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in cleanupThread!";var pthread=PThread.pthreads[pthread_ptr];if(pthread){HEAP32[pthread_ptr+12>>2]=0;var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],initMainThreadBlock:function(){},initRuntime:function(){var tb=_malloc(228);for(var i=0;i<228/4;++i)HEAPU32[tb/4+i]=0;HEAP32[tb+12>>2]=tb;var headPtr=tb+152;HEAP32[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)HEAPU32[tlsMemory/4+i]=0;Atomics.store(HEAPU32,tb+100>>2,tlsMemory);Atomics.store(HEAPU32,tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},runExitHandlersAndDeinitThread:function(tb,exitCode){Atomics.store(HEAPU32,tb+56>>2,1);Atomics.store(HEAPU32,tb+60>>2,0);PThread.runExitHandlers();Atomics.store(HEAPU32,tb+4>>2,exitCode);Atomics.store(HEAPU32,tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0)},setExitStatus:function(status){EXITSTATUS=status},threadExit:function(exitCode){var tb=_pthread_self();if(tb){PThread.runExitHandlersAndDeinitThread(tb,exitCode);if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exit"})}}},threadCancel:function(){PThread.runExitHandlersAndDeinitThread(_pthread_self(),-1);postMessage({"cmd":"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];HEAP32[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{HEAP32[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},threadInit:function(){for(var i in PThread.tlsInitFunctions){PThread.tlsInitFunctions[i]()}},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d["transferList"])}else{console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processQueuedMainThreadWork"){_emscripten_main_thread_process_queued_calls()}else if(cmd==="spawnThread"){spawnThread(e.data)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(HEAPU32,worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd==="exitProcess"){try{exit(d["returnCode"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd==="cancelDone"){PThread.returnWorkerToPool(worker)}else if(cmd==="objectTransfer"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target==="setimmediate"){worker.postMessage(e.data)}else{err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(data){worker.onerror(data)});worker.on("exit",function(data){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("ftxui_example_homescreen.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()0}Module["keepRuntimeAlive"]=keepRuntimeAlive;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___call_main(argc,argv){var returnCode=_main(argc,argv)}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=function(){return performance.now()-Module["__performance_now_clock_drift"]}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function ___cxa_thread_atexit(a0,a1){return _pthread_cleanup_push(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2,1);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_ioctl(fd,op,varargs){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,fd,op,varargs);SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({"cmd":"processQueuedMainThreadWork"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processThreadQueue"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processThreadQueue"})}return 1}function _abort(){abort()}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>HEAP8.length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(HEAP32,addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{if(Atomics.load(HEAP32,addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(HEAP32,addr>>2)!=val){return-6}lastAddr=Atomics.exchange(HEAP32,__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;HEAP32[varargs+4>>2]=eventData;HEAP32[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}HEAP32[varargs>>2]=targetCanvasPtr;HEAP32[varargs+4>>2]=width;HEAP32[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){HEAP32[canvas.canvasSharedPtr>>2]=width;HEAP32[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=HEAP32[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);HEAP32[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,__environ,environ_buf);try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,penviron_count,penviron_buf_size);try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,offset_low,offset_high,whence,newOffset);try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(9,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(!worker){return 6}if(worker.pthread!==undefined)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){HEAP32[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(HEAPU32,tis+(64>>2),threadParams.detached);Atomics.store(HEAPU32,tis+(100>>2),tlsMemory);Atomics.store(HEAPU32,tis+(40>>2),pthread.threadInfoStruct);Atomics.store(HEAPU32,tis+(80>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(76>>2),stackHigh);Atomics.store(HEAPU32,tis+(104>>2),threadParams.stackSize);Atomics.store(HEAPU32,tis+(104+8>>2),stackHigh);Atomics.store(HEAPU32,tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(HEAPU32,tis+(172>>2),global_locale);worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr,"stackBase":threadParams.stackBase,"stackSize":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer==="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}if(!pthread_ptr){err("pthread_create called with a null thread pointer!");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=HEAP32[attr>>2];stackSize+=81920;stackBase=HEAP32[attr+8>>2];detached=HEAP32[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)HEAPU32[(threadInfoStruct>>2)+i]=0;HEAP32[pthread_ptr>>2]=threadInfoStruct;HEAP32[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;HEAP32[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function _raise(sig){setErrNo(ERRNO_CODES.ENOSYS);return-1}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;var proxiedFunctionTable=[null,_atexit,___sys_ioctl,_emscripten_set_canvas_element_size_main_thread,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"c":___assert_fail,"z":___call_main,"i":___cxa_allocate_exception,"s":___cxa_thread_atexit,"h":___cxa_throw,"r":___sys_ioctl,"E":__emscripten_notify_thread_queue,"j":_abort,"x":_clock_gettime,"p":_emscripten_asm_const_int,"y":_emscripten_check_blocking_allowed,"g":_emscripten_conditional_set_current_thread_status,"e":_emscripten_futex_wait,"f":_emscripten_futex_wake,"d":_emscripten_get_now,"v":_emscripten_memcpy_big,"B":_emscripten_receive_on_main_thread_js,"w":_emscripten_resize_heap,"C":_emscripten_set_canvas_element_size,"o":_emscripten_set_current_thread_status,"A":_emscripten_set_thread_name,"D":_emscripten_webgl_create_context,"G":_environ_get,"H":_environ_sizes_get,"q":_fd_close,"l":_fd_read,"t":_fd_seek,"k":_fd_write,"u":initPthreadsJS,"a":wasmMemory,"m":_pthread_create,"n":_raise,"b":_signal,"F":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["I"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["J"]).apply(null,arguments)};var _ftxui_on_resize=Module["_ftxui_on_resize"]=function(){return(_ftxui_on_resize=Module["_ftxui_on_resize"]=Module["asm"]["L"]).apply(null,arguments)};var _emscripten_tls_init=Module["_emscripten_tls_init"]=function(){return(_emscripten_tls_init=Module["_emscripten_tls_init"]=Module["asm"]["M"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["N"]).apply(null,arguments)};var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=function(){return(_emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=Module["asm"]["O"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["P"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=function(){return(___pthread_tsd_run_dtors=Module["___pthread_tsd_run_dtors"]=Module["asm"]["Q"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=function(){return(_emscripten_current_thread_process_queued_calls=Module["_emscripten_current_thread_process_queued_calls"]=Module["asm"]["R"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=function(){return(_emscripten_register_main_browser_thread_id=Module["_emscripten_register_main_browser_thread_id"]=Module["asm"]["S"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=function(){return(__emscripten_do_dispatch_to_thread=Module["__emscripten_do_dispatch_to_thread"]=Module["asm"]["T"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module["_emscripten_sync_run_in_main_thread_4"]=Module["asm"]["U"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["V"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["W"]).apply(null,arguments)};var __emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=function(){return(__emscripten_call_on_thread=Module["__emscripten_call_on_thread"]=Module["asm"]["X"]).apply(null,arguments)};var _emscripten_proxy_main=Module["_emscripten_proxy_main"]=function(){return(_emscripten_proxy_main=Module["_emscripten_proxy_main"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["Z"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["_"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["$"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["ba"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ca"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["da"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["ea"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module["__emscripten_allow_main_runtime_queued_calls"]=67264;var __emscripten_main_thread_futex=Module["__emscripten_main_thread_futex"]=80424;Module["PThread"]=PThread;Module["PThread"]=PThread;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_emscripten_proxy_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"exitProcess","returnCode":status});throw new ExitStatus(status)}else{}}if(keepRuntimeAlive()){}else{PThread.terminateAllThreads();exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run(); diff --git a/examples/component/ftxui_example_homescreen.wasm b/examples/component/ftxui_example_homescreen.wasm new file mode 100755 index 0000000000000000000000000000000000000000..87cae131b8a3a56a2ec0922af15dded97401deed GIT binary patch literal 535200 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%0AatehJ_IK zx+HRnTviM59DgcZvenZip%%I%1W7cqiLVwmx|8Vc%7#R=AXZ_&;Jx6tMa@^&qHdbj z3C3!U2(eQUL(?>C6*I{%NktWA&BX_5S5avefzxd_UHbuw7>+3lep-7WJwUjRd-Z+m zeXVyD57w3?x_oL}gXYnRYWackO+U%c(A^N!EIJ92q?^IxV8Tt3q!SNWL! z2ng8W@�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